ETH Price: $3,046.35 (+0.75%)
Gas: 3 Gwei

Token

KxWCoin (KXWCOIN)
 

Overview

Max Total Supply

10,542.573680555555555286 KXWCOIN

Holders

106

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
47.324699074074074074 KXWCOIN

Value
$0.00
0x8d261c8693749f24355e76ea5bae5f500024388b
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:
KXWCOIN

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-01-21
*/

// SPDX-License-Identifier: MIT
// File: @openzeppelin/contracts/utils/Context.sol



pragma solidity ^0.8.0;

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

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

// File: @openzeppelin/contracts/access/Ownable.sol



pragma solidity ^0.8.0;


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

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

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

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

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

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

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// File: @openzeppelin/contracts/token/ERC20/IERC20.sol


// OpenZeppelin Contracts v4.4.1 (token/ERC20/IERC20.sol)

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

// File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol


// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;


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

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

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

// File: @openzeppelin/contracts/token/ERC20/ERC20.sol


// OpenZeppelin Contracts v4.4.1 (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;




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

// File: contracts/KumoXCoin.sol



pragma solidity ^0.8.0;



interface iKumoXWorld {
    function balanceOf(address owner) external view returns (uint256);

    function ownerOf(uint256 tokenId) external view returns (address);

    function tokenOfOwnerByIndex(address owner, uint256 index)
        external
        view
        returns (uint256);
}

contract KXWCOIN is ERC20, Ownable {
    iKumoXWorld public KumoXWorld;

    uint256 public constant BASE_RATE = 1 ether;
    uint256 public START;
    bool rewardPaused = false;
    bool rewardPausedPartner = false;

    mapping(uint256 => uint256) public lastUpdate;
    mapping(address => uint256) public partners;
    mapping(bytes => bool) public usedSignatures;
    mapping(uint256 => bool) public tokenBonusClaimed;
    uint256[] tokenIds;
    uint256[] rates;

    uint256 TIME_RATE = 86400;

    constructor(address kumoXworldAddress) ERC20("KxWCoin", "KXWCOIN") {
        KumoXWorld = iKumoXWorld(kumoXworldAddress);
        START = block.timestamp;
    }

    //Write Functions

    function purchaseBurn(address user, uint256 amount) external {
        require(tx.origin == user, "Only the user can purchase and burn");
        _burn(user, amount);
    }

    function claimAllRewards(uint256[] memory tokensOfOwner) external {
        require(!rewardPaused, "Claiming reward has been paused");
        uint256 pendingRewards = getPendingRewards(tokensOfOwner);
        for (uint256 i = 0; i < tokensOfOwner.length; i++) {
            require(
                KumoXWorld.ownerOf(tokensOfOwner[i]) == msg.sender,
                "Only the owner can claim rewards"
            );
            lastUpdate[tokensOfOwner[i]] = block.timestamp;
        }
        _mint(msg.sender, pendingRewards);
    }

    function partnerMint(
        uint256 amount,
        address partner,
        bytes32 message,
        bytes memory sig
    ) external {
        require(
            partner == recoverSigner(message, sig),
            "Only partners can mint"
        );
        require(!rewardPausedPartner, "Claiming reward has been paused");
        require(partners[partner] > 0, "Partner has no tokens");
        require(usedSignatures[sig] == false, "Can't reuse signatures");
        partners[partner] -= amount;
        usedSignatures[sig] = true;
        _mint(msg.sender, amount);
    }

    function claimOgBonus(uint256 tokenId) external {
        require(tokenBonusClaimed[tokenId] == false, "Can't claim twice");
        require(
            KumoXWorld.ownerOf(tokenId) == msg.sender,
            "Only the owner can claim"
        );
        require(tokenId < 30, "This token is not part of OG residents");
        tokenBonusClaimed[tokenId] = true;
        _mint(msg.sender, 20 ether);
    }

    //Read Functions

    function getTotalClaimable(address user) external view returns (uint256) {
        uint256[] memory tokensOfOwner;
        tokensOfOwner = getTokensOfOwner(user);
        return getPendingRewards(tokensOfOwner);
    }

    function getPendingRewards(uint256[] memory tokensOfOwner)
        internal
        view
        returns (uint256)
    {
        uint256 reward = 0;
        for (uint256 i = 0; i < tokensOfOwner.length; i++) {
            reward +=
                ((BASE_RATE) *
                    (block.timestamp -
                        (
                            lastUpdate[tokensOfOwner[i]] >= START
                                ? lastUpdate[tokensOfOwner[i]]
                                : START
                        ))) /
                TIME_RATE;
        }
        return reward;
    }

    function getTokensOfOwner(address owner)
        public
        view
        returns (uint256[] memory)
    {
        uint256 tokenCount = KumoXWorld.balanceOf(owner);
        uint256[] memory tokenIdsHere = new uint256[](tokenCount);
        for (uint256 i = 0; i < tokenCount; i++) {
            tokenIdsHere[i] = KumoXWorld.tokenOfOwnerByIndex(owner, i);
        }
        return tokenIdsHere;
    }

    //Admin Functions

    function allocatePartner(address partnerAddress, uint256 amount)
        external
        onlyOwner
    {
        partners[partnerAddress] = amount;
    }

    function toggleReward() public onlyOwner {
        rewardPaused = !rewardPaused;
    }

    //Create pause function for partners.
    function toggleRewardPartner() public onlyOwner {
        rewardPausedPartner = !rewardPausedPartner;
    }

    //Verification

    function recoverSigner(bytes32 message, bytes memory sig)
        public
        pure
        returns (address)
    {
        uint8 v;
        bytes32 r;
        bytes32 s;
        (v, r, s) = splitSignature(sig);
        return ecrecover(message, v, r, s);
    }

    function splitSignature(bytes memory sig)
        public
        pure
        returns (
            uint8,
            bytes32,
            bytes32
        )
    {
        require(sig.length == 65);

        bytes32 r;
        bytes32 s;
        uint8 v;
        assembly {
            // first 32 bytes, after the length prefix
            r := mload(add(sig, 32))
            // second 32 bytes
            s := mload(add(sig, 64))
            // final byte (first byte of the next 32 bytes)
            v := byte(0, mload(add(sig, 96)))
        }
        return (v, r, s);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"kumoXworldAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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"},{"inputs":[],"name":"BASE_RATE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"KumoXWorld","outputs":[{"internalType":"contract iKumoXWorld","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"START","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"partnerAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"allocatePartner","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":"tokensOfOwner","type":"uint256[]"}],"name":"claimAllRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"claimOgBonus","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":[{"internalType":"address","name":"owner","type":"address"}],"name":"getTokensOfOwner","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getTotalClaimable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"","type":"uint256"}],"name":"lastUpdate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"partner","type":"address"},{"internalType":"bytes32","name":"message","type":"bytes32"},{"internalType":"bytes","name":"sig","type":"bytes"}],"name":"partnerMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"partners","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"purchaseBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"message","type":"bytes32"},{"internalType":"bytes","name":"sig","type":"bytes"}],"name":"recoverSigner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"sig","type":"bytes"}],"name":"splitSignature","outputs":[{"internalType":"uint8","name":"","type":"uint8"},{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toggleReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleRewardPartner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenBonusClaimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"usedSignatures","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]

60806040526000600860006101000a81548160ff0219169083151502179055506000600860016101000a81548160ff02191690831515021790555062015180600f553480156200004e57600080fd5b5060405162003d9738038062003d97833981810160405281019062000074919062000318565b6040518060400160405280600781526020017f4b7857436f696e000000000000000000000000000000000000000000000000008152506040518060400160405280600781526020017f4b5857434f494e000000000000000000000000000000000000000000000000008152508160039080519060200190620000f892919062000251565b5080600490805190602001906200011192919062000251565b50505062000134620001286200018360201b60201c565b6200018b60201b60201c565b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426007819055505062000402565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280546200025f906200037e565b90600052602060002090601f016020900481019282620002835760008555620002cf565b82601f106200029e57805160ff1916838001178555620002cf565b82800160010185558215620002cf579182015b82811115620002ce578251825591602001919060010190620002b1565b5b509050620002de9190620002e2565b5090565b5b80821115620002fd576000816000905550600101620002e3565b5090565b6000815190506200031281620003e8565b92915050565b600060208284031215620003315762000330620003e3565b5b6000620003418482850162000301565b91505092915050565b600062000357826200035e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600060028204905060018216806200039757607f821691505b60208210811415620003ae57620003ad620003b4565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b620003f3816200034a565b8114620003ff57600080fd5b50565b61398580620004126000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c80638da5cb5b1161010f578063a9059cbb116100a2578063e3ab164311610071578063e3ab1643146105e5578063e949580e14610615578063f2fde38b14610645578063f55d890f14610661576101f0565b8063a9059cbb1461055d578063ac8724cf1461058d578063ba9a061a14610597578063dd62ed3e146105b5576101f0565b80639ee99b68116100de5780639ee99b68146104c3578063a2beb510146104df578063a457c2d7146104fb578063a7bb58031461052b576101f0565b80638da5cb5b1461042757806395c336521461044557806395d89b411461047557806397aba7f914610493576101f0565b8063313ce567116101875780635de6dc55116101565780635de6dc55146103a157806370a08231146103d1578063715018a614610401578063763b04731461040b576101f0565b8063313ce56714610317578063395093511461033557806341910f90146103655780635984d27814610383576101f0565b806318160ddd116101c357806318160ddd1461028f57806323b872dd146102ad578063267e8ab6146102dd57806328493ee91461030d576101f0565b806306fdde03146101f5578063095ea7b3146102135780630ae420d5146102435780630bc5dec41461025f575b600080fd5b6101fd61067d565b60405161020a9190612c1c565b60405180910390f35b61022d600480360381019061022891906124f1565b61070f565b60405161023a9190612ba1565b60405180910390f35b61025d60048036038101906102589190612679565b61072d565b005b6102796004803603810190610274919061261f565b610985565b6040516102869190612ede565b60405180910390f35b61029761099d565b6040516102a49190612ede565b60405180910390f35b6102c760048036038101906102c2919061249e565b6109a7565b6040516102d49190612ba1565b60405180910390f35b6102f760048036038101906102f29190612404565b610a9f565b6040516103049190612ede565b60405180910390f35b610315610abf565b005b61031f610b67565b60405161032c9190612ef9565b60405180910390f35b61034f600480360381019061034a91906124f1565b610b70565b60405161035c9190612ba1565b60405180910390f35b61036d610c1c565b60405161037a9190612ede565b60405180910390f35b61038b610c28565b6040516103989190612c01565b60405180910390f35b6103bb60048036038101906103b69190612404565b610c4e565b6040516103c89190612b7f565b60405180910390f35b6103eb60048036038101906103e69190612404565b610e41565b6040516103f89190612ede565b60405180910390f35b610409610e89565b005b6104256004803603810190610420919061261f565b610f11565b005b61042f611115565b60405161043c9190612b3b565b60405180910390f35b61045f600480360381019061045a9190612404565b61113f565b60405161046c9190612ede565b60405180910390f35b61047d611157565b60405161048a9190612c1c565b60405180910390f35b6104ad60048036038101906104a8919061257a565b6111e9565b6040516104ba9190612b3b565b60405180910390f35b6104dd60048036038101906104d891906124f1565b61125e565b005b6104f960048036038101906104f49190612531565b611322565b005b610515600480360381019061051091906124f1565b611511565b6040516105229190612ba1565b60405180910390f35b610545600480360381019061054091906125d6565b6115fc565b60405161055493929190612f14565b60405180910390f35b610577600480360381019061057291906124f1565b61163f565b6040516105849190612ba1565b60405180910390f35b61059561165d565b005b61059f611705565b6040516105ac9190612ede565b60405180910390f35b6105cf60048036038101906105ca919061245e565b61170b565b6040516105dc9190612ede565b60405180910390f35b6105ff60048036038101906105fa919061261f565b611792565b60405161060c9190612ba1565b60405180910390f35b61062f600480360381019061062a91906125d6565b6117b2565b60405161063c9190612ba1565b60405180910390f35b61065f600480360381019061065a9190612404565b6117e8565b005b61067b600480360381019061067691906124f1565b6118e0565b005b60606003805461068c90613224565b80601f01602080910402602001604051908101604052809291908181526020018280546106b890613224565b80156107055780601f106106da57610100808354040283529160200191610705565b820191906000526020600020905b8154815290600101906020018083116106e857829003601f168201915b5050505050905090565b600061072361071c61195c565b8484611964565b6001905092915050565b61073782826111e9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146107a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079b90612cfe565b60405180910390fd5b600860019054906101000a900460ff16156107f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107eb90612d5e565b60405180910390fd5b6000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086d90612d1e565b60405180910390fd5b60001515600b8260405161088a9190612b24565b908152602001604051809103902060009054906101000a900460ff161515146108e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108df90612e3e565b60405180910390fd5b83600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109379190613119565b925050819055506001600b826040516109509190612b24565b908152602001604051809103902060006101000a81548160ff02191690831515021790555061097f3385611b2f565b50505050565b60096020528060005260406000206000915090505481565b6000600254905090565b60006109b4848484611c8f565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109ff61195c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7690612d7e565b60405180910390fd5b610a9385610a8b61195c565b858403611964565b60019150509392505050565b60006060610aac83610c4e565b9050610ab781611f10565b915050919050565b610ac761195c565b73ffffffffffffffffffffffffffffffffffffffff16610ae5611115565b73ffffffffffffffffffffffffffffffffffffffff1614610b3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3290612d9e565b60405180910390fd5b600860019054906101000a900460ff1615600860016101000a81548160ff021916908315150217905550565b60006012905090565b6000610c12610b7d61195c565b848460016000610b8b61195c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c0d9190613038565b611964565b6001905092915050565b670de0b6b3a764000081565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401610cad9190612b3b565b60206040518083038186803b158015610cc557600080fd5b505afa158015610cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfd919061264c565b905060008167ffffffffffffffff811115610d1b57610d1a61338c565b5b604051908082528060200260200182016040528015610d495781602001602082028036833780820191505090505b50905060005b82811015610e3657600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f745c5986836040518363ffffffff1660e01b8152600401610db4929190612b56565b60206040518083038186803b158015610dcc57600080fd5b505afa158015610de0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e04919061264c565b828281518110610e1757610e1661335d565b5b6020026020010181815250508080610e2e90613287565b915050610d4f565b508092505050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e9161195c565b73ffffffffffffffffffffffffffffffffffffffff16610eaf611115565b73ffffffffffffffffffffffffffffffffffffffff1614610f05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efc90612d9e565b60405180910390fd5b610f0f6000611fe6565b565b60001515600c600083815260200190815260200160002060009054906101000a900460ff16151514610f78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6f90612dfe565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b8152600401610fea9190612ede565b60206040518083038186803b15801561100257600080fd5b505afa158015611016573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103a9190612431565b73ffffffffffffffffffffffffffffffffffffffff1614611090576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108790612d3e565b60405180910390fd5b601e81106110d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ca90612e9e565b60405180910390fd5b6001600c600083815260200190815260200160002060006101000a81548160ff021916908315150217905550611112336801158e460913d00000611b2f565b50565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a6020528060005260406000206000915090505481565b60606004805461116690613224565b80601f016020809104026020016040519081016040528092919081815260200182805461119290613224565b80156111df5780601f106111b4576101008083540402835291602001916111df565b820191906000526020600020905b8154815290600101906020018083116111c257829003601f168201915b5050505050905090565b6000806000806111f8856115fc565b809350819450829550505050600186848484604051600081526020016040526040516112279493929190612bbc565b6020604051602081039080840390855afa158015611249573d6000803e3d6000fd5b50505060206040510351935050505092915050565b61126661195c565b73ffffffffffffffffffffffffffffffffffffffff16611284611115565b73ffffffffffffffffffffffffffffffffffffffff16146112da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d190612d9e565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600860009054906101000a900460ff1615611372576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136990612d5e565b60405180910390fd5b600061137d82611f10565b905060005b8251811015611502573373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e8584815181106113f3576113f261335d565b5b60200260200101516040518263ffffffff1660e01b81526004016114179190612ede565b60206040518083038186803b15801561142f57600080fd5b505afa158015611443573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114679190612431565b73ffffffffffffffffffffffffffffffffffffffff16146114bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b490612e5e565b60405180910390fd5b42600960008584815181106114d5576114d461335d565b5b602002602001015181526020019081526020016000208190555080806114fa90613287565b915050611382565b5061150d3382611b2f565b5050565b6000806001600061152061195c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156115dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d490612e7e565b60405180910390fd5b6115f16115e861195c565b85858403611964565b600191505092915050565b6000806000604184511461160f57600080fd5b60008060006020870151925060408701519150606087015160001a90508083839550955095505050509193909250565b600061165361164c61195c565b8484611c8f565b6001905092915050565b61166561195c565b73ffffffffffffffffffffffffffffffffffffffff16611683611115565b73ffffffffffffffffffffffffffffffffffffffff16146116d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d090612d9e565b60405180910390fd5b600860009054906101000a900460ff1615600860006101000a81548160ff021916908315150217905550565b60075481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600b818051602081018201805184825260208301602085012081835280955050505050506000915054906101000a900460ff1681565b6117f061195c565b73ffffffffffffffffffffffffffffffffffffffff1661180e611115565b73ffffffffffffffffffffffffffffffffffffffff1614611864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185b90612d9e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156118d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cb90612c7e565b60405180910390fd5b6118dd81611fe6565b50565b8173ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161461194e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194590612cbe565b60405180910390fd5b61195882826120ac565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156119d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119cb90612e1e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3b90612c9e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b229190612ede565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9690612ebe565b60405180910390fd5b611bab60008383612283565b8060026000828254611bbd9190613038565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c129190613038565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c779190612ede565b60405180910390a3611c8b60008383612288565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf690612dde565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6690612c3e565b60405180910390fd5b611d7a838383612283565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611e00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df790612cde565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e939190613038565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ef79190612ede565b60405180910390a3611f0a848484612288565b50505050565b6000806000905060005b8351811015611fdc57600f5460075460096000878581518110611f4057611f3f61335d565b5b60200260200101518152602001908152602001600020541015611f6557600754611f94565b60096000868481518110611f7c57611f7b61335d565b5b60200260200101518152602001908152602001600020545b42611f9f9190613119565b670de0b6b3a7640000611fb291906130bf565b611fbc919061308e565b82611fc79190613038565b91508080611fd490613287565b915050611f1a565b5080915050919050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561211c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211390612dbe565b60405180910390fd5b61212882600083612283565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156121ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a590612c5e565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546122059190613119565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161226a9190612ede565b60405180910390a361227e83600084612288565b505050565b505050565b505050565b60006122a061229b84612f70565b612f4b565b905080838252602082019050828560208602820111156122c3576122c26133c0565b5b60005b858110156122f357816122d988826123da565b8452602084019350602083019250506001810190506122c6565b5050509392505050565b600061231061230b84612f9c565b612f4b565b90508281526020810184848401111561232c5761232b6133c5565b5b6123378482856131e2565b509392505050565b60008135905061234e8161390a565b92915050565b6000815190506123638161390a565b92915050565b600082601f83011261237e5761237d6133bb565b5b813561238e84826020860161228d565b91505092915050565b6000813590506123a681613921565b92915050565b600082601f8301126123c1576123c06133bb565b5b81356123d18482602086016122fd565b91505092915050565b6000813590506123e981613938565b92915050565b6000815190506123fe81613938565b92915050565b60006020828403121561241a576124196133cf565b5b60006124288482850161233f565b91505092915050565b600060208284031215612447576124466133cf565b5b600061245584828501612354565b91505092915050565b60008060408385031215612475576124746133cf565b5b60006124838582860161233f565b92505060206124948582860161233f565b9150509250929050565b6000806000606084860312156124b7576124b66133cf565b5b60006124c58682870161233f565b93505060206124d68682870161233f565b92505060406124e7868287016123da565b9150509250925092565b60008060408385031215612508576125076133cf565b5b60006125168582860161233f565b9250506020612527858286016123da565b9150509250929050565b600060208284031215612547576125466133cf565b5b600082013567ffffffffffffffff811115612565576125646133ca565b5b61257184828501612369565b91505092915050565b60008060408385031215612591576125906133cf565b5b600061259f85828601612397565b925050602083013567ffffffffffffffff8111156125c0576125bf6133ca565b5b6125cc858286016123ac565b9150509250929050565b6000602082840312156125ec576125eb6133cf565b5b600082013567ffffffffffffffff81111561260a576126096133ca565b5b612616848285016123ac565b91505092915050565b600060208284031215612635576126346133cf565b5b6000612643848285016123da565b91505092915050565b600060208284031215612662576126616133cf565b5b6000612670848285016123ef565b91505092915050565b60008060008060808587031215612693576126926133cf565b5b60006126a1878288016123da565b94505060206126b28782880161233f565b93505060406126c387828801612397565b925050606085013567ffffffffffffffff8111156126e4576126e36133ca565b5b6126f0878288016123ac565b91505092959194509250565b60006127088383612af7565b60208301905092915050565b61271d8161314d565b82525050565b600061272e82612fdd565b612738818561300b565b935061274383612fcd565b8060005b8381101561277457815161275b88826126fc565b975061276683612ffe565b925050600181019050612747565b5085935050505092915050565b61278a8161315f565b82525050565b6127998161316b565b82525050565b60006127aa82612fe8565b6127b4818561301c565b93506127c48185602086016131f1565b80840191505092915050565b6127d9816131ac565b82525050565b60006127ea82612ff3565b6127f48185613027565b93506128048185602086016131f1565b61280d816133d4565b840191505092915050565b6000612825602383613027565b9150612830826133e5565b604082019050919050565b6000612848602283613027565b915061285382613434565b604082019050919050565b600061286b602683613027565b915061287682613483565b604082019050919050565b600061288e602283613027565b9150612899826134d2565b604082019050919050565b60006128b1602383613027565b91506128bc82613521565b604082019050919050565b60006128d4602683613027565b91506128df82613570565b604082019050919050565b60006128f7601683613027565b9150612902826135bf565b602082019050919050565b600061291a601583613027565b9150612925826135e8565b602082019050919050565b600061293d601883613027565b915061294882613611565b602082019050919050565b6000612960601f83613027565b915061296b8261363a565b602082019050919050565b6000612983602883613027565b915061298e82613663565b604082019050919050565b60006129a6602083613027565b91506129b1826136b2565b602082019050919050565b60006129c9602183613027565b91506129d4826136db565b604082019050919050565b60006129ec602583613027565b91506129f78261372a565b604082019050919050565b6000612a0f601183613027565b9150612a1a82613779565b602082019050919050565b6000612a32602483613027565b9150612a3d826137a2565b604082019050919050565b6000612a55601683613027565b9150612a60826137f1565b602082019050919050565b6000612a78602083613027565b9150612a838261381a565b602082019050919050565b6000612a9b602583613027565b9150612aa682613843565b604082019050919050565b6000612abe602683613027565b9150612ac982613892565b604082019050919050565b6000612ae1601f83613027565b9150612aec826138e1565b602082019050919050565b612b0081613195565b82525050565b612b0f81613195565b82525050565b612b1e8161319f565b82525050565b6000612b30828461279f565b915081905092915050565b6000602082019050612b506000830184612714565b92915050565b6000604082019050612b6b6000830185612714565b612b786020830184612b06565b9392505050565b60006020820190508181036000830152612b998184612723565b905092915050565b6000602082019050612bb66000830184612781565b92915050565b6000608082019050612bd16000830187612790565b612bde6020830186612b15565b612beb6040830185612790565b612bf86060830184612790565b95945050505050565b6000602082019050612c1660008301846127d0565b92915050565b60006020820190508181036000830152612c3681846127df565b905092915050565b60006020820190508181036000830152612c5781612818565b9050919050565b60006020820190508181036000830152612c778161283b565b9050919050565b60006020820190508181036000830152612c978161285e565b9050919050565b60006020820190508181036000830152612cb781612881565b9050919050565b60006020820190508181036000830152612cd7816128a4565b9050919050565b60006020820190508181036000830152612cf7816128c7565b9050919050565b60006020820190508181036000830152612d17816128ea565b9050919050565b60006020820190508181036000830152612d378161290d565b9050919050565b60006020820190508181036000830152612d5781612930565b9050919050565b60006020820190508181036000830152612d7781612953565b9050919050565b60006020820190508181036000830152612d9781612976565b9050919050565b60006020820190508181036000830152612db781612999565b9050919050565b60006020820190508181036000830152612dd7816129bc565b9050919050565b60006020820190508181036000830152612df7816129df565b9050919050565b60006020820190508181036000830152612e1781612a02565b9050919050565b60006020820190508181036000830152612e3781612a25565b9050919050565b60006020820190508181036000830152612e5781612a48565b9050919050565b60006020820190508181036000830152612e7781612a6b565b9050919050565b60006020820190508181036000830152612e9781612a8e565b9050919050565b60006020820190508181036000830152612eb781612ab1565b9050919050565b60006020820190508181036000830152612ed781612ad4565b9050919050565b6000602082019050612ef36000830184612b06565b92915050565b6000602082019050612f0e6000830184612b15565b92915050565b6000606082019050612f296000830186612b15565b612f366020830185612790565b612f436040830184612790565b949350505050565b6000612f55612f66565b9050612f618282613256565b919050565b6000604051905090565b600067ffffffffffffffff821115612f8b57612f8a61338c565b5b602082029050602081019050919050565b600067ffffffffffffffff821115612fb757612fb661338c565b5b612fc0826133d4565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061304382613195565b915061304e83613195565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613083576130826132d0565b5b828201905092915050565b600061309982613195565b91506130a483613195565b9250826130b4576130b36132ff565b5b828204905092915050565b60006130ca82613195565b91506130d583613195565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561310e5761310d6132d0565b5b828202905092915050565b600061312482613195565b915061312f83613195565b925082821015613142576131416132d0565b5b828203905092915050565b600061315882613175565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006131b7826131be565b9050919050565b60006131c9826131d0565b9050919050565b60006131db82613175565b9050919050565b82818337600083830152505050565b60005b8381101561320f5780820151818401526020810190506131f4565b8381111561321e576000848401525b50505050565b6000600282049050600182168061323c57607f821691505b602082108114156132505761324f61332e565b5b50919050565b61325f826133d4565b810181811067ffffffffffffffff8211171561327e5761327d61338c565b5b80604052505050565b600061329282613195565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156132c5576132c46132d0565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c792074686520757365722063616e20707572636861736520616e64206260008201527f75726e0000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c7920706172746e6572732063616e206d696e7400000000000000000000600082015250565b7f506172746e657220686173206e6f20746f6b656e730000000000000000000000600082015250565b7f4f6e6c7920746865206f776e65722063616e20636c61696d0000000000000000600082015250565b7f436c61696d696e672072657761726420686173206265656e2070617573656400600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f43616e277420636c61696d207477696365000000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f43616e2774207265757365207369676e61747572657300000000000000000000600082015250565b7f4f6e6c7920746865206f776e65722063616e20636c61696d2072657761726473600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f5468697320746f6b656e206973206e6f742070617274206f66204f472072657360008201527f6964656e74730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6139138161314d565b811461391e57600080fd5b50565b61392a8161316b565b811461393557600080fd5b50565b61394181613195565b811461394c57600080fd5b5056fea26469706673582212207deff6e6f1c2a76da0cada819610939f6d01059a823381412dbb5ccd8a016cf164736f6c634300080700330000000000000000000000000a098221bb295704ac70f60def959828f935ac4e

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101f05760003560e01c80638da5cb5b1161010f578063a9059cbb116100a2578063e3ab164311610071578063e3ab1643146105e5578063e949580e14610615578063f2fde38b14610645578063f55d890f14610661576101f0565b8063a9059cbb1461055d578063ac8724cf1461058d578063ba9a061a14610597578063dd62ed3e146105b5576101f0565b80639ee99b68116100de5780639ee99b68146104c3578063a2beb510146104df578063a457c2d7146104fb578063a7bb58031461052b576101f0565b80638da5cb5b1461042757806395c336521461044557806395d89b411461047557806397aba7f914610493576101f0565b8063313ce567116101875780635de6dc55116101565780635de6dc55146103a157806370a08231146103d1578063715018a614610401578063763b04731461040b576101f0565b8063313ce56714610317578063395093511461033557806341910f90146103655780635984d27814610383576101f0565b806318160ddd116101c357806318160ddd1461028f57806323b872dd146102ad578063267e8ab6146102dd57806328493ee91461030d576101f0565b806306fdde03146101f5578063095ea7b3146102135780630ae420d5146102435780630bc5dec41461025f575b600080fd5b6101fd61067d565b60405161020a9190612c1c565b60405180910390f35b61022d600480360381019061022891906124f1565b61070f565b60405161023a9190612ba1565b60405180910390f35b61025d60048036038101906102589190612679565b61072d565b005b6102796004803603810190610274919061261f565b610985565b6040516102869190612ede565b60405180910390f35b61029761099d565b6040516102a49190612ede565b60405180910390f35b6102c760048036038101906102c2919061249e565b6109a7565b6040516102d49190612ba1565b60405180910390f35b6102f760048036038101906102f29190612404565b610a9f565b6040516103049190612ede565b60405180910390f35b610315610abf565b005b61031f610b67565b60405161032c9190612ef9565b60405180910390f35b61034f600480360381019061034a91906124f1565b610b70565b60405161035c9190612ba1565b60405180910390f35b61036d610c1c565b60405161037a9190612ede565b60405180910390f35b61038b610c28565b6040516103989190612c01565b60405180910390f35b6103bb60048036038101906103b69190612404565b610c4e565b6040516103c89190612b7f565b60405180910390f35b6103eb60048036038101906103e69190612404565b610e41565b6040516103f89190612ede565b60405180910390f35b610409610e89565b005b6104256004803603810190610420919061261f565b610f11565b005b61042f611115565b60405161043c9190612b3b565b60405180910390f35b61045f600480360381019061045a9190612404565b61113f565b60405161046c9190612ede565b60405180910390f35b61047d611157565b60405161048a9190612c1c565b60405180910390f35b6104ad60048036038101906104a8919061257a565b6111e9565b6040516104ba9190612b3b565b60405180910390f35b6104dd60048036038101906104d891906124f1565b61125e565b005b6104f960048036038101906104f49190612531565b611322565b005b610515600480360381019061051091906124f1565b611511565b6040516105229190612ba1565b60405180910390f35b610545600480360381019061054091906125d6565b6115fc565b60405161055493929190612f14565b60405180910390f35b610577600480360381019061057291906124f1565b61163f565b6040516105849190612ba1565b60405180910390f35b61059561165d565b005b61059f611705565b6040516105ac9190612ede565b60405180910390f35b6105cf60048036038101906105ca919061245e565b61170b565b6040516105dc9190612ede565b60405180910390f35b6105ff60048036038101906105fa919061261f565b611792565b60405161060c9190612ba1565b60405180910390f35b61062f600480360381019061062a91906125d6565b6117b2565b60405161063c9190612ba1565b60405180910390f35b61065f600480360381019061065a9190612404565b6117e8565b005b61067b600480360381019061067691906124f1565b6118e0565b005b60606003805461068c90613224565b80601f01602080910402602001604051908101604052809291908181526020018280546106b890613224565b80156107055780601f106106da57610100808354040283529160200191610705565b820191906000526020600020905b8154815290600101906020018083116106e857829003601f168201915b5050505050905090565b600061072361071c61195c565b8484611964565b6001905092915050565b61073782826111e9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146107a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079b90612cfe565b60405180910390fd5b600860019054906101000a900460ff16156107f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107eb90612d5e565b60405180910390fd5b6000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086d90612d1e565b60405180910390fd5b60001515600b8260405161088a9190612b24565b908152602001604051809103902060009054906101000a900460ff161515146108e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108df90612e3e565b60405180910390fd5b83600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109379190613119565b925050819055506001600b826040516109509190612b24565b908152602001604051809103902060006101000a81548160ff02191690831515021790555061097f3385611b2f565b50505050565b60096020528060005260406000206000915090505481565b6000600254905090565b60006109b4848484611c8f565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109ff61195c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7690612d7e565b60405180910390fd5b610a9385610a8b61195c565b858403611964565b60019150509392505050565b60006060610aac83610c4e565b9050610ab781611f10565b915050919050565b610ac761195c565b73ffffffffffffffffffffffffffffffffffffffff16610ae5611115565b73ffffffffffffffffffffffffffffffffffffffff1614610b3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3290612d9e565b60405180910390fd5b600860019054906101000a900460ff1615600860016101000a81548160ff021916908315150217905550565b60006012905090565b6000610c12610b7d61195c565b848460016000610b8b61195c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c0d9190613038565b611964565b6001905092915050565b670de0b6b3a764000081565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401610cad9190612b3b565b60206040518083038186803b158015610cc557600080fd5b505afa158015610cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfd919061264c565b905060008167ffffffffffffffff811115610d1b57610d1a61338c565b5b604051908082528060200260200182016040528015610d495781602001602082028036833780820191505090505b50905060005b82811015610e3657600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f745c5986836040518363ffffffff1660e01b8152600401610db4929190612b56565b60206040518083038186803b158015610dcc57600080fd5b505afa158015610de0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e04919061264c565b828281518110610e1757610e1661335d565b5b6020026020010181815250508080610e2e90613287565b915050610d4f565b508092505050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e9161195c565b73ffffffffffffffffffffffffffffffffffffffff16610eaf611115565b73ffffffffffffffffffffffffffffffffffffffff1614610f05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efc90612d9e565b60405180910390fd5b610f0f6000611fe6565b565b60001515600c600083815260200190815260200160002060009054906101000a900460ff16151514610f78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6f90612dfe565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b8152600401610fea9190612ede565b60206040518083038186803b15801561100257600080fd5b505afa158015611016573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103a9190612431565b73ffffffffffffffffffffffffffffffffffffffff1614611090576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108790612d3e565b60405180910390fd5b601e81106110d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ca90612e9e565b60405180910390fd5b6001600c600083815260200190815260200160002060006101000a81548160ff021916908315150217905550611112336801158e460913d00000611b2f565b50565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a6020528060005260406000206000915090505481565b60606004805461116690613224565b80601f016020809104026020016040519081016040528092919081815260200182805461119290613224565b80156111df5780601f106111b4576101008083540402835291602001916111df565b820191906000526020600020905b8154815290600101906020018083116111c257829003601f168201915b5050505050905090565b6000806000806111f8856115fc565b809350819450829550505050600186848484604051600081526020016040526040516112279493929190612bbc565b6020604051602081039080840390855afa158015611249573d6000803e3d6000fd5b50505060206040510351935050505092915050565b61126661195c565b73ffffffffffffffffffffffffffffffffffffffff16611284611115565b73ffffffffffffffffffffffffffffffffffffffff16146112da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d190612d9e565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600860009054906101000a900460ff1615611372576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136990612d5e565b60405180910390fd5b600061137d82611f10565b905060005b8251811015611502573373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e8584815181106113f3576113f261335d565b5b60200260200101516040518263ffffffff1660e01b81526004016114179190612ede565b60206040518083038186803b15801561142f57600080fd5b505afa158015611443573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114679190612431565b73ffffffffffffffffffffffffffffffffffffffff16146114bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b490612e5e565b60405180910390fd5b42600960008584815181106114d5576114d461335d565b5b602002602001015181526020019081526020016000208190555080806114fa90613287565b915050611382565b5061150d3382611b2f565b5050565b6000806001600061152061195c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156115dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d490612e7e565b60405180910390fd5b6115f16115e861195c565b85858403611964565b600191505092915050565b6000806000604184511461160f57600080fd5b60008060006020870151925060408701519150606087015160001a90508083839550955095505050509193909250565b600061165361164c61195c565b8484611c8f565b6001905092915050565b61166561195c565b73ffffffffffffffffffffffffffffffffffffffff16611683611115565b73ffffffffffffffffffffffffffffffffffffffff16146116d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d090612d9e565b60405180910390fd5b600860009054906101000a900460ff1615600860006101000a81548160ff021916908315150217905550565b60075481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600b818051602081018201805184825260208301602085012081835280955050505050506000915054906101000a900460ff1681565b6117f061195c565b73ffffffffffffffffffffffffffffffffffffffff1661180e611115565b73ffffffffffffffffffffffffffffffffffffffff1614611864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185b90612d9e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156118d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cb90612c7e565b60405180910390fd5b6118dd81611fe6565b50565b8173ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161461194e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194590612cbe565b60405180910390fd5b61195882826120ac565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156119d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119cb90612e1e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3b90612c9e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b229190612ede565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9690612ebe565b60405180910390fd5b611bab60008383612283565b8060026000828254611bbd9190613038565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c129190613038565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c779190612ede565b60405180910390a3611c8b60008383612288565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf690612dde565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6690612c3e565b60405180910390fd5b611d7a838383612283565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611e00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df790612cde565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e939190613038565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ef79190612ede565b60405180910390a3611f0a848484612288565b50505050565b6000806000905060005b8351811015611fdc57600f5460075460096000878581518110611f4057611f3f61335d565b5b60200260200101518152602001908152602001600020541015611f6557600754611f94565b60096000868481518110611f7c57611f7b61335d565b5b60200260200101518152602001908152602001600020545b42611f9f9190613119565b670de0b6b3a7640000611fb291906130bf565b611fbc919061308e565b82611fc79190613038565b91508080611fd490613287565b915050611f1a565b5080915050919050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561211c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211390612dbe565b60405180910390fd5b61212882600083612283565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156121ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a590612c5e565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546122059190613119565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161226a9190612ede565b60405180910390a361227e83600084612288565b505050565b505050565b505050565b60006122a061229b84612f70565b612f4b565b905080838252602082019050828560208602820111156122c3576122c26133c0565b5b60005b858110156122f357816122d988826123da565b8452602084019350602083019250506001810190506122c6565b5050509392505050565b600061231061230b84612f9c565b612f4b565b90508281526020810184848401111561232c5761232b6133c5565b5b6123378482856131e2565b509392505050565b60008135905061234e8161390a565b92915050565b6000815190506123638161390a565b92915050565b600082601f83011261237e5761237d6133bb565b5b813561238e84826020860161228d565b91505092915050565b6000813590506123a681613921565b92915050565b600082601f8301126123c1576123c06133bb565b5b81356123d18482602086016122fd565b91505092915050565b6000813590506123e981613938565b92915050565b6000815190506123fe81613938565b92915050565b60006020828403121561241a576124196133cf565b5b60006124288482850161233f565b91505092915050565b600060208284031215612447576124466133cf565b5b600061245584828501612354565b91505092915050565b60008060408385031215612475576124746133cf565b5b60006124838582860161233f565b92505060206124948582860161233f565b9150509250929050565b6000806000606084860312156124b7576124b66133cf565b5b60006124c58682870161233f565b93505060206124d68682870161233f565b92505060406124e7868287016123da565b9150509250925092565b60008060408385031215612508576125076133cf565b5b60006125168582860161233f565b9250506020612527858286016123da565b9150509250929050565b600060208284031215612547576125466133cf565b5b600082013567ffffffffffffffff811115612565576125646133ca565b5b61257184828501612369565b91505092915050565b60008060408385031215612591576125906133cf565b5b600061259f85828601612397565b925050602083013567ffffffffffffffff8111156125c0576125bf6133ca565b5b6125cc858286016123ac565b9150509250929050565b6000602082840312156125ec576125eb6133cf565b5b600082013567ffffffffffffffff81111561260a576126096133ca565b5b612616848285016123ac565b91505092915050565b600060208284031215612635576126346133cf565b5b6000612643848285016123da565b91505092915050565b600060208284031215612662576126616133cf565b5b6000612670848285016123ef565b91505092915050565b60008060008060808587031215612693576126926133cf565b5b60006126a1878288016123da565b94505060206126b28782880161233f565b93505060406126c387828801612397565b925050606085013567ffffffffffffffff8111156126e4576126e36133ca565b5b6126f0878288016123ac565b91505092959194509250565b60006127088383612af7565b60208301905092915050565b61271d8161314d565b82525050565b600061272e82612fdd565b612738818561300b565b935061274383612fcd565b8060005b8381101561277457815161275b88826126fc565b975061276683612ffe565b925050600181019050612747565b5085935050505092915050565b61278a8161315f565b82525050565b6127998161316b565b82525050565b60006127aa82612fe8565b6127b4818561301c565b93506127c48185602086016131f1565b80840191505092915050565b6127d9816131ac565b82525050565b60006127ea82612ff3565b6127f48185613027565b93506128048185602086016131f1565b61280d816133d4565b840191505092915050565b6000612825602383613027565b9150612830826133e5565b604082019050919050565b6000612848602283613027565b915061285382613434565b604082019050919050565b600061286b602683613027565b915061287682613483565b604082019050919050565b600061288e602283613027565b9150612899826134d2565b604082019050919050565b60006128b1602383613027565b91506128bc82613521565b604082019050919050565b60006128d4602683613027565b91506128df82613570565b604082019050919050565b60006128f7601683613027565b9150612902826135bf565b602082019050919050565b600061291a601583613027565b9150612925826135e8565b602082019050919050565b600061293d601883613027565b915061294882613611565b602082019050919050565b6000612960601f83613027565b915061296b8261363a565b602082019050919050565b6000612983602883613027565b915061298e82613663565b604082019050919050565b60006129a6602083613027565b91506129b1826136b2565b602082019050919050565b60006129c9602183613027565b91506129d4826136db565b604082019050919050565b60006129ec602583613027565b91506129f78261372a565b604082019050919050565b6000612a0f601183613027565b9150612a1a82613779565b602082019050919050565b6000612a32602483613027565b9150612a3d826137a2565b604082019050919050565b6000612a55601683613027565b9150612a60826137f1565b602082019050919050565b6000612a78602083613027565b9150612a838261381a565b602082019050919050565b6000612a9b602583613027565b9150612aa682613843565b604082019050919050565b6000612abe602683613027565b9150612ac982613892565b604082019050919050565b6000612ae1601f83613027565b9150612aec826138e1565b602082019050919050565b612b0081613195565b82525050565b612b0f81613195565b82525050565b612b1e8161319f565b82525050565b6000612b30828461279f565b915081905092915050565b6000602082019050612b506000830184612714565b92915050565b6000604082019050612b6b6000830185612714565b612b786020830184612b06565b9392505050565b60006020820190508181036000830152612b998184612723565b905092915050565b6000602082019050612bb66000830184612781565b92915050565b6000608082019050612bd16000830187612790565b612bde6020830186612b15565b612beb6040830185612790565b612bf86060830184612790565b95945050505050565b6000602082019050612c1660008301846127d0565b92915050565b60006020820190508181036000830152612c3681846127df565b905092915050565b60006020820190508181036000830152612c5781612818565b9050919050565b60006020820190508181036000830152612c778161283b565b9050919050565b60006020820190508181036000830152612c978161285e565b9050919050565b60006020820190508181036000830152612cb781612881565b9050919050565b60006020820190508181036000830152612cd7816128a4565b9050919050565b60006020820190508181036000830152612cf7816128c7565b9050919050565b60006020820190508181036000830152612d17816128ea565b9050919050565b60006020820190508181036000830152612d378161290d565b9050919050565b60006020820190508181036000830152612d5781612930565b9050919050565b60006020820190508181036000830152612d7781612953565b9050919050565b60006020820190508181036000830152612d9781612976565b9050919050565b60006020820190508181036000830152612db781612999565b9050919050565b60006020820190508181036000830152612dd7816129bc565b9050919050565b60006020820190508181036000830152612df7816129df565b9050919050565b60006020820190508181036000830152612e1781612a02565b9050919050565b60006020820190508181036000830152612e3781612a25565b9050919050565b60006020820190508181036000830152612e5781612a48565b9050919050565b60006020820190508181036000830152612e7781612a6b565b9050919050565b60006020820190508181036000830152612e9781612a8e565b9050919050565b60006020820190508181036000830152612eb781612ab1565b9050919050565b60006020820190508181036000830152612ed781612ad4565b9050919050565b6000602082019050612ef36000830184612b06565b92915050565b6000602082019050612f0e6000830184612b15565b92915050565b6000606082019050612f296000830186612b15565b612f366020830185612790565b612f436040830184612790565b949350505050565b6000612f55612f66565b9050612f618282613256565b919050565b6000604051905090565b600067ffffffffffffffff821115612f8b57612f8a61338c565b5b602082029050602081019050919050565b600067ffffffffffffffff821115612fb757612fb661338c565b5b612fc0826133d4565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061304382613195565b915061304e83613195565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613083576130826132d0565b5b828201905092915050565b600061309982613195565b91506130a483613195565b9250826130b4576130b36132ff565b5b828204905092915050565b60006130ca82613195565b91506130d583613195565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561310e5761310d6132d0565b5b828202905092915050565b600061312482613195565b915061312f83613195565b925082821015613142576131416132d0565b5b828203905092915050565b600061315882613175565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006131b7826131be565b9050919050565b60006131c9826131d0565b9050919050565b60006131db82613175565b9050919050565b82818337600083830152505050565b60005b8381101561320f5780820151818401526020810190506131f4565b8381111561321e576000848401525b50505050565b6000600282049050600182168061323c57607f821691505b602082108114156132505761324f61332e565b5b50919050565b61325f826133d4565b810181811067ffffffffffffffff8211171561327e5761327d61338c565b5b80604052505050565b600061329282613195565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156132c5576132c46132d0565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c792074686520757365722063616e20707572636861736520616e64206260008201527f75726e0000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c7920706172746e6572732063616e206d696e7400000000000000000000600082015250565b7f506172746e657220686173206e6f20746f6b656e730000000000000000000000600082015250565b7f4f6e6c7920746865206f776e65722063616e20636c61696d0000000000000000600082015250565b7f436c61696d696e672072657761726420686173206265656e2070617573656400600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f43616e277420636c61696d207477696365000000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f43616e2774207265757365207369676e61747572657300000000000000000000600082015250565b7f4f6e6c7920746865206f776e65722063616e20636c61696d2072657761726473600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f5468697320746f6b656e206973206e6f742070617274206f66204f472072657360008201527f6964656e74730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6139138161314d565b811461391e57600080fd5b50565b61392a8161316b565b811461393557600080fd5b50565b61394181613195565b811461394c57600080fd5b5056fea26469706673582212207deff6e6f1c2a76da0cada819610939f6d01059a823381412dbb5ccd8a016cf164736f6c63430008070033

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

0000000000000000000000000a098221bb295704ac70f60def959828f935ac4e

-----Decoded View---------------
Arg [0] : kumoXworldAddress (address): 0x0A098221bb295704AC70F60deF959828F935Ac4E

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000a098221bb295704ac70f60def959828f935ac4e


Deployed Bytecode Sourcemap

19246:5132:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8912:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11079:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20702:596;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19476:45;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10032:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11730:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21752:221;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23351:109;;;:::i;:::-;;9874:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12631:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19326:43;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19288:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22599:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10203:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2521:94;;;:::i;:::-;;21306:414;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1870:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19528:43;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9131:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23490:273;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23045:159;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20147:547;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13349:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23771:604;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;10543:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23212:88;;;:::i;:::-;;19376:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10781:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19629:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19578:44;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2770:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19964:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8912:100;8966:13;8999:5;8992:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8912:100;:::o;11079:169::-;11162:4;11179:39;11188:12;:10;:12::i;:::-;11202:7;11211:6;11179:8;:39::i;:::-;11236:4;11229:11;;11079:169;;;;:::o;20702:596::-;20887:27;20901:7;20910:3;20887:13;:27::i;:::-;20876:38;;:7;:38;;;20854:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;20984:19;;;;;;;;;;;20983:20;20975:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;21078:1;21058:8;:17;21067:7;21058:17;;;;;;;;;;;;;;;;:21;21050:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;21147:5;21124:28;;:14;21139:3;21124:19;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:28;;;21116:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;21211:6;21190:8;:17;21199:7;21190:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;21250:4;21228:14;21243:3;21228:19;;;;;;:::i;:::-;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;21265:25;21271:10;21283:6;21265:5;:25::i;:::-;20702:596;;;;:::o;19476:45::-;;;;;;;;;;;;;;;;;:::o;10032:108::-;10093:7;10120:12;;10113:19;;10032:108;:::o;11730:492::-;11870:4;11887:36;11897:6;11905:9;11916:6;11887:9;:36::i;:::-;11936:24;11963:11;:19;11975:6;11963:19;;;;;;;;;;;;;;;:33;11983:12;:10;:12::i;:::-;11963:33;;;;;;;;;;;;;;;;11936:60;;12035:6;12015:16;:26;;12007:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12122:57;12131:6;12139:12;:10;:12::i;:::-;12172:6;12153:16;:25;12122:8;:57::i;:::-;12210:4;12203:11;;;11730:492;;;;;:::o;21752:221::-;21816:7;21836:30;21893:22;21910:4;21893:16;:22::i;:::-;21877:38;;21933:32;21951:13;21933:17;:32::i;:::-;21926:39;;;21752:221;;;:::o;23351:109::-;2101:12;:10;:12::i;:::-;2090:23;;:7;:5;:7::i;:::-;:23;;;2082:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23433:19:::1;;;;;;;;;;;23432:20;23410:19;;:42;;;;;;;;;;;;;;;;;;23351:109::o:0;9874:93::-;9932:5;9957:2;9950:9;;9874:93;:::o;12631:215::-;12719:4;12736:80;12745:12;:10;:12::i;:::-;12759:7;12805:10;12768:11;:25;12780:12;:10;:12::i;:::-;12768:25;;;;;;;;;;;;;;;:34;12794:7;12768:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;12736:8;:80::i;:::-;12834:4;12827:11;;12631:215;;;;:::o;19326:43::-;19362:7;19326:43;:::o;19288:29::-;;;;;;;;;;;;;:::o;22599:413::-;22688:16;22722:18;22743:10;;;;;;;;;;;:20;;;22764:5;22743:27;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22722:48;;22781:29;22827:10;22813:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22781:57;;22854:9;22849:126;22873:10;22869:1;:14;22849:126;;;22923:10;;;;;;;;;;;:30;;;22954:5;22961:1;22923:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22905:12;22918:1;22905:15;;;;;;;;:::i;:::-;;;;;;;:58;;;;;22885:3;;;;;:::i;:::-;;;;22849:126;;;;22992:12;22985:19;;;;22599:413;;;:::o;10203:127::-;10277:7;10304:9;:18;10314:7;10304:18;;;;;;;;;;;;;;;;10297:25;;10203:127;;;:::o;2521:94::-;2101:12;:10;:12::i;:::-;2090:23;;:7;:5;:7::i;:::-;:23;;;2082:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2586:21:::1;2604:1;2586:9;:21::i;:::-;2521:94::o:0;21306:414::-;21403:5;21373:35;;:17;:26;21391:7;21373:26;;;;;;;;;;;;;;;;;;;;;:35;;;21365:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;21494:10;21463:41;;:10;;;;;;;;;;;:18;;;21482:7;21463:27;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:41;;;21441:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;21585:2;21575:7;:12;21567:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;21670:4;21641:17;:26;21659:7;21641:26;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;21685:27;21691:10;21703:8;21685:5;:27::i;:::-;21306:414;:::o;1870:87::-;1916:7;1943:6;;;;;;;;;;;1936:13;;1870:87;:::o;19528:43::-;;;;;;;;;;;;;;;;;:::o;9131:104::-;9187:13;9220:7;9213:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9131:104;:::o;23490:273::-;23596:7;23621;23639:9;23659;23691:19;23706:3;23691:14;:19::i;:::-;23679:31;;;;;;;;;;;;23728:27;23738:7;23747:1;23750;23753;23728:27;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23721:34;;;;;23490:273;;;;:::o;23045:159::-;2101:12;:10;:12::i;:::-;2090:23;;:7;:5;:7::i;:::-;:23;;;2082:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23190:6:::1;23163:8;:24;23172:14;23163:24;;;;;;;;;;;;;;;:33;;;;23045:159:::0;;:::o;20147:547::-;20233:12;;;;;;;;;;;20232:13;20224:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;20292:22;20317:32;20335:13;20317:17;:32::i;:::-;20292:57;;20365:9;20360:283;20384:13;:20;20380:1;:24;20360:283;;;20492:10;20452:50;;:10;;;;;;;;;;;:18;;;20471:13;20485:1;20471:16;;;;;;;;:::i;:::-;;;;;;;;20452:36;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:50;;;20426:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;20616:15;20585:10;:28;20596:13;20610:1;20596:16;;;;;;;;:::i;:::-;;;;;;;;20585:28;;;;;;;;;;;:46;;;;20406:3;;;;;:::i;:::-;;;;20360:283;;;;20653:33;20659:10;20671:14;20653:5;:33::i;:::-;20213:481;20147:547;:::o;13349:413::-;13442:4;13459:24;13486:11;:25;13498:12;:10;:12::i;:::-;13486:25;;;;;;;;;;;;;;;:34;13512:7;13486:34;;;;;;;;;;;;;;;;13459:61;;13559:15;13539:16;:35;;13531:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;13652:67;13661:12;:10;:12::i;:::-;13675:7;13703:15;13684:16;:34;13652:8;:67::i;:::-;13750:4;13743:11;;;13349:413;;;;:::o;23771:604::-;23875:5;23895:7;23917;23974:2;23960:3;:10;:16;23952:25;;;;;;23990:9;24010;24030:7;24148:2;24143:3;24139:12;24133:19;24128:24;;24218:2;24213:3;24209:12;24203:19;24198:24;;24325:2;24320:3;24316:12;24310:19;24307:1;24302:28;24297:33;;24359:1;24362;24365;24351:16;;;;;;;;;23771:604;;;;;:::o;10543:175::-;10629:4;10646:42;10656:12;:10;:12::i;:::-;10670:9;10681:6;10646:9;:42::i;:::-;10706:4;10699:11;;10543:175;;;;:::o;23212:88::-;2101:12;:10;:12::i;:::-;2090:23;;:7;:5;:7::i;:::-;:23;;;2082:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23280:12:::1;;;;;;;;;;;23279:13;23264:12;;:28;;;;;;;;;;;;;;;;;;23212:88::o:0;19376:20::-;;;;:::o;10781:151::-;10870:7;10897:11;:18;10909:5;10897:18;;;;;;;;;;;;;;;:27;10916:7;10897:27;;;;;;;;;;;;;;;;10890:34;;10781:151;;;;:::o;19629:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;19578:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2770:192::-;2101:12;:10;:12::i;:::-;2090:23;;:7;:5;:7::i;:::-;:23;;;2082:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2879:1:::1;2859:22;;:8;:22;;;;2851:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2935:19;2945:8;2935:9;:19::i;:::-;2770:192:::0;:::o;19964:175::-;20057:4;20044:17;;:9;:17;;;20036:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;20112:19;20118:4;20124:6;20112:5;:19::i;:::-;19964:175;;:::o;658:98::-;711:7;738:10;731:17;;658:98;:::o;17033:380::-;17186:1;17169:19;;:5;:19;;;;17161:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17267:1;17248:21;;:7;:21;;;;17240:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17351:6;17321:11;:18;17333:5;17321:18;;;;;;;;;;;;;;;:27;17340:7;17321:27;;;;;;;;;;;;;;;:36;;;;17389:7;17373:32;;17382:5;17373:32;;;17398:6;17373:32;;;;;;:::i;:::-;;;;;;;;17033:380;;;:::o;15272:399::-;15375:1;15356:21;;:7;:21;;;;15348:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;15426:49;15455:1;15459:7;15468:6;15426:20;:49::i;:::-;15504:6;15488:12;;:22;;;;;;;:::i;:::-;;;;;;;;15543:6;15521:9;:18;15531:7;15521:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;15586:7;15565:37;;15582:1;15565:37;;;15595:6;15565:37;;;;;;:::i;:::-;;;;;;;;15615:48;15643:1;15647:7;15656:6;15615:19;:48::i;:::-;15272:399;;:::o;14252:733::-;14410:1;14392:20;;:6;:20;;;;14384:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14494:1;14473:23;;:9;:23;;;;14465:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14549:47;14570:6;14578:9;14589:6;14549:20;:47::i;:::-;14609:21;14633:9;:17;14643:6;14633:17;;;;;;;;;;;;;;;;14609:41;;14686:6;14669:13;:23;;14661:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;14807:6;14791:13;:22;14771:9;:17;14781:6;14771:17;;;;;;;;;;;;;;;:42;;;;14859:6;14835:9;:20;14845:9;14835:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;14900:9;14883:35;;14892:6;14883:35;;;14911:6;14883:35;;;;;;:::i;:::-;;;;;;;;14931:46;14951:6;14959:9;14970:6;14931:19;:46::i;:::-;14373:612;14252:733;;;:::o;21981:610::-;22090:7;22115:14;22132:1;22115:18;;22149:9;22144:416;22168:13;:20;22164:1;:24;22144:416;;;22539:9;;22380:5;;22348:10;:28;22359:13;22373:1;22359:16;;;;;;;;:::i;:::-;;;;;;;;22348:28;;;;;;;;;;;;:37;;:142;;22485:5;;22348:142;;;22421:10;:28;22432:13;22446:1;22432:16;;;;;;;;:::i;:::-;;;;;;;;22421:28;;;;;;;;;;;;22348:142;22274:15;:243;;;;:::i;:::-;19362:7;22238:280;;;;:::i;:::-;22237:311;;;;:::i;:::-;22210:338;;;;;:::i;:::-;;;22190:3;;;;;:::i;:::-;;;;22144:416;;;;22577:6;22570:13;;;21981:610;;;:::o;2970:173::-;3026:16;3045:6;;;;;;;;;;;3026:25;;3071:8;3062:6;;:17;;;;;;;;;;;;;;;;;;3126:8;3095:40;;3116:8;3095:40;;;;;;;;;;;;3015:128;2970:173;:::o;16004:591::-;16107:1;16088:21;;:7;:21;;;;16080:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16160:49;16181:7;16198:1;16202:6;16160:20;:49::i;:::-;16222:22;16247:9;:18;16257:7;16247:18;;;;;;;;;;;;;;;;16222:43;;16302:6;16284:14;:24;;16276:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16421:6;16404:14;:23;16383:9;:18;16393:7;16383:18;;;;;;;;;;;;;;;:44;;;;16465:6;16449:12;;:22;;;;;;;:::i;:::-;;;;;;;;16515:1;16489:37;;16498:7;16489:37;;;16519:6;16489:37;;;;;;:::i;:::-;;;;;;;;16539:48;16559:7;16576:1;16580:6;16539:19;:48::i;:::-;16069:526;16004:591;;:::o;18013:125::-;;;;:::o;18742:124::-;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:410::-;829:5;854:65;870:48;911:6;870:48;:::i;:::-;854:65;:::i;:::-;845:74;;942:6;935:5;928:21;980:4;973:5;969:16;1018:3;1009:6;1004:3;1000:16;997:25;994:112;;;1025:79;;:::i;:::-;994:112;1115:41;1149:6;1144:3;1139;1115:41;:::i;:::-;835:327;752:410;;;;;:::o;1168:139::-;1214:5;1252:6;1239:20;1230:29;;1268:33;1295:5;1268:33;:::i;:::-;1168:139;;;;:::o;1313:143::-;1370:5;1401:6;1395:13;1386:22;;1417:33;1444:5;1417:33;:::i;:::-;1313:143;;;;:::o;1479:370::-;1550:5;1599:3;1592:4;1584:6;1580:17;1576:27;1566:122;;1607:79;;:::i;:::-;1566:122;1724:6;1711:20;1749:94;1839:3;1831:6;1824:4;1816:6;1812:17;1749:94;:::i;:::-;1740:103;;1556:293;1479:370;;;;:::o;1855:139::-;1901:5;1939:6;1926:20;1917:29;;1955:33;1982:5;1955:33;:::i;:::-;1855:139;;;;:::o;2013:338::-;2068:5;2117:3;2110:4;2102:6;2098:17;2094:27;2084:122;;2125:79;;:::i;:::-;2084:122;2242:6;2229:20;2267:78;2341:3;2333:6;2326:4;2318:6;2314:17;2267:78;:::i;:::-;2258:87;;2074:277;2013:338;;;;:::o;2357:139::-;2403:5;2441:6;2428:20;2419:29;;2457:33;2484:5;2457:33;:::i;:::-;2357:139;;;;:::o;2502:143::-;2559:5;2590:6;2584:13;2575:22;;2606:33;2633:5;2606:33;:::i;:::-;2502:143;;;;:::o;2651:329::-;2710:6;2759:2;2747:9;2738:7;2734:23;2730:32;2727:119;;;2765:79;;:::i;:::-;2727:119;2885:1;2910:53;2955:7;2946:6;2935:9;2931:22;2910:53;:::i;:::-;2900:63;;2856:117;2651:329;;;;:::o;2986:351::-;3056:6;3105:2;3093:9;3084:7;3080:23;3076:32;3073:119;;;3111:79;;:::i;:::-;3073:119;3231:1;3256:64;3312:7;3303:6;3292:9;3288:22;3256:64;:::i;:::-;3246:74;;3202:128;2986:351;;;;:::o;3343:474::-;3411:6;3419;3468:2;3456:9;3447:7;3443:23;3439:32;3436:119;;;3474:79;;:::i;:::-;3436:119;3594:1;3619:53;3664:7;3655:6;3644:9;3640:22;3619:53;:::i;:::-;3609:63;;3565:117;3721:2;3747:53;3792:7;3783:6;3772:9;3768:22;3747:53;:::i;:::-;3737:63;;3692:118;3343:474;;;;;:::o;3823:619::-;3900:6;3908;3916;3965:2;3953:9;3944:7;3940:23;3936:32;3933:119;;;3971:79;;:::i;:::-;3933:119;4091:1;4116:53;4161:7;4152:6;4141:9;4137:22;4116:53;:::i;:::-;4106:63;;4062:117;4218:2;4244:53;4289:7;4280:6;4269:9;4265:22;4244:53;:::i;:::-;4234:63;;4189:118;4346:2;4372:53;4417:7;4408:6;4397:9;4393:22;4372:53;:::i;:::-;4362:63;;4317:118;3823:619;;;;;:::o;4448:474::-;4516:6;4524;4573:2;4561:9;4552:7;4548:23;4544:32;4541:119;;;4579:79;;:::i;:::-;4541:119;4699:1;4724:53;4769:7;4760:6;4749:9;4745:22;4724:53;:::i;:::-;4714:63;;4670:117;4826:2;4852:53;4897:7;4888:6;4877:9;4873:22;4852:53;:::i;:::-;4842:63;;4797:118;4448:474;;;;;:::o;4928:539::-;5012:6;5061:2;5049:9;5040:7;5036:23;5032:32;5029:119;;;5067:79;;:::i;:::-;5029:119;5215:1;5204:9;5200:17;5187:31;5245:18;5237:6;5234:30;5231:117;;;5267:79;;:::i;:::-;5231:117;5372:78;5442:7;5433:6;5422:9;5418:22;5372:78;:::i;:::-;5362:88;;5158:302;4928:539;;;;:::o;5473:652::-;5550:6;5558;5607:2;5595:9;5586:7;5582:23;5578:32;5575:119;;;5613:79;;:::i;:::-;5575:119;5733:1;5758:53;5803:7;5794:6;5783:9;5779:22;5758:53;:::i;:::-;5748:63;;5704:117;5888:2;5877:9;5873:18;5860:32;5919:18;5911:6;5908:30;5905:117;;;5941:79;;:::i;:::-;5905:117;6046:62;6100:7;6091:6;6080:9;6076:22;6046:62;:::i;:::-;6036:72;;5831:287;5473:652;;;;;:::o;6131:507::-;6199:6;6248:2;6236:9;6227:7;6223:23;6219:32;6216:119;;;6254:79;;:::i;:::-;6216:119;6402:1;6391:9;6387:17;6374:31;6432:18;6424:6;6421:30;6418:117;;;6454:79;;:::i;:::-;6418:117;6559:62;6613:7;6604:6;6593:9;6589:22;6559:62;:::i;:::-;6549:72;;6345:286;6131:507;;;;:::o;6644:329::-;6703:6;6752:2;6740:9;6731:7;6727:23;6723:32;6720:119;;;6758:79;;:::i;:::-;6720:119;6878:1;6903:53;6948:7;6939:6;6928:9;6924:22;6903:53;:::i;:::-;6893:63;;6849:117;6644:329;;;;:::o;6979:351::-;7049:6;7098:2;7086:9;7077:7;7073:23;7069:32;7066:119;;;7104:79;;:::i;:::-;7066:119;7224:1;7249:64;7305:7;7296:6;7285:9;7281:22;7249:64;:::i;:::-;7239:74;;7195:128;6979:351;;;;:::o;7336:943::-;7431:6;7439;7447;7455;7504:3;7492:9;7483:7;7479:23;7475:33;7472:120;;;7511:79;;:::i;:::-;7472:120;7631:1;7656:53;7701:7;7692:6;7681:9;7677:22;7656:53;:::i;:::-;7646:63;;7602:117;7758:2;7784:53;7829:7;7820:6;7809:9;7805:22;7784:53;:::i;:::-;7774:63;;7729:118;7886:2;7912:53;7957:7;7948:6;7937:9;7933:22;7912:53;:::i;:::-;7902:63;;7857:118;8042:2;8031:9;8027:18;8014:32;8073:18;8065:6;8062:30;8059:117;;;8095:79;;:::i;:::-;8059:117;8200:62;8254:7;8245:6;8234:9;8230:22;8200:62;:::i;:::-;8190:72;;7985:287;7336:943;;;;;;;:::o;8285:179::-;8354:10;8375:46;8417:3;8409:6;8375:46;:::i;:::-;8453:4;8448:3;8444:14;8430:28;;8285:179;;;;:::o;8470:118::-;8557:24;8575:5;8557:24;:::i;:::-;8552:3;8545:37;8470:118;;:::o;8624:732::-;8743:3;8772:54;8820:5;8772:54;:::i;:::-;8842:86;8921:6;8916:3;8842:86;:::i;:::-;8835:93;;8952:56;9002:5;8952:56;:::i;:::-;9031:7;9062:1;9047:284;9072:6;9069:1;9066:13;9047:284;;;9148:6;9142:13;9175:63;9234:3;9219:13;9175:63;:::i;:::-;9168:70;;9261:60;9314:6;9261:60;:::i;:::-;9251:70;;9107:224;9094:1;9091;9087:9;9082:14;;9047:284;;;9051:14;9347:3;9340:10;;8748:608;;;8624:732;;;;:::o;9362:109::-;9443:21;9458:5;9443:21;:::i;:::-;9438:3;9431:34;9362:109;;:::o;9477:118::-;9564:24;9582:5;9564:24;:::i;:::-;9559:3;9552:37;9477:118;;:::o;9601:373::-;9705:3;9733:38;9765:5;9733:38;:::i;:::-;9787:88;9868:6;9863:3;9787:88;:::i;:::-;9780:95;;9884:52;9929:6;9924:3;9917:4;9910:5;9906:16;9884:52;:::i;:::-;9961:6;9956:3;9952:16;9945:23;;9709:265;9601:373;;;;:::o;9980:169::-;10086:56;10136:5;10086:56;:::i;:::-;10081:3;10074:69;9980:169;;:::o;10155:364::-;10243:3;10271:39;10304:5;10271:39;:::i;:::-;10326:71;10390:6;10385:3;10326:71;:::i;:::-;10319:78;;10406:52;10451:6;10446:3;10439:4;10432:5;10428:16;10406:52;:::i;:::-;10483:29;10505:6;10483:29;:::i;:::-;10478:3;10474:39;10467:46;;10247:272;10155:364;;;;:::o;10525:366::-;10667:3;10688:67;10752:2;10747:3;10688:67;:::i;:::-;10681:74;;10764:93;10853:3;10764:93;:::i;:::-;10882:2;10877:3;10873:12;10866:19;;10525:366;;;:::o;10897:::-;11039:3;11060:67;11124:2;11119:3;11060:67;:::i;:::-;11053:74;;11136:93;11225:3;11136:93;:::i;:::-;11254:2;11249:3;11245:12;11238:19;;10897:366;;;:::o;11269:::-;11411:3;11432:67;11496:2;11491:3;11432:67;:::i;:::-;11425:74;;11508:93;11597:3;11508:93;:::i;:::-;11626:2;11621:3;11617:12;11610:19;;11269:366;;;:::o;11641:::-;11783:3;11804:67;11868:2;11863:3;11804:67;:::i;:::-;11797:74;;11880:93;11969:3;11880:93;:::i;:::-;11998:2;11993:3;11989:12;11982:19;;11641:366;;;:::o;12013:::-;12155:3;12176:67;12240:2;12235:3;12176:67;:::i;:::-;12169:74;;12252:93;12341:3;12252:93;:::i;:::-;12370:2;12365:3;12361:12;12354:19;;12013:366;;;:::o;12385:::-;12527:3;12548:67;12612:2;12607:3;12548:67;:::i;:::-;12541:74;;12624:93;12713:3;12624:93;:::i;:::-;12742:2;12737:3;12733:12;12726:19;;12385:366;;;:::o;12757:::-;12899:3;12920:67;12984:2;12979:3;12920:67;:::i;:::-;12913:74;;12996:93;13085:3;12996:93;:::i;:::-;13114:2;13109:3;13105:12;13098:19;;12757:366;;;:::o;13129:::-;13271:3;13292:67;13356:2;13351:3;13292:67;:::i;:::-;13285:74;;13368:93;13457:3;13368:93;:::i;:::-;13486:2;13481:3;13477:12;13470:19;;13129:366;;;:::o;13501:::-;13643:3;13664:67;13728:2;13723:3;13664:67;:::i;:::-;13657:74;;13740:93;13829:3;13740:93;:::i;:::-;13858:2;13853:3;13849:12;13842:19;;13501:366;;;:::o;13873:::-;14015:3;14036:67;14100:2;14095:3;14036:67;:::i;:::-;14029:74;;14112:93;14201:3;14112:93;:::i;:::-;14230:2;14225:3;14221:12;14214:19;;13873:366;;;:::o;14245:::-;14387:3;14408:67;14472:2;14467:3;14408:67;:::i;:::-;14401:74;;14484:93;14573:3;14484:93;:::i;:::-;14602:2;14597:3;14593:12;14586:19;;14245:366;;;:::o;14617:::-;14759:3;14780:67;14844:2;14839:3;14780:67;:::i;:::-;14773:74;;14856:93;14945:3;14856:93;:::i;:::-;14974:2;14969:3;14965:12;14958:19;;14617:366;;;:::o;14989:::-;15131:3;15152:67;15216:2;15211:3;15152:67;:::i;:::-;15145:74;;15228:93;15317:3;15228:93;:::i;:::-;15346:2;15341:3;15337:12;15330:19;;14989:366;;;:::o;15361:::-;15503:3;15524:67;15588:2;15583:3;15524:67;:::i;:::-;15517:74;;15600:93;15689:3;15600:93;:::i;:::-;15718:2;15713:3;15709:12;15702:19;;15361:366;;;:::o;15733:::-;15875:3;15896:67;15960:2;15955:3;15896:67;:::i;:::-;15889:74;;15972:93;16061:3;15972:93;:::i;:::-;16090:2;16085:3;16081:12;16074:19;;15733:366;;;:::o;16105:::-;16247:3;16268:67;16332:2;16327:3;16268:67;:::i;:::-;16261:74;;16344:93;16433:3;16344:93;:::i;:::-;16462:2;16457:3;16453:12;16446:19;;16105:366;;;:::o;16477:::-;16619:3;16640:67;16704:2;16699:3;16640:67;:::i;:::-;16633:74;;16716:93;16805:3;16716:93;:::i;:::-;16834:2;16829:3;16825:12;16818:19;;16477:366;;;:::o;16849:::-;16991:3;17012:67;17076:2;17071:3;17012:67;:::i;:::-;17005:74;;17088:93;17177:3;17088:93;:::i;:::-;17206:2;17201:3;17197:12;17190:19;;16849:366;;;:::o;17221:::-;17363:3;17384:67;17448:2;17443:3;17384:67;:::i;:::-;17377:74;;17460:93;17549:3;17460:93;:::i;:::-;17578:2;17573:3;17569:12;17562:19;;17221:366;;;:::o;17593:::-;17735:3;17756:67;17820:2;17815:3;17756:67;:::i;:::-;17749:74;;17832:93;17921:3;17832:93;:::i;:::-;17950:2;17945:3;17941:12;17934:19;;17593:366;;;:::o;17965:::-;18107:3;18128:67;18192:2;18187:3;18128:67;:::i;:::-;18121:74;;18204:93;18293:3;18204:93;:::i;:::-;18322:2;18317:3;18313:12;18306:19;;17965:366;;;:::o;18337:108::-;18414:24;18432:5;18414:24;:::i;:::-;18409:3;18402:37;18337:108;;:::o;18451:118::-;18538:24;18556:5;18538:24;:::i;:::-;18533:3;18526:37;18451:118;;:::o;18575:112::-;18658:22;18674:5;18658:22;:::i;:::-;18653:3;18646:35;18575:112;;:::o;18693:271::-;18823:3;18845:93;18934:3;18925:6;18845:93;:::i;:::-;18838:100;;18955:3;18948:10;;18693:271;;;;:::o;18970:222::-;19063:4;19101:2;19090:9;19086:18;19078:26;;19114:71;19182:1;19171:9;19167:17;19158:6;19114:71;:::i;:::-;18970:222;;;;:::o;19198:332::-;19319:4;19357:2;19346:9;19342:18;19334:26;;19370:71;19438:1;19427:9;19423:17;19414:6;19370:71;:::i;:::-;19451:72;19519:2;19508:9;19504:18;19495:6;19451:72;:::i;:::-;19198:332;;;;;:::o;19536:373::-;19679:4;19717:2;19706:9;19702:18;19694:26;;19766:9;19760:4;19756:20;19752:1;19741:9;19737:17;19730:47;19794:108;19897:4;19888:6;19794:108;:::i;:::-;19786:116;;19536:373;;;;:::o;19915:210::-;20002:4;20040:2;20029:9;20025:18;20017:26;;20053:65;20115:1;20104:9;20100:17;20091:6;20053:65;:::i;:::-;19915:210;;;;:::o;20131:545::-;20304:4;20342:3;20331:9;20327:19;20319:27;;20356:71;20424:1;20413:9;20409:17;20400:6;20356:71;:::i;:::-;20437:68;20501:2;20490:9;20486:18;20477:6;20437:68;:::i;:::-;20515:72;20583:2;20572:9;20568:18;20559:6;20515:72;:::i;:::-;20597;20665:2;20654:9;20650:18;20641:6;20597:72;:::i;:::-;20131:545;;;;;;;:::o;20682:260::-;20794:4;20832:2;20821:9;20817:18;20809:26;;20845:90;20932:1;20921:9;20917:17;20908:6;20845:90;:::i;:::-;20682:260;;;;:::o;20948:313::-;21061:4;21099:2;21088:9;21084:18;21076:26;;21148:9;21142:4;21138:20;21134:1;21123:9;21119:17;21112:47;21176:78;21249:4;21240:6;21176:78;:::i;:::-;21168:86;;20948:313;;;;:::o;21267:419::-;21433:4;21471:2;21460:9;21456:18;21448:26;;21520:9;21514:4;21510:20;21506:1;21495:9;21491:17;21484:47;21548:131;21674:4;21548:131;:::i;:::-;21540:139;;21267:419;;;:::o;21692:::-;21858:4;21896:2;21885:9;21881:18;21873:26;;21945:9;21939:4;21935:20;21931:1;21920:9;21916:17;21909:47;21973:131;22099:4;21973:131;:::i;:::-;21965:139;;21692:419;;;:::o;22117:::-;22283:4;22321:2;22310:9;22306:18;22298:26;;22370:9;22364:4;22360:20;22356:1;22345:9;22341:17;22334:47;22398:131;22524:4;22398:131;:::i;:::-;22390:139;;22117:419;;;:::o;22542:::-;22708:4;22746:2;22735:9;22731:18;22723:26;;22795:9;22789:4;22785:20;22781:1;22770:9;22766:17;22759:47;22823:131;22949:4;22823:131;:::i;:::-;22815:139;;22542:419;;;:::o;22967:::-;23133:4;23171:2;23160:9;23156:18;23148:26;;23220:9;23214:4;23210:20;23206:1;23195:9;23191:17;23184:47;23248:131;23374:4;23248:131;:::i;:::-;23240:139;;22967:419;;;:::o;23392:::-;23558:4;23596:2;23585:9;23581:18;23573:26;;23645:9;23639:4;23635:20;23631:1;23620:9;23616:17;23609:47;23673:131;23799:4;23673:131;:::i;:::-;23665:139;;23392:419;;;:::o;23817:::-;23983:4;24021:2;24010:9;24006:18;23998:26;;24070:9;24064:4;24060:20;24056:1;24045:9;24041:17;24034:47;24098:131;24224:4;24098:131;:::i;:::-;24090:139;;23817:419;;;:::o;24242:::-;24408:4;24446:2;24435:9;24431:18;24423:26;;24495:9;24489:4;24485:20;24481:1;24470:9;24466:17;24459:47;24523:131;24649:4;24523:131;:::i;:::-;24515:139;;24242:419;;;:::o;24667:::-;24833:4;24871:2;24860:9;24856:18;24848:26;;24920:9;24914:4;24910:20;24906:1;24895:9;24891:17;24884:47;24948:131;25074:4;24948:131;:::i;:::-;24940:139;;24667:419;;;:::o;25092:::-;25258:4;25296:2;25285:9;25281:18;25273:26;;25345:9;25339:4;25335:20;25331:1;25320:9;25316:17;25309:47;25373:131;25499:4;25373:131;:::i;:::-;25365:139;;25092:419;;;:::o;25517:::-;25683:4;25721:2;25710:9;25706:18;25698:26;;25770:9;25764:4;25760:20;25756:1;25745:9;25741:17;25734:47;25798:131;25924:4;25798:131;:::i;:::-;25790:139;;25517:419;;;:::o;25942:::-;26108:4;26146:2;26135:9;26131:18;26123:26;;26195:9;26189:4;26185:20;26181:1;26170:9;26166:17;26159:47;26223:131;26349:4;26223:131;:::i;:::-;26215:139;;25942:419;;;:::o;26367:::-;26533:4;26571:2;26560:9;26556:18;26548:26;;26620:9;26614:4;26610:20;26606:1;26595:9;26591:17;26584:47;26648:131;26774:4;26648:131;:::i;:::-;26640:139;;26367:419;;;:::o;26792:::-;26958:4;26996:2;26985:9;26981:18;26973:26;;27045:9;27039:4;27035:20;27031:1;27020:9;27016:17;27009:47;27073:131;27199:4;27073:131;:::i;:::-;27065:139;;26792:419;;;:::o;27217:::-;27383:4;27421:2;27410:9;27406:18;27398:26;;27470:9;27464:4;27460:20;27456:1;27445:9;27441:17;27434:47;27498:131;27624:4;27498:131;:::i;:::-;27490:139;;27217:419;;;:::o;27642:::-;27808:4;27846:2;27835:9;27831:18;27823:26;;27895:9;27889:4;27885:20;27881:1;27870:9;27866:17;27859:47;27923:131;28049:4;27923:131;:::i;:::-;27915:139;;27642:419;;;:::o;28067:::-;28233:4;28271:2;28260:9;28256:18;28248:26;;28320:9;28314:4;28310:20;28306:1;28295:9;28291:17;28284:47;28348:131;28474:4;28348:131;:::i;:::-;28340:139;;28067:419;;;:::o;28492:::-;28658:4;28696:2;28685:9;28681:18;28673:26;;28745:9;28739:4;28735:20;28731:1;28720:9;28716:17;28709:47;28773:131;28899:4;28773:131;:::i;:::-;28765:139;;28492:419;;;:::o;28917:::-;29083:4;29121:2;29110:9;29106:18;29098:26;;29170:9;29164:4;29160:20;29156:1;29145:9;29141:17;29134:47;29198:131;29324:4;29198:131;:::i;:::-;29190:139;;28917:419;;;:::o;29342:::-;29508:4;29546:2;29535:9;29531:18;29523:26;;29595:9;29589:4;29585:20;29581:1;29570:9;29566:17;29559:47;29623:131;29749:4;29623:131;:::i;:::-;29615:139;;29342:419;;;:::o;29767:::-;29933:4;29971:2;29960:9;29956:18;29948:26;;30020:9;30014:4;30010:20;30006:1;29995:9;29991:17;29984:47;30048:131;30174:4;30048:131;:::i;:::-;30040:139;;29767:419;;;:::o;30192:222::-;30285:4;30323:2;30312:9;30308:18;30300:26;;30336:71;30404:1;30393:9;30389:17;30380:6;30336:71;:::i;:::-;30192:222;;;;:::o;30420:214::-;30509:4;30547:2;30536:9;30532:18;30524:26;;30560:67;30624:1;30613:9;30609:17;30600:6;30560:67;:::i;:::-;30420:214;;;;:::o;30640:434::-;30785:4;30823:2;30812:9;30808:18;30800:26;;30836:67;30900:1;30889:9;30885:17;30876:6;30836:67;:::i;:::-;30913:72;30981:2;30970:9;30966:18;30957:6;30913:72;:::i;:::-;30995;31063:2;31052:9;31048:18;31039:6;30995:72;:::i;:::-;30640:434;;;;;;:::o;31080:129::-;31114:6;31141:20;;:::i;:::-;31131:30;;31170:33;31198:4;31190:6;31170:33;:::i;:::-;31080:129;;;:::o;31215:75::-;31248:6;31281:2;31275:9;31265:19;;31215:75;:::o;31296:311::-;31373:4;31463:18;31455:6;31452:30;31449:56;;;31485:18;;:::i;:::-;31449:56;31535:4;31527:6;31523:17;31515:25;;31595:4;31589;31585:15;31577:23;;31296:311;;;:::o;31613:307::-;31674:4;31764:18;31756:6;31753:30;31750:56;;;31786:18;;:::i;:::-;31750:56;31824:29;31846:6;31824:29;:::i;:::-;31816:37;;31908:4;31902;31898:15;31890:23;;31613:307;;;:::o;31926:132::-;31993:4;32016:3;32008:11;;32046:4;32041:3;32037:14;32029:22;;31926:132;;;:::o;32064:114::-;32131:6;32165:5;32159:12;32149:22;;32064:114;;;:::o;32184:98::-;32235:6;32269:5;32263:12;32253:22;;32184:98;;;:::o;32288:99::-;32340:6;32374:5;32368:12;32358:22;;32288:99;;;:::o;32393:113::-;32463:4;32495;32490:3;32486:14;32478:22;;32393:113;;;:::o;32512:184::-;32611:11;32645:6;32640:3;32633:19;32685:4;32680:3;32676:14;32661:29;;32512:184;;;;:::o;32702:147::-;32803:11;32840:3;32825:18;;32702:147;;;;:::o;32855:169::-;32939:11;32973:6;32968:3;32961:19;33013:4;33008:3;33004:14;32989:29;;32855:169;;;;:::o;33030:305::-;33070:3;33089:20;33107:1;33089:20;:::i;:::-;33084:25;;33123:20;33141:1;33123:20;:::i;:::-;33118:25;;33277:1;33209:66;33205:74;33202:1;33199:81;33196:107;;;33283:18;;:::i;:::-;33196:107;33327:1;33324;33320:9;33313:16;;33030:305;;;;:::o;33341:185::-;33381:1;33398:20;33416:1;33398:20;:::i;:::-;33393:25;;33432:20;33450:1;33432:20;:::i;:::-;33427:25;;33471:1;33461:35;;33476:18;;:::i;:::-;33461:35;33518:1;33515;33511:9;33506:14;;33341:185;;;;:::o;33532:348::-;33572:7;33595:20;33613:1;33595:20;:::i;:::-;33590:25;;33629:20;33647:1;33629:20;:::i;:::-;33624:25;;33817:1;33749:66;33745:74;33742:1;33739:81;33734:1;33727:9;33720:17;33716:105;33713:131;;;33824:18;;:::i;:::-;33713:131;33872:1;33869;33865:9;33854:20;;33532:348;;;;:::o;33886:191::-;33926:4;33946:20;33964:1;33946:20;:::i;:::-;33941:25;;33980:20;33998:1;33980:20;:::i;:::-;33975:25;;34019:1;34016;34013:8;34010:34;;;34024:18;;:::i;:::-;34010:34;34069:1;34066;34062:9;34054:17;;33886:191;;;;:::o;34083:96::-;34120:7;34149:24;34167:5;34149:24;:::i;:::-;34138:35;;34083:96;;;:::o;34185:90::-;34219:7;34262:5;34255:13;34248:21;34237:32;;34185:90;;;:::o;34281:77::-;34318:7;34347:5;34336:16;;34281:77;;;:::o;34364:126::-;34401:7;34441:42;34434:5;34430:54;34419:65;;34364:126;;;:::o;34496:77::-;34533:7;34562:5;34551:16;;34496:77;;;:::o;34579:86::-;34614:7;34654:4;34647:5;34643:16;34632:27;;34579:86;;;:::o;34671:145::-;34740:9;34773:37;34804:5;34773:37;:::i;:::-;34760:50;;34671:145;;;:::o;34822:126::-;34872:9;34905:37;34936:5;34905:37;:::i;:::-;34892:50;;34822:126;;;:::o;34954:113::-;35004:9;35037:24;35055:5;35037:24;:::i;:::-;35024:37;;34954:113;;;:::o;35073:154::-;35157:6;35152:3;35147;35134:30;35219:1;35210:6;35205:3;35201:16;35194:27;35073:154;;;:::o;35233:307::-;35301:1;35311:113;35325:6;35322:1;35319:13;35311:113;;;35410:1;35405:3;35401:11;35395:18;35391:1;35386:3;35382:11;35375:39;35347:2;35344:1;35340:10;35335:15;;35311:113;;;35442:6;35439:1;35436:13;35433:101;;;35522:1;35513:6;35508:3;35504:16;35497:27;35433:101;35282:258;35233:307;;;:::o;35546:320::-;35590:6;35627:1;35621:4;35617:12;35607:22;;35674:1;35668:4;35664:12;35695:18;35685:81;;35751:4;35743:6;35739:17;35729:27;;35685:81;35813:2;35805:6;35802:14;35782:18;35779:38;35776:84;;;35832:18;;:::i;:::-;35776:84;35597:269;35546:320;;;:::o;35872:281::-;35955:27;35977:4;35955:27;:::i;:::-;35947:6;35943:40;36085:6;36073:10;36070:22;36049:18;36037:10;36034:34;36031:62;36028:88;;;36096:18;;:::i;:::-;36028:88;36136:10;36132:2;36125:22;35915:238;35872:281;;:::o;36159:233::-;36198:3;36221:24;36239:5;36221:24;:::i;:::-;36212:33;;36267:66;36260:5;36257:77;36254:103;;;36337:18;;:::i;:::-;36254:103;36384:1;36377:5;36373:13;36366:20;;36159:233;;;:::o;36398:180::-;36446:77;36443:1;36436:88;36543:4;36540:1;36533:15;36567:4;36564:1;36557:15;36584:180;36632:77;36629:1;36622:88;36729:4;36726:1;36719:15;36753:4;36750:1;36743:15;36770:180;36818:77;36815:1;36808:88;36915:4;36912:1;36905:15;36939:4;36936:1;36929:15;36956:180;37004:77;37001:1;36994:88;37101:4;37098:1;37091:15;37125:4;37122:1;37115:15;37142:180;37190:77;37187:1;37180:88;37287:4;37284:1;37277:15;37311:4;37308:1;37301:15;37328:117;37437:1;37434;37427:12;37451:117;37560:1;37557;37550:12;37574:117;37683:1;37680;37673:12;37697:117;37806:1;37803;37796:12;37820:117;37929:1;37926;37919:12;37943:102;37984:6;38035:2;38031:7;38026:2;38019:5;38015:14;38011:28;38001:38;;37943:102;;;:::o;38051:222::-;38191:34;38187:1;38179:6;38175:14;38168:58;38260:5;38255:2;38247:6;38243:15;38236:30;38051:222;:::o;38279:221::-;38419:34;38415:1;38407:6;38403:14;38396:58;38488:4;38483:2;38475:6;38471:15;38464:29;38279:221;:::o;38506:225::-;38646:34;38642:1;38634:6;38630:14;38623:58;38715:8;38710:2;38702:6;38698:15;38691:33;38506:225;:::o;38737:221::-;38877:34;38873:1;38865:6;38861:14;38854:58;38946:4;38941:2;38933:6;38929:15;38922:29;38737:221;:::o;38964:222::-;39104:34;39100:1;39092:6;39088:14;39081:58;39173:5;39168:2;39160:6;39156:15;39149:30;38964:222;:::o;39192:225::-;39332:34;39328:1;39320:6;39316:14;39309:58;39401:8;39396:2;39388:6;39384:15;39377:33;39192:225;:::o;39423:172::-;39563:24;39559:1;39551:6;39547:14;39540:48;39423:172;:::o;39601:171::-;39741:23;39737:1;39729:6;39725:14;39718:47;39601:171;:::o;39778:174::-;39918:26;39914:1;39906:6;39902:14;39895:50;39778:174;:::o;39958:181::-;40098:33;40094:1;40086:6;40082:14;40075:57;39958:181;:::o;40145:227::-;40285:34;40281:1;40273:6;40269:14;40262:58;40354:10;40349:2;40341:6;40337:15;40330:35;40145:227;:::o;40378:182::-;40518:34;40514:1;40506:6;40502:14;40495:58;40378:182;:::o;40566:220::-;40706:34;40702:1;40694:6;40690:14;40683:58;40775:3;40770:2;40762:6;40758:15;40751:28;40566:220;:::o;40792:224::-;40932:34;40928:1;40920:6;40916:14;40909:58;41001:7;40996:2;40988:6;40984:15;40977:32;40792:224;:::o;41022:167::-;41162:19;41158:1;41150:6;41146:14;41139:43;41022:167;:::o;41195:223::-;41335:34;41331:1;41323:6;41319:14;41312:58;41404:6;41399:2;41391:6;41387:15;41380:31;41195:223;:::o;41424:172::-;41564:24;41560:1;41552:6;41548:14;41541:48;41424:172;:::o;41602:182::-;41742:34;41738:1;41730:6;41726:14;41719:58;41602:182;:::o;41790:224::-;41930:34;41926:1;41918:6;41914:14;41907:58;41999:7;41994:2;41986:6;41982:15;41975:32;41790:224;:::o;42020:225::-;42160:34;42156:1;42148:6;42144:14;42137:58;42229:8;42224:2;42216:6;42212:15;42205:33;42020:225;:::o;42251:181::-;42391:33;42387:1;42379:6;42375:14;42368:57;42251:181;:::o;42438:122::-;42511:24;42529:5;42511:24;:::i;:::-;42504:5;42501:35;42491:63;;42550:1;42547;42540:12;42491:63;42438:122;:::o;42566:::-;42639:24;42657:5;42639:24;:::i;:::-;42632:5;42629:35;42619:63;;42678:1;42675;42668:12;42619:63;42566:122;:::o;42694:::-;42767:24;42785:5;42767:24;:::i;:::-;42760:5;42757:35;42747:63;;42806:1;42803;42796:12;42747:63;42694:122;:::o

Swarm Source

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