ETH Price: $2,392.34 (-3.45%)

Token

Goblin Gold (GBLN)
 

Overview

Max Total Supply

2,429,700 GBLN

Holders

20

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
jackwild.eth
Balance
69,420 GBLN

Value
$0.00
0x15dBD191B3e0a5d15353Ee980038f368a3E4c5ba
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:
GoblinGold

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-05-26
*/

// File: @openzeppelin/contracts/utils/Context.sol


// OpenZeppelin Contracts v4.4.1 (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


// OpenZeppelin Contracts v4.4.1 (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() {
        _transferOwnership(_msgSender());
    }

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

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

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

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

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

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


// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @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);

    /**
     * @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 `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, 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 `from` to `to` 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 from,
        address to,
        uint256 amount
    ) external returns (bool);
}

// 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 (last updated v4.6.0) (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:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, 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}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, 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}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, 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) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, 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) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, 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:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
        }
        _balances[to] += amount;

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, 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 Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - 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: @openzeppelin/contracts/security/ReentrancyGuard.sol


// OpenZeppelin Contracts v4.4.1 (security/ReentrancyGuard.sol)

pragma solidity ^0.8.0;

/**
 * @dev Contract module that helps prevent reentrant calls to a function.
 *
 * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
 * available, which can be applied to functions to make sure there are no nested
 * (reentrant) calls to them.
 *
 * Note that because there is a single `nonReentrant` guard, functions marked as
 * `nonReentrant` may not call one another. This can be worked around by making
 * those functions `private`, and then adding `external` `nonReentrant` entry
 * points to them.
 *
 * TIP: If you would like to learn more about reentrancy and alternative ways
 * to protect against it, check out our blog post
 * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
 */
abstract contract ReentrancyGuard {
    // Booleans are more expensive than uint256 or any type that takes up a full
    // word because each write operation emits an extra SLOAD to first read the
    // slot's contents, replace the bits taken up by the boolean, and then write
    // back. This is the compiler's defense against contract upgrades and
    // pointer aliasing, and it cannot be disabled.

    // The values being non-zero value makes deployment a bit more expensive,
    // but in exchange the refund on every call to nonReentrant will be lower in
    // amount. Since refunds are capped to a percentage of the total
    // transaction's gas, it is best to keep them low in cases like this one, to
    // increase the likelihood of the full refund coming into effect.
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Prevents a contract from calling itself, directly or indirectly.
     * Calling a `nonReentrant` function from another `nonReentrant`
     * function is not supported. It is possible to prevent this from happening
     * by making the `nonReentrant` function external, and making it call a
     * `private` function that does the actual work.
     */
    modifier nonReentrant() {
        // On the first call to nonReentrant, _notEntered will be true
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        // Any calls to nonReentrant after this point will fail
        _status = _ENTERED;

        _;

        // By storing the original value once again, a refund is triggered (see
        // https://eips.ethereum.org/EIPS/eip-2200)
        _status = _NOT_ENTERED;
    }
}

// File: GoblinGold.sol






pragma solidity ^0.8.0;

abstract contract GoblinTown {
    function ownerOf(uint256 tokenId) external view returns (address owner){}
}

contract GoblinGold is ERC20 , ReentrancyGuard, Ownable {
    constructor() ERC20("Goblin Gold", "GBLN") {}

    GoblinTown goblinTown;
 
    mapping(uint256 => uint256) public claimedGoblins;
    bool authorClaimed = false;

    modifier callerIsUser() {
        require(tx.origin == msg.sender, "The caller is another contract");
        _;
    }

    function claim(uint256 goblinID) external nonReentrant callerIsUser {
        require(goblinTown.ownerOf(goblinID) == msg.sender, "You don't own this Goblin");
        require(claimedGoblins[goblinID] != 1, "Goblin already claimed");
        claimedGoblins[goblinID] = 1;
        _mint(msg.sender, 69420 * 10 ** 18 );
    }

    function authorSetGoblinContract(address addr) external onlyOwner {
        goblinTown =  GoblinTown(addr);
    }

    function authorClaim() external onlyOwner {
        require(authorClaimed == false, "Verify, don't trust");
        authorClaimed = true;
        // 2% of total supply, I won't dump them all at once and crash the price
        _mint(msg.sender, 13884000 * 10 ** 18 );
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"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":[{"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":[],"name":"authorClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"authorSetGoblinContract","outputs":[],"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":"goblinID","type":"uint256"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"claimedGoblins","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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"}]

60806040526000600960006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b506040518060400160405280600b81526020017f476f626c696e20476f6c640000000000000000000000000000000000000000008152506040518060400160405280600481526020017f47424c4e000000000000000000000000000000000000000000000000000000008152508160039080519060200190620000b1929190620001c9565b508060049080519060200190620000ca929190620001c9565b5050506001600581905550620000f5620000e9620000fb60201b60201c565b6200010360201b60201c565b620002de565b600033905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620001d79062000279565b90600052602060002090601f016020900481019282620001fb576000855562000247565b82601f106200021657805160ff191683800117855562000247565b8280016001018555821562000247579182015b828111156200024657825182559160200191906001019062000229565b5b5090506200025691906200025a565b5090565b5b80821115620002755760008160009055506001016200025b565b5090565b600060028204905060018216806200029257607f821691505b60208210811415620002a957620002a8620002af565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b611fb980620002ee6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806370a08231116100a257806395d89b411161007157806395d89b41146102cf578063a457c2d7146102ed578063a9059cbb1461031d578063dd62ed3e1461034d578063f2fde38b1461037d57610116565b806370a082311461026d578063715018a61461029d5780637e2ba0f7146102a75780638da5cb5b146102b157610116565b806323b872dd116100e957806323b872dd146101b7578063313ce567146101e757806331511f9714610205578063379607f514610221578063395093511461023d57610116565b806306fdde031461011b578063095ea7b31461013957806318160ddd146101695780631ef9eb2414610187575b600080fd5b610123610399565b604051610130919061180c565b60405180910390f35b610153600480360381019061014e91906114e7565b61042b565b60405161016091906117f1565b60405180910390f35b61017161044e565b60405161017e9190611a0e565b60405180910390f35b6101a1600480360381019061019c9190611527565b610458565b6040516101ae9190611a0e565b60405180910390f35b6101d160048036038101906101cc9190611494565b610470565b6040516101de91906117f1565b60405180910390f35b6101ef61049f565b6040516101fc9190611a29565b60405180910390f35b61021f600480360381019061021a91906113fa565b6104a8565b005b61023b60048036038101906102369190611527565b610568565b005b610257600480360381019061025291906114e7565b6107cb565b60405161026491906117f1565b60405180910390f35b610287600480360381019061028291906113fa565b610802565b6040516102949190611a0e565b60405180910390f35b6102a561084a565b005b6102af6108d2565b005b6102b96109d6565b6040516102c691906117d6565b60405180910390f35b6102d7610a00565b6040516102e4919061180c565b60405180910390f35b610307600480360381019061030291906114e7565b610a92565b60405161031491906117f1565b60405180910390f35b610337600480360381019061033291906114e7565b610b09565b60405161034491906117f1565b60405180910390f35b61036760048036038101906103629190611454565b610b2c565b6040516103749190611a0e565b60405180910390f35b610397600480360381019061039291906113fa565b610bb3565b005b6060600380546103a890611b3e565b80601f01602080910402602001604051908101604052809291908181526020018280546103d490611b3e565b80156104215780601f106103f657610100808354040283529160200191610421565b820191906000526020600020905b81548152906001019060200180831161040457829003601f168201915b5050505050905090565b600080610436610cab565b9050610443818585610cb3565b600191505092915050565b6000600254905090565b60086020528060005260406000206000915090505481565b60008061047b610cab565b9050610488858285610e7e565b610493858585610f0a565b60019150509392505050565b60006012905090565b6104b0610cab565b73ffffffffffffffffffffffffffffffffffffffff166104ce6109d6565b73ffffffffffffffffffffffffffffffffffffffff1614610524576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051b9061192e565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260055414156105ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a5906119ae565b60405180910390fd5b60026005819055503373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610624576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061b906118ee565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b81526004016106969190611a0e565b60206040518083038186803b1580156106ae57600080fd5b505afa1580156106c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e69190611427565b73ffffffffffffffffffffffffffffffffffffffff161461073c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610733906118ce565b60405180910390fd5b600160086000838152602001908152602001600020541415610793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078a9061194e565b60405180910390fd5b600160086000838152602001908152602001600020819055506107c033690eb344079513a130000061118b565b600160058190555050565b6000806107d6610cab565b90506107f78185856107e88589610b2c565b6107f29190611a60565b610cb3565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610852610cab565b73ffffffffffffffffffffffffffffffffffffffff166108706109d6565b73ffffffffffffffffffffffffffffffffffffffff16146108c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108bd9061192e565b60405180910390fd5b6108d060006112eb565b565b6108da610cab565b73ffffffffffffffffffffffffffffffffffffffff166108f86109d6565b73ffffffffffffffffffffffffffffffffffffffff161461094e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109459061192e565b60405180910390fd5b60001515600960009054906101000a900460ff161515146109a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099b9061190e565b60405180910390fd5b6001600960006101000a81548160ff0219169083151502179055506109d4336a0b7c0d25ec7755ed80000061118b565b565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610a0f90611b3e565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3b90611b3e565b8015610a885780601f10610a5d57610100808354040283529160200191610a88565b820191906000526020600020905b815481529060010190602001808311610a6b57829003601f168201915b5050505050905090565b600080610a9d610cab565b90506000610aab8286610b2c565b905083811015610af0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae7906119ce565b60405180910390fd5b610afd8286868403610cb3565b60019250505092915050565b600080610b14610cab565b9050610b21818585610f0a565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610bbb610cab565b73ffffffffffffffffffffffffffffffffffffffff16610bd96109d6565b73ffffffffffffffffffffffffffffffffffffffff1614610c2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c269061192e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c969061184e565b60405180910390fd5b610ca8816112eb565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1a9061198e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8a9061186e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e719190611a0e565b60405180910390a3505050565b6000610e8a8484610b2c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f045781811015610ef6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eed9061188e565b60405180910390fd5b610f038484848403610cb3565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f719061196e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe19061182e565b60405180910390fd5b610ff58383836113b1565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561107b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611072906118ae565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461110e9190611a60565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111729190611a0e565b60405180910390a36111858484846113b6565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f2906119ee565b60405180910390fd5b611207600083836113b1565b80600260008282546112199190611a60565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461126e9190611a60565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112d39190611a0e565b60405180910390a36112e7600083836113b6565b5050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b6000813590506113ca81611f55565b92915050565b6000815190506113df81611f55565b92915050565b6000813590506113f481611f6c565b92915050565b6000602082840312156114105761140f611bce565b5b600061141e848285016113bb565b91505092915050565b60006020828403121561143d5761143c611bce565b5b600061144b848285016113d0565b91505092915050565b6000806040838503121561146b5761146a611bce565b5b6000611479858286016113bb565b925050602061148a858286016113bb565b9150509250929050565b6000806000606084860312156114ad576114ac611bce565b5b60006114bb868287016113bb565b93505060206114cc868287016113bb565b92505060406114dd868287016113e5565b9150509250925092565b600080604083850312156114fe576114fd611bce565b5b600061150c858286016113bb565b925050602061151d858286016113e5565b9150509250929050565b60006020828403121561153d5761153c611bce565b5b600061154b848285016113e5565b91505092915050565b61155d81611ab6565b82525050565b61156c81611ac8565b82525050565b600061157d82611a44565b6115878185611a4f565b9350611597818560208601611b0b565b6115a081611bd3565b840191505092915050565b60006115b8602383611a4f565b91506115c382611be4565b604082019050919050565b60006115db602683611a4f565b91506115e682611c33565b604082019050919050565b60006115fe602283611a4f565b915061160982611c82565b604082019050919050565b6000611621601d83611a4f565b915061162c82611cd1565b602082019050919050565b6000611644602683611a4f565b915061164f82611cfa565b604082019050919050565b6000611667601983611a4f565b915061167282611d49565b602082019050919050565b600061168a601e83611a4f565b915061169582611d72565b602082019050919050565b60006116ad601383611a4f565b91506116b882611d9b565b602082019050919050565b60006116d0602083611a4f565b91506116db82611dc4565b602082019050919050565b60006116f3601683611a4f565b91506116fe82611ded565b602082019050919050565b6000611716602583611a4f565b915061172182611e16565b604082019050919050565b6000611739602483611a4f565b915061174482611e65565b604082019050919050565b600061175c601f83611a4f565b915061176782611eb4565b602082019050919050565b600061177f602583611a4f565b915061178a82611edd565b604082019050919050565b60006117a2601f83611a4f565b91506117ad82611f2c565b602082019050919050565b6117c181611af4565b82525050565b6117d081611afe565b82525050565b60006020820190506117eb6000830184611554565b92915050565b60006020820190506118066000830184611563565b92915050565b600060208201905081810360008301526118268184611572565b905092915050565b60006020820190508181036000830152611847816115ab565b9050919050565b60006020820190508181036000830152611867816115ce565b9050919050565b60006020820190508181036000830152611887816115f1565b9050919050565b600060208201905081810360008301526118a781611614565b9050919050565b600060208201905081810360008301526118c781611637565b9050919050565b600060208201905081810360008301526118e78161165a565b9050919050565b600060208201905081810360008301526119078161167d565b9050919050565b60006020820190508181036000830152611927816116a0565b9050919050565b60006020820190508181036000830152611947816116c3565b9050919050565b60006020820190508181036000830152611967816116e6565b9050919050565b6000602082019050818103600083015261198781611709565b9050919050565b600060208201905081810360008301526119a78161172c565b9050919050565b600060208201905081810360008301526119c78161174f565b9050919050565b600060208201905081810360008301526119e781611772565b9050919050565b60006020820190508181036000830152611a0781611795565b9050919050565b6000602082019050611a2360008301846117b8565b92915050565b6000602082019050611a3e60008301846117c7565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611a6b82611af4565b9150611a7683611af4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611aab57611aaa611b70565b5b828201905092915050565b6000611ac182611ad4565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611b29578082015181840152602081019050611b0e565b83811115611b38576000848401525b50505050565b60006002820490506001821680611b5657607f821691505b60208210811415611b6a57611b69611b9f565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f596f7520646f6e2774206f776e207468697320476f626c696e00000000000000600082015250565b7f5468652063616c6c657220697320616e6f7468657220636f6e74726163740000600082015250565b7f5665726966792c20646f6e277420747275737400000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f476f626c696e20616c726561647920636c61696d656400000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b611f5e81611ab6565b8114611f6957600080fd5b50565b611f7581611af4565b8114611f8057600080fd5b5056fea264697066735822122008e93882e72dc3403e146234cd7bac1ec6b4faf036ae577b92cde99fd294d4c264736f6c63430008070033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101165760003560e01c806370a08231116100a257806395d89b411161007157806395d89b41146102cf578063a457c2d7146102ed578063a9059cbb1461031d578063dd62ed3e1461034d578063f2fde38b1461037d57610116565b806370a082311461026d578063715018a61461029d5780637e2ba0f7146102a75780638da5cb5b146102b157610116565b806323b872dd116100e957806323b872dd146101b7578063313ce567146101e757806331511f9714610205578063379607f514610221578063395093511461023d57610116565b806306fdde031461011b578063095ea7b31461013957806318160ddd146101695780631ef9eb2414610187575b600080fd5b610123610399565b604051610130919061180c565b60405180910390f35b610153600480360381019061014e91906114e7565b61042b565b60405161016091906117f1565b60405180910390f35b61017161044e565b60405161017e9190611a0e565b60405180910390f35b6101a1600480360381019061019c9190611527565b610458565b6040516101ae9190611a0e565b60405180910390f35b6101d160048036038101906101cc9190611494565b610470565b6040516101de91906117f1565b60405180910390f35b6101ef61049f565b6040516101fc9190611a29565b60405180910390f35b61021f600480360381019061021a91906113fa565b6104a8565b005b61023b60048036038101906102369190611527565b610568565b005b610257600480360381019061025291906114e7565b6107cb565b60405161026491906117f1565b60405180910390f35b610287600480360381019061028291906113fa565b610802565b6040516102949190611a0e565b60405180910390f35b6102a561084a565b005b6102af6108d2565b005b6102b96109d6565b6040516102c691906117d6565b60405180910390f35b6102d7610a00565b6040516102e4919061180c565b60405180910390f35b610307600480360381019061030291906114e7565b610a92565b60405161031491906117f1565b60405180910390f35b610337600480360381019061033291906114e7565b610b09565b60405161034491906117f1565b60405180910390f35b61036760048036038101906103629190611454565b610b2c565b6040516103749190611a0e565b60405180910390f35b610397600480360381019061039291906113fa565b610bb3565b005b6060600380546103a890611b3e565b80601f01602080910402602001604051908101604052809291908181526020018280546103d490611b3e565b80156104215780601f106103f657610100808354040283529160200191610421565b820191906000526020600020905b81548152906001019060200180831161040457829003601f168201915b5050505050905090565b600080610436610cab565b9050610443818585610cb3565b600191505092915050565b6000600254905090565b60086020528060005260406000206000915090505481565b60008061047b610cab565b9050610488858285610e7e565b610493858585610f0a565b60019150509392505050565b60006012905090565b6104b0610cab565b73ffffffffffffffffffffffffffffffffffffffff166104ce6109d6565b73ffffffffffffffffffffffffffffffffffffffff1614610524576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051b9061192e565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260055414156105ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a5906119ae565b60405180910390fd5b60026005819055503373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610624576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061b906118ee565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b81526004016106969190611a0e565b60206040518083038186803b1580156106ae57600080fd5b505afa1580156106c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e69190611427565b73ffffffffffffffffffffffffffffffffffffffff161461073c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610733906118ce565b60405180910390fd5b600160086000838152602001908152602001600020541415610793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078a9061194e565b60405180910390fd5b600160086000838152602001908152602001600020819055506107c033690eb344079513a130000061118b565b600160058190555050565b6000806107d6610cab565b90506107f78185856107e88589610b2c565b6107f29190611a60565b610cb3565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610852610cab565b73ffffffffffffffffffffffffffffffffffffffff166108706109d6565b73ffffffffffffffffffffffffffffffffffffffff16146108c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108bd9061192e565b60405180910390fd5b6108d060006112eb565b565b6108da610cab565b73ffffffffffffffffffffffffffffffffffffffff166108f86109d6565b73ffffffffffffffffffffffffffffffffffffffff161461094e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109459061192e565b60405180910390fd5b60001515600960009054906101000a900460ff161515146109a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099b9061190e565b60405180910390fd5b6001600960006101000a81548160ff0219169083151502179055506109d4336a0b7c0d25ec7755ed80000061118b565b565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610a0f90611b3e565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3b90611b3e565b8015610a885780601f10610a5d57610100808354040283529160200191610a88565b820191906000526020600020905b815481529060010190602001808311610a6b57829003601f168201915b5050505050905090565b600080610a9d610cab565b90506000610aab8286610b2c565b905083811015610af0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae7906119ce565b60405180910390fd5b610afd8286868403610cb3565b60019250505092915050565b600080610b14610cab565b9050610b21818585610f0a565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610bbb610cab565b73ffffffffffffffffffffffffffffffffffffffff16610bd96109d6565b73ffffffffffffffffffffffffffffffffffffffff1614610c2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c269061192e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c969061184e565b60405180910390fd5b610ca8816112eb565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1a9061198e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8a9061186e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e719190611a0e565b60405180910390a3505050565b6000610e8a8484610b2c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f045781811015610ef6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eed9061188e565b60405180910390fd5b610f038484848403610cb3565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f719061196e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe19061182e565b60405180910390fd5b610ff58383836113b1565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561107b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611072906118ae565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461110e9190611a60565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111729190611a0e565b60405180910390a36111858484846113b6565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f2906119ee565b60405180910390fd5b611207600083836113b1565b80600260008282546112199190611a60565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461126e9190611a60565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112d39190611a0e565b60405180910390a36112e7600083836113b6565b5050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b6000813590506113ca81611f55565b92915050565b6000815190506113df81611f55565b92915050565b6000813590506113f481611f6c565b92915050565b6000602082840312156114105761140f611bce565b5b600061141e848285016113bb565b91505092915050565b60006020828403121561143d5761143c611bce565b5b600061144b848285016113d0565b91505092915050565b6000806040838503121561146b5761146a611bce565b5b6000611479858286016113bb565b925050602061148a858286016113bb565b9150509250929050565b6000806000606084860312156114ad576114ac611bce565b5b60006114bb868287016113bb565b93505060206114cc868287016113bb565b92505060406114dd868287016113e5565b9150509250925092565b600080604083850312156114fe576114fd611bce565b5b600061150c858286016113bb565b925050602061151d858286016113e5565b9150509250929050565b60006020828403121561153d5761153c611bce565b5b600061154b848285016113e5565b91505092915050565b61155d81611ab6565b82525050565b61156c81611ac8565b82525050565b600061157d82611a44565b6115878185611a4f565b9350611597818560208601611b0b565b6115a081611bd3565b840191505092915050565b60006115b8602383611a4f565b91506115c382611be4565b604082019050919050565b60006115db602683611a4f565b91506115e682611c33565b604082019050919050565b60006115fe602283611a4f565b915061160982611c82565b604082019050919050565b6000611621601d83611a4f565b915061162c82611cd1565b602082019050919050565b6000611644602683611a4f565b915061164f82611cfa565b604082019050919050565b6000611667601983611a4f565b915061167282611d49565b602082019050919050565b600061168a601e83611a4f565b915061169582611d72565b602082019050919050565b60006116ad601383611a4f565b91506116b882611d9b565b602082019050919050565b60006116d0602083611a4f565b91506116db82611dc4565b602082019050919050565b60006116f3601683611a4f565b91506116fe82611ded565b602082019050919050565b6000611716602583611a4f565b915061172182611e16565b604082019050919050565b6000611739602483611a4f565b915061174482611e65565b604082019050919050565b600061175c601f83611a4f565b915061176782611eb4565b602082019050919050565b600061177f602583611a4f565b915061178a82611edd565b604082019050919050565b60006117a2601f83611a4f565b91506117ad82611f2c565b602082019050919050565b6117c181611af4565b82525050565b6117d081611afe565b82525050565b60006020820190506117eb6000830184611554565b92915050565b60006020820190506118066000830184611563565b92915050565b600060208201905081810360008301526118268184611572565b905092915050565b60006020820190508181036000830152611847816115ab565b9050919050565b60006020820190508181036000830152611867816115ce565b9050919050565b60006020820190508181036000830152611887816115f1565b9050919050565b600060208201905081810360008301526118a781611614565b9050919050565b600060208201905081810360008301526118c781611637565b9050919050565b600060208201905081810360008301526118e78161165a565b9050919050565b600060208201905081810360008301526119078161167d565b9050919050565b60006020820190508181036000830152611927816116a0565b9050919050565b60006020820190508181036000830152611947816116c3565b9050919050565b60006020820190508181036000830152611967816116e6565b9050919050565b6000602082019050818103600083015261198781611709565b9050919050565b600060208201905081810360008301526119a78161172c565b9050919050565b600060208201905081810360008301526119c78161174f565b9050919050565b600060208201905081810360008301526119e781611772565b9050919050565b60006020820190508181036000830152611a0781611795565b9050919050565b6000602082019050611a2360008301846117b8565b92915050565b6000602082019050611a3e60008301846117c7565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611a6b82611af4565b9150611a7683611af4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611aab57611aaa611b70565b5b828201905092915050565b6000611ac182611ad4565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611b29578082015181840152602081019050611b0e565b83811115611b38576000848401525b50505050565b60006002820490506001821680611b5657607f821691505b60208210811415611b6a57611b69611b9f565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f596f7520646f6e2774206f776e207468697320476f626c696e00000000000000600082015250565b7f5468652063616c6c657220697320616e6f7468657220636f6e74726163740000600082015250565b7f5665726966792c20646f6e277420747275737400000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f476f626c696e20616c726561647920636c61696d656400000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b611f5e81611ab6565b8114611f6957600080fd5b50565b611f7581611af4565b8114611f8057600080fd5b5056fea264697066735822122008e93882e72dc3403e146234cd7bac1ec6b4faf036ae577b92cde99fd294d4c264736f6c63430008070033

Deployed Bytecode Sourcemap

22917:1107:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9183:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11534:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10303:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23064:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12315:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10145:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23620:115;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23284:328;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13019:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10474:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2606:103;;;:::i;:::-;;23743:278;;;:::i;:::-;;1955:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9402:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13760:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10807:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11063:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2864:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9183:100;9237:13;9270:5;9263:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9183:100;:::o;11534:201::-;11617:4;11634:13;11650:12;:10;:12::i;:::-;11634:28;;11673:32;11682:5;11689:7;11698:6;11673:8;:32::i;:::-;11723:4;11716:11;;;11534:201;;;;:::o;10303:108::-;10364:7;10391:12;;10384:19;;10303:108;:::o;23064:49::-;;;;;;;;;;;;;;;;;:::o;12315:295::-;12446:4;12463:15;12481:12;:10;:12::i;:::-;12463:30;;12504:38;12520:4;12526:7;12535:6;12504:15;:38::i;:::-;12553:27;12563:4;12569:2;12573:6;12553:9;:27::i;:::-;12598:4;12591:11;;;12315:295;;;;;:::o;10145:93::-;10203:5;10228:2;10221:9;;10145:93;:::o;23620:115::-;2186:12;:10;:12::i;:::-;2175:23;;:7;:5;:7::i;:::-;:23;;;2167:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23722:4:::1;23697:10;;:30;;;;;;;;;;;;;;;;;;23620:115:::0;:::o;23284:328::-;21790:1;22388:7;;:19;;22380:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;21790:1;22521:7;:18;;;;23211:10:::1;23198:23;;:9;:23;;;23190:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;23403:10:::2;23371:42;;:10;;;;;;;;;;;:18;;;23390:8;23371:28;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:42;;;23363:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;23490:1;23462:14;:24;23477:8;23462:24;;;;;;;;;;;;:29;;23454:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;23556:1;23529:14;:24;23544:8;23529:24;;;;;;;;;;;:28;;;;23568:36;23574:10;23586:16;23568:5;:36::i;:::-;21746:1:::0;22700:7;:22;;;;23284:328;:::o;13019:238::-;13107:4;13124:13;13140:12;:10;:12::i;:::-;13124:28;;13163:64;13172:5;13179:7;13216:10;13188:25;13198:5;13205:7;13188:9;:25::i;:::-;:38;;;;:::i;:::-;13163:8;:64::i;:::-;13245:4;13238:11;;;13019:238;;;;:::o;10474:127::-;10548:7;10575:9;:18;10585:7;10575:18;;;;;;;;;;;;;;;;10568:25;;10474:127;;;:::o;2606:103::-;2186:12;:10;:12::i;:::-;2175:23;;:7;:5;:7::i;:::-;:23;;;2167:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2671:30:::1;2698:1;2671:18;:30::i;:::-;2606:103::o:0;23743:278::-;2186:12;:10;:12::i;:::-;2175:23;;:7;:5;:7::i;:::-;:23;;;2167:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23821:5:::1;23804:22;;:13;;;;;;;;;;;:22;;;23796:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;23877:4;23861:13;;:20;;;;;;;;;;;;;;;;;;23974:39;23980:10;23992:19;23974:5;:39::i;:::-;23743:278::o:0;1955:87::-;2001:7;2028:6;;;;;;;;;;;2021:13;;1955:87;:::o;9402:104::-;9458:13;9491:7;9484:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9402:104;:::o;13760:436::-;13853:4;13870:13;13886:12;:10;:12::i;:::-;13870:28;;13909:24;13936:25;13946:5;13953:7;13936:9;:25::i;:::-;13909:52;;14000:15;13980:16;:35;;13972:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14093:60;14102:5;14109:7;14137:15;14118:16;:34;14093:8;:60::i;:::-;14184:4;14177:11;;;;13760:436;;;;:::o;10807:193::-;10886:4;10903:13;10919:12;:10;:12::i;:::-;10903:28;;10942;10952:5;10959:2;10963:6;10942:9;:28::i;:::-;10988:4;10981:11;;;10807:193;;;;:::o;11063:151::-;11152:7;11179:11;:18;11191:5;11179:18;;;;;;;;;;;;;;;:27;11198:7;11179:27;;;;;;;;;;;;;;;;11172:34;;11063:151;;;;:::o;2864:201::-;2186:12;:10;:12::i;:::-;2175:23;;:7;:5;:7::i;:::-;:23;;;2167:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2973:1:::1;2953:22;;:8;:22;;;;2945:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3029:28;3048:8;3029:18;:28::i;:::-;2864:201:::0;:::o;679:98::-;732:7;759:10;752:17;;679:98;:::o;17394:380::-;17547:1;17530:19;;:5;:19;;;;17522:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17628:1;17609:21;;:7;:21;;;;17601:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17712:6;17682:11;:18;17694:5;17682:18;;;;;;;;;;;;;;;:27;17701:7;17682:27;;;;;;;;;;;;;;;:36;;;;17750:7;17734:32;;17743:5;17734:32;;;17759:6;17734:32;;;;;;:::i;:::-;;;;;;;;17394:380;;;:::o;18065:453::-;18200:24;18227:25;18237:5;18244:7;18227:9;:25::i;:::-;18200:52;;18287:17;18267:16;:37;18263:248;;18349:6;18329:16;:26;;18321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18433:51;18442:5;18449:7;18477:6;18458:16;:25;18433:8;:51::i;:::-;18263:248;18189:329;18065:453;;;:::o;14675:671::-;14822:1;14806:18;;:4;:18;;;;14798:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14899:1;14885:16;;:2;:16;;;;14877:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14954:38;14975:4;14981:2;14985:6;14954:20;:38::i;:::-;15005:19;15027:9;:15;15037:4;15027:15;;;;;;;;;;;;;;;;15005:37;;15076:6;15061:11;:21;;15053:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;15193:6;15179:11;:20;15161:9;:15;15171:4;15161:15;;;;;;;;;;;;;;;:38;;;;15238:6;15221:9;:13;15231:2;15221:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;15277:2;15262:26;;15271:4;15262:26;;;15281:6;15262:26;;;;;;:::i;:::-;;;;;;;;15301:37;15321:4;15327:2;15331:6;15301:19;:37::i;:::-;14787:559;14675:671;;;:::o;15633:399::-;15736:1;15717:21;;:7;:21;;;;15709:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;15787:49;15816:1;15820:7;15829:6;15787:20;:49::i;:::-;15865:6;15849:12;;:22;;;;;;;:::i;:::-;;;;;;;;15904:6;15882:9;:18;15892:7;15882:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;15947:7;15926:37;;15943:1;15926:37;;;15956:6;15926:37;;;;;;:::i;:::-;;;;;;;;15976:48;16004:1;16008:7;16017:6;15976:19;:48::i;:::-;15633:399;;:::o;3225:191::-;3299:16;3318:6;;;;;;;;;;;3299:25;;3344:8;3335:6;;:17;;;;;;;;;;;;;;;;;;3399:8;3368:40;;3389:8;3368:40;;;;;;;;;;;;3288:128;3225:191;:::o;19118:125::-;;;;:::o;19847:124::-;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:139::-;347:5;385:6;372:20;363:29;;401:33;428:5;401:33;:::i;:::-;301:139;;;;:::o;446:329::-;505:6;554:2;542:9;533:7;529:23;525:32;522:119;;;560:79;;:::i;:::-;522:119;680:1;705:53;750:7;741:6;730:9;726:22;705:53;:::i;:::-;695:63;;651:117;446:329;;;;:::o;781:351::-;851:6;900:2;888:9;879:7;875:23;871:32;868:119;;;906:79;;:::i;:::-;868:119;1026:1;1051:64;1107:7;1098:6;1087:9;1083:22;1051:64;:::i;:::-;1041:74;;997:128;781:351;;;;:::o;1138:474::-;1206:6;1214;1263:2;1251:9;1242:7;1238:23;1234:32;1231:119;;;1269:79;;:::i;:::-;1231:119;1389:1;1414:53;1459:7;1450:6;1439:9;1435:22;1414:53;:::i;:::-;1404:63;;1360:117;1516:2;1542:53;1587:7;1578:6;1567:9;1563:22;1542:53;:::i;:::-;1532:63;;1487:118;1138:474;;;;;:::o;1618:619::-;1695:6;1703;1711;1760:2;1748:9;1739:7;1735:23;1731:32;1728:119;;;1766:79;;:::i;:::-;1728:119;1886:1;1911:53;1956:7;1947:6;1936:9;1932:22;1911:53;:::i;:::-;1901:63;;1857:117;2013:2;2039:53;2084:7;2075:6;2064:9;2060:22;2039:53;:::i;:::-;2029:63;;1984:118;2141:2;2167:53;2212:7;2203:6;2192:9;2188:22;2167:53;:::i;:::-;2157:63;;2112:118;1618:619;;;;;:::o;2243:474::-;2311:6;2319;2368:2;2356:9;2347:7;2343:23;2339:32;2336:119;;;2374:79;;:::i;:::-;2336:119;2494:1;2519:53;2564:7;2555:6;2544:9;2540:22;2519:53;:::i;:::-;2509:63;;2465:117;2621:2;2647:53;2692:7;2683:6;2672:9;2668:22;2647:53;:::i;:::-;2637:63;;2592:118;2243:474;;;;;:::o;2723:329::-;2782:6;2831:2;2819:9;2810:7;2806:23;2802:32;2799:119;;;2837:79;;:::i;:::-;2799:119;2957:1;2982:53;3027:7;3018:6;3007:9;3003:22;2982:53;:::i;:::-;2972:63;;2928:117;2723:329;;;;:::o;3058:118::-;3145:24;3163:5;3145:24;:::i;:::-;3140:3;3133:37;3058:118;;:::o;3182:109::-;3263:21;3278:5;3263:21;:::i;:::-;3258:3;3251:34;3182:109;;:::o;3297:364::-;3385:3;3413:39;3446:5;3413:39;:::i;:::-;3468:71;3532:6;3527:3;3468:71;:::i;:::-;3461:78;;3548:52;3593:6;3588:3;3581:4;3574:5;3570:16;3548:52;:::i;:::-;3625:29;3647:6;3625:29;:::i;:::-;3620:3;3616:39;3609:46;;3389:272;3297:364;;;;:::o;3667:366::-;3809:3;3830:67;3894:2;3889:3;3830:67;:::i;:::-;3823:74;;3906:93;3995:3;3906:93;:::i;:::-;4024:2;4019:3;4015:12;4008:19;;3667:366;;;:::o;4039:::-;4181:3;4202:67;4266:2;4261:3;4202:67;:::i;:::-;4195:74;;4278:93;4367:3;4278:93;:::i;:::-;4396:2;4391:3;4387:12;4380:19;;4039:366;;;:::o;4411:::-;4553:3;4574:67;4638:2;4633:3;4574:67;:::i;:::-;4567:74;;4650:93;4739:3;4650:93;:::i;:::-;4768:2;4763:3;4759:12;4752:19;;4411:366;;;:::o;4783:::-;4925:3;4946:67;5010:2;5005:3;4946:67;:::i;:::-;4939:74;;5022:93;5111:3;5022:93;:::i;:::-;5140:2;5135:3;5131:12;5124:19;;4783:366;;;:::o;5155:::-;5297:3;5318:67;5382:2;5377:3;5318:67;:::i;:::-;5311:74;;5394:93;5483:3;5394:93;:::i;:::-;5512:2;5507:3;5503:12;5496:19;;5155:366;;;:::o;5527:::-;5669:3;5690:67;5754:2;5749:3;5690:67;:::i;:::-;5683:74;;5766:93;5855:3;5766:93;:::i;:::-;5884:2;5879:3;5875:12;5868:19;;5527:366;;;:::o;5899:::-;6041:3;6062:67;6126:2;6121:3;6062:67;:::i;:::-;6055:74;;6138:93;6227:3;6138:93;:::i;:::-;6256:2;6251:3;6247:12;6240:19;;5899:366;;;:::o;6271:::-;6413:3;6434:67;6498:2;6493:3;6434:67;:::i;:::-;6427:74;;6510:93;6599:3;6510:93;:::i;:::-;6628:2;6623:3;6619:12;6612:19;;6271:366;;;:::o;6643:::-;6785:3;6806:67;6870:2;6865:3;6806:67;:::i;:::-;6799:74;;6882:93;6971:3;6882:93;:::i;:::-;7000:2;6995:3;6991:12;6984:19;;6643:366;;;:::o;7015:::-;7157:3;7178:67;7242:2;7237:3;7178:67;:::i;:::-;7171:74;;7254:93;7343:3;7254:93;:::i;:::-;7372:2;7367:3;7363:12;7356:19;;7015:366;;;:::o;7387:::-;7529:3;7550:67;7614:2;7609:3;7550:67;:::i;:::-;7543:74;;7626:93;7715:3;7626:93;:::i;:::-;7744:2;7739:3;7735:12;7728:19;;7387:366;;;:::o;7759:::-;7901:3;7922:67;7986:2;7981:3;7922:67;:::i;:::-;7915:74;;7998:93;8087:3;7998:93;:::i;:::-;8116:2;8111:3;8107:12;8100:19;;7759:366;;;:::o;8131:::-;8273:3;8294:67;8358:2;8353:3;8294:67;:::i;:::-;8287:74;;8370:93;8459:3;8370:93;:::i;:::-;8488:2;8483:3;8479:12;8472:19;;8131:366;;;:::o;8503:::-;8645:3;8666:67;8730:2;8725:3;8666:67;:::i;:::-;8659:74;;8742:93;8831:3;8742:93;:::i;:::-;8860:2;8855:3;8851:12;8844:19;;8503:366;;;:::o;8875:::-;9017:3;9038:67;9102:2;9097:3;9038:67;:::i;:::-;9031:74;;9114:93;9203:3;9114:93;:::i;:::-;9232:2;9227:3;9223:12;9216:19;;8875:366;;;:::o;9247:118::-;9334:24;9352:5;9334:24;:::i;:::-;9329:3;9322:37;9247:118;;:::o;9371:112::-;9454:22;9470:5;9454:22;:::i;:::-;9449:3;9442:35;9371:112;;:::o;9489:222::-;9582:4;9620:2;9609:9;9605:18;9597:26;;9633:71;9701:1;9690:9;9686:17;9677:6;9633:71;:::i;:::-;9489:222;;;;:::o;9717:210::-;9804:4;9842:2;9831:9;9827:18;9819:26;;9855:65;9917:1;9906:9;9902:17;9893:6;9855:65;:::i;:::-;9717:210;;;;:::o;9933:313::-;10046:4;10084:2;10073:9;10069:18;10061:26;;10133:9;10127:4;10123:20;10119:1;10108:9;10104:17;10097:47;10161:78;10234:4;10225:6;10161:78;:::i;:::-;10153:86;;9933:313;;;;:::o;10252:419::-;10418:4;10456:2;10445:9;10441:18;10433:26;;10505:9;10499:4;10495:20;10491:1;10480:9;10476:17;10469:47;10533:131;10659:4;10533:131;:::i;:::-;10525:139;;10252:419;;;:::o;10677:::-;10843:4;10881:2;10870:9;10866:18;10858:26;;10930:9;10924:4;10920:20;10916:1;10905:9;10901:17;10894:47;10958:131;11084:4;10958:131;:::i;:::-;10950:139;;10677:419;;;:::o;11102:::-;11268:4;11306:2;11295:9;11291:18;11283:26;;11355:9;11349:4;11345:20;11341:1;11330:9;11326:17;11319:47;11383:131;11509:4;11383:131;:::i;:::-;11375:139;;11102:419;;;:::o;11527:::-;11693:4;11731:2;11720:9;11716:18;11708:26;;11780:9;11774:4;11770:20;11766:1;11755:9;11751:17;11744:47;11808:131;11934:4;11808:131;:::i;:::-;11800:139;;11527:419;;;:::o;11952:::-;12118:4;12156:2;12145:9;12141:18;12133:26;;12205:9;12199:4;12195:20;12191:1;12180:9;12176:17;12169:47;12233:131;12359:4;12233:131;:::i;:::-;12225:139;;11952:419;;;:::o;12377:::-;12543:4;12581:2;12570:9;12566:18;12558:26;;12630:9;12624:4;12620:20;12616:1;12605:9;12601:17;12594:47;12658:131;12784:4;12658:131;:::i;:::-;12650:139;;12377:419;;;:::o;12802:::-;12968:4;13006:2;12995:9;12991:18;12983:26;;13055:9;13049:4;13045:20;13041:1;13030:9;13026:17;13019:47;13083:131;13209:4;13083:131;:::i;:::-;13075:139;;12802:419;;;:::o;13227:::-;13393:4;13431:2;13420:9;13416:18;13408:26;;13480:9;13474:4;13470:20;13466:1;13455:9;13451:17;13444:47;13508:131;13634:4;13508:131;:::i;:::-;13500:139;;13227:419;;;:::o;13652:::-;13818:4;13856:2;13845:9;13841:18;13833:26;;13905:9;13899:4;13895:20;13891:1;13880:9;13876:17;13869:47;13933:131;14059:4;13933:131;:::i;:::-;13925:139;;13652:419;;;:::o;14077:::-;14243:4;14281:2;14270:9;14266:18;14258:26;;14330:9;14324:4;14320:20;14316:1;14305:9;14301:17;14294:47;14358:131;14484:4;14358:131;:::i;:::-;14350:139;;14077:419;;;:::o;14502:::-;14668:4;14706:2;14695:9;14691:18;14683:26;;14755:9;14749:4;14745:20;14741:1;14730:9;14726:17;14719:47;14783:131;14909:4;14783:131;:::i;:::-;14775:139;;14502:419;;;:::o;14927:::-;15093:4;15131:2;15120:9;15116:18;15108:26;;15180:9;15174:4;15170:20;15166:1;15155:9;15151:17;15144:47;15208:131;15334:4;15208:131;:::i;:::-;15200:139;;14927:419;;;:::o;15352:::-;15518:4;15556:2;15545:9;15541:18;15533:26;;15605:9;15599:4;15595:20;15591:1;15580:9;15576:17;15569:47;15633:131;15759:4;15633:131;:::i;:::-;15625:139;;15352:419;;;:::o;15777:::-;15943:4;15981:2;15970:9;15966:18;15958:26;;16030:9;16024:4;16020:20;16016:1;16005:9;16001:17;15994:47;16058:131;16184:4;16058:131;:::i;:::-;16050:139;;15777:419;;;:::o;16202:::-;16368:4;16406:2;16395:9;16391:18;16383:26;;16455:9;16449:4;16445:20;16441:1;16430:9;16426:17;16419:47;16483:131;16609:4;16483:131;:::i;:::-;16475:139;;16202:419;;;:::o;16627:222::-;16720:4;16758:2;16747:9;16743:18;16735:26;;16771:71;16839:1;16828:9;16824:17;16815:6;16771:71;:::i;:::-;16627:222;;;;:::o;16855:214::-;16944:4;16982:2;16971:9;16967:18;16959:26;;16995:67;17059:1;17048:9;17044:17;17035:6;16995:67;:::i;:::-;16855:214;;;;:::o;17156:99::-;17208:6;17242:5;17236:12;17226:22;;17156:99;;;:::o;17261:169::-;17345:11;17379:6;17374:3;17367:19;17419:4;17414:3;17410:14;17395:29;;17261:169;;;;:::o;17436:305::-;17476:3;17495:20;17513:1;17495:20;:::i;:::-;17490:25;;17529:20;17547:1;17529:20;:::i;:::-;17524:25;;17683:1;17615:66;17611:74;17608:1;17605:81;17602:107;;;17689:18;;:::i;:::-;17602:107;17733:1;17730;17726:9;17719:16;;17436:305;;;;:::o;17747:96::-;17784:7;17813:24;17831:5;17813:24;:::i;:::-;17802:35;;17747:96;;;:::o;17849:90::-;17883:7;17926:5;17919:13;17912:21;17901:32;;17849:90;;;:::o;17945:126::-;17982:7;18022:42;18015:5;18011:54;18000:65;;17945:126;;;:::o;18077:77::-;18114:7;18143:5;18132:16;;18077:77;;;:::o;18160:86::-;18195:7;18235:4;18228:5;18224:16;18213:27;;18160:86;;;:::o;18252:307::-;18320:1;18330:113;18344:6;18341:1;18338:13;18330:113;;;18429:1;18424:3;18420:11;18414:18;18410:1;18405:3;18401:11;18394:39;18366:2;18363:1;18359:10;18354:15;;18330:113;;;18461:6;18458:1;18455:13;18452:101;;;18541:1;18532:6;18527:3;18523:16;18516:27;18452:101;18301:258;18252:307;;;:::o;18565:320::-;18609:6;18646:1;18640:4;18636:12;18626:22;;18693:1;18687:4;18683:12;18714:18;18704:81;;18770:4;18762:6;18758:17;18748:27;;18704:81;18832:2;18824:6;18821:14;18801:18;18798:38;18795:84;;;18851:18;;:::i;:::-;18795:84;18616:269;18565:320;;;:::o;18891:180::-;18939:77;18936:1;18929:88;19036:4;19033:1;19026:15;19060:4;19057:1;19050:15;19077:180;19125:77;19122:1;19115:88;19222:4;19219:1;19212:15;19246:4;19243:1;19236:15;19386:117;19495:1;19492;19485:12;19509:102;19550:6;19601:2;19597:7;19592:2;19585:5;19581:14;19577:28;19567:38;;19509:102;;;:::o;19617:222::-;19757:34;19753:1;19745:6;19741:14;19734:58;19826:5;19821:2;19813:6;19809:15;19802:30;19617:222;:::o;19845:225::-;19985:34;19981:1;19973:6;19969:14;19962:58;20054:8;20049:2;20041:6;20037:15;20030:33;19845:225;:::o;20076:221::-;20216:34;20212:1;20204:6;20200:14;20193:58;20285:4;20280:2;20272:6;20268:15;20261:29;20076:221;:::o;20303:179::-;20443:31;20439:1;20431:6;20427:14;20420:55;20303:179;:::o;20488:225::-;20628:34;20624:1;20616:6;20612:14;20605:58;20697:8;20692:2;20684:6;20680:15;20673:33;20488:225;:::o;20719:175::-;20859:27;20855:1;20847:6;20843:14;20836:51;20719:175;:::o;20900:180::-;21040:32;21036:1;21028:6;21024:14;21017:56;20900:180;:::o;21086:169::-;21226:21;21222:1;21214:6;21210:14;21203:45;21086:169;:::o;21261:182::-;21401:34;21397:1;21389:6;21385:14;21378:58;21261:182;:::o;21449:172::-;21589:24;21585:1;21577:6;21573:14;21566:48;21449:172;:::o;21627:224::-;21767:34;21763:1;21755:6;21751:14;21744:58;21836:7;21831:2;21823:6;21819:15;21812:32;21627:224;:::o;21857:223::-;21997:34;21993:1;21985:6;21981:14;21974:58;22066:6;22061:2;22053:6;22049:15;22042:31;21857:223;:::o;22086:181::-;22226:33;22222:1;22214:6;22210:14;22203:57;22086:181;:::o;22273:224::-;22413:34;22409:1;22401:6;22397:14;22390:58;22482:7;22477:2;22469:6;22465:15;22458:32;22273:224;:::o;22503:181::-;22643:33;22639:1;22631:6;22627:14;22620:57;22503:181;:::o;22690:122::-;22763:24;22781:5;22763:24;:::i;:::-;22756:5;22753:35;22743:63;;22802:1;22799;22792:12;22743:63;22690:122;:::o;22818:::-;22891:24;22909:5;22891:24;:::i;:::-;22884:5;22881:35;22871:63;;22930:1;22927;22920:12;22871:63;22818:122;:::o

Swarm Source

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