ETH Price: $3,230.88 (+1.50%)
Gas: 3 Gwei

Token

meson.network testnet token (MSNTT)
 

Overview

Max Total Supply

2,300,000,000 MSNTT

Holders

706

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
longthe.eth
Balance
0.330334759 MSNTT

Value
$0.00
0x991f3775c81d6f8331b9a812eda34ea48a7ea76d
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:
MSN

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-11-05
*/

pragma solidity ^0.8.0;

/**
 * @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);
}






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);
}




abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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




/**
 * @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) private _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 {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    /** @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");

        _beforeTokenTransfer(address(0), account, amount);

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

        _afterTokenTransfer(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");

        _beforeTokenTransfer(account, address(0), amount);

        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);

        _afterTokenTransfer(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);
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}




contract MSN is ERC20 {
    uint256 private payable_amount;
    address private contract_owner;
    bool private exchange_open;
    mapping(address => uint16) private special_list;
    mapping(uint16 => address) private special_list_idmap;

    modifier onlyContractOwner() {
        require(msg.sender == contract_owner, "Only contractOwner");
        _;
    }

    constructor(
        string memory name,
        string memory symbol,
        uint256 inisupply
    ) ERC20(name, symbol) {
        contract_owner = msg.sender;
        special_list[msg.sender] = 1;
        special_list_idmap[1] = msg.sender;
        exchange_open = false;
        _mint(msg.sender, inisupply * (10**uint256(decimals())));
    }

    event add_special_EVENT(
        address trigger_user_addr,
        address special_addr,
        uint8 _id,
        uint256 blocktime
    );

    function add_special(address special_addr, uint8 _id)
        external
        onlyContractOwner
    {
        require(_id > 0, "Special ID should start from 1");
        require(special_list_idmap[_id] == address(0x0), "Id already exist!");
        require(special_list[special_addr] == 0, "address already exist!");

        special_list[special_addr] = _id;
        special_list_idmap[_id] = special_addr;
        emit add_special_EVENT(msg.sender, special_addr, _id, block.timestamp);
    }

    event remove_special_EVENT(
        address trigger_user_addr,
        address special_addr,
        uint16 _special_id,
        uint256 blocktime
    );

    function remove_special(address special_addr) external onlyContractOwner {
        require(special_list[special_addr] > 0, "No such special");
        require(
            special_addr != contract_owner,
            "Can not delete contract owner"
        );
        uint16 special_id = special_list[special_addr];
        delete special_list[special_addr];
        delete special_list_idmap[special_id];
        emit remove_special_EVENT(
            msg.sender,
            special_addr,
            special_id,
            block.timestamp
        );
    }

    function get_special(address special_addr) external view returns (uint16) {
        require(special_list[special_addr] > 0, "No such special");
        return special_list[special_addr];
    }

    function get_special_by_id(uint16 _id) external view returns (address) {
        require(special_list_idmap[_id] != address(0x0), "No such special");
        return special_list_idmap[_id];
    }

    // mint is open for mining inflation increment
    event mint_EVENT(
        address trigger_user_addr,
        uint256 amount,
        uint256 blocktime
    );

    function mint(uint256 amount) public onlyContractOwner {
        _mint(msg.sender, amount);
        emit mint_EVENT(msg.sender, amount, block.timestamp);
    }

    // anyone can burn their own token
    event burn_EVENT(
        address trigger_user_addr,
        uint256 amount,
        uint256 blocktime
    );

    function burn(uint256 amount) external {
        _burn(msg.sender, amount);
        emit burn_EVENT(msg.sender, amount, block.timestamp);
    }

    event set_exchange_open_EVENT(
        address trigger_user_addr,
        bool exchange_open,
        uint256 blocktime
    );

    function set_exchange_open(bool _exchange_open) external onlyContractOwner {
        exchange_open = _exchange_open;
        emit set_exchange_open_EVENT(
            msg.sender,
            exchange_open,
            block.timestamp
        );
    }

    function get_exchange_open() public view returns (bool) {
        return exchange_open;
    }

    //overwrite to inject the modifier
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal override {
        require(
            exchange_open == true ||
                (special_list[owner] > 0) ||
                (special_list[spender] > 0),
            "Exchange closed && not special"
        );

        super._approve(owner, spender, amount);
    }

    event special_transfer_EVENT(
        address trigger_user_addr,
        address _sender,
        address _recipient,
        uint256 _amount,
        uint16 from_special,
        uint16 to_special,
        uint256 blocktime
    );

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        require(
            exchange_open == true ||
                (special_list[sender] > 0) ||
                (special_list[recipient] > 0),
            "Exchange closed && not special"
        );

        super._transfer(sender, recipient, amount);

        if ((special_list[sender] > 0) || (special_list[recipient] > 0)) {
            emit special_transfer_EVENT(
                msg.sender,
                sender,
                recipient,
                amount,
                special_list[sender],
                special_list[recipient],
                block.timestamp
            );
        }
    }

    receive() external payable {
        payable_amount += msg.value;
    }

    fallback() external payable {
        payable_amount += msg.value;
    }

    event withdraw_eth_EVENT(
        address trigger_user_addr,
        uint256 _amount,
        uint256 blocktime
    );

    function withdraw_eth() external onlyContractOwner {
        uint256 amout_to_t = address(this).balance;
        payable(msg.sender).transfer(amout_to_t);
        payable_amount = 0;
        emit withdraw_eth_EVENT(msg.sender, amout_to_t, block.timestamp);
    }

    event withdraw_contract_EVENT(
        address trigger_user_addr,
        address _from,
        uint256 amount,
        uint256 blocktime
    );

    function withdraw_contract() public onlyContractOwner {
        uint256 left = balanceOf(address(this));
        require(left > 0, "No balance");
        _transfer(address(this), msg.sender, left);
        emit withdraw_contract_EVENT(
            msg.sender,
            address(this),
            left,
            block.timestamp
        );
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"inisupply","type":"uint256"}],"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":"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":"trigger_user_addr","type":"address"},{"indexed":false,"internalType":"address","name":"special_addr","type":"address"},{"indexed":false,"internalType":"uint8","name":"_id","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"blocktime","type":"uint256"}],"name":"add_special_EVENT","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"trigger_user_addr","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"blocktime","type":"uint256"}],"name":"burn_EVENT","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"trigger_user_addr","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"blocktime","type":"uint256"}],"name":"mint_EVENT","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"trigger_user_addr","type":"address"},{"indexed":false,"internalType":"address","name":"special_addr","type":"address"},{"indexed":false,"internalType":"uint16","name":"_special_id","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"blocktime","type":"uint256"}],"name":"remove_special_EVENT","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"trigger_user_addr","type":"address"},{"indexed":false,"internalType":"bool","name":"exchange_open","type":"bool"},{"indexed":false,"internalType":"uint256","name":"blocktime","type":"uint256"}],"name":"set_exchange_open_EVENT","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"trigger_user_addr","type":"address"},{"indexed":false,"internalType":"address","name":"_sender","type":"address"},{"indexed":false,"internalType":"address","name":"_recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"uint16","name":"from_special","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"to_special","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"blocktime","type":"uint256"}],"name":"special_transfer_EVENT","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"trigger_user_addr","type":"address"},{"indexed":false,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"blocktime","type":"uint256"}],"name":"withdraw_contract_EVENT","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"trigger_user_addr","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"blocktime","type":"uint256"}],"name":"withdraw_eth_EVENT","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"special_addr","type":"address"},{"internalType":"uint8","name":"_id","type":"uint8"}],"name":"add_special","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","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":[],"name":"get_exchange_open","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"special_addr","type":"address"}],"name":"get_special","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_id","type":"uint16"}],"name":"get_special_by_id","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"special_addr","type":"address"}],"name":"remove_special","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_exchange_open","type":"bool"}],"name":"set_exchange_open","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":[],"name":"withdraw_contract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw_eth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b5060405162003c7538038062003c75833981810160405281019062000037919062000494565b82828160039080519060200190620000519291906200034f565b5080600490805190602001906200006a9291906200034f565b50505033600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055503360086000600161ffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660146101000a81548160ff021916908315150217905550620001ba3362000190620001c360201b60201c565b60ff16600a620001a19190620006cd565b83620001ae91906200080a565b620001cc60201b60201c565b50505062000a19565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200023f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002369062000566565b60405180910390fd5b62000253600083836200034560201b60201c565b806002600082825462000267919062000615565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620002be919062000615565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000325919062000588565b60405180910390a362000341600083836200034a60201b60201c565b5050565b505050565b505050565b8280546200035d90620008ab565b90600052602060002090601f016020900481019282620003815760008555620003cd565b82601f106200039c57805160ff1916838001178555620003cd565b82800160010185558215620003cd579182015b82811115620003cc578251825591602001919060010190620003af565b5b509050620003dc9190620003e0565b5090565b5b80821115620003fb576000816000905550600101620003e1565b5090565b6000620004166200041084620005ce565b620005a5565b905082815260208101848484011115620004355762000434620009a9565b5b6200044284828562000875565b509392505050565b600082601f830112620004625762000461620009a4565b5b815162000474848260208601620003ff565b91505092915050565b6000815190506200048e81620009ff565b92915050565b600080600060608486031215620004b057620004af620009b3565b5b600084015167ffffffffffffffff811115620004d157620004d0620009ae565b5b620004df868287016200044a565b935050602084015167ffffffffffffffff811115620005035762000502620009ae565b5b62000511868287016200044a565b925050604062000524868287016200047d565b9150509250925092565b60006200053d601f8362000604565b91506200054a82620009d6565b602082019050919050565b62000560816200086b565b82525050565b6000602082019050818103600083015262000581816200052e565b9050919050565b60006020820190506200059f600083018462000555565b92915050565b6000620005b1620005c4565b9050620005bf8282620008e1565b919050565b6000604051905090565b600067ffffffffffffffff821115620005ec57620005eb62000975565b5b620005f782620009b8565b9050602081019050919050565b600082825260208201905092915050565b600062000622826200086b565b91506200062f836200086b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000667576200066662000917565b5b828201905092915050565b6000808291508390505b6001851115620006c4578086048111156200069c576200069b62000917565b5b6001851615620006ac5780820291505b8081029050620006bc85620009c9565b94506200067c565b94509492505050565b6000620006da826200086b565b9150620006e7836200086b565b9250620007167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200071e565b905092915050565b60008262000730576001905062000803565b8162000740576000905062000803565b816001811462000759576002811462000764576200079a565b600191505062000803565b60ff84111562000779576200077862000917565b5b8360020a91508482111562000793576200079262000917565b5b5062000803565b5060208310610133831016604e8410600b8410161715620007d45782820a905083811115620007ce57620007cd62000917565b5b62000803565b620007e3848484600162000672565b92509050818404811115620007fd57620007fc62000917565b5b81810290505b9392505050565b600062000817826200086b565b915062000824836200086b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000860576200085f62000917565b5b828202905092915050565b6000819050919050565b60005b838110156200089557808201518184015260208101905062000878565b83811115620008a5576000848401525b50505050565b60006002820490506001821680620008c457607f821691505b60208210811415620008db57620008da62000946565b5b50919050565b620008ec82620009b8565b810181811067ffffffffffffffff821117156200090e576200090d62000975565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b62000a0a816200086b565b811462000a1657600080fd5b50565b61324c8062000a296000396000f3fe60806040526004361061012e5760003560e01c806370a08231116100ab578063a9059cbb1161006f578063a9059cbb14610466578063bb2bafad146104a3578063cac19fc8146104ba578063d6f8560d146104e3578063dd62ed3e146104fa578063de268cdb146105375761014e565b806370a082311461035b5780639171d1541461039857806395d89b41146103d5578063a0712d6814610400578063a457c2d7146104295761014e565b8063313ce567116100f2578063313ce56714610262578063395093511461028d57806342966c68146102ca5780634dbeee87146102f35780636566ef62146103305761014e565b806306fdde0314610169578063095ea7b31461019457806318160ddd146101d1578063186d0880146101fc57806323b872dd146102255761014e565b3661014e5734600560008282546101459190612ba5565b92505081905550005b34600560008282546101609190612ba5565b92505081905550005b34801561017557600080fd5b5061017e610560565b60405161018b91906128d6565b60405180910390f35b3480156101a057600080fd5b506101bb60048036038101906101b691906122f3565b6105f2565b6040516101c891906128bb565b60405180910390f35b3480156101dd57600080fd5b506101e6610610565b6040516101f39190612b53565b60405180910390f35b34801561020857600080fd5b50610223600480360381019061021e9190612373565b61061a565b005b34801561023157600080fd5b5061024c600480360381019061024791906122a0565b610711565b60405161025991906128bb565b60405180910390f35b34801561026e57600080fd5b50610277610809565b6040516102849190612b6e565b60405180910390f35b34801561029957600080fd5b506102b460048036038101906102af91906122f3565b610812565b6040516102c191906128bb565b60405180910390f35b3480156102d657600080fd5b506102f160048036038101906102ec91906123cd565b6108be565b005b3480156102ff57600080fd5b5061031a60048036038101906103159190612233565b610906565b6040516103279190612b38565b60405180910390f35b34801561033c57600080fd5b506103456109f0565b60405161035291906128bb565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d9190612233565b610a07565b60405161038f9190612b53565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba91906123a0565b610a4f565b6040516103cc91906126f4565b60405180910390f35b3480156103e157600080fd5b506103ea610b3e565b6040516103f791906128d6565b60405180910390f35b34801561040c57600080fd5b50610427600480360381019061042291906123cd565b610bd0565b005b34801561043557600080fd5b50610450600480360381019061044b91906122f3565b610ca8565b60405161045d91906128bb565b60405180910390f35b34801561047257600080fd5b5061048d600480360381019061048891906122f3565b610d93565b60405161049a91906128bb565b60405180910390f35b3480156104af57600080fd5b506104b8610db1565b005b3480156104c657600080fd5b506104e160048036038101906104dc9190612233565b610edc565b005b3480156104ef57600080fd5b506104f86111b2565b005b34801561050657600080fd5b50610521600480360381019061051c9190612260565b6112d4565b60405161052e9190612b53565b60405180910390f35b34801561054357600080fd5b5061055e60048036038101906105599190612333565b61135b565b005b60606003805461056f90612cc5565b80601f016020809104026020016040519081016040528092919081815260200182805461059b90612cc5565b80156105e85780601f106105bd576101008083540402835291602001916105e8565b820191906000526020600020905b8154815290600101906020018083116105cb57829003601f168201915b5050505050905090565b60006106066105ff611665565b848461166d565b6001905092915050565b6000600254905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a190612978565b60405180910390fd5b80600660146101000a81548160ff0219169083151502179055507f81ab618530badfa0735e9307c2a814fadc985fcf5cc79f1ba84d13dabab73e6533600660149054906101000a900460ff16426040516107069392919061284d565b60405180910390a150565b600061071e84848461178b565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610769611665565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156107e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e090612a18565b60405180910390fd5b6107fd856107f5611665565b85840361166d565b60019150509392505050565b60006012905090565b60006108b461081f611665565b84846001600061082d611665565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108af9190612ba5565b61166d565b6001905092915050565b6108c83382611a3d565b7f0c36a3ee10702b3f4c4a0cbc8fb77f1454bc72ab7727783746bde5ff55340e7d3382426040516108fb93929190612884565b60405180910390a150565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff1661ffff161161099b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099290612a58565b60405180910390fd5b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff169050919050565b6000600660149054906101000a900460ff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008073ffffffffffffffffffffffffffffffffffffffff16600860008461ffff1661ffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af290612a58565b60405180910390fd5b600860008361ffff1661ffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b606060048054610b4d90612cc5565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7990612cc5565b8015610bc65780601f10610b9b57610100808354040283529160200191610bc6565b820191906000526020600020905b815481529060010190602001808311610ba957829003601f168201915b5050505050905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5790612978565b60405180910390fd5b610c6a3382611c14565b7f83199a9581094d6df7315bcdebf919c1ea05a0ceee21e5289217292fe592ef33338242604051610c9d93929190612884565b60405180910390a150565b60008060016000610cb7611665565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6b90612af8565b60405180910390fd5b610d88610d7f611665565b8585840361166d565b600191505092915050565b6000610da7610da0611665565b848461178b565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3890612978565b60405180910390fd5b6000610e4c30610a07565b905060008111610e91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8890612998565b60405180910390fd5b610e9c30338361178b565b7f5732ed4206f25b13036055672fde80082b4bae54436e1da42b0016950c134bf233308342604051610ed194939291906127c3565b60405180910390a150565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6390612978565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff1661ffff1611611000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff790612a58565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611091576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611088906129f8565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff169050600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549061ffff0219169055600860008261ffff1661ffff16815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690557f8dfe34e53798c458a487d8d57fe9dbea79289cbaed1c9e477342bda23df3cb56338383426040516111a6949392919061277e565b60405180910390a15050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611242576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123990612978565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561128d573d6000803e3d6000fd5b5060006005819055507ff7a6b9124ad7d9df9ca77a8475bc5db166c249579480d81d2ad8890f711da68d3382426040516112c993929190612884565b60405180910390a150565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e290612978565b60405180910390fd5b60008160ff1611611431576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142890612938565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600860008360ff1661ffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d190612ad8565b60405180910390fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff1661ffff161461156e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611565906129d8565b60405180910390fd5b8060ff16600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548161ffff021916908361ffff16021790555081600860008360ff1661ffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f1ac5b5df13deb7d2c8f86cac339017c0ffb8692294f0af85b0dd7da4e579c46f338383426040516116599493929190612808565b60405180910390a15050565b600033905090565b60011515600660149054906101000a900460ff16151514806116e057506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff1661ffff16115b8061173c57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff1661ffff16115b61177b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177290612a38565b60405180910390fd5b611786838383611d74565b505050565b60011515600660149054906101000a900460ff16151514806117fe57506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff1661ffff16115b8061185a57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff1661ffff16115b611899576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189090612a38565b60405180910390fd5b6118a4838383611f3f565b6000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff1661ffff16118061195557506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff1661ffff16115b15611a38577fa7bce8ec7ee3608678202a6b4bc79b58f144191c62a3c1e7b91aa8689e1966df33848484600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff16600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff1642604051611a2f979695949392919061270f565b60405180910390a15b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa490612a78565b60405180910390fd5b611ab9826000836121c0565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3690612918565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160026000828254611b969190612bfb565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611bfb9190612b53565b60405180910390a3611c0f836000846121c5565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7b90612b18565b60405180910390fd5b611c90600083836121c0565b8060026000828254611ca29190612ba5565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611cf79190612ba5565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d5c9190612b53565b60405180910390a3611d70600083836121c5565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611de4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddb90612ab8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4b90612958565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f329190612b53565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa690612a98565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561201f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612016906128f8565b60405180910390fd5b61202a8383836121c0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156120b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a7906129b8565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121439190612ba5565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121a79190612b53565b60405180910390a36121ba8484846121c5565b50505050565b505050565b505050565b6000813590506121d9816131a3565b92915050565b6000813590506121ee816131ba565b92915050565b600081359050612203816131d1565b92915050565b600081359050612218816131e8565b92915050565b60008135905061222d816131ff565b92915050565b60006020828403121561224957612248612d55565b5b6000612257848285016121ca565b91505092915050565b6000806040838503121561227757612276612d55565b5b6000612285858286016121ca565b9250506020612296858286016121ca565b9150509250929050565b6000806000606084860312156122b9576122b8612d55565b5b60006122c7868287016121ca565b93505060206122d8868287016121ca565b92505060406122e986828701612209565b9150509250925092565b6000806040838503121561230a57612309612d55565b5b6000612318858286016121ca565b925050602061232985828601612209565b9150509250929050565b6000806040838503121561234a57612349612d55565b5b6000612358858286016121ca565b92505060206123698582860161221e565b9150509250929050565b60006020828403121561238957612388612d55565b5b6000612397848285016121df565b91505092915050565b6000602082840312156123b6576123b5612d55565b5b60006123c4848285016121f4565b91505092915050565b6000602082840312156123e3576123e2612d55565b5b60006123f184828501612209565b91505092915050565b61240381612c2f565b82525050565b61241281612c41565b82525050565b600061242382612b89565b61242d8185612b94565b935061243d818560208601612c92565b61244681612d5a565b840191505092915050565b600061245e602383612b94565b915061246982612d6b565b604082019050919050565b6000612481602283612b94565b915061248c82612dba565b604082019050919050565b60006124a4601e83612b94565b91506124af82612e09565b602082019050919050565b60006124c7602283612b94565b91506124d282612e32565b604082019050919050565b60006124ea601283612b94565b91506124f582612e81565b602082019050919050565b600061250d600a83612b94565b915061251882612eaa565b602082019050919050565b6000612530602683612b94565b915061253b82612ed3565b604082019050919050565b6000612553601683612b94565b915061255e82612f22565b602082019050919050565b6000612576601d83612b94565b915061258182612f4b565b602082019050919050565b6000612599602883612b94565b91506125a482612f74565b604082019050919050565b60006125bc601e83612b94565b91506125c782612fc3565b602082019050919050565b60006125df600f83612b94565b91506125ea82612fec565b602082019050919050565b6000612602602183612b94565b915061260d82613015565b604082019050919050565b6000612625602583612b94565b915061263082613064565b604082019050919050565b6000612648602483612b94565b9150612653826130b3565b604082019050919050565b600061266b601183612b94565b915061267682613102565b602082019050919050565b600061268e602583612b94565b91506126998261312b565b604082019050919050565b60006126b1601f83612b94565b91506126bc8261317a565b602082019050919050565b6126d081612c4d565b82525050565b6126df81612c7b565b82525050565b6126ee81612c85565b82525050565b600060208201905061270960008301846123fa565b92915050565b600060e082019050612724600083018a6123fa565b61273160208301896123fa565b61273e60408301886123fa565b61274b60608301876126d6565b61275860808301866126c7565b61276560a08301856126c7565b61277260c08301846126d6565b98975050505050505050565b600060808201905061279360008301876123fa565b6127a060208301866123fa565b6127ad60408301856126c7565b6127ba60608301846126d6565b95945050505050565b60006080820190506127d860008301876123fa565b6127e560208301866123fa565b6127f260408301856126d6565b6127ff60608301846126d6565b95945050505050565b600060808201905061281d60008301876123fa565b61282a60208301866123fa565b61283760408301856126e5565b61284460608301846126d6565b95945050505050565b600060608201905061286260008301866123fa565b61286f6020830185612409565b61287c60408301846126d6565b949350505050565b600060608201905061289960008301866123fa565b6128a660208301856126d6565b6128b360408301846126d6565b949350505050565b60006020820190506128d06000830184612409565b92915050565b600060208201905081810360008301526128f08184612418565b905092915050565b6000602082019050818103600083015261291181612451565b9050919050565b6000602082019050818103600083015261293181612474565b9050919050565b6000602082019050818103600083015261295181612497565b9050919050565b60006020820190508181036000830152612971816124ba565b9050919050565b60006020820190508181036000830152612991816124dd565b9050919050565b600060208201905081810360008301526129b181612500565b9050919050565b600060208201905081810360008301526129d181612523565b9050919050565b600060208201905081810360008301526129f181612546565b9050919050565b60006020820190508181036000830152612a1181612569565b9050919050565b60006020820190508181036000830152612a318161258c565b9050919050565b60006020820190508181036000830152612a51816125af565b9050919050565b60006020820190508181036000830152612a71816125d2565b9050919050565b60006020820190508181036000830152612a91816125f5565b9050919050565b60006020820190508181036000830152612ab181612618565b9050919050565b60006020820190508181036000830152612ad18161263b565b9050919050565b60006020820190508181036000830152612af18161265e565b9050919050565b60006020820190508181036000830152612b1181612681565b9050919050565b60006020820190508181036000830152612b31816126a4565b9050919050565b6000602082019050612b4d60008301846126c7565b92915050565b6000602082019050612b6860008301846126d6565b92915050565b6000602082019050612b8360008301846126e5565b92915050565b600081519050919050565b600082825260208201905092915050565b6000612bb082612c7b565b9150612bbb83612c7b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612bf057612bef612cf7565b5b828201905092915050565b6000612c0682612c7b565b9150612c1183612c7b565b925082821015612c2457612c23612cf7565b5b828203905092915050565b6000612c3a82612c5b565b9050919050565b60008115159050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015612cb0578082015181840152602081019050612c95565b83811115612cbf576000848401525b50505050565b60006002820490506001821680612cdd57607f821691505b60208210811415612cf157612cf0612d26565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f5370656369616c2049442073686f756c642073746172742066726f6d20310000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c7920636f6e74726163744f776e65720000000000000000000000000000600082015250565b7f4e6f2062616c616e636500000000000000000000000000000000000000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f6164647265737320616c72656164792065786973742100000000000000000000600082015250565b7f43616e206e6f742064656c65746520636f6e7472616374206f776e6572000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45786368616e676520636c6f736564202626206e6f74207370656369616c0000600082015250565b7f4e6f2073756368207370656369616c0000000000000000000000000000000000600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f496420616c726561647920657869737421000000000000000000000000000000600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6131ac81612c2f565b81146131b757600080fd5b50565b6131c381612c41565b81146131ce57600080fd5b50565b6131da81612c4d565b81146131e557600080fd5b50565b6131f181612c7b565b81146131fc57600080fd5b50565b61320881612c85565b811461321357600080fd5b5056fea26469706673582212201f10aa16e3ece32a8bcbcb18a5f01a7f5a1cd439d68647f5c97035ce3b2480b064736f6c63430008070033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000011e1a300000000000000000000000000000000000000000000000000000000000000001b6d65736f6e2e6e6574776f726b20746573746e657420746f6b656e000000000000000000000000000000000000000000000000000000000000000000000000054d534e5454000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061012e5760003560e01c806370a08231116100ab578063a9059cbb1161006f578063a9059cbb14610466578063bb2bafad146104a3578063cac19fc8146104ba578063d6f8560d146104e3578063dd62ed3e146104fa578063de268cdb146105375761014e565b806370a082311461035b5780639171d1541461039857806395d89b41146103d5578063a0712d6814610400578063a457c2d7146104295761014e565b8063313ce567116100f2578063313ce56714610262578063395093511461028d57806342966c68146102ca5780634dbeee87146102f35780636566ef62146103305761014e565b806306fdde0314610169578063095ea7b31461019457806318160ddd146101d1578063186d0880146101fc57806323b872dd146102255761014e565b3661014e5734600560008282546101459190612ba5565b92505081905550005b34600560008282546101609190612ba5565b92505081905550005b34801561017557600080fd5b5061017e610560565b60405161018b91906128d6565b60405180910390f35b3480156101a057600080fd5b506101bb60048036038101906101b691906122f3565b6105f2565b6040516101c891906128bb565b60405180910390f35b3480156101dd57600080fd5b506101e6610610565b6040516101f39190612b53565b60405180910390f35b34801561020857600080fd5b50610223600480360381019061021e9190612373565b61061a565b005b34801561023157600080fd5b5061024c600480360381019061024791906122a0565b610711565b60405161025991906128bb565b60405180910390f35b34801561026e57600080fd5b50610277610809565b6040516102849190612b6e565b60405180910390f35b34801561029957600080fd5b506102b460048036038101906102af91906122f3565b610812565b6040516102c191906128bb565b60405180910390f35b3480156102d657600080fd5b506102f160048036038101906102ec91906123cd565b6108be565b005b3480156102ff57600080fd5b5061031a60048036038101906103159190612233565b610906565b6040516103279190612b38565b60405180910390f35b34801561033c57600080fd5b506103456109f0565b60405161035291906128bb565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d9190612233565b610a07565b60405161038f9190612b53565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba91906123a0565b610a4f565b6040516103cc91906126f4565b60405180910390f35b3480156103e157600080fd5b506103ea610b3e565b6040516103f791906128d6565b60405180910390f35b34801561040c57600080fd5b50610427600480360381019061042291906123cd565b610bd0565b005b34801561043557600080fd5b50610450600480360381019061044b91906122f3565b610ca8565b60405161045d91906128bb565b60405180910390f35b34801561047257600080fd5b5061048d600480360381019061048891906122f3565b610d93565b60405161049a91906128bb565b60405180910390f35b3480156104af57600080fd5b506104b8610db1565b005b3480156104c657600080fd5b506104e160048036038101906104dc9190612233565b610edc565b005b3480156104ef57600080fd5b506104f86111b2565b005b34801561050657600080fd5b50610521600480360381019061051c9190612260565b6112d4565b60405161052e9190612b53565b60405180910390f35b34801561054357600080fd5b5061055e60048036038101906105599190612333565b61135b565b005b60606003805461056f90612cc5565b80601f016020809104026020016040519081016040528092919081815260200182805461059b90612cc5565b80156105e85780601f106105bd576101008083540402835291602001916105e8565b820191906000526020600020905b8154815290600101906020018083116105cb57829003601f168201915b5050505050905090565b60006106066105ff611665565b848461166d565b6001905092915050565b6000600254905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a190612978565b60405180910390fd5b80600660146101000a81548160ff0219169083151502179055507f81ab618530badfa0735e9307c2a814fadc985fcf5cc79f1ba84d13dabab73e6533600660149054906101000a900460ff16426040516107069392919061284d565b60405180910390a150565b600061071e84848461178b565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610769611665565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156107e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e090612a18565b60405180910390fd5b6107fd856107f5611665565b85840361166d565b60019150509392505050565b60006012905090565b60006108b461081f611665565b84846001600061082d611665565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108af9190612ba5565b61166d565b6001905092915050565b6108c83382611a3d565b7f0c36a3ee10702b3f4c4a0cbc8fb77f1454bc72ab7727783746bde5ff55340e7d3382426040516108fb93929190612884565b60405180910390a150565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff1661ffff161161099b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099290612a58565b60405180910390fd5b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff169050919050565b6000600660149054906101000a900460ff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008073ffffffffffffffffffffffffffffffffffffffff16600860008461ffff1661ffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af290612a58565b60405180910390fd5b600860008361ffff1661ffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b606060048054610b4d90612cc5565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7990612cc5565b8015610bc65780601f10610b9b57610100808354040283529160200191610bc6565b820191906000526020600020905b815481529060010190602001808311610ba957829003601f168201915b5050505050905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5790612978565b60405180910390fd5b610c6a3382611c14565b7f83199a9581094d6df7315bcdebf919c1ea05a0ceee21e5289217292fe592ef33338242604051610c9d93929190612884565b60405180910390a150565b60008060016000610cb7611665565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6b90612af8565b60405180910390fd5b610d88610d7f611665565b8585840361166d565b600191505092915050565b6000610da7610da0611665565b848461178b565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3890612978565b60405180910390fd5b6000610e4c30610a07565b905060008111610e91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8890612998565b60405180910390fd5b610e9c30338361178b565b7f5732ed4206f25b13036055672fde80082b4bae54436e1da42b0016950c134bf233308342604051610ed194939291906127c3565b60405180910390a150565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6390612978565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff1661ffff1611611000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff790612a58565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611091576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611088906129f8565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff169050600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549061ffff0219169055600860008261ffff1661ffff16815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690557f8dfe34e53798c458a487d8d57fe9dbea79289cbaed1c9e477342bda23df3cb56338383426040516111a6949392919061277e565b60405180910390a15050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611242576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123990612978565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561128d573d6000803e3d6000fd5b5060006005819055507ff7a6b9124ad7d9df9ca77a8475bc5db166c249579480d81d2ad8890f711da68d3382426040516112c993929190612884565b60405180910390a150565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e290612978565b60405180910390fd5b60008160ff1611611431576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142890612938565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600860008360ff1661ffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d190612ad8565b60405180910390fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff1661ffff161461156e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611565906129d8565b60405180910390fd5b8060ff16600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548161ffff021916908361ffff16021790555081600860008360ff1661ffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f1ac5b5df13deb7d2c8f86cac339017c0ffb8692294f0af85b0dd7da4e579c46f338383426040516116599493929190612808565b60405180910390a15050565b600033905090565b60011515600660149054906101000a900460ff16151514806116e057506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff1661ffff16115b8061173c57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff1661ffff16115b61177b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177290612a38565b60405180910390fd5b611786838383611d74565b505050565b60011515600660149054906101000a900460ff16151514806117fe57506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff1661ffff16115b8061185a57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff1661ffff16115b611899576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189090612a38565b60405180910390fd5b6118a4838383611f3f565b6000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff1661ffff16118061195557506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff1661ffff16115b15611a38577fa7bce8ec7ee3608678202a6b4bc79b58f144191c62a3c1e7b91aa8689e1966df33848484600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff16600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff1642604051611a2f979695949392919061270f565b60405180910390a15b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa490612a78565b60405180910390fd5b611ab9826000836121c0565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3690612918565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160026000828254611b969190612bfb565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611bfb9190612b53565b60405180910390a3611c0f836000846121c5565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7b90612b18565b60405180910390fd5b611c90600083836121c0565b8060026000828254611ca29190612ba5565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611cf79190612ba5565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d5c9190612b53565b60405180910390a3611d70600083836121c5565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611de4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddb90612ab8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4b90612958565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f329190612b53565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa690612a98565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561201f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612016906128f8565b60405180910390fd5b61202a8383836121c0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156120b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a7906129b8565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121439190612ba5565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121a79190612b53565b60405180910390a36121ba8484846121c5565b50505050565b505050565b505050565b6000813590506121d9816131a3565b92915050565b6000813590506121ee816131ba565b92915050565b600081359050612203816131d1565b92915050565b600081359050612218816131e8565b92915050565b60008135905061222d816131ff565b92915050565b60006020828403121561224957612248612d55565b5b6000612257848285016121ca565b91505092915050565b6000806040838503121561227757612276612d55565b5b6000612285858286016121ca565b9250506020612296858286016121ca565b9150509250929050565b6000806000606084860312156122b9576122b8612d55565b5b60006122c7868287016121ca565b93505060206122d8868287016121ca565b92505060406122e986828701612209565b9150509250925092565b6000806040838503121561230a57612309612d55565b5b6000612318858286016121ca565b925050602061232985828601612209565b9150509250929050565b6000806040838503121561234a57612349612d55565b5b6000612358858286016121ca565b92505060206123698582860161221e565b9150509250929050565b60006020828403121561238957612388612d55565b5b6000612397848285016121df565b91505092915050565b6000602082840312156123b6576123b5612d55565b5b60006123c4848285016121f4565b91505092915050565b6000602082840312156123e3576123e2612d55565b5b60006123f184828501612209565b91505092915050565b61240381612c2f565b82525050565b61241281612c41565b82525050565b600061242382612b89565b61242d8185612b94565b935061243d818560208601612c92565b61244681612d5a565b840191505092915050565b600061245e602383612b94565b915061246982612d6b565b604082019050919050565b6000612481602283612b94565b915061248c82612dba565b604082019050919050565b60006124a4601e83612b94565b91506124af82612e09565b602082019050919050565b60006124c7602283612b94565b91506124d282612e32565b604082019050919050565b60006124ea601283612b94565b91506124f582612e81565b602082019050919050565b600061250d600a83612b94565b915061251882612eaa565b602082019050919050565b6000612530602683612b94565b915061253b82612ed3565b604082019050919050565b6000612553601683612b94565b915061255e82612f22565b602082019050919050565b6000612576601d83612b94565b915061258182612f4b565b602082019050919050565b6000612599602883612b94565b91506125a482612f74565b604082019050919050565b60006125bc601e83612b94565b91506125c782612fc3565b602082019050919050565b60006125df600f83612b94565b91506125ea82612fec565b602082019050919050565b6000612602602183612b94565b915061260d82613015565b604082019050919050565b6000612625602583612b94565b915061263082613064565b604082019050919050565b6000612648602483612b94565b9150612653826130b3565b604082019050919050565b600061266b601183612b94565b915061267682613102565b602082019050919050565b600061268e602583612b94565b91506126998261312b565b604082019050919050565b60006126b1601f83612b94565b91506126bc8261317a565b602082019050919050565b6126d081612c4d565b82525050565b6126df81612c7b565b82525050565b6126ee81612c85565b82525050565b600060208201905061270960008301846123fa565b92915050565b600060e082019050612724600083018a6123fa565b61273160208301896123fa565b61273e60408301886123fa565b61274b60608301876126d6565b61275860808301866126c7565b61276560a08301856126c7565b61277260c08301846126d6565b98975050505050505050565b600060808201905061279360008301876123fa565b6127a060208301866123fa565b6127ad60408301856126c7565b6127ba60608301846126d6565b95945050505050565b60006080820190506127d860008301876123fa565b6127e560208301866123fa565b6127f260408301856126d6565b6127ff60608301846126d6565b95945050505050565b600060808201905061281d60008301876123fa565b61282a60208301866123fa565b61283760408301856126e5565b61284460608301846126d6565b95945050505050565b600060608201905061286260008301866123fa565b61286f6020830185612409565b61287c60408301846126d6565b949350505050565b600060608201905061289960008301866123fa565b6128a660208301856126d6565b6128b360408301846126d6565b949350505050565b60006020820190506128d06000830184612409565b92915050565b600060208201905081810360008301526128f08184612418565b905092915050565b6000602082019050818103600083015261291181612451565b9050919050565b6000602082019050818103600083015261293181612474565b9050919050565b6000602082019050818103600083015261295181612497565b9050919050565b60006020820190508181036000830152612971816124ba565b9050919050565b60006020820190508181036000830152612991816124dd565b9050919050565b600060208201905081810360008301526129b181612500565b9050919050565b600060208201905081810360008301526129d181612523565b9050919050565b600060208201905081810360008301526129f181612546565b9050919050565b60006020820190508181036000830152612a1181612569565b9050919050565b60006020820190508181036000830152612a318161258c565b9050919050565b60006020820190508181036000830152612a51816125af565b9050919050565b60006020820190508181036000830152612a71816125d2565b9050919050565b60006020820190508181036000830152612a91816125f5565b9050919050565b60006020820190508181036000830152612ab181612618565b9050919050565b60006020820190508181036000830152612ad18161263b565b9050919050565b60006020820190508181036000830152612af18161265e565b9050919050565b60006020820190508181036000830152612b1181612681565b9050919050565b60006020820190508181036000830152612b31816126a4565b9050919050565b6000602082019050612b4d60008301846126c7565b92915050565b6000602082019050612b6860008301846126d6565b92915050565b6000602082019050612b8360008301846126e5565b92915050565b600081519050919050565b600082825260208201905092915050565b6000612bb082612c7b565b9150612bbb83612c7b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612bf057612bef612cf7565b5b828201905092915050565b6000612c0682612c7b565b9150612c1183612c7b565b925082821015612c2457612c23612cf7565b5b828203905092915050565b6000612c3a82612c5b565b9050919050565b60008115159050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015612cb0578082015181840152602081019050612c95565b83811115612cbf576000848401525b50505050565b60006002820490506001821680612cdd57607f821691505b60208210811415612cf157612cf0612d26565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f5370656369616c2049442073686f756c642073746172742066726f6d20310000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c7920636f6e74726163744f776e65720000000000000000000000000000600082015250565b7f4e6f2062616c616e636500000000000000000000000000000000000000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f6164647265737320616c72656164792065786973742100000000000000000000600082015250565b7f43616e206e6f742064656c65746520636f6e7472616374206f776e6572000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45786368616e676520636c6f736564202626206e6f74207370656369616c0000600082015250565b7f4e6f2073756368207370656369616c0000000000000000000000000000000000600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f496420616c726561647920657869737421000000000000000000000000000000600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6131ac81612c2f565b81146131b757600080fd5b50565b6131c381612c41565b81146131ce57600080fd5b50565b6131da81612c4d565b81146131e557600080fd5b50565b6131f181612c7b565b81146131fc57600080fd5b50565b61320881612c85565b811461321357600080fd5b5056fea26469706673582212201f10aa16e3ece32a8bcbcb18a5f01a7f5a1cd439d68647f5c97035ce3b2480b064736f6c63430008070033

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

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000011e1a300000000000000000000000000000000000000000000000000000000000000001b6d65736f6e2e6e6574776f726b20746573746e657420746f6b656e000000000000000000000000000000000000000000000000000000000000000000000000054d534e5454000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name (string): meson.network testnet token
Arg [1] : symbol (string): MSNTT
Arg [2] : inisupply (uint256): 300000000

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 0000000000000000000000000000000000000000000000000000000011e1a300
Arg [3] : 000000000000000000000000000000000000000000000000000000000000001b
Arg [4] : 6d65736f6e2e6e6574776f726b20746573746e657420746f6b656e0000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [6] : 4d534e5454000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

15412:6266:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20646:9;20628:14;;:27;;;;;;;:::i;:::-;;;;;;;;15412:6266;;20728:9;20710:14;;:27;;;;;;;:::i;:::-;;;;;;;;15412:6266;5445:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7612:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6565:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18774:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8263:492;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6407:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9164:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18482:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17569:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19039:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6736:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17772:198;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5664:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18151:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9882:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7076:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21316:359;;;;;;;;;;;;;:::i;:::-;;16988:573;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20883:267;;;;;;;;;;;;;:::i;:::-;;7314:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16309:505;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5445:100;5499:13;5532:5;5525:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5445:100;:::o;7612:169::-;7695:4;7712:39;7721:12;:10;:12::i;:::-;7735:7;7744:6;7712:8;:39::i;:::-;7769:4;7762:11;;7612:169;;;;:::o;6565:108::-;6626:7;6653:12;;6646:19;;6565:108;:::o;18774:257::-;15726:14;;;;;;;;;;;15712:28;;:10;:28;;;15704:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;18876:14:::1;18860:13;;:30;;;;;;;;;;;;;;;;;;18906:117;18944:10;18969:13;;;;;;;;;;;18997:15;18906:117;;;;;;;;:::i;:::-;;;;;;;;18774:257:::0;:::o;8263:492::-;8403:4;8420:36;8430:6;8438:9;8449:6;8420:9;:36::i;:::-;8469:24;8496:11;:19;8508:6;8496:19;;;;;;;;;;;;;;;:33;8516:12;:10;:12::i;:::-;8496:33;;;;;;;;;;;;;;;;8469:60;;8568:6;8548:16;:26;;8540:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8655:57;8664:6;8672:12;:10;:12::i;:::-;8705:6;8686:16;:25;8655:8;:57::i;:::-;8743:4;8736:11;;;8263:492;;;;;:::o;6407:93::-;6465:5;6490:2;6483:9;;6407:93;:::o;9164:215::-;9252:4;9269:80;9278:12;:10;:12::i;:::-;9292:7;9338:10;9301:11;:25;9313:12;:10;:12::i;:::-;9301:25;;;;;;;;;;;;;;;:34;9327:7;9301:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;9269:8;:80::i;:::-;9367:4;9360:11;;9164:215;;;;:::o;18482:146::-;18532:25;18538:10;18550:6;18532:5;:25::i;:::-;18573:47;18584:10;18596:6;18604:15;18573:47;;;;;;;;:::i;:::-;;;;;;;;18482:146;:::o;17569:195::-;17635:6;17691:1;17662:12;:26;17675:12;17662:26;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;17654:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;17730:12;:26;17743:12;17730:26;;;;;;;;;;;;;;;;;;;;;;;;;17723:33;;17569:195;;;:::o;19039:95::-;19089:4;19113:13;;;;;;;;;;;19106:20;;19039:95;:::o;6736:127::-;6810:7;6837:9;:18;6847:7;6837:18;;;;;;;;;;;;;;;;6830:25;;6736:127;;;:::o;17772:198::-;17834:7;17897:3;17862:39;;:18;:23;17881:3;17862:23;;;;;;;;;;;;;;;;;;;;;;;;;:39;;;;17854:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17939:18;:23;17958:3;17939:23;;;;;;;;;;;;;;;;;;;;;;;;;17932:30;;17772:198;;;:::o;5664:104::-;5720:13;5753:7;5746:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5664:104;:::o;18151:162::-;15726:14;;;;;;;;;;;15712:28;;:10;:28;;;15704:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;18217:25:::1;18223:10;18235:6;18217:5;:25::i;:::-;18258:47;18269:10;18281:6;18289:15;18258:47;;;;;;;;:::i;:::-;;;;;;;;18151:162:::0;:::o;9882:413::-;9975:4;9992:24;10019:11;:25;10031:12;:10;:12::i;:::-;10019:25;;;;;;;;;;;;;;;:34;10045:7;10019:34;;;;;;;;;;;;;;;;9992:61;;10092:15;10072:16;:35;;10064:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;10185:67;10194:12;:10;:12::i;:::-;10208:7;10236:15;10217:16;:34;10185:8;:67::i;:::-;10283:4;10276:11;;;9882:413;;;;:::o;7076:175::-;7162:4;7179:42;7189:12;:10;:12::i;:::-;7203:9;7214:6;7179:9;:42::i;:::-;7239:4;7232:11;;7076:175;;;;:::o;21316:359::-;15726:14;;;;;;;;;;;15712:28;;:10;:28;;;15704:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;21381:12:::1;21396:24;21414:4;21396:9;:24::i;:::-;21381:39;;21446:1;21439:4;:8;21431:31;;;;;;;;;;;;:::i;:::-;;;;;;;;;21473:42;21491:4;21498:10;21510:4;21473:9;:42::i;:::-;21531:136;21569:10;21602:4;21622;21641:15;21531:136;;;;;;;;;:::i;:::-;;;;;;;;21370:305;21316:359::o:0;16988:573::-;15726:14;;;;;;;;;;;15712:28;;:10;:28;;;15704:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;17109:1:::1;17080:12;:26;17093:12;17080:26;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;17072:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;17179:14;;;;;;;;;;;17163:30;;:12;:30;;;;17141:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;17261:17;17281:12;:26;17294:12;17281:26;;;;;;;;;;;;;;;;;;;;;;;;;17261:46;;17325:12;:26;17338:12;17325:26;;;;;;;;;;;;;;;;17318:33;;;;;;;;;;;17369:18;:30;17388:10;17369:30;;;;;;;;;;;;;;;;17362:37;;;;;;;;;;;17415:138;17450:10;17475:12;17502:10;17527:15;17415:138;;;;;;;;;:::i;:::-;;;;;;;;17061:500;16988:573:::0;:::o;20883:267::-;15726:14;;;;;;;;;;;15712:28;;:10;:28;;;15704:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;20945:18:::1;20966:21;20945:42;;21006:10;20998:28;;:40;21027:10;20998:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;21066:1;21049:14;:18;;;;21083:59;21102:10;21114;21126:15;21083:59;;;;;;;;:::i;:::-;;;;;;;;20934:216;20883:267::o:0;7314:151::-;7403:7;7430:11;:18;7442:5;7430:18;;;;;;;;;;;;;;;:27;7449:7;7430:27;;;;;;;;;;;;;;;;7423:34;;7314:151;;;;:::o;16309:505::-;15726:14;;;;;;;;;;;15712:28;;:10;:28;;;15704:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;16438:1:::1;16432:3;:7;;;16424:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;16528:3;16493:39;;:18;:23;16512:3;16493:23;;;;;;;;;;;;;;;;;;;;;;;;;:39;;;16485:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;16603:1;16573:12;:26;16586:12;16573:26;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;16565:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;16673:3;16644:32;;:12;:26;16657:12;16644:26;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;16713:12;16687:18;:23;16706:3;16687:23;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;16741:65;16759:10;16771:12;16785:3;16790:15;16741:65;;;;;;;;;:::i;:::-;;;;;;;;16309:505:::0;;:::o;3247:98::-;3300:7;3327:10;3320:17;;3247:98;:::o;19182:383::-;19350:4;19333:21;;:13;;;;;;;;;;;:21;;;:67;;;;19398:1;19376:12;:19;19389:5;19376:19;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;19333:67;:115;;;;19446:1;19422:12;:21;19435:7;19422:21;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;19333:115;19311:195;;;;;;;;;;;;:::i;:::-;;;;;;;;;19519:38;19534:5;19541:7;19550:6;19519:14;:38::i;:::-;19182:383;;;:::o;19820:762::-;19992:4;19975:21;;:13;;;;;;;;;;;:21;;;:68;;;;20041:1;20018:12;:20;20031:6;20018:20;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;19975:68;:118;;;;20091:1;20065:12;:23;20078:9;20065:23;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;19975:118;19953:198;;;;;;;;;;;;:::i;:::-;;;;;;;;;20164:42;20180:6;20188:9;20199:6;20164:15;:42::i;:::-;20247:1;20224:12;:20;20237:6;20224:20;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;20223:59;;;;20280:1;20254:12;:23;20267:9;20254:23;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;20223:59;20219:356;;;20304:259;20345:10;20374:6;20399:9;20427:6;20452:12;:20;20465:6;20452:20;;;;;;;;;;;;;;;;;;;;;;;;;20491:12;:23;20504:9;20491:23;;;;;;;;;;;;;;;;;;;;;;;;;20533:15;20304:259;;;;;;;;;;;;:::i;:::-;;;;;;;;20219:356;19820:762;;;:::o;12537:591::-;12640:1;12621:21;;:7;:21;;;;12613:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12693:49;12714:7;12731:1;12735:6;12693:20;:49::i;:::-;12755:22;12780:9;:18;12790:7;12780:18;;;;;;;;;;;;;;;;12755:43;;12835:6;12817:14;:24;;12809:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12954:6;12937:14;:23;12916:9;:18;12926:7;12916:18;;;;;;;;;;;;;;;:44;;;;12998:6;12982:12;;:22;;;;;;;:::i;:::-;;;;;;;;13048:1;13022:37;;13031:7;13022:37;;;13052:6;13022:37;;;;;;:::i;:::-;;;;;;;;13072:48;13092:7;13109:1;13113:6;13072:19;:48::i;:::-;12602:526;12537:591;;:::o;11805:399::-;11908:1;11889:21;;:7;:21;;;;11881:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11959:49;11988:1;11992:7;12001:6;11959:20;:49::i;:::-;12037:6;12021:12;;:22;;;;;;;:::i;:::-;;;;;;;;12076:6;12054:9;:18;12064:7;12054:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;12119:7;12098:37;;12115:1;12098:37;;;12128:6;12098:37;;;;;;:::i;:::-;;;;;;;;12148:48;12176:1;12180:7;12189:6;12148:19;:48::i;:::-;11805:399;;:::o;13566:380::-;13719:1;13702:19;;:5;:19;;;;13694:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13800:1;13781:21;;:7;:21;;;;13773:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13884:6;13854:11;:18;13866:5;13854:18;;;;;;;;;;;;;;;:27;13873:7;13854:27;;;;;;;;;;;;;;;:36;;;;13922:7;13906:32;;13915:5;13906:32;;;13931:6;13906:32;;;;;;:::i;:::-;;;;;;;;13566:380;;;:::o;10785:733::-;10943:1;10925:20;;:6;:20;;;;10917:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11027:1;11006:23;;:9;:23;;;;10998:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11082:47;11103:6;11111:9;11122:6;11082:20;:47::i;:::-;11142:21;11166:9;:17;11176:6;11166:17;;;;;;;;;;;;;;;;11142:41;;11219:6;11202:13;:23;;11194:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11340:6;11324:13;:22;11304:9;:17;11314:6;11304:17;;;;;;;;;;;;;;;:42;;;;11392:6;11368:9;:20;11378:9;11368:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;11433:9;11416:35;;11425:6;11416:35;;;11444:6;11416:35;;;;;;:::i;:::-;;;;;;;;11464:46;11484:6;11492:9;11503:6;11464:19;:46::i;:::-;10906:612;10785:733;;;:::o;14546:125::-;;;;:::o;15275:124::-;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:133::-;195:5;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;152:133;;;;:::o;291:137::-;336:5;374:6;361:20;352:29;;390:32;416:5;390:32;:::i;:::-;291:137;;;;:::o;434:139::-;480:5;518:6;505:20;496:29;;534:33;561:5;534:33;:::i;:::-;434:139;;;;:::o;579:135::-;623:5;661:6;648:20;639:29;;677:31;702:5;677:31;:::i;:::-;579:135;;;;:::o;720:329::-;779:6;828:2;816:9;807:7;803:23;799:32;796:119;;;834:79;;:::i;:::-;796:119;954:1;979:53;1024:7;1015:6;1004:9;1000:22;979:53;:::i;:::-;969:63;;925:117;720:329;;;;:::o;1055:474::-;1123:6;1131;1180:2;1168:9;1159:7;1155:23;1151:32;1148:119;;;1186:79;;:::i;:::-;1148:119;1306:1;1331:53;1376:7;1367:6;1356:9;1352:22;1331:53;:::i;:::-;1321:63;;1277:117;1433:2;1459:53;1504:7;1495:6;1484:9;1480:22;1459:53;:::i;:::-;1449:63;;1404:118;1055:474;;;;;:::o;1535:619::-;1612:6;1620;1628;1677:2;1665:9;1656:7;1652:23;1648:32;1645:119;;;1683:79;;:::i;:::-;1645:119;1803:1;1828:53;1873:7;1864:6;1853:9;1849:22;1828:53;:::i;:::-;1818:63;;1774:117;1930:2;1956:53;2001:7;1992:6;1981:9;1977:22;1956:53;:::i;:::-;1946:63;;1901:118;2058:2;2084:53;2129:7;2120:6;2109:9;2105:22;2084:53;:::i;:::-;2074:63;;2029:118;1535:619;;;;;:::o;2160:474::-;2228:6;2236;2285:2;2273:9;2264:7;2260:23;2256:32;2253:119;;;2291:79;;:::i;:::-;2253:119;2411:1;2436:53;2481:7;2472:6;2461:9;2457:22;2436:53;:::i;:::-;2426:63;;2382:117;2538:2;2564:53;2609:7;2600:6;2589:9;2585:22;2564:53;:::i;:::-;2554:63;;2509:118;2160:474;;;;;:::o;2640:470::-;2706:6;2714;2763:2;2751:9;2742:7;2738:23;2734:32;2731:119;;;2769:79;;:::i;:::-;2731:119;2889:1;2914:53;2959:7;2950:6;2939:9;2935:22;2914:53;:::i;:::-;2904:63;;2860:117;3016:2;3042:51;3085:7;3076:6;3065:9;3061:22;3042:51;:::i;:::-;3032:61;;2987:116;2640:470;;;;;:::o;3116:323::-;3172:6;3221:2;3209:9;3200:7;3196:23;3192:32;3189:119;;;3227:79;;:::i;:::-;3189:119;3347:1;3372:50;3414:7;3405:6;3394:9;3390:22;3372:50;:::i;:::-;3362:60;;3318:114;3116:323;;;;:::o;3445:327::-;3503:6;3552:2;3540:9;3531:7;3527:23;3523:32;3520:119;;;3558:79;;:::i;:::-;3520:119;3678:1;3703:52;3747:7;3738:6;3727:9;3723:22;3703:52;:::i;:::-;3693:62;;3649:116;3445:327;;;;:::o;3778:329::-;3837:6;3886:2;3874:9;3865:7;3861:23;3857:32;3854:119;;;3892:79;;:::i;:::-;3854:119;4012:1;4037:53;4082:7;4073:6;4062:9;4058:22;4037:53;:::i;:::-;4027:63;;3983:117;3778:329;;;;:::o;4113:118::-;4200:24;4218:5;4200:24;:::i;:::-;4195:3;4188:37;4113:118;;:::o;4237:109::-;4318:21;4333:5;4318:21;:::i;:::-;4313:3;4306:34;4237:109;;:::o;4352:364::-;4440:3;4468:39;4501:5;4468:39;:::i;:::-;4523:71;4587:6;4582:3;4523:71;:::i;:::-;4516:78;;4603:52;4648:6;4643:3;4636:4;4629:5;4625:16;4603:52;:::i;:::-;4680:29;4702:6;4680:29;:::i;:::-;4675:3;4671:39;4664:46;;4444:272;4352:364;;;;:::o;4722:366::-;4864:3;4885:67;4949:2;4944:3;4885:67;:::i;:::-;4878:74;;4961:93;5050:3;4961:93;:::i;:::-;5079:2;5074:3;5070:12;5063:19;;4722:366;;;:::o;5094:::-;5236:3;5257:67;5321:2;5316:3;5257:67;:::i;:::-;5250:74;;5333:93;5422:3;5333:93;:::i;:::-;5451:2;5446:3;5442:12;5435:19;;5094:366;;;:::o;5466:::-;5608:3;5629:67;5693:2;5688:3;5629:67;:::i;:::-;5622:74;;5705:93;5794:3;5705:93;:::i;:::-;5823:2;5818:3;5814:12;5807:19;;5466:366;;;:::o;5838:::-;5980:3;6001:67;6065:2;6060:3;6001:67;:::i;:::-;5994:74;;6077:93;6166:3;6077:93;:::i;:::-;6195:2;6190:3;6186:12;6179:19;;5838:366;;;:::o;6210:::-;6352:3;6373:67;6437:2;6432:3;6373:67;:::i;:::-;6366:74;;6449:93;6538:3;6449:93;:::i;:::-;6567:2;6562:3;6558:12;6551:19;;6210:366;;;:::o;6582:::-;6724:3;6745:67;6809:2;6804:3;6745:67;:::i;:::-;6738:74;;6821:93;6910:3;6821:93;:::i;:::-;6939:2;6934:3;6930:12;6923:19;;6582:366;;;:::o;6954:::-;7096:3;7117:67;7181:2;7176:3;7117:67;:::i;:::-;7110:74;;7193:93;7282:3;7193:93;:::i;:::-;7311:2;7306:3;7302:12;7295:19;;6954:366;;;:::o;7326:::-;7468:3;7489:67;7553:2;7548:3;7489:67;:::i;:::-;7482:74;;7565:93;7654:3;7565:93;:::i;:::-;7683:2;7678:3;7674:12;7667:19;;7326:366;;;:::o;7698:::-;7840:3;7861:67;7925:2;7920:3;7861:67;:::i;:::-;7854:74;;7937:93;8026:3;7937:93;:::i;:::-;8055:2;8050:3;8046:12;8039:19;;7698:366;;;:::o;8070:::-;8212:3;8233:67;8297:2;8292:3;8233:67;:::i;:::-;8226:74;;8309:93;8398:3;8309:93;:::i;:::-;8427:2;8422:3;8418:12;8411:19;;8070:366;;;:::o;8442:::-;8584:3;8605:67;8669:2;8664:3;8605:67;:::i;:::-;8598:74;;8681:93;8770:3;8681:93;:::i;:::-;8799:2;8794:3;8790:12;8783:19;;8442:366;;;:::o;8814:::-;8956:3;8977:67;9041:2;9036:3;8977:67;:::i;:::-;8970:74;;9053:93;9142:3;9053:93;:::i;:::-;9171:2;9166:3;9162:12;9155:19;;8814:366;;;:::o;9186:::-;9328:3;9349:67;9413:2;9408:3;9349:67;:::i;:::-;9342:74;;9425:93;9514:3;9425:93;:::i;:::-;9543:2;9538:3;9534:12;9527:19;;9186:366;;;:::o;9558:::-;9700:3;9721:67;9785:2;9780:3;9721:67;:::i;:::-;9714:74;;9797:93;9886:3;9797:93;:::i;:::-;9915:2;9910:3;9906:12;9899:19;;9558:366;;;:::o;9930:::-;10072:3;10093:67;10157:2;10152:3;10093:67;:::i;:::-;10086:74;;10169:93;10258:3;10169:93;:::i;:::-;10287:2;10282:3;10278:12;10271:19;;9930:366;;;:::o;10302:::-;10444:3;10465:67;10529:2;10524:3;10465:67;:::i;:::-;10458:74;;10541:93;10630:3;10541:93;:::i;:::-;10659:2;10654:3;10650:12;10643:19;;10302:366;;;:::o;10674:::-;10816:3;10837:67;10901:2;10896:3;10837:67;:::i;:::-;10830:74;;10913:93;11002:3;10913:93;:::i;:::-;11031:2;11026:3;11022:12;11015:19;;10674:366;;;:::o;11046:::-;11188:3;11209:67;11273:2;11268:3;11209:67;:::i;:::-;11202:74;;11285:93;11374:3;11285:93;:::i;:::-;11403:2;11398:3;11394:12;11387:19;;11046:366;;;:::o;11418:115::-;11503:23;11520:5;11503:23;:::i;:::-;11498:3;11491:36;11418:115;;:::o;11539:118::-;11626:24;11644:5;11626:24;:::i;:::-;11621:3;11614:37;11539:118;;:::o;11663:112::-;11746:22;11762:5;11746:22;:::i;:::-;11741:3;11734:35;11663:112;;:::o;11781:222::-;11874:4;11912:2;11901:9;11897:18;11889:26;;11925:71;11993:1;11982:9;11978:17;11969:6;11925:71;:::i;:::-;11781:222;;;;:::o;12009:878::-;12266:4;12304:3;12293:9;12289:19;12281:27;;12318:71;12386:1;12375:9;12371:17;12362:6;12318:71;:::i;:::-;12399:72;12467:2;12456:9;12452:18;12443:6;12399:72;:::i;:::-;12481;12549:2;12538:9;12534:18;12525:6;12481:72;:::i;:::-;12563;12631:2;12620:9;12616:18;12607:6;12563:72;:::i;:::-;12645:71;12711:3;12700:9;12696:19;12687:6;12645:71;:::i;:::-;12726;12792:3;12781:9;12777:19;12768:6;12726:71;:::i;:::-;12807:73;12875:3;12864:9;12860:19;12851:6;12807:73;:::i;:::-;12009:878;;;;;;;;;;:::o;12893:549::-;13068:4;13106:3;13095:9;13091:19;13083:27;;13120:71;13188:1;13177:9;13173:17;13164:6;13120:71;:::i;:::-;13201:72;13269:2;13258:9;13254:18;13245:6;13201:72;:::i;:::-;13283:70;13349:2;13338:9;13334:18;13325:6;13283:70;:::i;:::-;13363:72;13431:2;13420:9;13416:18;13407:6;13363:72;:::i;:::-;12893:549;;;;;;;:::o;13448:553::-;13625:4;13663:3;13652:9;13648:19;13640:27;;13677:71;13745:1;13734:9;13730:17;13721:6;13677:71;:::i;:::-;13758:72;13826:2;13815:9;13811:18;13802:6;13758:72;:::i;:::-;13840;13908:2;13897:9;13893:18;13884:6;13840:72;:::i;:::-;13922;13990:2;13979:9;13975:18;13966:6;13922:72;:::i;:::-;13448:553;;;;;;;:::o;14007:545::-;14180:4;14218:3;14207:9;14203:19;14195:27;;14232:71;14300:1;14289:9;14285:17;14276:6;14232:71;:::i;:::-;14313:72;14381:2;14370:9;14366:18;14357:6;14313:72;:::i;:::-;14395:68;14459:2;14448:9;14444:18;14435:6;14395:68;:::i;:::-;14473:72;14541:2;14530:9;14526:18;14517:6;14473:72;:::i;:::-;14007:545;;;;;;;:::o;14558:430::-;14701:4;14739:2;14728:9;14724:18;14716:26;;14752:71;14820:1;14809:9;14805:17;14796:6;14752:71;:::i;:::-;14833:66;14895:2;14884:9;14880:18;14871:6;14833:66;:::i;:::-;14909:72;14977:2;14966:9;14962:18;14953:6;14909:72;:::i;:::-;14558:430;;;;;;:::o;14994:442::-;15143:4;15181:2;15170:9;15166:18;15158:26;;15194:71;15262:1;15251:9;15247:17;15238:6;15194:71;:::i;:::-;15275:72;15343:2;15332:9;15328:18;15319:6;15275:72;:::i;:::-;15357;15425:2;15414:9;15410:18;15401:6;15357:72;:::i;:::-;14994:442;;;;;;:::o;15442:210::-;15529:4;15567:2;15556:9;15552:18;15544:26;;15580:65;15642:1;15631:9;15627:17;15618:6;15580:65;:::i;:::-;15442:210;;;;:::o;15658:313::-;15771:4;15809:2;15798:9;15794:18;15786:26;;15858:9;15852:4;15848:20;15844:1;15833:9;15829:17;15822:47;15886:78;15959:4;15950:6;15886:78;:::i;:::-;15878:86;;15658:313;;;;:::o;15977:419::-;16143:4;16181:2;16170:9;16166:18;16158:26;;16230:9;16224:4;16220:20;16216:1;16205:9;16201:17;16194:47;16258:131;16384:4;16258:131;:::i;:::-;16250:139;;15977:419;;;:::o;16402:::-;16568:4;16606:2;16595:9;16591:18;16583:26;;16655:9;16649:4;16645:20;16641:1;16630:9;16626:17;16619:47;16683:131;16809:4;16683:131;:::i;:::-;16675:139;;16402:419;;;:::o;16827:::-;16993:4;17031:2;17020:9;17016:18;17008:26;;17080:9;17074:4;17070:20;17066:1;17055:9;17051:17;17044:47;17108:131;17234:4;17108:131;:::i;:::-;17100:139;;16827:419;;;:::o;17252:::-;17418:4;17456:2;17445:9;17441:18;17433:26;;17505:9;17499:4;17495:20;17491:1;17480:9;17476:17;17469:47;17533:131;17659:4;17533:131;:::i;:::-;17525:139;;17252:419;;;:::o;17677:::-;17843:4;17881:2;17870:9;17866:18;17858:26;;17930:9;17924:4;17920:20;17916:1;17905:9;17901:17;17894:47;17958:131;18084:4;17958:131;:::i;:::-;17950:139;;17677:419;;;:::o;18102:::-;18268:4;18306:2;18295:9;18291:18;18283:26;;18355:9;18349:4;18345:20;18341:1;18330:9;18326:17;18319:47;18383:131;18509:4;18383:131;:::i;:::-;18375:139;;18102:419;;;:::o;18527:::-;18693:4;18731:2;18720:9;18716:18;18708:26;;18780:9;18774:4;18770:20;18766:1;18755:9;18751:17;18744:47;18808:131;18934:4;18808:131;:::i;:::-;18800:139;;18527:419;;;:::o;18952:::-;19118:4;19156:2;19145:9;19141:18;19133:26;;19205:9;19199:4;19195:20;19191:1;19180:9;19176:17;19169:47;19233:131;19359:4;19233:131;:::i;:::-;19225:139;;18952:419;;;:::o;19377:::-;19543:4;19581:2;19570:9;19566:18;19558:26;;19630:9;19624:4;19620:20;19616:1;19605:9;19601:17;19594:47;19658:131;19784:4;19658:131;:::i;:::-;19650:139;;19377:419;;;:::o;19802:::-;19968:4;20006:2;19995:9;19991:18;19983:26;;20055:9;20049:4;20045:20;20041:1;20030:9;20026:17;20019:47;20083:131;20209:4;20083:131;:::i;:::-;20075:139;;19802:419;;;:::o;20227:::-;20393:4;20431:2;20420:9;20416:18;20408:26;;20480:9;20474:4;20470:20;20466:1;20455:9;20451:17;20444:47;20508:131;20634:4;20508:131;:::i;:::-;20500:139;;20227:419;;;:::o;20652:::-;20818:4;20856:2;20845:9;20841:18;20833:26;;20905:9;20899:4;20895:20;20891:1;20880:9;20876:17;20869:47;20933:131;21059:4;20933:131;:::i;:::-;20925:139;;20652:419;;;:::o;21077:::-;21243:4;21281:2;21270:9;21266:18;21258:26;;21330:9;21324:4;21320:20;21316:1;21305:9;21301:17;21294:47;21358:131;21484:4;21358:131;:::i;:::-;21350:139;;21077:419;;;:::o;21502:::-;21668:4;21706:2;21695:9;21691:18;21683:26;;21755:9;21749:4;21745:20;21741:1;21730:9;21726:17;21719:47;21783:131;21909:4;21783:131;:::i;:::-;21775:139;;21502:419;;;:::o;21927:::-;22093:4;22131:2;22120:9;22116:18;22108:26;;22180:9;22174:4;22170:20;22166:1;22155:9;22151:17;22144:47;22208:131;22334:4;22208:131;:::i;:::-;22200:139;;21927:419;;;:::o;22352:::-;22518:4;22556:2;22545:9;22541:18;22533:26;;22605:9;22599:4;22595:20;22591:1;22580:9;22576:17;22569:47;22633:131;22759:4;22633:131;:::i;:::-;22625:139;;22352:419;;;:::o;22777:::-;22943:4;22981:2;22970:9;22966:18;22958:26;;23030:9;23024:4;23020:20;23016:1;23005:9;23001:17;22994:47;23058:131;23184:4;23058:131;:::i;:::-;23050:139;;22777:419;;;:::o;23202:::-;23368:4;23406:2;23395:9;23391:18;23383:26;;23455:9;23449:4;23445:20;23441:1;23430:9;23426:17;23419:47;23483:131;23609:4;23483:131;:::i;:::-;23475:139;;23202:419;;;:::o;23627:218::-;23718:4;23756:2;23745:9;23741:18;23733:26;;23769:69;23835:1;23824:9;23820:17;23811:6;23769:69;:::i;:::-;23627:218;;;;:::o;23851:222::-;23944:4;23982:2;23971:9;23967:18;23959:26;;23995:71;24063:1;24052:9;24048:17;24039:6;23995:71;:::i;:::-;23851:222;;;;:::o;24079:214::-;24168:4;24206:2;24195:9;24191:18;24183:26;;24219:67;24283:1;24272:9;24268:17;24259:6;24219:67;:::i;:::-;24079:214;;;;:::o;24380:99::-;24432:6;24466:5;24460:12;24450:22;;24380:99;;;:::o;24485:169::-;24569:11;24603:6;24598:3;24591:19;24643:4;24638:3;24634:14;24619:29;;24485:169;;;;:::o;24660:305::-;24700:3;24719:20;24737:1;24719:20;:::i;:::-;24714:25;;24753:20;24771:1;24753:20;:::i;:::-;24748:25;;24907:1;24839:66;24835:74;24832:1;24829:81;24826:107;;;24913:18;;:::i;:::-;24826:107;24957:1;24954;24950:9;24943:16;;24660:305;;;;:::o;24971:191::-;25011:4;25031:20;25049:1;25031:20;:::i;:::-;25026:25;;25065:20;25083:1;25065:20;:::i;:::-;25060:25;;25104:1;25101;25098:8;25095:34;;;25109:18;;:::i;:::-;25095:34;25154:1;25151;25147:9;25139:17;;24971:191;;;;:::o;25168:96::-;25205:7;25234:24;25252:5;25234:24;:::i;:::-;25223:35;;25168:96;;;:::o;25270:90::-;25304:7;25347:5;25340:13;25333:21;25322:32;;25270:90;;;:::o;25366:89::-;25402:7;25442:6;25435:5;25431:18;25420:29;;25366:89;;;:::o;25461:126::-;25498:7;25538:42;25531:5;25527:54;25516:65;;25461:126;;;:::o;25593:77::-;25630:7;25659:5;25648:16;;25593:77;;;:::o;25676:86::-;25711:7;25751:4;25744:5;25740:16;25729:27;;25676:86;;;:::o;25768:307::-;25836:1;25846:113;25860:6;25857:1;25854:13;25846:113;;;25945:1;25940:3;25936:11;25930:18;25926:1;25921:3;25917:11;25910:39;25882:2;25879:1;25875:10;25870:15;;25846:113;;;25977:6;25974:1;25971:13;25968:101;;;26057:1;26048:6;26043:3;26039:16;26032:27;25968:101;25817:258;25768:307;;;:::o;26081:320::-;26125:6;26162:1;26156:4;26152:12;26142:22;;26209:1;26203:4;26199:12;26230:18;26220:81;;26286:4;26278:6;26274:17;26264:27;;26220:81;26348:2;26340:6;26337:14;26317:18;26314:38;26311:84;;;26367:18;;:::i;:::-;26311:84;26132:269;26081:320;;;:::o;26407:180::-;26455:77;26452:1;26445:88;26552:4;26549:1;26542:15;26576:4;26573:1;26566:15;26593:180;26641:77;26638:1;26631:88;26738:4;26735:1;26728:15;26762:4;26759:1;26752:15;26902:117;27011:1;27008;27001:12;27025:102;27066:6;27117:2;27113:7;27108:2;27101:5;27097:14;27093:28;27083:38;;27025:102;;;:::o;27133:222::-;27273:34;27269:1;27261:6;27257:14;27250:58;27342:5;27337:2;27329:6;27325:15;27318:30;27133:222;:::o;27361:221::-;27501:34;27497:1;27489:6;27485:14;27478:58;27570:4;27565:2;27557:6;27553:15;27546:29;27361:221;:::o;27588:180::-;27728:32;27724:1;27716:6;27712:14;27705:56;27588:180;:::o;27774:221::-;27914:34;27910:1;27902:6;27898:14;27891:58;27983:4;27978:2;27970:6;27966:15;27959:29;27774:221;:::o;28001:168::-;28141:20;28137:1;28129:6;28125:14;28118:44;28001:168;:::o;28175:160::-;28315:12;28311:1;28303:6;28299:14;28292:36;28175:160;:::o;28341:225::-;28481:34;28477:1;28469:6;28465:14;28458:58;28550:8;28545:2;28537:6;28533:15;28526:33;28341:225;:::o;28572:172::-;28712:24;28708:1;28700:6;28696:14;28689:48;28572:172;:::o;28750:179::-;28890:31;28886:1;28878:6;28874:14;28867:55;28750:179;:::o;28935:227::-;29075:34;29071:1;29063:6;29059:14;29052:58;29144:10;29139:2;29131:6;29127:15;29120:35;28935:227;:::o;29168:180::-;29308:32;29304:1;29296:6;29292:14;29285:56;29168:180;:::o;29354:165::-;29494:17;29490:1;29482:6;29478:14;29471:41;29354:165;:::o;29525:220::-;29665:34;29661:1;29653:6;29649:14;29642:58;29734:3;29729:2;29721:6;29717:15;29710:28;29525:220;:::o;29751:224::-;29891:34;29887:1;29879:6;29875:14;29868:58;29960:7;29955:2;29947:6;29943:15;29936:32;29751:224;:::o;29981:223::-;30121:34;30117:1;30109:6;30105:14;30098:58;30190:6;30185:2;30177:6;30173:15;30166:31;29981:223;:::o;30210:167::-;30350:19;30346:1;30338:6;30334:14;30327:43;30210:167;:::o;30383:224::-;30523:34;30519:1;30511:6;30507:14;30500:58;30592:7;30587:2;30579:6;30575:15;30568:32;30383:224;:::o;30613:181::-;30753:33;30749:1;30741:6;30737:14;30730:57;30613:181;:::o;30800:122::-;30873:24;30891:5;30873:24;:::i;:::-;30866:5;30863:35;30853:63;;30912:1;30909;30902:12;30853:63;30800:122;:::o;30928:116::-;30998:21;31013:5;30998:21;:::i;:::-;30991:5;30988:32;30978:60;;31034:1;31031;31024:12;30978:60;30928:116;:::o;31050:120::-;31122:23;31139:5;31122:23;:::i;:::-;31115:5;31112:34;31102:62;;31160:1;31157;31150:12;31102:62;31050:120;:::o;31176:122::-;31249:24;31267:5;31249:24;:::i;:::-;31242:5;31239:35;31229:63;;31288:1;31285;31278:12;31229:63;31176:122;:::o;31304:118::-;31375:22;31391:5;31375:22;:::i;:::-;31368:5;31365:33;31355:61;;31412:1;31409;31402:12;31355:61;31304:118;:::o

Swarm Source

ipfs://1f10aa16e3ece32a8bcbcb18a5f01a7f5a1cd439d68647f5c97035ce3b2480b0
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.