ETH Price: $2,418.05 (+0.44%)

Token

Valhalla (Valhalla)
 

Overview

Max Total Supply

420,000,000,000 Valhalla

Holders

71

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
3,456,288,386.062634610047777814 Valhalla

Value
$0.00
0xa24dbdb30fe41496a06d0262c2483d42fbac625c
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:
Valhalla

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-31
*/

/**
 *Submitted for verification at Etherscan.io on 2023-04-14
*/

// Sources flattened with hardhat v2.7.0 https://hardhat.org

// File @openzeppelin/contracts/utils/[email protected]

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.0 (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/[email protected]


// OpenZeppelin Contracts v4.4.0 (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/[email protected]


// OpenZeppelin Contracts v4.4.0 (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/[email protected]


// OpenZeppelin Contracts v4.4.0 (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/[email protected]


// OpenZeppelin Contracts v4.4.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:
     *
     * - `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 {}
}

pragma solidity ^0.8.0;


contract Valhalla is Ownable, ERC20 {
    bool public limited;
    uint256 public maxHoldingAmount;
    uint256 public minHoldingAmount;
    address public uniswapV2Pair;
    mapping(address => bool) public blacklists;
    mapping(address => bool) public whitelist;

    constructor(uint256 _totalSupply) ERC20("Valhalla", "Valhalla") {
        _mint(msg.sender, _totalSupply);
    }

    function blacklist(address _address, bool _isBlacklisting) external onlyOwner {
        blacklists[_address] = _isBlacklisting;
    }

    function addToWhitelist(address[] calldata toAddAddresses) 
    external onlyOwner
    {
        for (uint i = 0; i < toAddAddresses.length; i++) {
            whitelist[toAddAddresses[i]] = true;
        }
    }

    function setRule(bool _limited, address _uniswapV2Pair, uint256 _maxHoldingAmount, uint256 _minHoldingAmount) external onlyOwner {
        limited = _limited;
        uniswapV2Pair = _uniswapV2Pair;
        maxHoldingAmount = _maxHoldingAmount;
        minHoldingAmount = _minHoldingAmount;
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) override internal virtual {
        require(!blacklists[to] && !blacklists[from], "Blacklisted");

        if (uniswapV2Pair == address(0)) {
            require(from == owner() || to == owner(), "trading is not started");
            return;
        }

        if (limited && from == uniswapV2Pair) {
            if (!whitelist[to] && !whitelist[from] ){
                require(super.balanceOf(to) + amount <= maxHoldingAmount && super.balanceOf(to) + amount >= minHoldingAmount, "Forbid");
            }
        }
    }

    function burn(uint256 value) external {
        _burn(msg.sender, value);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"_totalSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"toAddAddresses","type":"address[]"}],"name":"addToWhitelist","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":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isBlacklisting","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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":"limited","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minHoldingAmount","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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_limited","type":"bool"},{"internalType":"address","name":"_uniswapV2Pair","type":"address"},{"internalType":"uint256","name":"_maxHoldingAmount","type":"uint256"},{"internalType":"uint256","name":"_minHoldingAmount","type":"uint256"}],"name":"setRule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b50604051620034b7380380620034b78339818101604052810190620000379190620007c6565b6040518060400160405280600881526020017f56616c68616c6c610000000000000000000000000000000000000000000000008152506040518060400160405280600881526020017f56616c68616c6c61000000000000000000000000000000000000000000000000815250620000c3620000b76200010260201b60201c565b6200010a60201b60201c565b8160049081620000d4919062000a68565b508060059081620000e6919062000a68565b505050620000fb3382620001ce60201b60201c565b5062000dc0565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000240576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002379062000bb0565b60405180910390fd5b62000254600083836200034760201b60201c565b806003600082825462000268919062000c01565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620002c0919062000c01565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000327919062000c4d565b60405180910390a362000343600083836200070f60201b60201c565b5050565b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015620003ec5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6200042e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004259062000cba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036200055157620004956200071460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480620005095750620004da6200071460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6200054b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005429062000d2c565b60405180910390fd5b6200070a565b600660009054906101000a900460ff168015620005bb5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156200070957600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015620006665750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1562000708576007548162000686846200073d60201b620009331760201c565b62000692919062000c01565b11158015620006c5575060085481620006b6846200073d60201b620009331760201c565b620006c2919062000c01565b10155b62000707576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006fe9062000d9e565b60405180910390fd5b5b5b5b505050565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080fd5b6000819050919050565b620007a0816200078b565b8114620007ac57600080fd5b50565b600081519050620007c08162000795565b92915050565b600060208284031215620007df57620007de62000786565b5b6000620007ef84828501620007af565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200087a57607f821691505b60208210810362000890576200088f62000832565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620008fa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008bb565b620009068683620008bb565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000949620009436200093d846200078b565b6200091e565b6200078b565b9050919050565b6000819050919050565b620009658362000928565b6200097d620009748262000950565b848454620008c8565b825550505050565b600090565b6200099462000985565b620009a18184846200095a565b505050565b5b81811015620009c957620009bd6000826200098a565b600181019050620009a7565b5050565b601f82111562000a1857620009e28162000896565b620009ed84620008ab565b81016020851015620009fd578190505b62000a1562000a0c85620008ab565b830182620009a6565b50505b505050565b600082821c905092915050565b600062000a3d6000198460080262000a1d565b1980831691505092915050565b600062000a58838362000a2a565b9150826002028217905092915050565b62000a7382620007f8565b67ffffffffffffffff81111562000a8f5762000a8e62000803565b5b62000a9b825462000861565b62000aa8828285620009cd565b600060209050601f83116001811462000ae0576000841562000acb578287015190505b62000ad7858262000a4a565b86555062000b47565b601f19841662000af08662000896565b60005b8281101562000b1a5784890151825560018201915060208501945060208101905062000af3565b8683101562000b3a578489015162000b36601f89168262000a2a565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000b98601f8362000b4f565b915062000ba58262000b60565b602082019050919050565b6000602082019050818103600083015262000bcb8162000b89565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000c0e826200078b565b915062000c1b836200078b565b925082820190508082111562000c365762000c3562000bd2565b5b92915050565b62000c47816200078b565b82525050565b600060208201905062000c64600083018462000c3c565b92915050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b600062000ca2600b8362000b4f565b915062000caf8262000c6a565b602082019050919050565b6000602082019050818103600083015262000cd58162000c93565b9050919050565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b600062000d1460168362000b4f565b915062000d218262000cdc565b602082019050919050565b6000602082019050818103600083015262000d478162000d05565b9050919050565b7f466f726269640000000000000000000000000000000000000000000000000000600082015250565b600062000d8660068362000b4f565b915062000d938262000d4e565b602082019050919050565b6000602082019050818103600083015262000db98162000d77565b9050919050565b6126e78062000dd06000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c806370a08231116100c357806395d89b411161007c57806395d89b41146103b75780639b19251a146103d5578063a457c2d714610405578063a9059cbb14610435578063dd62ed3e14610465578063f2fde38b1461049557610158565b806370a0823114610307578063715018a6146103375780637f64978314610341578063860a32ec1461035d57806389f9a1d31461037b5780638da5cb5b1461039957610158565b8063313ce56711610115578063313ce5671461024757806339509351146102655780633aa633aa14610295578063404e5129146102b157806342966c68146102cd57806349bd5a5e146102e957610158565b806306fdde031461015d578063095ea7b31461017b57806316c02129146101ab57806318160ddd146101db5780631ab99e12146101f957806323b872dd14610217575b600080fd5b6101656104b1565b60405161017291906119ac565b60405180910390f35b61019560048036038101906101909190611a6c565b610543565b6040516101a29190611ac7565b60405180910390f35b6101c560048036038101906101c09190611ae2565b610561565b6040516101d29190611ac7565b60405180910390f35b6101e3610581565b6040516101f09190611b1e565b60405180910390f35b61020161058b565b60405161020e9190611b1e565b60405180910390f35b610231600480360381019061022c9190611b39565b610591565b60405161023e9190611ac7565b60405180910390f35b61024f610689565b60405161025c9190611ba8565b60405180910390f35b61027f600480360381019061027a9190611a6c565b610692565b60405161028c9190611ac7565b60405180910390f35b6102af60048036038101906102aa9190611bef565b61073e565b005b6102cb60048036038101906102c69190611c56565b610829565b005b6102e760048036038101906102e29190611c96565b610900565b005b6102f161090d565b6040516102fe9190611cd2565b60405180910390f35b610321600480360381019061031c9190611ae2565b610933565b60405161032e9190611b1e565b60405180910390f35b61033f61097c565b005b61035b60048036038101906103569190611d52565b610a04565b005b610365610b25565b6040516103729190611ac7565b60405180910390f35b610383610b38565b6040516103909190611b1e565b60405180910390f35b6103a1610b3e565b6040516103ae9190611cd2565b60405180910390f35b6103bf610b67565b6040516103cc91906119ac565b60405180910390f35b6103ef60048036038101906103ea9190611ae2565b610bf9565b6040516103fc9190611ac7565b60405180910390f35b61041f600480360381019061041a9190611a6c565b610c19565b60405161042c9190611ac7565b60405180910390f35b61044f600480360381019061044a9190611a6c565b610d04565b60405161045c9190611ac7565b60405180910390f35b61047f600480360381019061047a9190611d9f565b610d22565b60405161048c9190611b1e565b60405180910390f35b6104af60048036038101906104aa9190611ae2565b610da9565b005b6060600480546104c090611e0e565b80601f01602080910402602001604051908101604052809291908181526020018280546104ec90611e0e565b80156105395780601f1061050e57610100808354040283529160200191610539565b820191906000526020600020905b81548152906001019060200180831161051c57829003601f168201915b5050505050905090565b6000610557610550610ea0565b8484610ea8565b6001905092915050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6000600354905090565b60085481565b600061059e848484611071565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105e9610ea0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610669576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066090611eb1565b60405180910390fd5b61067d85610675610ea0565b858403610ea8565b60019150509392505050565b60006012905090565b600061073461069f610ea0565b8484600260006106ad610ea0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461072f9190611f00565b610ea8565b6001905092915050565b610746610ea0565b73ffffffffffffffffffffffffffffffffffffffff16610764610b3e565b73ffffffffffffffffffffffffffffffffffffffff16146107ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b190611f80565b60405180910390fd5b83600660006101000a81548160ff02191690831515021790555082600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816007819055508060088190555050505050565b610831610ea0565b73ffffffffffffffffffffffffffffffffffffffff1661084f610b3e565b73ffffffffffffffffffffffffffffffffffffffff16146108a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089c90611f80565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61090a33826112f3565b50565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610984610ea0565b73ffffffffffffffffffffffffffffffffffffffff166109a2610b3e565b73ffffffffffffffffffffffffffffffffffffffff16146109f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ef90611f80565b60405180910390fd5b610a0260006114cb565b565b610a0c610ea0565b73ffffffffffffffffffffffffffffffffffffffff16610a2a610b3e565b73ffffffffffffffffffffffffffffffffffffffff1614610a80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7790611f80565b60405180910390fd5b60005b82829050811015610b20576001600b6000858585818110610aa757610aa6611fa0565b5b9050602002016020810190610abc9190611ae2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610b1890611fcf565b915050610a83565b505050565b600660009054906101000a900460ff1681565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610b7690611e0e565b80601f0160208091040260200160405190810160405280929190818152602001828054610ba290611e0e565b8015610bef5780601f10610bc457610100808354040283529160200191610bef565b820191906000526020600020905b815481529060010190602001808311610bd257829003601f168201915b5050505050905090565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008060026000610c28610ea0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdc90612089565b60405180910390fd5b610cf9610cf0610ea0565b85858403610ea8565b600191505092915050565b6000610d18610d11610ea0565b8484611071565b6001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610db1610ea0565b73ffffffffffffffffffffffffffffffffffffffff16610dcf610b3e565b73ffffffffffffffffffffffffffffffffffffffff1614610e25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1c90611f80565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8b9061211b565b60405180910390fd5b610e9d816114cb565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0e906121ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7d9061223f565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110649190611b1e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d7906122d1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361114f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114690612363565b60405180910390fd5b61115a83838361158f565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156111e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d8906123f5565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112769190611f00565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112da9190611b1e565b60405180910390a36112ed848484611917565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611362576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135990612487565b60405180910390fd5b61136e8260008361158f565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156113f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ec90612519565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816003600082825461144d9190612539565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114b29190611b1e565b60405180910390a36114c683600084611917565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116335750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611672576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611669906125b9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361177f576116d0610b3e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061173b575061170c610b3e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b61177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177190612625565b60405180910390fd5b611912565b600660009054906101000a900460ff1680156117e85750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561191157600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118915750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561191057600754816118a384610933565b6118ad9190611f00565b111580156118d05750600854816118c384610933565b6118cd9190611f00565b10155b61190f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190690612691565b60405180910390fd5b5b5b5b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561195657808201518184015260208101905061193b565b60008484015250505050565b6000601f19601f8301169050919050565b600061197e8261191c565b6119888185611927565b9350611998818560208601611938565b6119a181611962565b840191505092915050565b600060208201905081810360008301526119c68184611973565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611a03826119d8565b9050919050565b611a13816119f8565b8114611a1e57600080fd5b50565b600081359050611a3081611a0a565b92915050565b6000819050919050565b611a4981611a36565b8114611a5457600080fd5b50565b600081359050611a6681611a40565b92915050565b60008060408385031215611a8357611a826119ce565b5b6000611a9185828601611a21565b9250506020611aa285828601611a57565b9150509250929050565b60008115159050919050565b611ac181611aac565b82525050565b6000602082019050611adc6000830184611ab8565b92915050565b600060208284031215611af857611af76119ce565b5b6000611b0684828501611a21565b91505092915050565b611b1881611a36565b82525050565b6000602082019050611b336000830184611b0f565b92915050565b600080600060608486031215611b5257611b516119ce565b5b6000611b6086828701611a21565b9350506020611b7186828701611a21565b9250506040611b8286828701611a57565b9150509250925092565b600060ff82169050919050565b611ba281611b8c565b82525050565b6000602082019050611bbd6000830184611b99565b92915050565b611bcc81611aac565b8114611bd757600080fd5b50565b600081359050611be981611bc3565b92915050565b60008060008060808587031215611c0957611c086119ce565b5b6000611c1787828801611bda565b9450506020611c2887828801611a21565b9350506040611c3987828801611a57565b9250506060611c4a87828801611a57565b91505092959194509250565b60008060408385031215611c6d57611c6c6119ce565b5b6000611c7b85828601611a21565b9250506020611c8c85828601611bda565b9150509250929050565b600060208284031215611cac57611cab6119ce565b5b6000611cba84828501611a57565b91505092915050565b611ccc816119f8565b82525050565b6000602082019050611ce76000830184611cc3565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611d1257611d11611ced565b5b8235905067ffffffffffffffff811115611d2f57611d2e611cf2565b5b602083019150836020820283011115611d4b57611d4a611cf7565b5b9250929050565b60008060208385031215611d6957611d686119ce565b5b600083013567ffffffffffffffff811115611d8757611d866119d3565b5b611d9385828601611cfc565b92509250509250929050565b60008060408385031215611db657611db56119ce565b5b6000611dc485828601611a21565b9250506020611dd585828601611a21565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611e2657607f821691505b602082108103611e3957611e38611ddf565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611e9b602883611927565b9150611ea682611e3f565b604082019050919050565b60006020820190508181036000830152611eca81611e8e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611f0b82611a36565b9150611f1683611a36565b9250828201905080821115611f2e57611f2d611ed1565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611f6a602083611927565b9150611f7582611f34565b602082019050919050565b60006020820190508181036000830152611f9981611f5d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000611fda82611a36565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361200c5761200b611ed1565b5b600182019050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612073602583611927565b915061207e82612017565b604082019050919050565b600060208201905081810360008301526120a281612066565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612105602683611927565b9150612110826120a9565b604082019050919050565b60006020820190508181036000830152612134816120f8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612197602483611927565b91506121a28261213b565b604082019050919050565b600060208201905081810360008301526121c68161218a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612229602283611927565b9150612234826121cd565b604082019050919050565b600060208201905081810360008301526122588161221c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006122bb602583611927565b91506122c68261225f565b604082019050919050565b600060208201905081810360008301526122ea816122ae565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061234d602383611927565b9150612358826122f1565b604082019050919050565b6000602082019050818103600083015261237c81612340565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006123df602683611927565b91506123ea82612383565b604082019050919050565b6000602082019050818103600083015261240e816123d2565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612471602183611927565b915061247c82612415565b604082019050919050565b600060208201905081810360008301526124a081612464565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000612503602283611927565b915061250e826124a7565b604082019050919050565b60006020820190508181036000830152612532816124f6565b9050919050565b600061254482611a36565b915061254f83611a36565b925082820390508181111561256757612566611ed1565b5b92915050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b60006125a3600b83611927565b91506125ae8261256d565b602082019050919050565b600060208201905081810360008301526125d281612596565b9050919050565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b600061260f601683611927565b915061261a826125d9565b602082019050919050565b6000602082019050818103600083015261263e81612602565b9050919050565b7f466f726269640000000000000000000000000000000000000000000000000000600082015250565b600061267b600683611927565b915061268682612645565b602082019050919050565b600060208201905081810360008301526126aa8161266e565b905091905056fea2646970667358221220ffb09d90e7f24aedcec724739538ce4053fce5b850d1ebe73cf6edc03c5e892664736f6c6343000812003300000000000000000000000000000000000000054d17db76321263eca0000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101585760003560e01c806370a08231116100c357806395d89b411161007c57806395d89b41146103b75780639b19251a146103d5578063a457c2d714610405578063a9059cbb14610435578063dd62ed3e14610465578063f2fde38b1461049557610158565b806370a0823114610307578063715018a6146103375780637f64978314610341578063860a32ec1461035d57806389f9a1d31461037b5780638da5cb5b1461039957610158565b8063313ce56711610115578063313ce5671461024757806339509351146102655780633aa633aa14610295578063404e5129146102b157806342966c68146102cd57806349bd5a5e146102e957610158565b806306fdde031461015d578063095ea7b31461017b57806316c02129146101ab57806318160ddd146101db5780631ab99e12146101f957806323b872dd14610217575b600080fd5b6101656104b1565b60405161017291906119ac565b60405180910390f35b61019560048036038101906101909190611a6c565b610543565b6040516101a29190611ac7565b60405180910390f35b6101c560048036038101906101c09190611ae2565b610561565b6040516101d29190611ac7565b60405180910390f35b6101e3610581565b6040516101f09190611b1e565b60405180910390f35b61020161058b565b60405161020e9190611b1e565b60405180910390f35b610231600480360381019061022c9190611b39565b610591565b60405161023e9190611ac7565b60405180910390f35b61024f610689565b60405161025c9190611ba8565b60405180910390f35b61027f600480360381019061027a9190611a6c565b610692565b60405161028c9190611ac7565b60405180910390f35b6102af60048036038101906102aa9190611bef565b61073e565b005b6102cb60048036038101906102c69190611c56565b610829565b005b6102e760048036038101906102e29190611c96565b610900565b005b6102f161090d565b6040516102fe9190611cd2565b60405180910390f35b610321600480360381019061031c9190611ae2565b610933565b60405161032e9190611b1e565b60405180910390f35b61033f61097c565b005b61035b60048036038101906103569190611d52565b610a04565b005b610365610b25565b6040516103729190611ac7565b60405180910390f35b610383610b38565b6040516103909190611b1e565b60405180910390f35b6103a1610b3e565b6040516103ae9190611cd2565b60405180910390f35b6103bf610b67565b6040516103cc91906119ac565b60405180910390f35b6103ef60048036038101906103ea9190611ae2565b610bf9565b6040516103fc9190611ac7565b60405180910390f35b61041f600480360381019061041a9190611a6c565b610c19565b60405161042c9190611ac7565b60405180910390f35b61044f600480360381019061044a9190611a6c565b610d04565b60405161045c9190611ac7565b60405180910390f35b61047f600480360381019061047a9190611d9f565b610d22565b60405161048c9190611b1e565b60405180910390f35b6104af60048036038101906104aa9190611ae2565b610da9565b005b6060600480546104c090611e0e565b80601f01602080910402602001604051908101604052809291908181526020018280546104ec90611e0e565b80156105395780601f1061050e57610100808354040283529160200191610539565b820191906000526020600020905b81548152906001019060200180831161051c57829003601f168201915b5050505050905090565b6000610557610550610ea0565b8484610ea8565b6001905092915050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6000600354905090565b60085481565b600061059e848484611071565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105e9610ea0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610669576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066090611eb1565b60405180910390fd5b61067d85610675610ea0565b858403610ea8565b60019150509392505050565b60006012905090565b600061073461069f610ea0565b8484600260006106ad610ea0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461072f9190611f00565b610ea8565b6001905092915050565b610746610ea0565b73ffffffffffffffffffffffffffffffffffffffff16610764610b3e565b73ffffffffffffffffffffffffffffffffffffffff16146107ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b190611f80565b60405180910390fd5b83600660006101000a81548160ff02191690831515021790555082600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816007819055508060088190555050505050565b610831610ea0565b73ffffffffffffffffffffffffffffffffffffffff1661084f610b3e565b73ffffffffffffffffffffffffffffffffffffffff16146108a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089c90611f80565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61090a33826112f3565b50565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610984610ea0565b73ffffffffffffffffffffffffffffffffffffffff166109a2610b3e565b73ffffffffffffffffffffffffffffffffffffffff16146109f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ef90611f80565b60405180910390fd5b610a0260006114cb565b565b610a0c610ea0565b73ffffffffffffffffffffffffffffffffffffffff16610a2a610b3e565b73ffffffffffffffffffffffffffffffffffffffff1614610a80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7790611f80565b60405180910390fd5b60005b82829050811015610b20576001600b6000858585818110610aa757610aa6611fa0565b5b9050602002016020810190610abc9190611ae2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610b1890611fcf565b915050610a83565b505050565b600660009054906101000a900460ff1681565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610b7690611e0e565b80601f0160208091040260200160405190810160405280929190818152602001828054610ba290611e0e565b8015610bef5780601f10610bc457610100808354040283529160200191610bef565b820191906000526020600020905b815481529060010190602001808311610bd257829003601f168201915b5050505050905090565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008060026000610c28610ea0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdc90612089565b60405180910390fd5b610cf9610cf0610ea0565b85858403610ea8565b600191505092915050565b6000610d18610d11610ea0565b8484611071565b6001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610db1610ea0565b73ffffffffffffffffffffffffffffffffffffffff16610dcf610b3e565b73ffffffffffffffffffffffffffffffffffffffff1614610e25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1c90611f80565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8b9061211b565b60405180910390fd5b610e9d816114cb565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0e906121ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7d9061223f565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110649190611b1e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d7906122d1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361114f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114690612363565b60405180910390fd5b61115a83838361158f565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156111e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d8906123f5565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112769190611f00565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112da9190611b1e565b60405180910390a36112ed848484611917565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611362576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135990612487565b60405180910390fd5b61136e8260008361158f565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156113f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ec90612519565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816003600082825461144d9190612539565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114b29190611b1e565b60405180910390a36114c683600084611917565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116335750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611672576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611669906125b9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361177f576116d0610b3e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061173b575061170c610b3e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b61177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177190612625565b60405180910390fd5b611912565b600660009054906101000a900460ff1680156117e85750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561191157600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118915750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561191057600754816118a384610933565b6118ad9190611f00565b111580156118d05750600854816118c384610933565b6118cd9190611f00565b10155b61190f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190690612691565b60405180910390fd5b5b5b5b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561195657808201518184015260208101905061193b565b60008484015250505050565b6000601f19601f8301169050919050565b600061197e8261191c565b6119888185611927565b9350611998818560208601611938565b6119a181611962565b840191505092915050565b600060208201905081810360008301526119c68184611973565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611a03826119d8565b9050919050565b611a13816119f8565b8114611a1e57600080fd5b50565b600081359050611a3081611a0a565b92915050565b6000819050919050565b611a4981611a36565b8114611a5457600080fd5b50565b600081359050611a6681611a40565b92915050565b60008060408385031215611a8357611a826119ce565b5b6000611a9185828601611a21565b9250506020611aa285828601611a57565b9150509250929050565b60008115159050919050565b611ac181611aac565b82525050565b6000602082019050611adc6000830184611ab8565b92915050565b600060208284031215611af857611af76119ce565b5b6000611b0684828501611a21565b91505092915050565b611b1881611a36565b82525050565b6000602082019050611b336000830184611b0f565b92915050565b600080600060608486031215611b5257611b516119ce565b5b6000611b6086828701611a21565b9350506020611b7186828701611a21565b9250506040611b8286828701611a57565b9150509250925092565b600060ff82169050919050565b611ba281611b8c565b82525050565b6000602082019050611bbd6000830184611b99565b92915050565b611bcc81611aac565b8114611bd757600080fd5b50565b600081359050611be981611bc3565b92915050565b60008060008060808587031215611c0957611c086119ce565b5b6000611c1787828801611bda565b9450506020611c2887828801611a21565b9350506040611c3987828801611a57565b9250506060611c4a87828801611a57565b91505092959194509250565b60008060408385031215611c6d57611c6c6119ce565b5b6000611c7b85828601611a21565b9250506020611c8c85828601611bda565b9150509250929050565b600060208284031215611cac57611cab6119ce565b5b6000611cba84828501611a57565b91505092915050565b611ccc816119f8565b82525050565b6000602082019050611ce76000830184611cc3565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611d1257611d11611ced565b5b8235905067ffffffffffffffff811115611d2f57611d2e611cf2565b5b602083019150836020820283011115611d4b57611d4a611cf7565b5b9250929050565b60008060208385031215611d6957611d686119ce565b5b600083013567ffffffffffffffff811115611d8757611d866119d3565b5b611d9385828601611cfc565b92509250509250929050565b60008060408385031215611db657611db56119ce565b5b6000611dc485828601611a21565b9250506020611dd585828601611a21565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611e2657607f821691505b602082108103611e3957611e38611ddf565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611e9b602883611927565b9150611ea682611e3f565b604082019050919050565b60006020820190508181036000830152611eca81611e8e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611f0b82611a36565b9150611f1683611a36565b9250828201905080821115611f2e57611f2d611ed1565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611f6a602083611927565b9150611f7582611f34565b602082019050919050565b60006020820190508181036000830152611f9981611f5d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000611fda82611a36565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361200c5761200b611ed1565b5b600182019050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612073602583611927565b915061207e82612017565b604082019050919050565b600060208201905081810360008301526120a281612066565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612105602683611927565b9150612110826120a9565b604082019050919050565b60006020820190508181036000830152612134816120f8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612197602483611927565b91506121a28261213b565b604082019050919050565b600060208201905081810360008301526121c68161218a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612229602283611927565b9150612234826121cd565b604082019050919050565b600060208201905081810360008301526122588161221c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006122bb602583611927565b91506122c68261225f565b604082019050919050565b600060208201905081810360008301526122ea816122ae565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061234d602383611927565b9150612358826122f1565b604082019050919050565b6000602082019050818103600083015261237c81612340565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006123df602683611927565b91506123ea82612383565b604082019050919050565b6000602082019050818103600083015261240e816123d2565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612471602183611927565b915061247c82612415565b604082019050919050565b600060208201905081810360008301526124a081612464565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000612503602283611927565b915061250e826124a7565b604082019050919050565b60006020820190508181036000830152612532816124f6565b9050919050565b600061254482611a36565b915061254f83611a36565b925082820390508181111561256757612566611ed1565b5b92915050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b60006125a3600b83611927565b91506125ae8261256d565b602082019050919050565b600060208201905081810360008301526125d281612596565b9050919050565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b600061260f601683611927565b915061261a826125d9565b602082019050919050565b6000602082019050818103600083015261263e81612602565b9050919050565b7f466f726269640000000000000000000000000000000000000000000000000000600082015250565b600061267b600683611927565b915061268682612645565b602082019050919050565b600060208201905081810360008301526126aa8161266e565b905091905056fea2646970667358221220ffb09d90e7f24aedcec724739538ce4053fce5b850d1ebe73cf6edc03c5e892664736f6c63430008120033

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

00000000000000000000000000000000000000054d17db76321263eca0000000

-----Decoded View---------------
Arg [0] : _totalSupply (uint256): 420000000000000000000000000000

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000054d17db76321263eca0000000


Deployed Bytecode Sourcemap

19373:1812:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9383:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11550:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19553:42;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10503:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19480:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12201:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10345:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13102:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20143:301;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19774:135;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21101:81;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19518:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10674:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2784:103;;;:::i;:::-;;19917:218;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19416:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19442:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2133:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9602:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19602:41;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13820:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11014:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11252:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3042:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9383:100;9437:13;9470:5;9463:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9383:100;:::o;11550:169::-;11633:4;11650:39;11659:12;:10;:12::i;:::-;11673:7;11682:6;11650:8;:39::i;:::-;11707:4;11700:11;;11550:169;;;;:::o;19553:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;10503:108::-;10564:7;10591:12;;10584:19;;10503:108;:::o;19480:31::-;;;;:::o;12201:492::-;12341:4;12358:36;12368:6;12376:9;12387:6;12358:9;:36::i;:::-;12407:24;12434:11;:19;12446:6;12434:19;;;;;;;;;;;;;;;:33;12454:12;:10;:12::i;:::-;12434:33;;;;;;;;;;;;;;;;12407:60;;12506:6;12486:16;:26;;12478:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12593:57;12602:6;12610:12;:10;:12::i;:::-;12643:6;12624:16;:25;12593:8;:57::i;:::-;12681:4;12674:11;;;12201:492;;;;;:::o;10345:93::-;10403:5;10428:2;10421:9;;10345:93;:::o;13102:215::-;13190:4;13207:80;13216:12;:10;:12::i;:::-;13230:7;13276:10;13239:11;:25;13251:12;:10;:12::i;:::-;13239:25;;;;;;;;;;;;;;;:34;13265:7;13239:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;13207:8;:80::i;:::-;13305:4;13298:11;;13102:215;;;;:::o;20143:301::-;2364:12;:10;:12::i;:::-;2353:23;;:7;:5;:7::i;:::-;:23;;;2345:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20293:8:::1;20283:7;;:18;;;;;;;;;;;;;;;;;;20328:14;20312:13;;:30;;;;;;;;;;;;;;;;;;20372:17;20353:16;:36;;;;20419:17;20400:16;:36;;;;20143:301:::0;;;;:::o;19774:135::-;2364:12;:10;:12::i;:::-;2353:23;;:7;:5;:7::i;:::-;:23;;;2345:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19886:15:::1;19863:10;:20;19874:8;19863:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;19774:135:::0;;:::o;21101:81::-;21150:24;21156:10;21168:5;21150;:24::i;:::-;21101:81;:::o;19518:28::-;;;;;;;;;;;;;:::o;10674:127::-;10748:7;10775:9;:18;10785:7;10775:18;;;;;;;;;;;;;;;;10768:25;;10674:127;;;:::o;2784:103::-;2364:12;:10;:12::i;:::-;2353:23;;:7;:5;:7::i;:::-;:23;;;2345:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2849:30:::1;2876:1;2849:18;:30::i;:::-;2784:103::o:0;19917:218::-;2364:12;:10;:12::i;:::-;2353:23;;:7;:5;:7::i;:::-;:23;;;2345:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20022:6:::1;20017:111;20038:14;;:21;;20034:1;:25;20017:111;;;20112:4;20081:9;:28;20091:14;;20106:1;20091:17;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;20081:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;20061:3;;;;;:::i;:::-;;;;20017:111;;;;19917:218:::0;;:::o;19416:19::-;;;;;;;;;;;;;:::o;19442:31::-;;;;:::o;2133:87::-;2179:7;2206:6;;;;;;;;;;;2199:13;;2133:87;:::o;9602:104::-;9658:13;9691:7;9684:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9602:104;:::o;19602:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;13820:413::-;13913:4;13930:24;13957:11;:25;13969:12;:10;:12::i;:::-;13957:25;;;;;;;;;;;;;;;:34;13983:7;13957:34;;;;;;;;;;;;;;;;13930:61;;14030:15;14010:16;:35;;14002:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14123:67;14132:12;:10;:12::i;:::-;14146:7;14174:15;14155:16;:34;14123:8;:67::i;:::-;14221:4;14214:11;;;13820:413;;;;:::o;11014:175::-;11100:4;11117:42;11127:12;:10;:12::i;:::-;11141:9;11152:6;11117:9;:42::i;:::-;11177:4;11170:11;;11014:175;;;;:::o;11252:151::-;11341:7;11368:11;:18;11380:5;11368:18;;;;;;;;;;;;;;;:27;11387:7;11368:27;;;;;;;;;;;;;;;;11361:34;;11252:151;;;;:::o;3042:201::-;2364:12;:10;:12::i;:::-;2353:23;;:7;:5;:7::i;:::-;:23;;;2345:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3151:1:::1;3131:22;;:8;:22;;::::0;3123:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3207:28;3226:8;3207:18;:28::i;:::-;3042:201:::0;:::o;851:98::-;904:7;931:10;924:17;;851:98;:::o;17504:380::-;17657:1;17640:19;;:5;:19;;;17632:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17738:1;17719:21;;:7;:21;;;17711:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17822:6;17792:11;:18;17804:5;17792:18;;;;;;;;;;;;;;;:27;17811:7;17792:27;;;;;;;;;;;;;;;:36;;;;17860:7;17844:32;;17853:5;17844:32;;;17869:6;17844:32;;;;;;:::i;:::-;;;;;;;;17504:380;;;:::o;14723:733::-;14881:1;14863:20;;:6;:20;;;14855:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14965:1;14944:23;;:9;:23;;;14936:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15020:47;15041:6;15049:9;15060:6;15020:20;:47::i;:::-;15080:21;15104:9;:17;15114:6;15104:17;;;;;;;;;;;;;;;;15080:41;;15157:6;15140:13;:23;;15132:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;15278:6;15262:13;:22;15242:9;:17;15252:6;15242:17;;;;;;;;;;;;;;;:42;;;;15330:6;15306:9;:20;15316:9;15306:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;15371:9;15354:35;;15363:6;15354:35;;;15382:6;15354:35;;;;;;:::i;:::-;;;;;;;;15402:46;15422:6;15430:9;15441:6;15402:19;:46::i;:::-;14844:612;14723:733;;;:::o;16475:591::-;16578:1;16559:21;;:7;:21;;;16551:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16631:49;16652:7;16669:1;16673:6;16631:20;:49::i;:::-;16693:22;16718:9;:18;16728:7;16718:18;;;;;;;;;;;;;;;;16693:43;;16773:6;16755:14;:24;;16747:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16892:6;16875:14;:23;16854:9;:18;16864:7;16854:18;;;;;;;;;;;;;;;:44;;;;16936:6;16920:12;;:22;;;;;;;:::i;:::-;;;;;;;;16986:1;16960:37;;16969:7;16960:37;;;16990:6;16960:37;;;;;;:::i;:::-;;;;;;;;17010:48;17030:7;17047:1;17051:6;17010:19;:48::i;:::-;16540:526;16475:591;;:::o;3403:191::-;3477:16;3496:6;;;;;;;;;;;3477:25;;3522:8;3513:6;;:17;;;;;;;;;;;;;;;;;;3577:8;3546:40;;3567:8;3546:40;;;;;;;;;;;;3466:128;3403:191;:::o;20452:641::-;20604:10;:14;20615:2;20604:14;;;;;;;;;;;;;;;;;;;;;;;;;20603:15;:36;;;;;20623:10;:16;20634:4;20623:16;;;;;;;;;;;;;;;;;;;;;;;;;20622:17;20603:36;20595:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;20697:1;20672:27;;:13;;;;;;;;;;;:27;;;20668:148;;20732:7;:5;:7::i;:::-;20724:15;;:4;:15;;;:32;;;;20749:7;:5;:7::i;:::-;20743:13;;:2;:13;;;20724:32;20716:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20798:7;;20668:148;20832:7;;;;;;;;;;;:32;;;;;20851:13;;;;;;;;;;;20843:21;;:4;:21;;;20832:32;20828:258;;;20886:9;:13;20896:2;20886:13;;;;;;;;;;;;;;;;;;;;;;;;;20885:14;:34;;;;;20904:9;:15;20914:4;20904:15;;;;;;;;;;;;;;;;;;;;;;;;;20903:16;20885:34;20881:194;;;20980:16;;20970:6;20948:19;20964:2;20948:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;:100;;;;;21032:16;;21022:6;21000:19;21016:2;21000:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;20948:100;20940:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;20881:194;20828:258;20452:641;;;;:::o;19213:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:116::-;5258:21;5273:5;5258:21;:::i;:::-;5251:5;5248:32;5238:60;;5294:1;5291;5284:12;5238:60;5188:116;:::o;5310:133::-;5353:5;5391:6;5378:20;5369:29;;5407:30;5431:5;5407:30;:::i;:::-;5310:133;;;;:::o;5449:759::-;5532:6;5540;5548;5556;5605:3;5593:9;5584:7;5580:23;5576:33;5573:120;;;5612:79;;:::i;:::-;5573:120;5732:1;5757:50;5799:7;5790:6;5779:9;5775:22;5757:50;:::i;:::-;5747:60;;5703:114;5856:2;5882:53;5927:7;5918:6;5907:9;5903:22;5882:53;:::i;:::-;5872:63;;5827:118;5984:2;6010:53;6055:7;6046:6;6035:9;6031:22;6010:53;:::i;:::-;6000:63;;5955:118;6112:2;6138:53;6183:7;6174:6;6163:9;6159:22;6138:53;:::i;:::-;6128:63;;6083:118;5449:759;;;;;;;:::o;6214:468::-;6279:6;6287;6336:2;6324:9;6315:7;6311:23;6307:32;6304:119;;;6342:79;;:::i;:::-;6304:119;6462:1;6487:53;6532:7;6523:6;6512:9;6508:22;6487:53;:::i;:::-;6477:63;;6433:117;6589:2;6615:50;6657:7;6648:6;6637:9;6633:22;6615:50;:::i;:::-;6605:60;;6560:115;6214:468;;;;;:::o;6688:329::-;6747:6;6796:2;6784:9;6775:7;6771:23;6767:32;6764:119;;;6802:79;;:::i;:::-;6764:119;6922:1;6947:53;6992:7;6983:6;6972:9;6968:22;6947:53;:::i;:::-;6937:63;;6893:117;6688:329;;;;:::o;7023:118::-;7110:24;7128:5;7110:24;:::i;:::-;7105:3;7098:37;7023:118;;:::o;7147:222::-;7240:4;7278:2;7267:9;7263:18;7255:26;;7291:71;7359:1;7348:9;7344:17;7335:6;7291:71;:::i;:::-;7147:222;;;;:::o;7375:117::-;7484:1;7481;7474:12;7498:117;7607:1;7604;7597:12;7621:117;7730:1;7727;7720:12;7761:568;7834:8;7844:6;7894:3;7887:4;7879:6;7875:17;7871:27;7861:122;;7902:79;;:::i;:::-;7861:122;8015:6;8002:20;7992:30;;8045:18;8037:6;8034:30;8031:117;;;8067:79;;:::i;:::-;8031:117;8181:4;8173:6;8169:17;8157:29;;8235:3;8227:4;8219:6;8215:17;8205:8;8201:32;8198:41;8195:128;;;8242:79;;:::i;:::-;8195:128;7761:568;;;;;:::o;8335:559::-;8421:6;8429;8478:2;8466:9;8457:7;8453:23;8449:32;8446:119;;;8484:79;;:::i;:::-;8446:119;8632:1;8621:9;8617:17;8604:31;8662:18;8654:6;8651:30;8648:117;;;8684:79;;:::i;:::-;8648:117;8797:80;8869:7;8860:6;8849:9;8845:22;8797:80;:::i;:::-;8779:98;;;;8575:312;8335:559;;;;;:::o;8900:474::-;8968:6;8976;9025:2;9013:9;9004:7;9000:23;8996:32;8993:119;;;9031:79;;:::i;:::-;8993:119;9151:1;9176:53;9221:7;9212:6;9201:9;9197:22;9176:53;:::i;:::-;9166:63;;9122:117;9278:2;9304:53;9349:7;9340:6;9329:9;9325:22;9304:53;:::i;:::-;9294:63;;9249:118;8900:474;;;;;:::o;9380:180::-;9428:77;9425:1;9418:88;9525:4;9522:1;9515:15;9549:4;9546:1;9539:15;9566:320;9610:6;9647:1;9641:4;9637:12;9627:22;;9694:1;9688:4;9684:12;9715:18;9705:81;;9771:4;9763:6;9759:17;9749:27;;9705:81;9833:2;9825:6;9822:14;9802:18;9799:38;9796:84;;9852:18;;:::i;:::-;9796:84;9617:269;9566:320;;;:::o;9892:227::-;10032:34;10028:1;10020:6;10016:14;10009:58;10101:10;10096:2;10088:6;10084:15;10077:35;9892:227;:::o;10125:366::-;10267:3;10288:67;10352:2;10347:3;10288:67;:::i;:::-;10281:74;;10364:93;10453:3;10364:93;:::i;:::-;10482:2;10477:3;10473:12;10466:19;;10125:366;;;:::o;10497:419::-;10663:4;10701:2;10690:9;10686:18;10678:26;;10750:9;10744:4;10740:20;10736:1;10725:9;10721:17;10714:47;10778:131;10904:4;10778:131;:::i;:::-;10770:139;;10497:419;;;:::o;10922:180::-;10970:77;10967:1;10960:88;11067:4;11064:1;11057:15;11091:4;11088:1;11081:15;11108:191;11148:3;11167:20;11185:1;11167:20;:::i;:::-;11162:25;;11201:20;11219:1;11201:20;:::i;:::-;11196:25;;11244:1;11241;11237:9;11230:16;;11265:3;11262:1;11259:10;11256:36;;;11272:18;;:::i;:::-;11256:36;11108:191;;;;:::o;11305:182::-;11445:34;11441:1;11433:6;11429:14;11422:58;11305:182;:::o;11493:366::-;11635:3;11656:67;11720:2;11715:3;11656:67;:::i;:::-;11649:74;;11732:93;11821:3;11732:93;:::i;:::-;11850:2;11845:3;11841:12;11834:19;;11493:366;;;:::o;11865:419::-;12031:4;12069:2;12058:9;12054:18;12046:26;;12118:9;12112:4;12108:20;12104:1;12093:9;12089:17;12082:47;12146:131;12272:4;12146:131;:::i;:::-;12138:139;;11865:419;;;:::o;12290:180::-;12338:77;12335:1;12328:88;12435:4;12432:1;12425:15;12459:4;12456:1;12449:15;12476:233;12515:3;12538:24;12556:5;12538:24;:::i;:::-;12529:33;;12584:66;12577:5;12574:77;12571:103;;12654:18;;:::i;:::-;12571:103;12701:1;12694:5;12690:13;12683:20;;12476:233;;;:::o;12715:224::-;12855:34;12851:1;12843:6;12839:14;12832:58;12924:7;12919:2;12911:6;12907:15;12900:32;12715:224;:::o;12945:366::-;13087:3;13108:67;13172:2;13167:3;13108:67;:::i;:::-;13101:74;;13184:93;13273:3;13184:93;:::i;:::-;13302:2;13297:3;13293:12;13286:19;;12945:366;;;:::o;13317:419::-;13483:4;13521:2;13510:9;13506:18;13498:26;;13570:9;13564:4;13560:20;13556:1;13545:9;13541:17;13534:47;13598:131;13724:4;13598:131;:::i;:::-;13590:139;;13317:419;;;:::o;13742:225::-;13882:34;13878:1;13870:6;13866:14;13859:58;13951:8;13946:2;13938:6;13934:15;13927:33;13742:225;:::o;13973:366::-;14115:3;14136:67;14200:2;14195:3;14136:67;:::i;:::-;14129:74;;14212:93;14301:3;14212:93;:::i;:::-;14330:2;14325:3;14321:12;14314:19;;13973:366;;;:::o;14345:419::-;14511:4;14549:2;14538:9;14534:18;14526:26;;14598:9;14592:4;14588:20;14584:1;14573:9;14569:17;14562:47;14626:131;14752:4;14626:131;:::i;:::-;14618:139;;14345:419;;;:::o;14770:223::-;14910:34;14906:1;14898:6;14894:14;14887:58;14979:6;14974:2;14966:6;14962:15;14955:31;14770:223;:::o;14999:366::-;15141:3;15162:67;15226:2;15221:3;15162:67;:::i;:::-;15155:74;;15238:93;15327:3;15238:93;:::i;:::-;15356:2;15351:3;15347:12;15340:19;;14999:366;;;:::o;15371:419::-;15537:4;15575:2;15564:9;15560:18;15552:26;;15624:9;15618:4;15614:20;15610:1;15599:9;15595:17;15588:47;15652:131;15778:4;15652:131;:::i;:::-;15644:139;;15371:419;;;:::o;15796:221::-;15936:34;15932:1;15924:6;15920:14;15913:58;16005:4;16000:2;15992:6;15988:15;15981:29;15796:221;:::o;16023:366::-;16165:3;16186:67;16250:2;16245:3;16186:67;:::i;:::-;16179:74;;16262:93;16351:3;16262:93;:::i;:::-;16380:2;16375:3;16371:12;16364:19;;16023:366;;;:::o;16395:419::-;16561:4;16599:2;16588:9;16584:18;16576:26;;16648:9;16642:4;16638:20;16634:1;16623:9;16619:17;16612:47;16676:131;16802:4;16676:131;:::i;:::-;16668:139;;16395:419;;;:::o;16820:224::-;16960:34;16956:1;16948:6;16944:14;16937:58;17029:7;17024:2;17016:6;17012:15;17005:32;16820:224;:::o;17050:366::-;17192:3;17213:67;17277:2;17272:3;17213:67;:::i;:::-;17206:74;;17289:93;17378:3;17289:93;:::i;:::-;17407:2;17402:3;17398:12;17391:19;;17050:366;;;:::o;17422:419::-;17588:4;17626:2;17615:9;17611:18;17603:26;;17675:9;17669:4;17665:20;17661:1;17650:9;17646:17;17639:47;17703:131;17829:4;17703:131;:::i;:::-;17695:139;;17422:419;;;:::o;17847:222::-;17987:34;17983:1;17975:6;17971:14;17964:58;18056:5;18051:2;18043:6;18039:15;18032:30;17847:222;:::o;18075:366::-;18217:3;18238:67;18302:2;18297:3;18238:67;:::i;:::-;18231:74;;18314:93;18403:3;18314:93;:::i;:::-;18432:2;18427:3;18423:12;18416:19;;18075:366;;;:::o;18447:419::-;18613:4;18651:2;18640:9;18636:18;18628:26;;18700:9;18694:4;18690:20;18686:1;18675:9;18671:17;18664:47;18728:131;18854:4;18728:131;:::i;:::-;18720:139;;18447:419;;;:::o;18872:225::-;19012:34;19008:1;19000:6;18996:14;18989:58;19081:8;19076:2;19068:6;19064:15;19057:33;18872:225;:::o;19103:366::-;19245:3;19266:67;19330:2;19325:3;19266:67;:::i;:::-;19259:74;;19342:93;19431:3;19342:93;:::i;:::-;19460:2;19455:3;19451:12;19444:19;;19103:366;;;:::o;19475:419::-;19641:4;19679:2;19668:9;19664:18;19656:26;;19728:9;19722:4;19718:20;19714:1;19703:9;19699:17;19692:47;19756:131;19882:4;19756:131;:::i;:::-;19748:139;;19475:419;;;:::o;19900:220::-;20040:34;20036:1;20028:6;20024:14;20017:58;20109:3;20104:2;20096:6;20092:15;20085:28;19900:220;:::o;20126:366::-;20268:3;20289:67;20353:2;20348:3;20289:67;:::i;:::-;20282:74;;20365:93;20454:3;20365:93;:::i;:::-;20483:2;20478:3;20474:12;20467:19;;20126:366;;;:::o;20498:419::-;20664:4;20702:2;20691:9;20687:18;20679:26;;20751:9;20745:4;20741:20;20737:1;20726:9;20722:17;20715:47;20779:131;20905:4;20779:131;:::i;:::-;20771:139;;20498:419;;;:::o;20923:221::-;21063:34;21059:1;21051:6;21047:14;21040:58;21132:4;21127:2;21119:6;21115:15;21108:29;20923:221;:::o;21150:366::-;21292:3;21313:67;21377:2;21372:3;21313:67;:::i;:::-;21306:74;;21389:93;21478:3;21389:93;:::i;:::-;21507:2;21502:3;21498:12;21491:19;;21150:366;;;:::o;21522:419::-;21688:4;21726:2;21715:9;21711:18;21703:26;;21775:9;21769:4;21765:20;21761:1;21750:9;21746:17;21739:47;21803:131;21929:4;21803:131;:::i;:::-;21795:139;;21522:419;;;:::o;21947:194::-;21987:4;22007:20;22025:1;22007:20;:::i;:::-;22002:25;;22041:20;22059:1;22041:20;:::i;:::-;22036:25;;22085:1;22082;22078:9;22070:17;;22109:1;22103:4;22100:11;22097:37;;;22114:18;;:::i;:::-;22097:37;21947:194;;;;:::o;22147:161::-;22287:13;22283:1;22275:6;22271:14;22264:37;22147:161;:::o;22314:366::-;22456:3;22477:67;22541:2;22536:3;22477:67;:::i;:::-;22470:74;;22553:93;22642:3;22553:93;:::i;:::-;22671:2;22666:3;22662:12;22655:19;;22314:366;;;:::o;22686:419::-;22852:4;22890:2;22879:9;22875:18;22867:26;;22939:9;22933:4;22929:20;22925:1;22914:9;22910:17;22903:47;22967:131;23093:4;22967:131;:::i;:::-;22959:139;;22686:419;;;:::o;23111:172::-;23251:24;23247:1;23239:6;23235:14;23228:48;23111:172;:::o;23289:366::-;23431:3;23452:67;23516:2;23511:3;23452:67;:::i;:::-;23445:74;;23528:93;23617:3;23528:93;:::i;:::-;23646:2;23641:3;23637:12;23630:19;;23289:366;;;:::o;23661:419::-;23827:4;23865:2;23854:9;23850:18;23842:26;;23914:9;23908:4;23904:20;23900:1;23889:9;23885:17;23878:47;23942:131;24068:4;23942:131;:::i;:::-;23934:139;;23661:419;;;:::o;24086:156::-;24226:8;24222:1;24214:6;24210:14;24203:32;24086:156;:::o;24248:365::-;24390:3;24411:66;24475:1;24470:3;24411:66;:::i;:::-;24404:73;;24486:93;24575:3;24486:93;:::i;:::-;24604:2;24599:3;24595:12;24588:19;;24248:365;;;:::o;24619:419::-;24785:4;24823:2;24812:9;24808:18;24800:26;;24872:9;24866:4;24862:20;24858:1;24847:9;24843:17;24836:47;24900:131;25026:4;24900:131;:::i;:::-;24892:139;;24619:419;;;:::o

Swarm Source

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