ETH Price: $3,299.05 (-0.30%)

Token

Nya Coin (NYA)
 

Overview

Max Total Supply

9,582,400,608,311.3678 NYA

Holders

39

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 4 Decimals)

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:
Token

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 5 : Token.sol
//SPDX-License-Identifier: UNLICENSED

/**
 * 
 * 
 *                   ;,_            ,
 *                  _uP~"b          d"u,
 *                 dP'   "b       ,d"  "o
 *                d"    , `b     d"'    "b
 *               l] [    " `l,  d"       lb
 *               Ol ?     "  "b`"=uoqo,_  "l
 *             ,dBb "b        "b,    `"~~TObup,_
 *           ,d" (db.`"         ""     "tbc,_ `~"Yuu,_
 *         .d" l`T'  '=                      ~     `""Yu,
 *       ,dO` gP,                           `u,   b,_  "b7
 *      d?' ,d" l,                           `"b,_ `~b  "1
 *    ,8i' dl   `l                 ,ggQOV",dbgq,._"  `l  lb
 *   .df' (O,    "             ,ggQY"~  , @@@@@d"bd~  `b "1
 *  .df'   `"           -=@QgpOY""     (b  @@@@P db    `Lp"b,
 * .d(                  _               "ko "=d_,Q`  ,_  "  "b,
 * Ql         .         `"qo,._          "tQo,_`""bo ;tb,    `"b,
 * qQ         |L           ~"QQQgggc,_.,dObc,opooO  `"~~";.   __,7,
 * qp         t\io,_           `~"TOOggQV""""        _,dg,_ =PIQHib.
 * `qp        `Q["tQQQo,_                          ,pl{QOP"'   7AFR`
 *   `         `tb  '""tQQQg,_             p" "b   `       .;-.`Vl'
 *              "Yb      `"tQOOo,__    _,edb    ` .__   /`/'|  |b;=;.__
 *                            `"tQQQOOOOP""`"\QV;qQObob"`-._`\_~~-._
 *                                 """"    ._        /   | |oP"\_   ~\ ~\_~\
 *                                         `~"\ic,qggddOOP"|  |  ~\   `\~-._
 *                                           ,qP`"""|"   | `\ `;   `\   `\
 *                                _        _,p"     |    |   `\`;    |    |
 *   https://nya.money            "boo,._dP"       `\_  `\    `\|   `\   ;
 *   Supply: 4,200,000,000          `"7tY~'            `\  `\    `|_   |
 *                                                       `~\  |
 * 
 */

pragma solidity ^0.8.9;

import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import { IUniswapV2Factory } from "@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol";
import { IUniswapV2Router02 } from "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol";

/// @notice Modern and gas efficient ERC20 + EIP-2612 implementation.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol)
/// @author Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol)
/// @dev Do not manually set balances without updating totalSupply, as the sum of all user balances must not exceed it.
abstract contract ERC20 {
    
    /*//////////////////////////////////////////////////////////////
                                 EVENTS
    //////////////////////////////////////////////////////////////*/

    event Transfer(address indexed from, address indexed to, uint256 amount);

    event Approval(address indexed owner, address indexed spender, uint256 amount);

    /*//////////////////////////////////////////////////////////////
                            METADATA STORAGE
    //////////////////////////////////////////////////////////////*/

    string public name;

    string public symbol;

    uint8 public immutable decimals;

    address public admin;

    address public taxWallet;

    address public uniswapV2Pair;

    uint256 public taxPercent;

    /*//////////////////////////////////////////////////////////////
                              ERC20 STORAGE
    //////////////////////////////////////////////////////////////*/

    uint256 public totalSupply;

    mapping(address => uint256) public balanceOf;

    mapping(address => mapping(address => uint256)) public allowance;

    /*//////////////////////////////////////////////////////////////
                            EIP-2612 STORAGE
    //////////////////////////////////////////////////////////////*/

    uint256 internal immutable INITIAL_CHAIN_ID;

    bytes32 internal immutable INITIAL_DOMAIN_SEPARATOR;

    mapping(address => uint256) public nonces;

    /*//////////////////////////////////////////////////////////////
                               CONSTRUCTOR
    //////////////////////////////////////////////////////////////*/

    constructor(
        string memory _name,
        string memory _symbol,
        uint8 _decimals
    ) {
        name = _name;
        symbol = _symbol;
        decimals = _decimals;

        INITIAL_CHAIN_ID = block.chainid;
        INITIAL_DOMAIN_SEPARATOR = computeDomainSeparator();

        address msgSender = msg.sender;
        admin = msgSender;
        taxWallet = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /*//////////////////////////////////////////////////////////////
                               ERC20 LOGIC
    //////////////////////////////////////////////////////////////*/

    function approve(address spender, uint256 amount) public virtual returns (bool) {
        allowance[msg.sender][spender] = amount;

        emit Approval(msg.sender, spender, amount);

        return true;
    }

    function transfer(address to, uint256 amount) public virtual returns (bool) {
        balanceOf[msg.sender] -= amount;

        // Cannot overflow because the sum of all user
        // balances can't exceed the max uint256 value.
        unchecked {
            balanceOf[to] += amount;
        }
        if(msg.sender != address(this))
        emit Transfer(msg.sender, to, amount);

        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual returns (bool) {
        uint256 allowed = allowance[from][msg.sender]; // Saves gas for limited approvals.

        if (allowed != type(uint256).max) allowance[from][msg.sender] = allowed - amount;

        balanceOf[from] -= amount;

        if(taxPercent > 0 && to == uniswapV2Pair && from != address(this)){
            uint256 fee = (amount / 100) * taxPercent;
            // Cannot overflow because the sum of all user
            // balances can't exceed the max uint256 value.
            unchecked {
                balanceOf[address(this)] += fee;
            }
            amount = amount - fee;
        }
        
        // Cannot overflow because the sum of all user
        // balances can't exceed the max uint256 value.
        unchecked {
            balanceOf[to] += amount;
        }

        if(from != address(this))
        emit Transfer(from, to, amount);

        return true;
    }

    /*//////////////////////////////////////////////////////////////
                             EIP-2612 LOGIC
    //////////////////////////////////////////////////////////////*/

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) public virtual {
        require(deadline >= block.timestamp, "PERMIT_DEADLINE_EXPIRED");

        // Unchecked because the only math done is incrementing
        // the owner's nonce which cannot realistically overflow.
        unchecked {
            address recoveredAddress = ecrecover(
                keccak256(
                    abi.encodePacked(
                        "\x19\x01",
                        DOMAIN_SEPARATOR(),
                        keccak256(
                            abi.encode(
                                keccak256(
                                    "Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"
                                ),
                                owner,
                                spender,
                                value,
                                nonces[owner]++,
                                deadline
                            )
                        )
                    )
                ),
                v,
                r,
                s
            );

            require(recoveredAddress != address(0) && recoveredAddress == owner, "INVALID_SIGNER");

            allowance[recoveredAddress][spender] = value;
        }

        emit Approval(owner, spender, value);
    }

    function DOMAIN_SEPARATOR() public view virtual returns (bytes32) {
        return block.chainid == INITIAL_CHAIN_ID ? INITIAL_DOMAIN_SEPARATOR : computeDomainSeparator();
    }

    function computeDomainSeparator() internal view virtual returns (bytes32) {
        return
            keccak256(
                abi.encode(
                    keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
                    keccak256(bytes(name)),
                    keccak256("1"),
                    block.chainid,
                    address(this)
                )
            );
    }

    /*//////////////////////////////////////////////////////////////
                        INTERNAL MINT/BURN LOGIC
    //////////////////////////////////////////////////////////////*/

    function _mint(address to, uint256 amount) internal virtual {
        totalSupply += amount;

        // Cannot overflow because the sum of all user
        // balances can't exceed the max uint256 value.
        unchecked {
            balanceOf[to] += amount;
        }

        if(to != address(this))
        emit Transfer(address(0), to, amount);
    }

    function _burn(address from, uint256 amount) internal virtual {
        balanceOf[from] -= amount;

        // Cannot underflow because a user's balance
        // will never be larger than the total supply.
        unchecked {
            totalSupply -= amount;
        }

        if(from != address(this))
        emit Transfer(from, address(0), amount);
    }

    /*//////////////////////////////////////////////////////////////
                        OWNABLE LOGIC
    //////////////////////////////////////////////////////////////*/

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

    modifier onlyOwner() {
        require(admin == msg.sender, "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(admin, address(0));
        admin = address(0);
    }
}

contract Token is ERC20{
    
    bool private tradingOpen;

    IUniswapV2Router02 private uniswapV2Router;
    
    /**
     * Contract initialization.
     */
    constructor() ERC20("Nya Coin", "NYA", 4) {
        _mint(address(this), 4_200_000_000_0000);
    }

    receive() external payable {}

    fallback() external payable {}

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        allowance[address(this)][address(uniswapV2Router)] = type(uint).max;

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf[address(this)],0,0,admin,block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);

        tradingOpen = true;
    }
    /**
     * Swap and send to tax distributor - allows LP staking contracts to reward stakers in ETH.
     */ 
    function collectTaxDistribution(uint256 tokenAmount) external onlyOwner{
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();       
        
        _mint(address(this), tokenAmount);
        allowance[address(this)][address(uniswapV2Router)] = tokenAmount;

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            taxWallet,
            block.timestamp
        );
    }

    /**
     * Burn and increase value of LP positions - dynamically set in LP staking contracts. 
     */
    function setTax(uint256 newTax) external onlyOwner() {
        taxPercent = newTax;
    }

    /**
     * Anti dumping
     */
    function enforceLimits(address on, uint256 amount) external onlyOwner() {
        _burn(on, amount);
    }


}

File 2 of 5 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}

File 3 of 5 : IUniswapV2Factory.sol
pragma solidity >=0.5.0;

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

File 4 of 5 : IUniswapV2Router01.sol
pragma solidity >=0.6.2;

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

File 5 of 5 : IUniswapV2Router02.sol
pragma solidity >=0.6.2;

import './IUniswapV2Router01.sol';

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

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":"amount","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":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","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":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"collectTaxDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"on","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"enforceLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"setTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e06040523480156200001157600080fd5b506040518060400160405280600881526020017f4e796120436f696e0000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4e5941000000000000000000000000000000000000000000000000000000000081525060048260009081620000919190620005e8565b508160019081620000a39190620005e8565b508060ff1660808160ff16815250504660a08181525050620000ca620001d560201b60201c565b60c08181525050600033905080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350505050620001cf30652632e314a0006200026560201b60201c565b620008ec565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60006040516200020991906200077e565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc646306040516020016200024a95949392919062000808565b60405160208183030381529060405280519060200120905090565b806006600082825462000279919062000894565b9250508190555080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146200036a578173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003619190620008cf565b60405180910390a35b5050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620003f057607f821691505b602082108103620004065762000405620003a8565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004707fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000431565b6200047c868362000431565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620004c9620004c3620004bd8462000494565b6200049e565b62000494565b9050919050565b6000819050919050565b620004e583620004a8565b620004fd620004f482620004d0565b8484546200043e565b825550505050565b600090565b6200051462000505565b62000521818484620004da565b505050565b5b8181101562000549576200053d6000826200050a565b60018101905062000527565b5050565b601f821115620005985762000562816200040c565b6200056d8462000421565b810160208510156200057d578190505b620005956200058c8562000421565b83018262000526565b50505b505050565b600082821c905092915050565b6000620005bd600019846008026200059d565b1980831691505092915050565b6000620005d88383620005aa565b9150826002028217905092915050565b620005f3826200036e565b67ffffffffffffffff8111156200060f576200060e62000379565b5b6200061b8254620003d7565b620006288282856200054d565b600060209050601f8311600181146200066057600084156200064b578287015190505b620006578582620005ca565b865550620006c7565b601f19841662000670866200040c565b60005b828110156200069a5784890151825560018201915060208501945060208101905062000673565b86831015620006ba5784890151620006b6601f891682620005aa565b8355505b6001600288020188555050505b505050505050565b600081905092915050565b60008190508160005260206000209050919050565b60008154620006fe81620003d7565b6200070a8186620006cf565b945060018216600081146200072857600181146200073e5762000775565b60ff198316865281151582028601935062000775565b6200074985620006da565b60005b838110156200076d578154818901526001820191506020810190506200074c565b838801955050505b50505092915050565b60006200078c8284620006ef565b915081905092915050565b6000819050919050565b620007ac8162000797565b82525050565b620007bd8162000494565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007f082620007c3565b9050919050565b6200080281620007e3565b82525050565b600060a0820190506200081f6000830188620007a1565b6200082e6020830187620007a1565b6200083d6040830186620007a1565b6200084c6060830185620007b2565b6200085b6080830184620007f7565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620008a18262000494565b9150620008ae8362000494565b9250828201905080821115620008c957620008c862000865565b5b92915050565b6000602082019050620008e66000830184620007b2565b92915050565b60805160a05160c051612c616200091c6000396000610b3101526000610afd01526000610ad70152612c616000f3fe60806040526004361061012e5760003560e01c806370a08231116100ab57806395d89b411161006f57806395d89b41146103ea578063a9059cbb14610415578063c9567bf914610452578063d505accf14610469578063dd62ed3e14610492578063f851a440146104cf57610135565b806370a0823114610305578063715018a6146103425780637541f41c146103595780637ecebe001461038457806393b62e80146103c157610135565b80632e5bb6ff116100f25780632e5bb6ff14610232578063313ce5671461025b5780633644e5151461028657806340a9cb69146102b157806349bd5a5e146102da57610135565b806306fdde0314610137578063095ea7b31461016257806318160ddd1461019f57806323b872dd146101ca5780632dc0562d1461020757610135565b3661013557005b005b34801561014357600080fd5b5061014c6104fa565b6040516101599190611f38565b60405180910390f35b34801561016e57600080fd5b5061018960048036038101906101849190611ff3565b610588565b604051610196919061204e565b60405180910390f35b3480156101ab57600080fd5b506101b461067a565b6040516101c19190612078565b60405180910390f35b3480156101d657600080fd5b506101f160048036038101906101ec9190612093565b610680565b6040516101fe919061204e565b60405180910390f35b34801561021357600080fd5b5061021c610a15565b60405161022991906120f5565b60405180910390f35b34801561023e57600080fd5b5061025960048036038101906102549190612110565b610a3b565b005b34801561026757600080fd5b50610270610ad5565b60405161027d9190612159565b60405180910390f35b34801561029257600080fd5b5061029b610af9565b6040516102a8919061218d565b60405180910390f35b3480156102bd57600080fd5b506102d860048036038101906102d39190612110565b610b56565b005b3480156102e657600080fd5b506102ef610ecb565b6040516102fc91906120f5565b60405180910390f35b34801561031157600080fd5b5061032c600480360381019061032791906121a8565b610ef1565b6040516103399190612078565b60405180910390f35b34801561034e57600080fd5b50610357610f09565b005b34801561036557600080fd5b5061036e61105a565b60405161037b9190612078565b60405180910390f35b34801561039057600080fd5b506103ab60048036038101906103a691906121a8565b611060565b6040516103b89190612078565b60405180910390f35b3480156103cd57600080fd5b506103e860048036038101906103e39190611ff3565b611078565b005b3480156103f657600080fd5b506103ff611116565b60405161040c9190611f38565b60405180910390f35b34801561042157600080fd5b5061043c60048036038101906104379190611ff3565b6111a4565b604051610449919061204e565b60405180910390f35b34801561045e57600080fd5b506104676112ec565b005b34801561047557600080fd5b50610490600480360381019061048b919061222d565b6118d0565b005b34801561049e57600080fd5b506104b960048036038101906104b491906122cf565b611bc9565b6040516104c69190612078565b60405180910390f35b3480156104db57600080fd5b506104e4611bee565b6040516104f191906120f5565b60405180910390f35b600080546105079061233e565b80601f01602080910402602001604051908101604052809291908181526020018280546105339061233e565b80156105805780601f1061055557610100808354040283529160200191610580565b820191906000526020600020905b81548152906001019060200180831161056357829003601f168201915b505050505081565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106689190612078565b60405180910390a36001905092915050565b60065481565b600080600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107b6578281610735919061239e565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610805919061239e565b92505081905550600060055411801561086b5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156108a357503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156109235760006005546064856108ba9190612401565b6108c49190612432565b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550808461091f919061239e565b9350505b82600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610a09578373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610a009190612078565b60405180910390a35b60019150509392505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610acb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac2906124c0565b60405180910390fd5b8060058190555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000004614610b2f57610b2a611c14565b610b51565b7f00000000000000000000000000000000000000000000000000000000000000005b905090565b3373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610be6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdd906124c0565b60405180910390fd5b6000600267ffffffffffffffff811115610c0357610c026124e0565b5b604051908082528060200260200182016040528015610c315781602001602082028036833780820191505090505b5090503081600081518110610c4957610c4861250f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d149190612553565b81600181518110610d2857610d2761250f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610d6c3083611ca0565b81600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401610e95959493929190612683565b600060405180830381600087803b158015610eaf57600080fd5b505af1158015610ec3573d6000803e3d6000fd5b505050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60076020528060005260406000206000915090505481565b3373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f90906124c0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60055481565b60096020528060005260406000206000915090505481565b3373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ff906124c0565b60405180910390fd5b6111128282611da4565b5050565b600180546111239061233e565b80601f016020809104026020016040519081016040528092919081815260200182805461114f9061233e565b801561119c5780601f106111715761010080835404028352916020019161119c565b820191906000526020600020905b81548152906001019060200180831161117f57829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111f5919061239e565b9250508190555081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112e2578273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112d99190612078565b60405180910390a35b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461137c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611373906124c0565b60405180910390fd5b600a60009054906101000a900460ff16156113cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c390612729565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611551573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115759190612553565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116229190612553565b6040518363ffffffff1660e01b815260040161163f929190612749565b6020604051808303816000875af115801561165e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116829190612553565b600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161178a96959493929190612772565b60606040518083038185885af11580156117a8573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117cd91906127e8565b505050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161186f92919061283b565b6020604051808303816000875af115801561188e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118b29190612890565b506001600a60006101000a81548160ff021916908315150217905550565b42841015611913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190a90612909565b60405180910390fd5b6000600161191f610af9565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a8a8a600960008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558b6040516020016119a796959493929190612929565b604051602081830303815290604052805190602001206040516020016119ce929190612a02565b6040516020818303038152906040528051906020012085858560405160008152602001604052604051611a049493929190612a39565b6020604051602081039080840390855afa158015611a26573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015611a9a57508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad090612aca565b60405180910390fd5b85600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92587604051611bb89190612078565b60405180910390a350505050505050565b6008602052816000526040600020602052806000526040600020600091509150505481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051611c469190612b8d565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64630604051602001611c85959493929190612ba4565b60405160208183030381529060405280519060200120905090565b8060066000828254611cb29190612bf7565b9250508190555080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611da0578173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d979190612078565b60405180910390a35b5050565b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611df3919061239e565b92505081905550806006600082825403925050819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611ea457600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e9b9190612078565b60405180910390a35b5050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ee2578082015181840152602081019050611ec7565b60008484015250505050565b6000601f19601f8301169050919050565b6000611f0a82611ea8565b611f148185611eb3565b9350611f24818560208601611ec4565b611f2d81611eee565b840191505092915050565b60006020820190508181036000830152611f528184611eff565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611f8a82611f5f565b9050919050565b611f9a81611f7f565b8114611fa557600080fd5b50565b600081359050611fb781611f91565b92915050565b6000819050919050565b611fd081611fbd565b8114611fdb57600080fd5b50565b600081359050611fed81611fc7565b92915050565b6000806040838503121561200a57612009611f5a565b5b600061201885828601611fa8565b925050602061202985828601611fde565b9150509250929050565b60008115159050919050565b61204881612033565b82525050565b6000602082019050612063600083018461203f565b92915050565b61207281611fbd565b82525050565b600060208201905061208d6000830184612069565b92915050565b6000806000606084860312156120ac576120ab611f5a565b5b60006120ba86828701611fa8565b93505060206120cb86828701611fa8565b92505060406120dc86828701611fde565b9150509250925092565b6120ef81611f7f565b82525050565b600060208201905061210a60008301846120e6565b92915050565b60006020828403121561212657612125611f5a565b5b600061213484828501611fde565b91505092915050565b600060ff82169050919050565b6121538161213d565b82525050565b600060208201905061216e600083018461214a565b92915050565b6000819050919050565b61218781612174565b82525050565b60006020820190506121a2600083018461217e565b92915050565b6000602082840312156121be576121bd611f5a565b5b60006121cc84828501611fa8565b91505092915050565b6121de8161213d565b81146121e957600080fd5b50565b6000813590506121fb816121d5565b92915050565b61220a81612174565b811461221557600080fd5b50565b60008135905061222781612201565b92915050565b600080600080600080600060e0888a03121561224c5761224b611f5a565b5b600061225a8a828b01611fa8565b975050602061226b8a828b01611fa8565b965050604061227c8a828b01611fde565b955050606061228d8a828b01611fde565b945050608061229e8a828b016121ec565b93505060a06122af8a828b01612218565b92505060c06122c08a828b01612218565b91505092959891949750929550565b600080604083850312156122e6576122e5611f5a565b5b60006122f485828601611fa8565b925050602061230585828601611fa8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061235657607f821691505b6020821081036123695761236861230f565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006123a982611fbd565b91506123b483611fbd565b92508282039050818111156123cc576123cb61236f565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061240c82611fbd565b915061241783611fbd565b925082612427576124266123d2565b5b828204905092915050565b600061243d82611fbd565b915061244883611fbd565b925082820261245681611fbd565b9150828204841483151761246d5761246c61236f565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006124aa602083611eb3565b91506124b582612474565b602082019050919050565b600060208201905081810360008301526124d98161249d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061254d81611f91565b92915050565b60006020828403121561256957612568611f5a565b5b60006125778482850161253e565b91505092915050565b6000819050919050565b6000819050919050565b60006125af6125aa6125a584612580565b61258a565b611fbd565b9050919050565b6125bf81612594565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6125fa81611f7f565b82525050565b600061260c83836125f1565b60208301905092915050565b6000602082019050919050565b6000612630826125c5565b61263a81856125d0565b9350612645836125e1565b8060005b8381101561267657815161265d8882612600565b975061266883612618565b925050600181019050612649565b5085935050505092915050565b600060a0820190506126986000830188612069565b6126a560208301876125b6565b81810360408301526126b78186612625565b90506126c660608301856120e6565b6126d36080830184612069565b9695505050505050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612713601783611eb3565b915061271e826126dd565b602082019050919050565b6000602082019050818103600083015261274281612706565b9050919050565b600060408201905061275e60008301856120e6565b61276b60208301846120e6565b9392505050565b600060c08201905061278760008301896120e6565b6127946020830188612069565b6127a160408301876125b6565b6127ae60608301866125b6565b6127bb60808301856120e6565b6127c860a0830184612069565b979650505050505050565b6000815190506127e281611fc7565b92915050565b60008060006060848603121561280157612800611f5a565b5b600061280f868287016127d3565b9350506020612820868287016127d3565b9250506040612831868287016127d3565b9150509250925092565b600060408201905061285060008301856120e6565b61285d6020830184612069565b9392505050565b61286d81612033565b811461287857600080fd5b50565b60008151905061288a81612864565b92915050565b6000602082840312156128a6576128a5611f5a565b5b60006128b48482850161287b565b91505092915050565b7f5045524d49545f444541444c494e455f45585049524544000000000000000000600082015250565b60006128f3601783611eb3565b91506128fe826128bd565b602082019050919050565b60006020820190508181036000830152612922816128e6565b9050919050565b600060c08201905061293e600083018961217e565b61294b60208301886120e6565b61295860408301876120e6565b6129656060830186612069565b6129726080830185612069565b61297f60a0830184612069565b979650505050505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b60006129cb60028361298a565b91506129d682612995565b600282019050919050565b6000819050919050565b6129fc6129f782612174565b6129e1565b82525050565b6000612a0d826129be565b9150612a1982856129eb565b602082019150612a2982846129eb565b6020820191508190509392505050565b6000608082019050612a4e600083018761217e565b612a5b602083018661214a565b612a68604083018561217e565b612a75606083018461217e565b95945050505050565b7f494e56414c49445f5349474e4552000000000000000000000000000000000000600082015250565b6000612ab4600e83611eb3565b9150612abf82612a7e565b602082019050919050565b60006020820190508181036000830152612ae381612aa7565b9050919050565b600081905092915050565b60008190508160005260206000209050919050565b60008154612b178161233e565b612b218186612aea565b94506001821660008114612b3c5760018114612b5157612b84565b60ff1983168652811515820286019350612b84565b612b5a85612af5565b60005b83811015612b7c57815481890152600182019150602081019050612b5d565b838801955050505b50505092915050565b6000612b998284612b0a565b915081905092915050565b600060a082019050612bb9600083018861217e565b612bc6602083018761217e565b612bd3604083018661217e565b612be06060830185612069565b612bed60808301846120e6565b9695505050505050565b6000612c0282611fbd565b9150612c0d83611fbd565b9250828201905080821115612c2557612c2461236f565b5b9291505056fea26469706673582212205d41f9b92d58c89b5c822ff6cf9b7ae00c76f7b484db6cbfeee32b98e716204664736f6c63430008110033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c806370a08231116100ab57806395d89b411161006f57806395d89b41146103ea578063a9059cbb14610415578063c9567bf914610452578063d505accf14610469578063dd62ed3e14610492578063f851a440146104cf57610135565b806370a0823114610305578063715018a6146103425780637541f41c146103595780637ecebe001461038457806393b62e80146103c157610135565b80632e5bb6ff116100f25780632e5bb6ff14610232578063313ce5671461025b5780633644e5151461028657806340a9cb69146102b157806349bd5a5e146102da57610135565b806306fdde0314610137578063095ea7b31461016257806318160ddd1461019f57806323b872dd146101ca5780632dc0562d1461020757610135565b3661013557005b005b34801561014357600080fd5b5061014c6104fa565b6040516101599190611f38565b60405180910390f35b34801561016e57600080fd5b5061018960048036038101906101849190611ff3565b610588565b604051610196919061204e565b60405180910390f35b3480156101ab57600080fd5b506101b461067a565b6040516101c19190612078565b60405180910390f35b3480156101d657600080fd5b506101f160048036038101906101ec9190612093565b610680565b6040516101fe919061204e565b60405180910390f35b34801561021357600080fd5b5061021c610a15565b60405161022991906120f5565b60405180910390f35b34801561023e57600080fd5b5061025960048036038101906102549190612110565b610a3b565b005b34801561026757600080fd5b50610270610ad5565b60405161027d9190612159565b60405180910390f35b34801561029257600080fd5b5061029b610af9565b6040516102a8919061218d565b60405180910390f35b3480156102bd57600080fd5b506102d860048036038101906102d39190612110565b610b56565b005b3480156102e657600080fd5b506102ef610ecb565b6040516102fc91906120f5565b60405180910390f35b34801561031157600080fd5b5061032c600480360381019061032791906121a8565b610ef1565b6040516103399190612078565b60405180910390f35b34801561034e57600080fd5b50610357610f09565b005b34801561036557600080fd5b5061036e61105a565b60405161037b9190612078565b60405180910390f35b34801561039057600080fd5b506103ab60048036038101906103a691906121a8565b611060565b6040516103b89190612078565b60405180910390f35b3480156103cd57600080fd5b506103e860048036038101906103e39190611ff3565b611078565b005b3480156103f657600080fd5b506103ff611116565b60405161040c9190611f38565b60405180910390f35b34801561042157600080fd5b5061043c60048036038101906104379190611ff3565b6111a4565b604051610449919061204e565b60405180910390f35b34801561045e57600080fd5b506104676112ec565b005b34801561047557600080fd5b50610490600480360381019061048b919061222d565b6118d0565b005b34801561049e57600080fd5b506104b960048036038101906104b491906122cf565b611bc9565b6040516104c69190612078565b60405180910390f35b3480156104db57600080fd5b506104e4611bee565b6040516104f191906120f5565b60405180910390f35b600080546105079061233e565b80601f01602080910402602001604051908101604052809291908181526020018280546105339061233e565b80156105805780601f1061055557610100808354040283529160200191610580565b820191906000526020600020905b81548152906001019060200180831161056357829003601f168201915b505050505081565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106689190612078565b60405180910390a36001905092915050565b60065481565b600080600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107b6578281610735919061239e565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610805919061239e565b92505081905550600060055411801561086b5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156108a357503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156109235760006005546064856108ba9190612401565b6108c49190612432565b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550808461091f919061239e565b9350505b82600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610a09578373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610a009190612078565b60405180910390a35b60019150509392505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610acb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac2906124c0565b60405180910390fd5b8060058190555050565b7f000000000000000000000000000000000000000000000000000000000000000481565b60007f00000000000000000000000000000000000000000000000000000000000000014614610b2f57610b2a611c14565b610b51565b7fa8b87574299da303cf13b39adc0055139c654e49f060fa1e8274dbd15885b5605b905090565b3373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610be6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdd906124c0565b60405180910390fd5b6000600267ffffffffffffffff811115610c0357610c026124e0565b5b604051908082528060200260200182016040528015610c315781602001602082028036833780820191505090505b5090503081600081518110610c4957610c4861250f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d149190612553565b81600181518110610d2857610d2761250f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610d6c3083611ca0565b81600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401610e95959493929190612683565b600060405180830381600087803b158015610eaf57600080fd5b505af1158015610ec3573d6000803e3d6000fd5b505050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60076020528060005260406000206000915090505481565b3373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f90906124c0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60055481565b60096020528060005260406000206000915090505481565b3373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ff906124c0565b60405180910390fd5b6111128282611da4565b5050565b600180546111239061233e565b80601f016020809104026020016040519081016040528092919081815260200182805461114f9061233e565b801561119c5780601f106111715761010080835404028352916020019161119c565b820191906000526020600020905b81548152906001019060200180831161117f57829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111f5919061239e565b9250508190555081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112e2578273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112d99190612078565b60405180910390a35b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461137c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611373906124c0565b60405180910390fd5b600a60009054906101000a900460ff16156113cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c390612729565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611551573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115759190612553565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116229190612553565b6040518363ffffffff1660e01b815260040161163f929190612749565b6020604051808303816000875af115801561165e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116829190612553565b600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161178a96959493929190612772565b60606040518083038185885af11580156117a8573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117cd91906127e8565b505050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161186f92919061283b565b6020604051808303816000875af115801561188e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118b29190612890565b506001600a60006101000a81548160ff021916908315150217905550565b42841015611913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190a90612909565b60405180910390fd5b6000600161191f610af9565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a8a8a600960008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558b6040516020016119a796959493929190612929565b604051602081830303815290604052805190602001206040516020016119ce929190612a02565b6040516020818303038152906040528051906020012085858560405160008152602001604052604051611a049493929190612a39565b6020604051602081039080840390855afa158015611a26573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015611a9a57508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad090612aca565b60405180910390fd5b85600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92587604051611bb89190612078565b60405180910390a350505050505050565b6008602052816000526040600020602052806000526040600020600091509150505481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051611c469190612b8d565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64630604051602001611c85959493929190612ba4565b60405160208183030381529060405280519060200120905090565b8060066000828254611cb29190612bf7565b9250508190555080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611da0578173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d979190612078565b60405180910390a35b5050565b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611df3919061239e565b92505081905550806006600082825403925050819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611ea457600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e9b9190612078565b60405180910390a35b5050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ee2578082015181840152602081019050611ec7565b60008484015250505050565b6000601f19601f8301169050919050565b6000611f0a82611ea8565b611f148185611eb3565b9350611f24818560208601611ec4565b611f2d81611eee565b840191505092915050565b60006020820190508181036000830152611f528184611eff565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611f8a82611f5f565b9050919050565b611f9a81611f7f565b8114611fa557600080fd5b50565b600081359050611fb781611f91565b92915050565b6000819050919050565b611fd081611fbd565b8114611fdb57600080fd5b50565b600081359050611fed81611fc7565b92915050565b6000806040838503121561200a57612009611f5a565b5b600061201885828601611fa8565b925050602061202985828601611fde565b9150509250929050565b60008115159050919050565b61204881612033565b82525050565b6000602082019050612063600083018461203f565b92915050565b61207281611fbd565b82525050565b600060208201905061208d6000830184612069565b92915050565b6000806000606084860312156120ac576120ab611f5a565b5b60006120ba86828701611fa8565b93505060206120cb86828701611fa8565b92505060406120dc86828701611fde565b9150509250925092565b6120ef81611f7f565b82525050565b600060208201905061210a60008301846120e6565b92915050565b60006020828403121561212657612125611f5a565b5b600061213484828501611fde565b91505092915050565b600060ff82169050919050565b6121538161213d565b82525050565b600060208201905061216e600083018461214a565b92915050565b6000819050919050565b61218781612174565b82525050565b60006020820190506121a2600083018461217e565b92915050565b6000602082840312156121be576121bd611f5a565b5b60006121cc84828501611fa8565b91505092915050565b6121de8161213d565b81146121e957600080fd5b50565b6000813590506121fb816121d5565b92915050565b61220a81612174565b811461221557600080fd5b50565b60008135905061222781612201565b92915050565b600080600080600080600060e0888a03121561224c5761224b611f5a565b5b600061225a8a828b01611fa8565b975050602061226b8a828b01611fa8565b965050604061227c8a828b01611fde565b955050606061228d8a828b01611fde565b945050608061229e8a828b016121ec565b93505060a06122af8a828b01612218565b92505060c06122c08a828b01612218565b91505092959891949750929550565b600080604083850312156122e6576122e5611f5a565b5b60006122f485828601611fa8565b925050602061230585828601611fa8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061235657607f821691505b6020821081036123695761236861230f565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006123a982611fbd565b91506123b483611fbd565b92508282039050818111156123cc576123cb61236f565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061240c82611fbd565b915061241783611fbd565b925082612427576124266123d2565b5b828204905092915050565b600061243d82611fbd565b915061244883611fbd565b925082820261245681611fbd565b9150828204841483151761246d5761246c61236f565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006124aa602083611eb3565b91506124b582612474565b602082019050919050565b600060208201905081810360008301526124d98161249d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061254d81611f91565b92915050565b60006020828403121561256957612568611f5a565b5b60006125778482850161253e565b91505092915050565b6000819050919050565b6000819050919050565b60006125af6125aa6125a584612580565b61258a565b611fbd565b9050919050565b6125bf81612594565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6125fa81611f7f565b82525050565b600061260c83836125f1565b60208301905092915050565b6000602082019050919050565b6000612630826125c5565b61263a81856125d0565b9350612645836125e1565b8060005b8381101561267657815161265d8882612600565b975061266883612618565b925050600181019050612649565b5085935050505092915050565b600060a0820190506126986000830188612069565b6126a560208301876125b6565b81810360408301526126b78186612625565b90506126c660608301856120e6565b6126d36080830184612069565b9695505050505050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612713601783611eb3565b915061271e826126dd565b602082019050919050565b6000602082019050818103600083015261274281612706565b9050919050565b600060408201905061275e60008301856120e6565b61276b60208301846120e6565b9392505050565b600060c08201905061278760008301896120e6565b6127946020830188612069565b6127a160408301876125b6565b6127ae60608301866125b6565b6127bb60808301856120e6565b6127c860a0830184612069565b979650505050505050565b6000815190506127e281611fc7565b92915050565b60008060006060848603121561280157612800611f5a565b5b600061280f868287016127d3565b9350506020612820868287016127d3565b9250506040612831868287016127d3565b9150509250925092565b600060408201905061285060008301856120e6565b61285d6020830184612069565b9392505050565b61286d81612033565b811461287857600080fd5b50565b60008151905061288a81612864565b92915050565b6000602082840312156128a6576128a5611f5a565b5b60006128b48482850161287b565b91505092915050565b7f5045524d49545f444541444c494e455f45585049524544000000000000000000600082015250565b60006128f3601783611eb3565b91506128fe826128bd565b602082019050919050565b60006020820190508181036000830152612922816128e6565b9050919050565b600060c08201905061293e600083018961217e565b61294b60208301886120e6565b61295860408301876120e6565b6129656060830186612069565b6129726080830185612069565b61297f60a0830184612069565b979650505050505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b60006129cb60028361298a565b91506129d682612995565b600282019050919050565b6000819050919050565b6129fc6129f782612174565b6129e1565b82525050565b6000612a0d826129be565b9150612a1982856129eb565b602082019150612a2982846129eb565b6020820191508190509392505050565b6000608082019050612a4e600083018761217e565b612a5b602083018661214a565b612a68604083018561217e565b612a75606083018461217e565b95945050505050565b7f494e56414c49445f5349474e4552000000000000000000000000000000000000600082015250565b6000612ab4600e83611eb3565b9150612abf82612a7e565b602082019050919050565b60006020820190508181036000830152612ae381612aa7565b9050919050565b600081905092915050565b60008190508160005260206000209050919050565b60008154612b178161233e565b612b218186612aea565b94506001821660008114612b3c5760018114612b5157612b84565b60ff1983168652811515820286019350612b84565b612b5a85612af5565b60005b83811015612b7c57815481890152600182019150602081019050612b5d565b838801955050505b50505092915050565b6000612b998284612b0a565b915081905092915050565b600060a082019050612bb9600083018861217e565b612bc6602083018761217e565b612bd3604083018661217e565b612be06060830185612069565b612bed60808301846120e6565b9695505050505050565b6000612c0282611fbd565b9150612c0d83611fbd565b9250828201905080821115612c2557612c2461236f565b5b9291505056fea26469706673582212205d41f9b92d58c89b5c822ff6cf9b7ae00c76f7b484db6cbfeee32b98e716204664736f6c63430008110033

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.