ETH Price: $3,368.65 (+0.04%)

Token

Cryb (CRYB)
 

Overview

Max Total Supply

1,000,000,000 CRYB

Holders

627

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
45,877.778139006721657919 CRYB

Value
$0.00
0x65e45efbb8f8b89320d401addeb7bee7d62db5cf
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
CrybToken

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-02-15
*/

pragma solidity 0.8.11;


// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}


// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)
/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}


// OpenZeppelin Contracts v4.4.1 (token/ERC20/IERC20.sol)
/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}


// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)
/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}


// OpenZeppelin Contracts v4.4.1 (token/ERC20/ERC20.sol)
/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) internal _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {}

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
}


contract CrybToken is Ownable, ERC20 {
  uint256 constant private TAX_BASE = 10_000;
  uint256 constant MILLION = 1_000_000 * 10**uint256(18);
  uint256 public tax;
  address public treasury;

  mapping (address => bool) public isExluded;

  event TaxChanged(uint256 oldTax, uint256 newTax);
  event TreasuryChanged(address oldTreasury, address newTreasury);
  
  constructor(
    uint256 _tax,
    address _treasury
  ) ERC20('Cryb', 'CRYB') {
    _mint(_treasury, 1000 * MILLION);
    
    setTax(_tax);
    setTreasury(_treasury);
  }

  function setTax(uint256 _tax) public onlyOwner {
    emit TaxChanged(tax, _tax);
    tax = _tax;
  }

  function setTreasury(address _treasury) public onlyOwner {
    emit TreasuryChanged(treasury, _treasury);
    treasury = _treasury;
  }

  function excludeMultiple(address[] memory accounts) external onlyOwner {
    for (uint256 i = 0; i < accounts.length; i++) {
      exclude(accounts[i]);
    }
  }

  function includeMultiple(address[] memory accounts) external onlyOwner {
    for (uint256 i = 0; i < accounts.length; i++) {
      include(accounts[i]);
    }
  }

  function exclude(address account) public onlyOwner {
    isExluded[account] = true;
  }

  function include(address account) public onlyOwner {
    isExluded[account] = false;
  }

  function _transfer(
    address sender,
    address recipient,
    uint256 amount
  ) internal override {
    require(sender != address(0), "ERC20: transfer from the zero address");
    require(recipient != address(0), "ERC20: transfer to the zero address");

    uint256 taxedAmount;
    uint256 totalReceived;

    if(isExluded[sender]) {
      // send the full amount if sender is exlcuded
      totalReceived = amount;
    } else {
      taxedAmount = (amount * tax) / TAX_BASE;
      totalReceived = amount - taxedAmount;
    }

    uint256 senderBalance = _balances[sender];
    require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
    unchecked {
      _balances[sender] = senderBalance - amount;
    }
    _balances[recipient] += totalReceived;

    if(taxedAmount > 0) {
      _balances[treasury] += taxedAmount;
      emit Transfer(sender, treasury, taxedAmount);
    }

    emit Transfer(sender, recipient, totalReceived);
  }

  function tokenRescue(
    IERC20 token,
    address recipient,
    uint256 amount
  ) onlyOwner external {
    token.transfer(recipient, amount);
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"_tax","type":"uint256"},{"internalType":"address","name":"_treasury","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldTax","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"TaxChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldTreasury","type":"address"},{"indexed":false,"internalType":"address","name":"newTreasury","type":"address"}],"name":"TreasuryChanged","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"exclude","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"excludeMultiple","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"include","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"includeMultiple","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"setTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_treasury","type":"address"}],"name":"setTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"tokenRescue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b50604051620031ab380380620031ab833981810160405281019062000037919062000703565b6040518060400160405280600481526020017f43727962000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4352594200000000000000000000000000000000000000000000000000000000815250620000c3620000b76200016160201b60201c565b6200016960201b60201c565b8160049080519060200190620000db929190620005ae565b508060059080519060200190620000f4929190620005ae565b50505062000137816012600a6200010c9190620008cd565b620f42406200011c91906200091e565b6103e86200012b91906200091e565b6200022d60201b60201c565b62000148826200037f60201b60201c565b62000159816200045560201b60201c565b505062000bcf565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620002a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200029790620009e0565b60405180910390fd5b8060036000828254620002b4919062000a02565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200030c919062000a02565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000373919062000a70565b60405180910390a35050565b6200038f6200016160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620003b56200058560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200040e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004059062000add565b60405180910390fd5b7f4ac0d6b0d694ec6c120242feaca94cfb6fbfe646756cd7026301e3a5984f0450600654826040516200044392919062000aff565b60405180910390a18060068190555050565b620004656200016160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200048b6200058560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620004e4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004db9062000add565b60405180910390fd5b7f8c3aa5f43a388513435861bf27dfad7829cd248696fed367c62d441f62954496600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826040516200053992919062000b3d565b60405180910390a180600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054620005bc9062000b99565b90600052602060002090601f016020900481019282620005e057600085556200062c565b82601f10620005fb57805160ff19168380011785556200062c565b828001600101855582156200062c579182015b828111156200062b5782518255916020019190600101906200060e565b5b5090506200063b91906200063f565b5090565b5b808211156200065a57600081600090555060010162000640565b5090565b600080fd5b6000819050919050565b620006788162000663565b81146200068457600080fd5b50565b60008151905062000698816200066d565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620006cb826200069e565b9050919050565b620006dd81620006be565b8114620006e957600080fd5b50565b600081519050620006fd81620006d2565b92915050565b600080604083850312156200071d576200071c6200065e565b5b60006200072d8582860162000687565b92505060206200074085828601620006ec565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620007d857808604811115620007b057620007af6200074a565b5b6001851615620007c05780820291505b8081029050620007d08562000779565b945062000790565b94509492505050565b600082620007f35760019050620008c6565b81620008035760009050620008c6565b81600181146200081c576002811462000827576200085d565b6001915050620008c6565b60ff8411156200083c576200083b6200074a565b5b8360020a9150848211156200085657620008556200074a565b5b50620008c6565b5060208310610133831016604e8410600b8410161715620008975782820a9050838111156200089157620008906200074a565b5b620008c6565b620008a6848484600162000786565b92509050818404811115620008c057620008bf6200074a565b5b81810290505b9392505050565b6000620008da8262000663565b9150620008e78362000663565b9250620009167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007e1565b905092915050565b60006200092b8262000663565b9150620009388362000663565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200097457620009736200074a565b5b828202905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620009c8601f836200097f565b9150620009d58262000990565b602082019050919050565b60006020820190508181036000830152620009fb81620009b9565b9050919050565b600062000a0f8262000663565b915062000a1c8362000663565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000a545762000a536200074a565b5b828201905092915050565b62000a6a8162000663565b82525050565b600060208201905062000a87600083018462000a5f565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000ac56020836200097f565b915062000ad28262000a8d565b602082019050919050565b6000602082019050818103600083015262000af88162000ab6565b9050919050565b600060408201905062000b16600083018562000a5f565b62000b25602083018462000a5f565b9392505050565b62000b3781620006be565b82525050565b600060408201905062000b54600083018562000b2c565b62000b63602083018462000b2c565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000bb257607f821691505b6020821081141562000bc95762000bc862000b6a565b5b50919050565b6125cc8062000bdf6000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c806377d21059116100c3578063a457c2d71161007c578063a457c2d7146103b5578063a9059cbb146103e5578063c867392814610415578063dd62ed3e14610431578063f0f4426014610461578063f2fde38b1461047d57610158565b806377d21059146103075780638bf8bd0b146103235780638da5cb5b1461033f57806394d79ce31461035d57806395d89b411461037957806399c8d5561461039757610158565b8063313ce56711610115578063313ce5671461024557806339509351146102635780634febf53d1461029357806361d027b3146102af57806370a08231146102cd578063715018a6146102fd57610158565b806306fdde031461015d578063095ea7b31461017b57806318160ddd146101ab57806323b872dd146101c957806326a2488d146101f95780632e5bb6ff14610229575b600080fd5b610165610499565b60405161017291906118a0565b60405180910390f35b6101956004803603810190610190919061196a565b61052b565b6040516101a291906119c5565b60405180910390f35b6101b3610549565b6040516101c091906119ef565b60405180910390f35b6101e360048036038101906101de9190611a0a565b610553565b6040516101f091906119c5565b60405180910390f35b610213600480360381019061020e9190611a5d565b61064b565b60405161022091906119c5565b60405180910390f35b610243600480360381019061023e9190611a8a565b61066b565b005b61024d61072c565b60405161025a9190611ad3565b60405180910390f35b61027d6004803603810190610278919061196a565b610735565b60405161028a91906119c5565b60405180910390f35b6102ad60048036038101906102a89190611a5d565b6107e1565b005b6102b76108b8565b6040516102c49190611afd565b60405180910390f35b6102e760048036038101906102e29190611a5d565b6108de565b6040516102f491906119ef565b60405180910390f35b610305610927565b005b610321600480360381019061031c9190611c60565b6109af565b005b61033d60048036038101906103389190611ce7565b610a71565b005b610347610b71565b6040516103549190611afd565b60405180910390f35b61037760048036038101906103729190611c60565b610b9a565b005b610381610c5c565b60405161038e91906118a0565b60405180910390f35b61039f610cee565b6040516103ac91906119ef565b60405180910390f35b6103cf60048036038101906103ca919061196a565b610cf4565b6040516103dc91906119c5565b60405180910390f35b6103ff60048036038101906103fa919061196a565b610ddf565b60405161040c91906119c5565b60405180910390f35b61042f600480360381019061042a9190611a5d565b610dfd565b005b61044b60048036038101906104469190611d3a565b610ed4565b60405161045891906119ef565b60405180910390f35b61047b60048036038101906104769190611a5d565b610f5b565b005b61049760048036038101906104929190611a5d565b611076565b005b6060600480546104a890611da9565b80601f01602080910402602001604051908101604052809291908181526020018280546104d490611da9565b80156105215780601f106104f657610100808354040283529160200191610521565b820191906000526020600020905b81548152906001019060200180831161050457829003601f168201915b5050505050905090565b600061053f61053861116e565b8484611176565b6001905092915050565b6000600354905090565b6000610560848484611341565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105ab61116e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561062b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062290611e4d565b60405180910390fd5b61063f8561063761116e565b858403611176565b60019150509392505050565b60086020528060005260406000206000915054906101000a900460ff1681565b61067361116e565b73ffffffffffffffffffffffffffffffffffffffff16610691610b71565b73ffffffffffffffffffffffffffffffffffffffff16146106e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106de90611eb9565b60405180910390fd5b7f4ac0d6b0d694ec6c120242feaca94cfb6fbfe646756cd7026301e3a5984f04506006548260405161071a929190611ed9565b60405180910390a18060068190555050565b60006012905090565b60006107d761074261116e565b84846002600061075061116e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107d29190611f31565b611176565b6001905092915050565b6107e961116e565b73ffffffffffffffffffffffffffffffffffffffff16610807610b71565b73ffffffffffffffffffffffffffffffffffffffff161461085d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085490611eb9565b60405180910390fd5b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61092f61116e565b73ffffffffffffffffffffffffffffffffffffffff1661094d610b71565b73ffffffffffffffffffffffffffffffffffffffff16146109a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099a90611eb9565b60405180910390fd5b6109ad6000611743565b565b6109b761116e565b73ffffffffffffffffffffffffffffffffffffffff166109d5610b71565b73ffffffffffffffffffffffffffffffffffffffff1614610a2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2290611eb9565b60405180910390fd5b60005b8151811015610a6d57610a5a828281518110610a4d57610a4c611f87565b5b6020026020010151610dfd565b8080610a6590611fb6565b915050610a2e565b5050565b610a7961116e565b73ffffffffffffffffffffffffffffffffffffffff16610a97610b71565b73ffffffffffffffffffffffffffffffffffffffff1614610aed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae490611eb9565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610b28929190611fff565b6020604051808303816000875af1158015610b47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6b9190612054565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ba261116e565b73ffffffffffffffffffffffffffffffffffffffff16610bc0610b71565b73ffffffffffffffffffffffffffffffffffffffff1614610c16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0d90611eb9565b60405180910390fd5b60005b8151811015610c5857610c45828281518110610c3857610c37611f87565b5b60200260200101516107e1565b8080610c5090611fb6565b915050610c19565b5050565b606060058054610c6b90611da9565b80601f0160208091040260200160405190810160405280929190818152602001828054610c9790611da9565b8015610ce45780601f10610cb957610100808354040283529160200191610ce4565b820191906000526020600020905b815481529060010190602001808311610cc757829003601f168201915b5050505050905090565b60065481565b60008060026000610d0361116e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610dc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db7906120f3565b60405180910390fd5b610dd4610dcb61116e565b85858403611176565b600191505092915050565b6000610df3610dec61116e565b8484611341565b6001905092915050565b610e0561116e565b73ffffffffffffffffffffffffffffffffffffffff16610e23610b71565b73ffffffffffffffffffffffffffffffffffffffff1614610e79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7090611eb9565b60405180910390fd5b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610f6361116e565b73ffffffffffffffffffffffffffffffffffffffff16610f81610b71565b73ffffffffffffffffffffffffffffffffffffffff1614610fd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fce90611eb9565b60405180910390fd5b7f8c3aa5f43a388513435861bf27dfad7829cd248696fed367c62d441f62954496600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168260405161102a929190612113565b60405180910390a180600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61107e61116e565b73ffffffffffffffffffffffffffffffffffffffff1661109c610b71565b73ffffffffffffffffffffffffffffffffffffffff16146110f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e990611eb9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611162576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611159906121ae565b60405180910390fd5b61116b81611743565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111dd90612240565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124d906122d2565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161133491906119ef565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a890612364565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611421576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611418906123f6565b60405180910390fd5b600080600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561147e578290506114aa565b6127106006548461148f9190612416565b611499919061249f565b915081836114a791906124d0565b90505b6000600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015611531576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152890612576565b60405180910390fd5b838103600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115c69190611f31565b9250508190555060008311156116d6578260016000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116479190611f31565b92505081905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516116cd91906119ef565b60405180910390a35b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161173391906119ef565b60405180910390a3505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611841578082015181840152602081019050611826565b83811115611850576000848401525b50505050565b6000601f19601f8301169050919050565b600061187282611807565b61187c8185611812565b935061188c818560208601611823565b61189581611856565b840191505092915050565b600060208201905081810360008301526118ba8184611867565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611901826118d6565b9050919050565b611911816118f6565b811461191c57600080fd5b50565b60008135905061192e81611908565b92915050565b6000819050919050565b61194781611934565b811461195257600080fd5b50565b6000813590506119648161193e565b92915050565b60008060408385031215611981576119806118cc565b5b600061198f8582860161191f565b92505060206119a085828601611955565b9150509250929050565b60008115159050919050565b6119bf816119aa565b82525050565b60006020820190506119da60008301846119b6565b92915050565b6119e981611934565b82525050565b6000602082019050611a0460008301846119e0565b92915050565b600080600060608486031215611a2357611a226118cc565b5b6000611a318682870161191f565b9350506020611a428682870161191f565b9250506040611a5386828701611955565b9150509250925092565b600060208284031215611a7357611a726118cc565b5b6000611a818482850161191f565b91505092915050565b600060208284031215611aa057611a9f6118cc565b5b6000611aae84828501611955565b91505092915050565b600060ff82169050919050565b611acd81611ab7565b82525050565b6000602082019050611ae86000830184611ac4565b92915050565b611af7816118f6565b82525050565b6000602082019050611b126000830184611aee565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611b5582611856565b810181811067ffffffffffffffff82111715611b7457611b73611b1d565b5b80604052505050565b6000611b876118c2565b9050611b938282611b4c565b919050565b600067ffffffffffffffff821115611bb357611bb2611b1d565b5b602082029050602081019050919050565b600080fd5b6000611bdc611bd784611b98565b611b7d565b90508083825260208201905060208402830185811115611bff57611bfe611bc4565b5b835b81811015611c285780611c14888261191f565b845260208401935050602081019050611c01565b5050509392505050565b600082601f830112611c4757611c46611b18565b5b8135611c57848260208601611bc9565b91505092915050565b600060208284031215611c7657611c756118cc565b5b600082013567ffffffffffffffff811115611c9457611c936118d1565b5b611ca084828501611c32565b91505092915050565b6000611cb4826118f6565b9050919050565b611cc481611ca9565b8114611ccf57600080fd5b50565b600081359050611ce181611cbb565b92915050565b600080600060608486031215611d0057611cff6118cc565b5b6000611d0e86828701611cd2565b9350506020611d1f8682870161191f565b9250506040611d3086828701611955565b9150509250925092565b60008060408385031215611d5157611d506118cc565b5b6000611d5f8582860161191f565b9250506020611d708582860161191f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611dc157607f821691505b60208210811415611dd557611dd4611d7a565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611e37602883611812565b9150611e4282611ddb565b604082019050919050565b60006020820190508181036000830152611e6681611e2a565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611ea3602083611812565b9150611eae82611e6d565b602082019050919050565b60006020820190508181036000830152611ed281611e96565b9050919050565b6000604082019050611eee60008301856119e0565b611efb60208301846119e0565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611f3c82611934565b9150611f4783611934565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611f7c57611f7b611f02565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000611fc182611934565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611ff457611ff3611f02565b5b600182019050919050565b60006040820190506120146000830185611aee565b61202160208301846119e0565b9392505050565b612031816119aa565b811461203c57600080fd5b50565b60008151905061204e81612028565b92915050565b60006020828403121561206a576120696118cc565b5b60006120788482850161203f565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006120dd602583611812565b91506120e882612081565b604082019050919050565b6000602082019050818103600083015261210c816120d0565b9050919050565b60006040820190506121286000830185611aee565b6121356020830184611aee565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612198602683611812565b91506121a38261213c565b604082019050919050565b600060208201905081810360008301526121c78161218b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061222a602483611812565b9150612235826121ce565b604082019050919050565b600060208201905081810360008301526122598161221d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006122bc602283611812565b91506122c782612260565b604082019050919050565b600060208201905081810360008301526122eb816122af565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061234e602583611812565b9150612359826122f2565b604082019050919050565b6000602082019050818103600083015261237d81612341565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006123e0602383611812565b91506123eb82612384565b604082019050919050565b6000602082019050818103600083015261240f816123d3565b9050919050565b600061242182611934565b915061242c83611934565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561246557612464611f02565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006124aa82611934565b91506124b583611934565b9250826124c5576124c4612470565b5b828204905092915050565b60006124db82611934565b91506124e683611934565b9250828210156124f9576124f8611f02565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612560602683611812565b915061256b82612504565b604082019050919050565b6000602082019050818103600083015261258f81612553565b905091905056fea26469706673582212202ad5b4d99cc3056c498a1b9b229b5c3be69527a65471da5ff9fb33572c55b50364736f6c634300080b003300000000000000000000000000000000000000000000000000000000000001f40000000000000000000000003d62b900d5c0b8e633486ff9cf78eba21f5a9072

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101585760003560e01c806377d21059116100c3578063a457c2d71161007c578063a457c2d7146103b5578063a9059cbb146103e5578063c867392814610415578063dd62ed3e14610431578063f0f4426014610461578063f2fde38b1461047d57610158565b806377d21059146103075780638bf8bd0b146103235780638da5cb5b1461033f57806394d79ce31461035d57806395d89b411461037957806399c8d5561461039757610158565b8063313ce56711610115578063313ce5671461024557806339509351146102635780634febf53d1461029357806361d027b3146102af57806370a08231146102cd578063715018a6146102fd57610158565b806306fdde031461015d578063095ea7b31461017b57806318160ddd146101ab57806323b872dd146101c957806326a2488d146101f95780632e5bb6ff14610229575b600080fd5b610165610499565b60405161017291906118a0565b60405180910390f35b6101956004803603810190610190919061196a565b61052b565b6040516101a291906119c5565b60405180910390f35b6101b3610549565b6040516101c091906119ef565b60405180910390f35b6101e360048036038101906101de9190611a0a565b610553565b6040516101f091906119c5565b60405180910390f35b610213600480360381019061020e9190611a5d565b61064b565b60405161022091906119c5565b60405180910390f35b610243600480360381019061023e9190611a8a565b61066b565b005b61024d61072c565b60405161025a9190611ad3565b60405180910390f35b61027d6004803603810190610278919061196a565b610735565b60405161028a91906119c5565b60405180910390f35b6102ad60048036038101906102a89190611a5d565b6107e1565b005b6102b76108b8565b6040516102c49190611afd565b60405180910390f35b6102e760048036038101906102e29190611a5d565b6108de565b6040516102f491906119ef565b60405180910390f35b610305610927565b005b610321600480360381019061031c9190611c60565b6109af565b005b61033d60048036038101906103389190611ce7565b610a71565b005b610347610b71565b6040516103549190611afd565b60405180910390f35b61037760048036038101906103729190611c60565b610b9a565b005b610381610c5c565b60405161038e91906118a0565b60405180910390f35b61039f610cee565b6040516103ac91906119ef565b60405180910390f35b6103cf60048036038101906103ca919061196a565b610cf4565b6040516103dc91906119c5565b60405180910390f35b6103ff60048036038101906103fa919061196a565b610ddf565b60405161040c91906119c5565b60405180910390f35b61042f600480360381019061042a9190611a5d565b610dfd565b005b61044b60048036038101906104469190611d3a565b610ed4565b60405161045891906119ef565b60405180910390f35b61047b60048036038101906104769190611a5d565b610f5b565b005b61049760048036038101906104929190611a5d565b611076565b005b6060600480546104a890611da9565b80601f01602080910402602001604051908101604052809291908181526020018280546104d490611da9565b80156105215780601f106104f657610100808354040283529160200191610521565b820191906000526020600020905b81548152906001019060200180831161050457829003601f168201915b5050505050905090565b600061053f61053861116e565b8484611176565b6001905092915050565b6000600354905090565b6000610560848484611341565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105ab61116e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561062b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062290611e4d565b60405180910390fd5b61063f8561063761116e565b858403611176565b60019150509392505050565b60086020528060005260406000206000915054906101000a900460ff1681565b61067361116e565b73ffffffffffffffffffffffffffffffffffffffff16610691610b71565b73ffffffffffffffffffffffffffffffffffffffff16146106e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106de90611eb9565b60405180910390fd5b7f4ac0d6b0d694ec6c120242feaca94cfb6fbfe646756cd7026301e3a5984f04506006548260405161071a929190611ed9565b60405180910390a18060068190555050565b60006012905090565b60006107d761074261116e565b84846002600061075061116e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107d29190611f31565b611176565b6001905092915050565b6107e961116e565b73ffffffffffffffffffffffffffffffffffffffff16610807610b71565b73ffffffffffffffffffffffffffffffffffffffff161461085d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085490611eb9565b60405180910390fd5b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61092f61116e565b73ffffffffffffffffffffffffffffffffffffffff1661094d610b71565b73ffffffffffffffffffffffffffffffffffffffff16146109a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099a90611eb9565b60405180910390fd5b6109ad6000611743565b565b6109b761116e565b73ffffffffffffffffffffffffffffffffffffffff166109d5610b71565b73ffffffffffffffffffffffffffffffffffffffff1614610a2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2290611eb9565b60405180910390fd5b60005b8151811015610a6d57610a5a828281518110610a4d57610a4c611f87565b5b6020026020010151610dfd565b8080610a6590611fb6565b915050610a2e565b5050565b610a7961116e565b73ffffffffffffffffffffffffffffffffffffffff16610a97610b71565b73ffffffffffffffffffffffffffffffffffffffff1614610aed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae490611eb9565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610b28929190611fff565b6020604051808303816000875af1158015610b47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6b9190612054565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ba261116e565b73ffffffffffffffffffffffffffffffffffffffff16610bc0610b71565b73ffffffffffffffffffffffffffffffffffffffff1614610c16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0d90611eb9565b60405180910390fd5b60005b8151811015610c5857610c45828281518110610c3857610c37611f87565b5b60200260200101516107e1565b8080610c5090611fb6565b915050610c19565b5050565b606060058054610c6b90611da9565b80601f0160208091040260200160405190810160405280929190818152602001828054610c9790611da9565b8015610ce45780601f10610cb957610100808354040283529160200191610ce4565b820191906000526020600020905b815481529060010190602001808311610cc757829003601f168201915b5050505050905090565b60065481565b60008060026000610d0361116e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610dc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db7906120f3565b60405180910390fd5b610dd4610dcb61116e565b85858403611176565b600191505092915050565b6000610df3610dec61116e565b8484611341565b6001905092915050565b610e0561116e565b73ffffffffffffffffffffffffffffffffffffffff16610e23610b71565b73ffffffffffffffffffffffffffffffffffffffff1614610e79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7090611eb9565b60405180910390fd5b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610f6361116e565b73ffffffffffffffffffffffffffffffffffffffff16610f81610b71565b73ffffffffffffffffffffffffffffffffffffffff1614610fd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fce90611eb9565b60405180910390fd5b7f8c3aa5f43a388513435861bf27dfad7829cd248696fed367c62d441f62954496600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168260405161102a929190612113565b60405180910390a180600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61107e61116e565b73ffffffffffffffffffffffffffffffffffffffff1661109c610b71565b73ffffffffffffffffffffffffffffffffffffffff16146110f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e990611eb9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611162576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611159906121ae565b60405180910390fd5b61116b81611743565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111dd90612240565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124d906122d2565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161133491906119ef565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a890612364565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611421576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611418906123f6565b60405180910390fd5b600080600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561147e578290506114aa565b6127106006548461148f9190612416565b611499919061249f565b915081836114a791906124d0565b90505b6000600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015611531576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152890612576565b60405180910390fd5b838103600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115c69190611f31565b9250508190555060008311156116d6578260016000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116479190611f31565b92505081905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516116cd91906119ef565b60405180910390a35b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161173391906119ef565b60405180910390a3505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611841578082015181840152602081019050611826565b83811115611850576000848401525b50505050565b6000601f19601f8301169050919050565b600061187282611807565b61187c8185611812565b935061188c818560208601611823565b61189581611856565b840191505092915050565b600060208201905081810360008301526118ba8184611867565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611901826118d6565b9050919050565b611911816118f6565b811461191c57600080fd5b50565b60008135905061192e81611908565b92915050565b6000819050919050565b61194781611934565b811461195257600080fd5b50565b6000813590506119648161193e565b92915050565b60008060408385031215611981576119806118cc565b5b600061198f8582860161191f565b92505060206119a085828601611955565b9150509250929050565b60008115159050919050565b6119bf816119aa565b82525050565b60006020820190506119da60008301846119b6565b92915050565b6119e981611934565b82525050565b6000602082019050611a0460008301846119e0565b92915050565b600080600060608486031215611a2357611a226118cc565b5b6000611a318682870161191f565b9350506020611a428682870161191f565b9250506040611a5386828701611955565b9150509250925092565b600060208284031215611a7357611a726118cc565b5b6000611a818482850161191f565b91505092915050565b600060208284031215611aa057611a9f6118cc565b5b6000611aae84828501611955565b91505092915050565b600060ff82169050919050565b611acd81611ab7565b82525050565b6000602082019050611ae86000830184611ac4565b92915050565b611af7816118f6565b82525050565b6000602082019050611b126000830184611aee565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611b5582611856565b810181811067ffffffffffffffff82111715611b7457611b73611b1d565b5b80604052505050565b6000611b876118c2565b9050611b938282611b4c565b919050565b600067ffffffffffffffff821115611bb357611bb2611b1d565b5b602082029050602081019050919050565b600080fd5b6000611bdc611bd784611b98565b611b7d565b90508083825260208201905060208402830185811115611bff57611bfe611bc4565b5b835b81811015611c285780611c14888261191f565b845260208401935050602081019050611c01565b5050509392505050565b600082601f830112611c4757611c46611b18565b5b8135611c57848260208601611bc9565b91505092915050565b600060208284031215611c7657611c756118cc565b5b600082013567ffffffffffffffff811115611c9457611c936118d1565b5b611ca084828501611c32565b91505092915050565b6000611cb4826118f6565b9050919050565b611cc481611ca9565b8114611ccf57600080fd5b50565b600081359050611ce181611cbb565b92915050565b600080600060608486031215611d0057611cff6118cc565b5b6000611d0e86828701611cd2565b9350506020611d1f8682870161191f565b9250506040611d3086828701611955565b9150509250925092565b60008060408385031215611d5157611d506118cc565b5b6000611d5f8582860161191f565b9250506020611d708582860161191f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611dc157607f821691505b60208210811415611dd557611dd4611d7a565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611e37602883611812565b9150611e4282611ddb565b604082019050919050565b60006020820190508181036000830152611e6681611e2a565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611ea3602083611812565b9150611eae82611e6d565b602082019050919050565b60006020820190508181036000830152611ed281611e96565b9050919050565b6000604082019050611eee60008301856119e0565b611efb60208301846119e0565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611f3c82611934565b9150611f4783611934565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611f7c57611f7b611f02565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000611fc182611934565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611ff457611ff3611f02565b5b600182019050919050565b60006040820190506120146000830185611aee565b61202160208301846119e0565b9392505050565b612031816119aa565b811461203c57600080fd5b50565b60008151905061204e81612028565b92915050565b60006020828403121561206a576120696118cc565b5b60006120788482850161203f565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006120dd602583611812565b91506120e882612081565b604082019050919050565b6000602082019050818103600083015261210c816120d0565b9050919050565b60006040820190506121286000830185611aee565b6121356020830184611aee565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612198602683611812565b91506121a38261213c565b604082019050919050565b600060208201905081810360008301526121c78161218b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061222a602483611812565b9150612235826121ce565b604082019050919050565b600060208201905081810360008301526122598161221d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006122bc602283611812565b91506122c782612260565b604082019050919050565b600060208201905081810360008301526122eb816122af565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061234e602583611812565b9150612359826122f2565b604082019050919050565b6000602082019050818103600083015261237d81612341565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006123e0602383611812565b91506123eb82612384565b604082019050919050565b6000602082019050818103600083015261240f816123d3565b9050919050565b600061242182611934565b915061242c83611934565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561246557612464611f02565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006124aa82611934565b91506124b583611934565b9250826124c5576124c4612470565b5b828204905092915050565b60006124db82611934565b91506124e683611934565b9250828210156124f9576124f8611f02565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612560602683611812565b915061256b82612504565b604082019050919050565b6000602082019050818103600083015261258f81612553565b905091905056fea26469706673582212202ad5b4d99cc3056c498a1b9b229b5c3be69527a65471da5ff9fb33572c55b50364736f6c634300080b0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000000000000000000001f40000000000000000000000003d62b900d5c0b8e633486ff9cf78eba21f5a9072

-----Decoded View---------------
Arg [0] : _tax (uint256): 500
Arg [1] : _treasury (address): 0x3D62b900D5C0b8e633486ff9cF78EbA21F5a9072

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000001f4
Arg [1] : 0000000000000000000000003d62b900d5c0b8e633486ff9cf78eba21f5a9072


Deployed Bytecode Sourcemap

16441:2506:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8787:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10954:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9907:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11605:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16642:42;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17003:103;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9749:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12506:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17600:89;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16612:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10078:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2497:103;;;:::i;:::-;;17428:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18789:155;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1846:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17256:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9006:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16589:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13224:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10418:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17695:90;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10656:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17112:138;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2755:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8787:100;8841:13;8874:5;8867:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8787:100;:::o;10954:169::-;11037:4;11054:39;11063:12;:10;:12::i;:::-;11077:7;11086:6;11054:8;:39::i;:::-;11111:4;11104:11;;10954:169;;;;:::o;9907:108::-;9968:7;9995:12;;9988:19;;9907:108;:::o;11605:492::-;11745:4;11762:36;11772:6;11780:9;11791:6;11762:9;:36::i;:::-;11811:24;11838:11;:19;11850:6;11838:19;;;;;;;;;;;;;;;:33;11858:12;:10;:12::i;:::-;11838:33;;;;;;;;;;;;;;;;11811:60;;11910:6;11890:16;:26;;11882:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11997:57;12006:6;12014:12;:10;:12::i;:::-;12047:6;12028:16;:25;11997:8;:57::i;:::-;12085:4;12078:11;;;11605:492;;;;;:::o;16642:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;17003:103::-;2077:12;:10;:12::i;:::-;2066:23;;:7;:5;:7::i;:::-;:23;;;2058:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17062:21:::1;17073:3;;17078:4;17062:21;;;;;;;:::i;:::-;;;;;;;;17096:4;17090:3;:10;;;;17003:103:::0;:::o;9749:93::-;9807:5;9832:2;9825:9;;9749:93;:::o;12506:215::-;12594:4;12611:80;12620:12;:10;:12::i;:::-;12634:7;12680:10;12643:11;:25;12655:12;:10;:12::i;:::-;12643:25;;;;;;;;;;;;;;;:34;12669:7;12643:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;12611:8;:80::i;:::-;12709:4;12702:11;;12506:215;;;;:::o;17600:89::-;2077:12;:10;:12::i;:::-;2066:23;;:7;:5;:7::i;:::-;:23;;;2058:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17679:4:::1;17658:9;:18;17668:7;17658:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;17600:89:::0;:::o;16612:23::-;;;;;;;;;;;;;:::o;10078:127::-;10152:7;10179:9;:18;10189:7;10179:18;;;;;;;;;;;;;;;;10172:25;;10078:127;;;:::o;2497:103::-;2077:12;:10;:12::i;:::-;2066:23;;:7;:5;:7::i;:::-;:23;;;2058:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2562:30:::1;2589:1;2562:18;:30::i;:::-;2497:103::o:0;17428:166::-;2077:12;:10;:12::i;:::-;2066:23;;:7;:5;:7::i;:::-;:23;;;2058:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17511:9:::1;17506:83;17530:8;:15;17526:1;:19;17506:83;;;17561:20;17569:8;17578:1;17569:11;;;;;;;;:::i;:::-;;;;;;;;17561:7;:20::i;:::-;17547:3;;;;;:::i;:::-;;;;17506:83;;;;17428:166:::0;:::o;18789:155::-;2077:12;:10;:12::i;:::-;2066:23;;:7;:5;:7::i;:::-;:23;;;2058:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18905:5:::1;:14;;;18920:9;18931:6;18905:33;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18789:155:::0;;;:::o;1846:87::-;1892:7;1919:6;;;;;;;;;;;1912:13;;1846:87;:::o;17256:166::-;2077:12;:10;:12::i;:::-;2066:23;;:7;:5;:7::i;:::-;:23;;;2058:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17339:9:::1;17334:83;17358:8;:15;17354:1;:19;17334:83;;;17389:20;17397:8;17406:1;17397:11;;;;;;;;:::i;:::-;;;;;;;;17389:7;:20::i;:::-;17375:3;;;;;:::i;:::-;;;;17334:83;;;;17256:166:::0;:::o;9006:104::-;9062:13;9095:7;9088:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9006:104;:::o;16589:18::-;;;;:::o;13224:413::-;13317:4;13334:24;13361:11;:25;13373:12;:10;:12::i;:::-;13361:25;;;;;;;;;;;;;;;:34;13387:7;13361:34;;;;;;;;;;;;;;;;13334:61;;13434:15;13414:16;:35;;13406:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;13527:67;13536:12;:10;:12::i;:::-;13550:7;13578:15;13559:16;:34;13527:8;:67::i;:::-;13625:4;13618:11;;;13224:413;;;;:::o;10418:175::-;10504:4;10521:42;10531:12;:10;:12::i;:::-;10545:9;10556:6;10521:9;:42::i;:::-;10581:4;10574:11;;10418:175;;;;:::o;17695:90::-;2077:12;:10;:12::i;:::-;2066:23;;:7;:5;:7::i;:::-;:23;;;2058:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17774:5:::1;17753:9;:18;17763:7;17753:18;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;17695:90:::0;:::o;10656:151::-;10745:7;10772:11;:18;10784:5;10772:18;;;;;;;;;;;;;;;:27;10791:7;10772:27;;;;;;;;;;;;;;;;10765:34;;10656:151;;;;:::o;17112:138::-;2077:12;:10;:12::i;:::-;2066:23;;:7;:5;:7::i;:::-;:23;;;2058:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17181:36:::1;17197:8;;;;;;;;;;;17207:9;17181:36;;;;;;;:::i;:::-;;;;;;;;17235:9;17224:8;;:20;;;;;;;;;;;;;;;;;;17112:138:::0;:::o;2755:201::-;2077:12;:10;:12::i;:::-;2066:23;;:7;:5;:7::i;:::-;:23;;;2058:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2864:1:::1;2844:22;;:8;:22;;;;2836:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2920:28;2939:8;2920:18;:28::i;:::-;2755:201:::0;:::o;656:98::-;709:7;736:10;729:17;;656:98;:::o;16052:380::-;16205:1;16188:19;;:5;:19;;;;16180:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16286:1;16267:21;;:7;:21;;;;16259:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16370:6;16340:11;:18;16352:5;16340:18;;;;;;;;;;;;;;;:27;16359:7;16340:27;;;;;;;;;;;;;;;:36;;;;16408:7;16392:32;;16401:5;16392:32;;;16417:6;16392:32;;;;;;:::i;:::-;;;;;;;;16052:380;;;:::o;17791:992::-;17932:1;17914:20;;:6;:20;;;;17906:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;18012:1;17991:23;;:9;:23;;;;17983:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;18063:19;18089:21;18122:9;:17;18132:6;18122:17;;;;;;;;;;;;;;;;;;;;;;;;;18119:221;;;18219:6;18203:22;;18119:221;;;16519:6;18272:3;;18263:6;:12;;;;:::i;:::-;18262:25;;;;:::i;:::-;18248:39;;18321:11;18312:6;:20;;;;:::i;:::-;18296:36;;18119:221;18348:21;18372:9;:17;18382:6;18372:17;;;;;;;;;;;;;;;;18348:41;;18421:6;18404:13;:23;;18396:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;18532:6;18516:13;:22;18496:9;:17;18506:6;18496:17;;;;;;;;;;;;;;;:42;;;;18576:13;18552:9;:20;18562:9;18552:20;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;18615:1;18601:11;:15;18598:124;;;18650:11;18627:9;:19;18637:8;;;;;;;;;;;18627:19;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;18692:8;;;;;;;;;;;18675:39;;18684:6;18675:39;;;18702:11;18675:39;;;;;;:::i;:::-;;;;;;;;18598:124;18752:9;18735:42;;18744:6;18735:42;;;18763:13;18735:42;;;;;;:::i;:::-;;;;;;;;17899:884;;;17791:992;;;:::o;3116:191::-;3190:16;3209:6;;;;;;;;;;;3190:25;;3235:8;3226:6;;:17;;;;;;;;;;;;;;;;;;3290:8;3259:40;;3280:8;3259:40;;;;;;;;;;;;3179:128;3116:191;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:329::-;4530:6;4579:2;4567:9;4558:7;4554:23;4550:32;4547:119;;;4585:79;;:::i;:::-;4547:119;4705:1;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4676:117;4471:329;;;;:::o;4806:::-;4865:6;4914:2;4902:9;4893:7;4889:23;4885:32;4882:119;;;4920:79;;:::i;:::-;4882:119;5040:1;5065:53;5110:7;5101:6;5090:9;5086:22;5065:53;:::i;:::-;5055:63;;5011:117;4806:329;;;;:::o;5141:86::-;5176:7;5216:4;5209:5;5205:16;5194:27;;5141:86;;;:::o;5233:112::-;5316:22;5332:5;5316:22;:::i;:::-;5311:3;5304:35;5233:112;;:::o;5351:214::-;5440:4;5478:2;5467:9;5463:18;5455:26;;5491:67;5555:1;5544:9;5540:17;5531:6;5491:67;:::i;:::-;5351:214;;;;:::o;5571:118::-;5658:24;5676:5;5658:24;:::i;:::-;5653:3;5646:37;5571:118;;:::o;5695:222::-;5788:4;5826:2;5815:9;5811:18;5803:26;;5839:71;5907:1;5896:9;5892:17;5883:6;5839:71;:::i;:::-;5695:222;;;;:::o;5923:117::-;6032:1;6029;6022:12;6046:180;6094:77;6091:1;6084:88;6191:4;6188:1;6181:15;6215:4;6212:1;6205:15;6232:281;6315:27;6337:4;6315:27;:::i;:::-;6307:6;6303:40;6445:6;6433:10;6430:22;6409:18;6397:10;6394:34;6391:62;6388:88;;;6456:18;;:::i;:::-;6388:88;6496:10;6492:2;6485:22;6275:238;6232:281;;:::o;6519:129::-;6553:6;6580:20;;:::i;:::-;6570:30;;6609:33;6637:4;6629:6;6609:33;:::i;:::-;6519:129;;;:::o;6654:311::-;6731:4;6821:18;6813:6;6810:30;6807:56;;;6843:18;;:::i;:::-;6807:56;6893:4;6885:6;6881:17;6873:25;;6953:4;6947;6943:15;6935:23;;6654:311;;;:::o;6971:117::-;7080:1;7077;7070:12;7111:710;7207:5;7232:81;7248:64;7305:6;7248:64;:::i;:::-;7232:81;:::i;:::-;7223:90;;7333:5;7362:6;7355:5;7348:21;7396:4;7389:5;7385:16;7378:23;;7449:4;7441:6;7437:17;7429:6;7425:30;7478:3;7470:6;7467:15;7464:122;;;7497:79;;:::i;:::-;7464:122;7612:6;7595:220;7629:6;7624:3;7621:15;7595:220;;;7704:3;7733:37;7766:3;7754:10;7733:37;:::i;:::-;7728:3;7721:50;7800:4;7795:3;7791:14;7784:21;;7671:144;7655:4;7650:3;7646:14;7639:21;;7595:220;;;7599:21;7213:608;;7111:710;;;;;:::o;7844:370::-;7915:5;7964:3;7957:4;7949:6;7945:17;7941:27;7931:122;;7972:79;;:::i;:::-;7931:122;8089:6;8076:20;8114:94;8204:3;8196:6;8189:4;8181:6;8177:17;8114:94;:::i;:::-;8105:103;;7921:293;7844:370;;;;:::o;8220:539::-;8304:6;8353:2;8341:9;8332:7;8328:23;8324:32;8321:119;;;8359:79;;:::i;:::-;8321:119;8507:1;8496:9;8492:17;8479:31;8537:18;8529:6;8526:30;8523:117;;;8559:79;;:::i;:::-;8523:117;8664:78;8734:7;8725:6;8714:9;8710:22;8664:78;:::i;:::-;8654:88;;8450:302;8220:539;;;;:::o;8765:110::-;8816:7;8845:24;8863:5;8845:24;:::i;:::-;8834:35;;8765:110;;;:::o;8881:150::-;8968:38;9000:5;8968:38;:::i;:::-;8961:5;8958:49;8948:77;;9021:1;9018;9011:12;8948:77;8881:150;:::o;9037:167::-;9097:5;9135:6;9122:20;9113:29;;9151:47;9192:5;9151:47;:::i;:::-;9037:167;;;;:::o;9210:647::-;9301:6;9309;9317;9366:2;9354:9;9345:7;9341:23;9337:32;9334:119;;;9372:79;;:::i;:::-;9334:119;9492:1;9517:67;9576:7;9567:6;9556:9;9552:22;9517:67;:::i;:::-;9507:77;;9463:131;9633:2;9659:53;9704:7;9695:6;9684:9;9680:22;9659:53;:::i;:::-;9649:63;;9604:118;9761:2;9787:53;9832:7;9823:6;9812:9;9808:22;9787:53;:::i;:::-;9777:63;;9732:118;9210:647;;;;;:::o;9863:474::-;9931:6;9939;9988:2;9976:9;9967:7;9963:23;9959:32;9956:119;;;9994:79;;:::i;:::-;9956:119;10114:1;10139:53;10184:7;10175:6;10164:9;10160:22;10139:53;:::i;:::-;10129:63;;10085:117;10241:2;10267:53;10312:7;10303:6;10292:9;10288:22;10267:53;:::i;:::-;10257:63;;10212:118;9863:474;;;;;:::o;10343:180::-;10391:77;10388:1;10381:88;10488:4;10485:1;10478:15;10512:4;10509:1;10502:15;10529:320;10573:6;10610:1;10604:4;10600:12;10590:22;;10657:1;10651:4;10647:12;10678:18;10668:81;;10734:4;10726:6;10722:17;10712:27;;10668:81;10796:2;10788:6;10785:14;10765:18;10762:38;10759:84;;;10815:18;;:::i;:::-;10759:84;10580:269;10529:320;;;:::o;10855:227::-;10995:34;10991:1;10983:6;10979:14;10972:58;11064:10;11059:2;11051:6;11047:15;11040:35;10855:227;:::o;11088:366::-;11230:3;11251:67;11315:2;11310:3;11251:67;:::i;:::-;11244:74;;11327:93;11416:3;11327:93;:::i;:::-;11445:2;11440:3;11436:12;11429:19;;11088:366;;;:::o;11460:419::-;11626:4;11664:2;11653:9;11649:18;11641:26;;11713:9;11707:4;11703:20;11699:1;11688:9;11684:17;11677:47;11741:131;11867:4;11741:131;:::i;:::-;11733:139;;11460:419;;;:::o;11885:182::-;12025:34;12021:1;12013:6;12009:14;12002:58;11885:182;:::o;12073:366::-;12215:3;12236:67;12300:2;12295:3;12236:67;:::i;:::-;12229:74;;12312:93;12401:3;12312:93;:::i;:::-;12430:2;12425:3;12421:12;12414:19;;12073:366;;;:::o;12445:419::-;12611:4;12649:2;12638:9;12634:18;12626:26;;12698:9;12692:4;12688:20;12684:1;12673:9;12669:17;12662:47;12726:131;12852:4;12726:131;:::i;:::-;12718:139;;12445:419;;;:::o;12870:332::-;12991:4;13029:2;13018:9;13014:18;13006:26;;13042:71;13110:1;13099:9;13095:17;13086:6;13042:71;:::i;:::-;13123:72;13191:2;13180:9;13176:18;13167:6;13123:72;:::i;:::-;12870:332;;;;;:::o;13208:180::-;13256:77;13253:1;13246:88;13353:4;13350:1;13343:15;13377:4;13374:1;13367:15;13394:305;13434:3;13453:20;13471:1;13453:20;:::i;:::-;13448:25;;13487:20;13505:1;13487:20;:::i;:::-;13482:25;;13641:1;13573:66;13569:74;13566:1;13563:81;13560:107;;;13647:18;;:::i;:::-;13560:107;13691:1;13688;13684:9;13677:16;;13394:305;;;;:::o;13705:180::-;13753:77;13750:1;13743:88;13850:4;13847:1;13840:15;13874:4;13871:1;13864:15;13891:233;13930:3;13953:24;13971:5;13953:24;:::i;:::-;13944:33;;13999:66;13992:5;13989:77;13986:103;;;14069:18;;:::i;:::-;13986:103;14116:1;14109:5;14105:13;14098:20;;13891:233;;;:::o;14130:332::-;14251:4;14289:2;14278:9;14274:18;14266:26;;14302:71;14370:1;14359:9;14355:17;14346:6;14302:71;:::i;:::-;14383:72;14451:2;14440:9;14436:18;14427:6;14383:72;:::i;:::-;14130:332;;;;;:::o;14468:116::-;14538:21;14553:5;14538:21;:::i;:::-;14531:5;14528:32;14518:60;;14574:1;14571;14564:12;14518:60;14468:116;:::o;14590:137::-;14644:5;14675:6;14669:13;14660:22;;14691:30;14715:5;14691:30;:::i;:::-;14590:137;;;;:::o;14733:345::-;14800:6;14849:2;14837:9;14828:7;14824:23;14820:32;14817:119;;;14855:79;;:::i;:::-;14817:119;14975:1;15000:61;15053:7;15044:6;15033:9;15029:22;15000:61;:::i;:::-;14990:71;;14946:125;14733:345;;;;:::o;15084:224::-;15224:34;15220:1;15212:6;15208:14;15201:58;15293:7;15288:2;15280:6;15276:15;15269:32;15084:224;:::o;15314:366::-;15456:3;15477:67;15541:2;15536:3;15477:67;:::i;:::-;15470:74;;15553:93;15642:3;15553:93;:::i;:::-;15671:2;15666:3;15662:12;15655:19;;15314:366;;;:::o;15686:419::-;15852:4;15890:2;15879:9;15875:18;15867:26;;15939:9;15933:4;15929:20;15925:1;15914:9;15910:17;15903:47;15967:131;16093:4;15967:131;:::i;:::-;15959:139;;15686:419;;;:::o;16111:332::-;16232:4;16270:2;16259:9;16255:18;16247:26;;16283:71;16351:1;16340:9;16336:17;16327:6;16283:71;:::i;:::-;16364:72;16432:2;16421:9;16417:18;16408:6;16364:72;:::i;:::-;16111:332;;;;;:::o;16449:225::-;16589:34;16585:1;16577:6;16573:14;16566:58;16658:8;16653:2;16645:6;16641:15;16634:33;16449:225;:::o;16680:366::-;16822:3;16843:67;16907:2;16902:3;16843:67;:::i;:::-;16836:74;;16919:93;17008:3;16919:93;:::i;:::-;17037:2;17032:3;17028:12;17021:19;;16680:366;;;:::o;17052:419::-;17218:4;17256:2;17245:9;17241:18;17233:26;;17305:9;17299:4;17295:20;17291:1;17280:9;17276:17;17269:47;17333:131;17459:4;17333:131;:::i;:::-;17325:139;;17052:419;;;:::o;17477:223::-;17617:34;17613:1;17605:6;17601:14;17594:58;17686:6;17681:2;17673:6;17669:15;17662:31;17477:223;:::o;17706:366::-;17848:3;17869:67;17933:2;17928:3;17869:67;:::i;:::-;17862:74;;17945:93;18034:3;17945:93;:::i;:::-;18063:2;18058:3;18054:12;18047:19;;17706:366;;;:::o;18078:419::-;18244:4;18282:2;18271:9;18267:18;18259:26;;18331:9;18325:4;18321:20;18317:1;18306:9;18302:17;18295:47;18359:131;18485:4;18359:131;:::i;:::-;18351:139;;18078:419;;;:::o;18503:221::-;18643:34;18639:1;18631:6;18627:14;18620:58;18712:4;18707:2;18699:6;18695:15;18688:29;18503:221;:::o;18730:366::-;18872:3;18893:67;18957:2;18952:3;18893:67;:::i;:::-;18886:74;;18969:93;19058:3;18969:93;:::i;:::-;19087:2;19082:3;19078:12;19071:19;;18730:366;;;:::o;19102:419::-;19268:4;19306:2;19295:9;19291:18;19283:26;;19355:9;19349:4;19345:20;19341:1;19330:9;19326:17;19319:47;19383:131;19509:4;19383:131;:::i;:::-;19375:139;;19102:419;;;:::o;19527:224::-;19667:34;19663:1;19655:6;19651:14;19644:58;19736:7;19731:2;19723:6;19719:15;19712:32;19527:224;:::o;19757:366::-;19899:3;19920:67;19984:2;19979:3;19920:67;:::i;:::-;19913:74;;19996:93;20085:3;19996:93;:::i;:::-;20114:2;20109:3;20105:12;20098:19;;19757:366;;;:::o;20129:419::-;20295:4;20333:2;20322:9;20318:18;20310:26;;20382:9;20376:4;20372:20;20368:1;20357:9;20353:17;20346:47;20410:131;20536:4;20410:131;:::i;:::-;20402:139;;20129:419;;;:::o;20554:222::-;20694:34;20690:1;20682:6;20678:14;20671:58;20763:5;20758:2;20750:6;20746:15;20739:30;20554:222;:::o;20782:366::-;20924:3;20945:67;21009:2;21004:3;20945:67;:::i;:::-;20938:74;;21021:93;21110:3;21021:93;:::i;:::-;21139:2;21134:3;21130:12;21123:19;;20782:366;;;:::o;21154:419::-;21320:4;21358:2;21347:9;21343:18;21335:26;;21407:9;21401:4;21397:20;21393:1;21382:9;21378:17;21371:47;21435:131;21561:4;21435:131;:::i;:::-;21427:139;;21154:419;;;:::o;21579:348::-;21619:7;21642:20;21660:1;21642:20;:::i;:::-;21637:25;;21676:20;21694:1;21676:20;:::i;:::-;21671:25;;21864:1;21796:66;21792:74;21789:1;21786:81;21781:1;21774:9;21767:17;21763:105;21760:131;;;21871:18;;:::i;:::-;21760:131;21919:1;21916;21912:9;21901:20;;21579:348;;;;:::o;21933:180::-;21981:77;21978:1;21971:88;22078:4;22075:1;22068:15;22102:4;22099:1;22092:15;22119:185;22159:1;22176:20;22194:1;22176:20;:::i;:::-;22171:25;;22210:20;22228:1;22210:20;:::i;:::-;22205:25;;22249:1;22239:35;;22254:18;;:::i;:::-;22239:35;22296:1;22293;22289:9;22284:14;;22119:185;;;;:::o;22310:191::-;22350:4;22370:20;22388:1;22370:20;:::i;:::-;22365:25;;22404:20;22422:1;22404:20;:::i;:::-;22399:25;;22443:1;22440;22437:8;22434:34;;;22448:18;;:::i;:::-;22434:34;22493:1;22490;22486:9;22478:17;;22310:191;;;;:::o;22507:225::-;22647:34;22643:1;22635:6;22631:14;22624:58;22716:8;22711:2;22703:6;22699:15;22692:33;22507:225;:::o;22738:366::-;22880:3;22901:67;22965:2;22960:3;22901:67;:::i;:::-;22894:74;;22977:93;23066:3;22977:93;:::i;:::-;23095:2;23090:3;23086:12;23079:19;;22738:366;;;:::o;23110:419::-;23276:4;23314:2;23303:9;23299:18;23291:26;;23363:9;23357:4;23353:20;23349:1;23338:9;23334:17;23327:47;23391:131;23517:4;23391:131;:::i;:::-;23383:139;;23110:419;;;:::o

Swarm Source

ipfs://2ad5b4d99cc3056c498a1b9b229b5c3be69527a65471da5ff9fb33572c55b503
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.