ETH Price: $3,078.59 (-5.32%)

Token

HAMON INU (HINU)
 

Overview

Max Total Supply

1,000,000,000,000,000 HINU

Holders

26

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,088,567,887,858.278794463312674887 HINU

Value
$0.00
0x9a6b678612078460d7b345aa165db61467cd40a3
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:
HAMON_INU

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-05-21
*/

pragma solidity >=0.6.6;


interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);
    
    function burn(uint256 amount) external;

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    
    function burnFrom(address account, uint256 amount) external;
    
    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}


library SafeMath {
    
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

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

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

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

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

contract HAMON_INU is IERC20 {
    using SafeMath for uint256;
    
    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply;
    
    uint256 private _initialSupply = 1e15*1e18;

    string private _name = "HAMON INU";
    
    string private _symbol = "HINU";
    
    uint8 private _decimals = 18;
    
    address private routerAddy = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // uniswap
    
    address private dead = 0x000000000000000000000000000000000000dEaD;
    //address private vitalik = 0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B;
    address private pairAddress;
    
    address private _owner = msg.sender;
    
    
  
    constructor () {
        
        _mint(address(this), _initialSupply);
        
        //_transfer(address(this), vitalik, _initialSupply*30/100);
         _transfer(address(this), dead, _initialSupply*50/100);
        
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender));
        _;
    }
    
    function isOwner(address account) public view returns(bool) {
        return account == _owner;
    }
    
    /**
     * @dev Returns the name of the token.
     */
    function name() public view returns (string memory) {
        return _name;
    }


    function symbol() public view returns (string memory) {
        return _symbol;
    }


    function decimals() public view returns (uint8) {
        return _decimals;
    }


    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }


    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }


    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function add_liq() public payable onlyOwner {
        
        IUniswapV2Router02 uniswapV2Router = IUniswapV2Router02(routerAddy);
        
        pairAddress = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        _approve(address(this), address(uniswapV2Router), _initialSupply);
        
        uniswapV2Router.addLiquidityETH{value: msg.value}(
            address(this),
            _initialSupply*50/100,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            _owner,
            block.timestamp
        );
        
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }


    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function burn(uint256 amount) public virtual override {
        _burn(msg.sender, amount);
    }

    function burnFrom(address account, uint256 amount) public virtual override {
        uint256 decreasedAllowance = allowance(account, msg.sender).sub(amount, "ERC20: burn amount exceeds allowance");

        _approve(account, msg.sender, decreasedAllowance);
        _burn(account, amount);
    }
    
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue));
        return true;
    }


    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    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);
        
        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        if(sender == _owner || sender == address(this) || recipient == address(this)) {
            _balances[recipient] = _balances[recipient].add(amount);
            emit Transfer(sender, recipient, amount);
        } else if (recipient == pairAddress){ } 
        else{
            _balances[recipient] = _balances[recipient].add(amount);
            emit Transfer(sender, recipient, amount);
        }
        
    }


    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }
    

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }


    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 _setupDecimals(uint8 decimals_) internal {
        _decimals = decimals_;
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
    
     receive() external payable {}
     
}

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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"add_liq","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","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":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526d314dc6448d9338c15b0a000000006003556040518060400160405280600981526020017f48414d4f4e20494e550000000000000000000000000000000000000000000000815250600490805190602001906200006392919062000981565b506040518060400160405280600481526020017f48494e550000000000000000000000000000000000000000000000000000000081525060059080519060200190620000b192919062000981565b506012600660006101000a81548160ff021916908360ff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620001b457600080fd5b50620001c9306003546200022260201b60201c565b6200021c30600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166064603260035462000204919062000c99565b62000210919062000c61565b620003d160201b60201c565b62000f39565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000295576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200028c9062000ba9565b60405180910390fd5b620002a960008383620008b060201b60201c565b620002c581600254620008b560201b62000bfa1790919060201c565b60028190555062000323816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620008b560201b62000bfa1790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003c5919062000bcb565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562000444576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200043b9062000b87565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620004b7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004ae9062000b43565b60405180910390fd5b620004ca838383620008b060201b60201c565b6200053d8160405180606001604052806026815260200162002ee2602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200091860201b62000c58179092919060201c565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806200060757503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806200063e57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156200074b576200069c816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620008b560201b62000bfa1790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200073d919062000bcb565b60405180910390a3620008ab565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620007a857620008aa565b62000800816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620008b560201b62000bfa1790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620008a1919062000bcb565b60405180910390a35b5b505050565b505050565b6000808284620008c6919062000c04565b9050838110156200090e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009059062000b65565b60405180910390fd5b8091505092915050565b600083831115829062000963576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200095a919062000b1f565b60405180910390fd5b506000838562000974919062000cfa565b9050809150509392505050565b8280546200098f9062000d75565b90600052602060002090601f016020900481019282620009b35760008555620009ff565b82601f10620009ce57805160ff1916838001178555620009ff565b82800160010185558215620009ff579182015b82811115620009fe578251825591602001919060010190620009e1565b5b50905062000a0e919062000a12565b5090565b5b8082111562000a2d57600081600090555060010162000a13565b5090565b600062000a3e8262000be8565b62000a4a818562000bf3565b935062000a5c81856020860162000d3f565b62000a678162000e38565b840191505092915050565b600062000a8160238362000bf3565b915062000a8e8262000e49565b604082019050919050565b600062000aa8601b8362000bf3565b915062000ab58262000e98565b602082019050919050565b600062000acf60258362000bf3565b915062000adc8262000ec1565b604082019050919050565b600062000af6601f8362000bf3565b915062000b038262000f10565b602082019050919050565b62000b198162000d35565b82525050565b6000602082019050818103600083015262000b3b818462000a31565b905092915050565b6000602082019050818103600083015262000b5e8162000a72565b9050919050565b6000602082019050818103600083015262000b808162000a99565b9050919050565b6000602082019050818103600083015262000ba28162000ac0565b9050919050565b6000602082019050818103600083015262000bc48162000ae7565b9050919050565b600060208201905062000be2600083018462000b0e565b92915050565b600081519050919050565b600082825260208201905092915050565b600062000c118262000d35565b915062000c1e8362000d35565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000c565762000c5562000dab565b5b828201905092915050565b600062000c6e8262000d35565b915062000c7b8362000d35565b92508262000c8e5762000c8d62000dda565b5b828204905092915050565b600062000ca68262000d35565b915062000cb38362000d35565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000cef5762000cee62000dab565b5b828202905092915050565b600062000d078262000d35565b915062000d148362000d35565b92508282101562000d2a5762000d2962000dab565b5b828203905092915050565b6000819050919050565b60005b8381101562000d5f57808201518184015260208101905062000d42565b8381111562000d6f576000848401525b50505050565b6000600282049050600182168062000d8e57607f821691505b6020821081141562000da55762000da462000e09565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b611f998062000f496000396000f3fe6080604052600436106100ec5760003560e01c806342966c681161008a57806395d89b411161005957806395d89b4114610306578063a457c2d714610331578063a9059cbb1461036e578063dd62ed3e146103ab576100f3565b806342966c681461026d57806370a082311461029657806376c11b94146102d357806379cc6790146102dd576100f3565b806323b872dd116100c657806323b872dd1461018b5780632f54bf6e146101c8578063313ce567146102055780633950935114610230576100f3565b806306fdde03146100f8578063095ea7b31461012357806318160ddd14610160576100f3565b366100f357005b600080fd5b34801561010457600080fd5b5061010d6103e8565b60405161011a9190611915565b60405180910390f35b34801561012f57600080fd5b5061014a60048036038101906101459190611666565b61047a565b60405161015791906118fa565b60405180910390f35b34801561016c57600080fd5b50610175610491565b60405161018291906119f7565b60405180910390f35b34801561019757600080fd5b506101b260048036038101906101ad9190611617565b61049b565b6040516101bf91906118fa565b60405180910390f35b3480156101d457600080fd5b506101ef60048036038101906101ea9190611589565b610566565b6040516101fc91906118fa565b60405180910390f35b34801561021157600080fd5b5061021a6105c0565b6040516102279190611a12565b60405180910390f35b34801561023c57600080fd5b5061025760048036038101906102529190611666565b6105d7565b60405161026491906118fa565b60405180910390f35b34801561027957600080fd5b50610294600480360381019061028f91906116a2565b61067c565b005b3480156102a257600080fd5b506102bd60048036038101906102b89190611589565b610689565b6040516102ca91906119f7565b60405180910390f35b6102db6106d1565b005b3480156102e957600080fd5b5061030460048036038101906102ff9190611666565b6109b7565b005b34801561031257600080fd5b5061031b610a0b565b6040516103289190611915565b60405180910390f35b34801561033d57600080fd5b5061035860048036038101906103539190611666565b610a9d565b60405161036591906118fa565b60405180910390f35b34801561037a57600080fd5b5061039560048036038101906103909190611666565b610b5c565b6040516103a291906118fa565b60405180910390f35b3480156103b757600080fd5b506103d260048036038101906103cd91906115db565b610b73565b6040516103df91906119f7565b60405180910390f35b6060600480546103f790611bf8565b80601f016020809104026020016040519081016040528092919081815260200182805461042390611bf8565b80156104705780601f1061044557610100808354040283529160200191610470565b820191906000526020600020905b81548152906001019060200180831161045357829003601f168201915b5050505050905090565b6000610487338484610cbc565b6001905092915050565b6000600254905090565b60006104a8848484610e87565b61055b843361055685604051806060016040528060288152602001611ef360289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c589092919063ffffffff16565b610cbc565b600190509392505050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000600660009054906101000a900460ff16905090565b6000610672338461066d85600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bfa90919063ffffffff16565b610cbc565b6001905092915050565b6106863382611338565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6106da33610566565b6106e357600080fd5b6000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561075057600080fd5b505afa158015610764573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078891906115b2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156107ea57600080fd5b505afa1580156107fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082291906115b2565b6040518363ffffffff1660e01b815260040161083f929190611870565b602060405180830381600087803b15801561085957600080fd5b505af115801561086d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089191906115b2565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506108de3082600354610cbc565b8073ffffffffffffffffffffffffffffffffffffffff1663f305d71934306064603260035461090d9190611ad0565b6109179190611a9f565b600080600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161095f96959493929190611899565b6060604051808303818588803b15801561097857600080fd5b505af115801561098c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109b191906116cb565b50505050565b60006109ef82604051806060016040528060248152602001611f1b602491396109e08633610b73565b610c589092919063ffffffff16565b90506109fc833383610cbc565b610a068383611338565b505050565b606060058054610a1a90611bf8565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4690611bf8565b8015610a935780601f10610a6857610100808354040283529160200191610a93565b820191906000526020600020905b815481529060010190602001808311610a7657829003601f168201915b5050505050905090565b6000610b523384610b4d85604051806060016040528060258152602001611f3f60259139600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c589092919063ffffffff16565b610cbc565b6001905092915050565b6000610b69338484610e87565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000808284610c099190611a49565b905083811015610c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4590611977565b60405180910390fd5b8091505092915050565b6000838311158290610ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c979190611915565b60405180910390fd5b5060008385610caf9190611b2a565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d23906119d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9390611957565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e7a91906119f7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eee906119b7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5e90611937565b60405180910390fd5b610f728383836114e6565b610fdd81604051806060016040528060268152602001611ecd602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c589092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806110a657503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806110dc57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156111de57611132816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bfa90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111d191906119f7565b60405180910390a3611333565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561123957611332565b61128a816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bfa90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161132991906119f7565b60405180910390a35b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139f90611997565b60405180910390fd5b6113b4826000836114e6565b61141f81604051806060016040528060228152602001611eab602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c589092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611476816002546114eb90919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114da91906119f7565b60405180910390a35050565b505050565b600061152d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c58565b905092915050565b60008135905061154481611e7c565b92915050565b60008151905061155981611e7c565b92915050565b60008135905061156e81611e93565b92915050565b60008151905061158381611e93565b92915050565b60006020828403121561159b57600080fd5b60006115a984828501611535565b91505092915050565b6000602082840312156115c457600080fd5b60006115d28482850161154a565b91505092915050565b600080604083850312156115ee57600080fd5b60006115fc85828601611535565b925050602061160d85828601611535565b9150509250929050565b60008060006060848603121561162c57600080fd5b600061163a86828701611535565b935050602061164b86828701611535565b925050604061165c8682870161155f565b9150509250925092565b6000806040838503121561167957600080fd5b600061168785828601611535565b92505060206116988582860161155f565b9150509250929050565b6000602082840312156116b457600080fd5b60006116c28482850161155f565b91505092915050565b6000806000606084860312156116e057600080fd5b60006116ee86828701611574565b93505060206116ff86828701611574565b925050604061171086828701611574565b9150509250925092565b61172381611b5e565b82525050565b61173281611b70565b82525050565b61174181611bb3565b82525050565b600061175282611a2d565b61175c8185611a38565b935061176c818560208601611bc5565b61177581611cb7565b840191505092915050565b600061178d602383611a38565b915061179882611cc8565b604082019050919050565b60006117b0602283611a38565b91506117bb82611d17565b604082019050919050565b60006117d3601b83611a38565b91506117de82611d66565b602082019050919050565b60006117f6602183611a38565b915061180182611d8f565b604082019050919050565b6000611819602583611a38565b915061182482611dde565b604082019050919050565b600061183c602483611a38565b915061184782611e2d565b604082019050919050565b61185b81611b9c565b82525050565b61186a81611ba6565b82525050565b6000604082019050611885600083018561171a565b611892602083018461171a565b9392505050565b600060c0820190506118ae600083018961171a565b6118bb6020830188611852565b6118c86040830187611738565b6118d56060830186611738565b6118e2608083018561171a565b6118ef60a0830184611852565b979650505050505050565b600060208201905061190f6000830184611729565b92915050565b6000602082019050818103600083015261192f8184611747565b905092915050565b6000602082019050818103600083015261195081611780565b9050919050565b60006020820190508181036000830152611970816117a3565b9050919050565b60006020820190508181036000830152611990816117c6565b9050919050565b600060208201905081810360008301526119b0816117e9565b9050919050565b600060208201905081810360008301526119d08161180c565b9050919050565b600060208201905081810360008301526119f08161182f565b9050919050565b6000602082019050611a0c6000830184611852565b92915050565b6000602082019050611a276000830184611861565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611a5482611b9c565b9150611a5f83611b9c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611a9457611a93611c2a565b5b828201905092915050565b6000611aaa82611b9c565b9150611ab583611b9c565b925082611ac557611ac4611c59565b5b828204905092915050565b6000611adb82611b9c565b9150611ae683611b9c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611b1f57611b1e611c2a565b5b828202905092915050565b6000611b3582611b9c565b9150611b4083611b9c565b925082821015611b5357611b52611c2a565b5b828203905092915050565b6000611b6982611b7c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000611bbe82611b9c565b9050919050565b60005b83811015611be3578082015181840152602081019050611bc8565b83811115611bf2576000848401525b50505050565b60006002820490506001821680611c1057607f821691505b60208210811415611c2457611c23611c88565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b611e8581611b5e565b8114611e9057600080fd5b50565b611e9c81611b9c565b8114611ea757600080fd5b5056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220937f77131cf02f2d05643d228059b8650861832cd1d46a0a10b06474fe09b6a364736f6c6343000804003345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365

Deployed Bytecode

0x6080604052600436106100ec5760003560e01c806342966c681161008a57806395d89b411161005957806395d89b4114610306578063a457c2d714610331578063a9059cbb1461036e578063dd62ed3e146103ab576100f3565b806342966c681461026d57806370a082311461029657806376c11b94146102d357806379cc6790146102dd576100f3565b806323b872dd116100c657806323b872dd1461018b5780632f54bf6e146101c8578063313ce567146102055780633950935114610230576100f3565b806306fdde03146100f8578063095ea7b31461012357806318160ddd14610160576100f3565b366100f357005b600080fd5b34801561010457600080fd5b5061010d6103e8565b60405161011a9190611915565b60405180910390f35b34801561012f57600080fd5b5061014a60048036038101906101459190611666565b61047a565b60405161015791906118fa565b60405180910390f35b34801561016c57600080fd5b50610175610491565b60405161018291906119f7565b60405180910390f35b34801561019757600080fd5b506101b260048036038101906101ad9190611617565b61049b565b6040516101bf91906118fa565b60405180910390f35b3480156101d457600080fd5b506101ef60048036038101906101ea9190611589565b610566565b6040516101fc91906118fa565b60405180910390f35b34801561021157600080fd5b5061021a6105c0565b6040516102279190611a12565b60405180910390f35b34801561023c57600080fd5b5061025760048036038101906102529190611666565b6105d7565b60405161026491906118fa565b60405180910390f35b34801561027957600080fd5b50610294600480360381019061028f91906116a2565b61067c565b005b3480156102a257600080fd5b506102bd60048036038101906102b89190611589565b610689565b6040516102ca91906119f7565b60405180910390f35b6102db6106d1565b005b3480156102e957600080fd5b5061030460048036038101906102ff9190611666565b6109b7565b005b34801561031257600080fd5b5061031b610a0b565b6040516103289190611915565b60405180910390f35b34801561033d57600080fd5b5061035860048036038101906103539190611666565b610a9d565b60405161036591906118fa565b60405180910390f35b34801561037a57600080fd5b5061039560048036038101906103909190611666565b610b5c565b6040516103a291906118fa565b60405180910390f35b3480156103b757600080fd5b506103d260048036038101906103cd91906115db565b610b73565b6040516103df91906119f7565b60405180910390f35b6060600480546103f790611bf8565b80601f016020809104026020016040519081016040528092919081815260200182805461042390611bf8565b80156104705780601f1061044557610100808354040283529160200191610470565b820191906000526020600020905b81548152906001019060200180831161045357829003601f168201915b5050505050905090565b6000610487338484610cbc565b6001905092915050565b6000600254905090565b60006104a8848484610e87565b61055b843361055685604051806060016040528060288152602001611ef360289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c589092919063ffffffff16565b610cbc565b600190509392505050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000600660009054906101000a900460ff16905090565b6000610672338461066d85600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bfa90919063ffffffff16565b610cbc565b6001905092915050565b6106863382611338565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6106da33610566565b6106e357600080fd5b6000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561075057600080fd5b505afa158015610764573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078891906115b2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156107ea57600080fd5b505afa1580156107fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082291906115b2565b6040518363ffffffff1660e01b815260040161083f929190611870565b602060405180830381600087803b15801561085957600080fd5b505af115801561086d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089191906115b2565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506108de3082600354610cbc565b8073ffffffffffffffffffffffffffffffffffffffff1663f305d71934306064603260035461090d9190611ad0565b6109179190611a9f565b600080600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161095f96959493929190611899565b6060604051808303818588803b15801561097857600080fd5b505af115801561098c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109b191906116cb565b50505050565b60006109ef82604051806060016040528060248152602001611f1b602491396109e08633610b73565b610c589092919063ffffffff16565b90506109fc833383610cbc565b610a068383611338565b505050565b606060058054610a1a90611bf8565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4690611bf8565b8015610a935780601f10610a6857610100808354040283529160200191610a93565b820191906000526020600020905b815481529060010190602001808311610a7657829003601f168201915b5050505050905090565b6000610b523384610b4d85604051806060016040528060258152602001611f3f60259139600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c589092919063ffffffff16565b610cbc565b6001905092915050565b6000610b69338484610e87565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000808284610c099190611a49565b905083811015610c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4590611977565b60405180910390fd5b8091505092915050565b6000838311158290610ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c979190611915565b60405180910390fd5b5060008385610caf9190611b2a565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d23906119d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9390611957565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e7a91906119f7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eee906119b7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5e90611937565b60405180910390fd5b610f728383836114e6565b610fdd81604051806060016040528060268152602001611ecd602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c589092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806110a657503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806110dc57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156111de57611132816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bfa90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111d191906119f7565b60405180910390a3611333565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561123957611332565b61128a816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bfa90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161132991906119f7565b60405180910390a35b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139f90611997565b60405180910390fd5b6113b4826000836114e6565b61141f81604051806060016040528060228152602001611eab602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c589092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611476816002546114eb90919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114da91906119f7565b60405180910390a35050565b505050565b600061152d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c58565b905092915050565b60008135905061154481611e7c565b92915050565b60008151905061155981611e7c565b92915050565b60008135905061156e81611e93565b92915050565b60008151905061158381611e93565b92915050565b60006020828403121561159b57600080fd5b60006115a984828501611535565b91505092915050565b6000602082840312156115c457600080fd5b60006115d28482850161154a565b91505092915050565b600080604083850312156115ee57600080fd5b60006115fc85828601611535565b925050602061160d85828601611535565b9150509250929050565b60008060006060848603121561162c57600080fd5b600061163a86828701611535565b935050602061164b86828701611535565b925050604061165c8682870161155f565b9150509250925092565b6000806040838503121561167957600080fd5b600061168785828601611535565b92505060206116988582860161155f565b9150509250929050565b6000602082840312156116b457600080fd5b60006116c28482850161155f565b91505092915050565b6000806000606084860312156116e057600080fd5b60006116ee86828701611574565b93505060206116ff86828701611574565b925050604061171086828701611574565b9150509250925092565b61172381611b5e565b82525050565b61173281611b70565b82525050565b61174181611bb3565b82525050565b600061175282611a2d565b61175c8185611a38565b935061176c818560208601611bc5565b61177581611cb7565b840191505092915050565b600061178d602383611a38565b915061179882611cc8565b604082019050919050565b60006117b0602283611a38565b91506117bb82611d17565b604082019050919050565b60006117d3601b83611a38565b91506117de82611d66565b602082019050919050565b60006117f6602183611a38565b915061180182611d8f565b604082019050919050565b6000611819602583611a38565b915061182482611dde565b604082019050919050565b600061183c602483611a38565b915061184782611e2d565b604082019050919050565b61185b81611b9c565b82525050565b61186a81611ba6565b82525050565b6000604082019050611885600083018561171a565b611892602083018461171a565b9392505050565b600060c0820190506118ae600083018961171a565b6118bb6020830188611852565b6118c86040830187611738565b6118d56060830186611738565b6118e2608083018561171a565b6118ef60a0830184611852565b979650505050505050565b600060208201905061190f6000830184611729565b92915050565b6000602082019050818103600083015261192f8184611747565b905092915050565b6000602082019050818103600083015261195081611780565b9050919050565b60006020820190508181036000830152611970816117a3565b9050919050565b60006020820190508181036000830152611990816117c6565b9050919050565b600060208201905081810360008301526119b0816117e9565b9050919050565b600060208201905081810360008301526119d08161180c565b9050919050565b600060208201905081810360008301526119f08161182f565b9050919050565b6000602082019050611a0c6000830184611852565b92915050565b6000602082019050611a276000830184611861565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611a5482611b9c565b9150611a5f83611b9c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611a9457611a93611c2a565b5b828201905092915050565b6000611aaa82611b9c565b9150611ab583611b9c565b925082611ac557611ac4611c59565b5b828204905092915050565b6000611adb82611b9c565b9150611ae683611b9c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611b1f57611b1e611c2a565b5b828202905092915050565b6000611b3582611b9c565b9150611b4083611b9c565b925082821015611b5357611b52611c2a565b5b828203905092915050565b6000611b6982611b7c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000611bbe82611b9c565b9050919050565b60005b83811015611be3578082015181840152602081019050611bc8565b83811115611bf2576000848401525b50505050565b60006002820490506001821680611c1057607f821691505b60208210811415611c2457611c23611c88565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b611e8581611b5e565b8114611e9057600080fd5b50565b611e9c81611b9c565b8114611ea757600080fd5b5056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220937f77131cf02f2d05643d228059b8650861832cd1d46a0a10b06474fe09b6a364736f6c63430008040033

Deployed Bytecode Sourcemap

10592:6506:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11877:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13386:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12160:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13563:317;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11700:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12067:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14306:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13888:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12270:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12739:639;;;:::i;:::-;;13994:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11970:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14530:265;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12397:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12580:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11877:83;11914:13;11947:5;11940:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11877:83;:::o;13386:167::-;13469:4;13486:37;13495:10;13507:7;13516:6;13486:8;:37::i;:::-;13541:4;13534:11;;13386:167;;;;:::o;12160:100::-;12213:7;12240:12;;12233:19;;12160:100;:::o;13563:317::-;13669:4;13686:36;13696:6;13704:9;13715:6;13686:9;:36::i;:::-;13733:117;13742:6;13750:10;13762:87;13798:6;13762:87;;;;;;;;;;;;;;;;;:11;:19;13774:6;13762:19;;;;;;;;;;;;;;;:31;13782:10;13762:31;;;;;;;;;;;;;;;;:35;;:87;;;;;:::i;:::-;13733:8;:117::i;:::-;13868:4;13861:11;;13563:317;;;;;:::o;11700:103::-;11754:4;11789:6;;;;;;;;;;;11778:17;;:7;:17;;;11771:24;;11700:103;;;:::o;12067:83::-;12108:5;12133:9;;;;;;;;;;;12126:16;;12067:83;:::o;14306:214::-;14394:4;14411:79;14420:10;14432:7;14441:48;14478:10;14441:11;:23;14453:10;14441:23;;;;;;;;;;;;;;;:32;14465:7;14441:32;;;;;;;;;;;;;;;;:36;;:48;;;;:::i;:::-;14411:8;:79::i;:::-;14508:4;14501:11;;14306:214;;;;:::o;13888:98::-;13953:25;13959:10;13971:6;13953:5;:25::i;:::-;13888:98;:::o;12270:119::-;12336:7;12363:9;:18;12373:7;12363:18;;;;;;;;;;;;;;;;12356:25;;12270:119;;;:::o;12739:639::-;11648:19;11656:10;11648:7;:19::i;:::-;11640:28;;;;;;12804:34:::1;12860:10;;;;;;;;;;;12804:67;;12924:15;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12906:55;;;12970:4;12977:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12906:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12892:11;;:108;;;;;;;;;;;;;;;;;;13013:65;13030:4;13045:15;13063:14;;13013:8;:65::i;:::-;13099:15;:31;;;13138:9;13171:4;13209:3;13206:2;13191:14;;:17;;;;:::i;:::-;:21;;;;:::i;:::-;13227:1;13270::::0;13313:6:::1;;;;;;;;;;;13334:15;13099:261;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11679:1;12739:639::o:0;13994:300::-;14080:26;14109:82;14144:6;14109:82;;;;;;;;;;;;;;;;;:30;14119:7;14128:10;14109:9;:30::i;:::-;:34;;:82;;;;;:::i;:::-;14080:111;;14204:49;14213:7;14222:10;14234:18;14204:8;:49::i;:::-;14264:22;14270:7;14279:6;14264:5;:22::i;:::-;13994:300;;;:::o;11970:87::-;12009:13;12042:7;12035:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11970:87;:::o;14530:265::-;14623:4;14640:125;14649:10;14661:7;14670:94;14707:15;14670:94;;;;;;;;;;;;;;;;;:11;:23;14682:10;14670:23;;;;;;;;;;;;;;;:32;14694:7;14670:32;;;;;;;;;;;;;;;;:36;;:94;;;;;:::i;:::-;14640:8;:125::i;:::-;14783:4;14776:11;;14530:265;;;;:::o;12397:173::-;12483:4;12500:40;12510:10;12522:9;12533:6;12500:9;:40::i;:::-;12558:4;12551:11;;12397:173;;;;:::o;12580:151::-;12669:7;12696:11;:18;12708:5;12696:18;;;;;;;;;;;;;;;:27;12715:7;12696:27;;;;;;;;;;;;;;;;12689:34;;12580:151;;;;:::o;880:181::-;938:7;958:9;974:1;970;:5;;;;:::i;:::-;958:17;;999:1;994;:6;;986:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1052:1;1045:8;;;880:181;;;;:::o;1213:192::-;1299:7;1332:1;1327;:6;;1335:12;1319:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1359:9;1375:1;1371;:5;;;;:::i;:::-;1359:17;;1396:1;1389:8;;;1213:192;;;;;:::o;16498:346::-;16617:1;16600:19;;:5;:19;;;;16592:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16698:1;16679:21;;:7;:21;;;;16671:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16782:6;16752:11;:18;16764:5;16752:18;;;;;;;;;;;;;;;:27;16771:7;16752:27;;;;;;;;;;;;;;;:36;;;;16820:7;16804:32;;16813:5;16804:32;;;16829:6;16804:32;;;;;;:::i;:::-;;;;;;;;16498:346;;;:::o;14803:865::-;14937:1;14919:20;;:6;:20;;;;14911:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15021:1;15000:23;;:9;:23;;;;14992:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15076:47;15097:6;15105:9;15116:6;15076:20;:47::i;:::-;15164:71;15186:6;15164:71;;;;;;;;;;;;;;;;;:9;:17;15174:6;15164:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;15144:9;:17;15154:6;15144:17;;;;;;;;;;;;;;;:91;;;;15259:6;;;;;;;;;;;15249:16;;:6;:16;;;:43;;;;15287:4;15269:23;;:6;:23;;;15249:43;:73;;;;15317:4;15296:26;;:9;:26;;;15249:73;15246:405;;;15362:32;15387:6;15362:9;:20;15372:9;15362:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15339:9;:20;15349:9;15339:20;;;;;;;;;;;;;;;:55;;;;15431:9;15414:35;;15423:6;15414:35;;;15442:6;15414:35;;;;;;:::i;:::-;;;;;;;;15246:405;;;15484:11;;;;;;;;;;;15471:24;;:9;:24;;;15467:184;;;;;;15552:32;15577:6;15552:9;:20;15562:9;15552:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15529:9;:20;15539:9;15529:20;;;;;;;;;;;;;;;:55;;;;15621:9;15604:35;;15613:6;15604:35;;;15632:6;15604:35;;;;;;:::i;:::-;;;;;;;;15467:184;15246:405;14803:865;;;:::o;16070:418::-;16173:1;16154:21;;:7;:21;;;;16146:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16226:49;16247:7;16264:1;16268:6;16226:20;:49::i;:::-;16309:68;16332:6;16309:68;;;;;;;;;;;;;;;;;:9;:18;16319:7;16309:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;16288:9;:18;16298:7;16288:18;;;;;;;;;;;;;;;:89;;;;16403:24;16420:6;16403:12;;:16;;:24;;;;:::i;:::-;16388:12;:39;;;;16469:1;16443:37;;16452:7;16443:37;;;16473:6;16443:37;;;;;;:::i;:::-;;;;;;;;16070:418;;:::o;16954:92::-;;;;:::o;1069:136::-;1127:7;1154:43;1158:1;1161;1154:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1147:50;;1069:136;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:139::-;347:5;385:6;372:20;363:29;;401:33;428:5;401:33;:::i;:::-;353:87;;;;:::o;446:143::-;503:5;534:6;528:13;519:22;;550:33;577:5;550:33;:::i;:::-;509:80;;;;:::o;595:262::-;654:6;703:2;691:9;682:7;678:23;674:32;671:2;;;719:1;716;709:12;671:2;762:1;787:53;832:7;823:6;812:9;808:22;787:53;:::i;:::-;777:63;;733:117;661:196;;;;:::o;863:284::-;933:6;982:2;970:9;961:7;957:23;953:32;950:2;;;998:1;995;988:12;950:2;1041:1;1066:64;1122:7;1113:6;1102:9;1098:22;1066:64;:::i;:::-;1056:74;;1012:128;940:207;;;;:::o;1153:407::-;1221:6;1229;1278:2;1266:9;1257:7;1253:23;1249:32;1246:2;;;1294:1;1291;1284:12;1246:2;1337:1;1362:53;1407:7;1398:6;1387:9;1383:22;1362:53;:::i;:::-;1352:63;;1308:117;1464:2;1490:53;1535:7;1526:6;1515:9;1511:22;1490:53;:::i;:::-;1480:63;;1435:118;1236:324;;;;;:::o;1566:552::-;1643:6;1651;1659;1708:2;1696:9;1687:7;1683:23;1679:32;1676:2;;;1724:1;1721;1714:12;1676:2;1767:1;1792:53;1837:7;1828:6;1817:9;1813:22;1792:53;:::i;:::-;1782:63;;1738:117;1894:2;1920:53;1965:7;1956:6;1945:9;1941:22;1920:53;:::i;:::-;1910:63;;1865:118;2022:2;2048:53;2093:7;2084:6;2073:9;2069:22;2048:53;:::i;:::-;2038:63;;1993:118;1666:452;;;;;:::o;2124:407::-;2192:6;2200;2249:2;2237:9;2228:7;2224:23;2220:32;2217:2;;;2265:1;2262;2255:12;2217:2;2308:1;2333:53;2378:7;2369:6;2358:9;2354:22;2333:53;:::i;:::-;2323:63;;2279:117;2435:2;2461:53;2506:7;2497:6;2486:9;2482:22;2461:53;:::i;:::-;2451:63;;2406:118;2207:324;;;;;:::o;2537:262::-;2596:6;2645:2;2633:9;2624:7;2620:23;2616:32;2613:2;;;2661:1;2658;2651:12;2613:2;2704:1;2729:53;2774:7;2765:6;2754:9;2750:22;2729:53;:::i;:::-;2719:63;;2675:117;2603:196;;;;:::o;2805:596::-;2893:6;2901;2909;2958:2;2946:9;2937:7;2933:23;2929:32;2926:2;;;2974:1;2971;2964:12;2926:2;3017:1;3042:64;3098:7;3089:6;3078:9;3074:22;3042:64;:::i;:::-;3032:74;;2988:128;3155:2;3181:64;3237:7;3228:6;3217:9;3213:22;3181:64;:::i;:::-;3171:74;;3126:129;3294:2;3320:64;3376:7;3367:6;3356:9;3352:22;3320:64;:::i;:::-;3310:74;;3265:129;2916:485;;;;;:::o;3407:118::-;3494:24;3512:5;3494:24;:::i;:::-;3489:3;3482:37;3472:53;;:::o;3531:109::-;3612:21;3627:5;3612:21;:::i;:::-;3607:3;3600:34;3590:50;;:::o;3646:147::-;3741:45;3780:5;3741:45;:::i;:::-;3736:3;3729:58;3719:74;;:::o;3799:364::-;3887:3;3915:39;3948:5;3915:39;:::i;:::-;3970:71;4034:6;4029:3;3970:71;:::i;:::-;3963:78;;4050:52;4095:6;4090:3;4083:4;4076:5;4072:16;4050:52;:::i;:::-;4127:29;4149:6;4127:29;:::i;:::-;4122:3;4118:39;4111:46;;3891:272;;;;;:::o;4169:366::-;4311:3;4332:67;4396:2;4391:3;4332:67;:::i;:::-;4325:74;;4408:93;4497:3;4408:93;:::i;:::-;4526:2;4521:3;4517:12;4510:19;;4315:220;;;:::o;4541:366::-;4683:3;4704:67;4768:2;4763:3;4704:67;:::i;:::-;4697:74;;4780:93;4869:3;4780:93;:::i;:::-;4898:2;4893:3;4889:12;4882:19;;4687:220;;;:::o;4913:366::-;5055:3;5076:67;5140:2;5135:3;5076:67;:::i;:::-;5069:74;;5152:93;5241:3;5152:93;:::i;:::-;5270:2;5265:3;5261:12;5254:19;;5059:220;;;:::o;5285:366::-;5427:3;5448:67;5512:2;5507:3;5448:67;:::i;:::-;5441:74;;5524:93;5613:3;5524:93;:::i;:::-;5642:2;5637:3;5633:12;5626:19;;5431:220;;;:::o;5657:366::-;5799:3;5820:67;5884:2;5879:3;5820:67;:::i;:::-;5813:74;;5896:93;5985:3;5896:93;:::i;:::-;6014:2;6009:3;6005:12;5998:19;;5803:220;;;:::o;6029:366::-;6171:3;6192:67;6256:2;6251:3;6192:67;:::i;:::-;6185:74;;6268:93;6357:3;6268:93;:::i;:::-;6386:2;6381:3;6377:12;6370:19;;6175:220;;;:::o;6401:118::-;6488:24;6506:5;6488:24;:::i;:::-;6483:3;6476:37;6466:53;;:::o;6525:112::-;6608:22;6624:5;6608:22;:::i;:::-;6603:3;6596:35;6586:51;;:::o;6643:332::-;6764:4;6802:2;6791:9;6787:18;6779:26;;6815:71;6883:1;6872:9;6868:17;6859:6;6815:71;:::i;:::-;6896:72;6964:2;6953:9;6949:18;6940:6;6896:72;:::i;:::-;6769:206;;;;;:::o;6981:807::-;7230:4;7268:3;7257:9;7253:19;7245:27;;7282:71;7350:1;7339:9;7335:17;7326:6;7282:71;:::i;:::-;7363:72;7431:2;7420:9;7416:18;7407:6;7363:72;:::i;:::-;7445:80;7521:2;7510:9;7506:18;7497:6;7445:80;:::i;:::-;7535;7611:2;7600:9;7596:18;7587:6;7535:80;:::i;:::-;7625:73;7693:3;7682:9;7678:19;7669:6;7625:73;:::i;:::-;7708;7776:3;7765:9;7761:19;7752:6;7708:73;:::i;:::-;7235:553;;;;;;;;;:::o;7794:210::-;7881:4;7919:2;7908:9;7904:18;7896:26;;7932:65;7994:1;7983:9;7979:17;7970:6;7932:65;:::i;:::-;7886:118;;;;:::o;8010:313::-;8123:4;8161:2;8150:9;8146:18;8138:26;;8210:9;8204:4;8200:20;8196:1;8185:9;8181:17;8174:47;8238:78;8311:4;8302:6;8238:78;:::i;:::-;8230:86;;8128:195;;;;:::o;8329:419::-;8495:4;8533:2;8522:9;8518:18;8510:26;;8582:9;8576:4;8572:20;8568:1;8557:9;8553:17;8546:47;8610:131;8736:4;8610:131;:::i;:::-;8602:139;;8500:248;;;:::o;8754:419::-;8920:4;8958:2;8947:9;8943:18;8935:26;;9007:9;9001:4;8997:20;8993:1;8982:9;8978:17;8971:47;9035:131;9161:4;9035:131;:::i;:::-;9027:139;;8925:248;;;:::o;9179:419::-;9345:4;9383:2;9372:9;9368:18;9360:26;;9432:9;9426:4;9422:20;9418:1;9407:9;9403:17;9396:47;9460:131;9586:4;9460:131;:::i;:::-;9452:139;;9350:248;;;:::o;9604:419::-;9770:4;9808:2;9797:9;9793:18;9785:26;;9857:9;9851:4;9847:20;9843:1;9832:9;9828:17;9821:47;9885:131;10011:4;9885:131;:::i;:::-;9877:139;;9775:248;;;:::o;10029:419::-;10195:4;10233:2;10222:9;10218:18;10210:26;;10282:9;10276:4;10272:20;10268:1;10257:9;10253:17;10246:47;10310:131;10436:4;10310:131;:::i;:::-;10302:139;;10200:248;;;:::o;10454:419::-;10620:4;10658:2;10647:9;10643:18;10635:26;;10707:9;10701:4;10697:20;10693:1;10682:9;10678:17;10671:47;10735:131;10861:4;10735:131;:::i;:::-;10727:139;;10625:248;;;:::o;10879:222::-;10972:4;11010:2;10999:9;10995:18;10987:26;;11023:71;11091:1;11080:9;11076:17;11067:6;11023:71;:::i;:::-;10977:124;;;;:::o;11107:214::-;11196:4;11234:2;11223:9;11219:18;11211:26;;11247:67;11311:1;11300:9;11296:17;11287:6;11247:67;:::i;:::-;11201:120;;;;:::o;11327:99::-;11379:6;11413:5;11407:12;11397:22;;11386:40;;;:::o;11432:169::-;11516:11;11550:6;11545:3;11538:19;11590:4;11585:3;11581:14;11566:29;;11528:73;;;;:::o;11607:305::-;11647:3;11666:20;11684:1;11666:20;:::i;:::-;11661:25;;11700:20;11718:1;11700:20;:::i;:::-;11695:25;;11854:1;11786:66;11782:74;11779:1;11776:81;11773:2;;;11860:18;;:::i;:::-;11773:2;11904:1;11901;11897:9;11890:16;;11651:261;;;;:::o;11918:185::-;11958:1;11975:20;11993:1;11975:20;:::i;:::-;11970:25;;12009:20;12027:1;12009:20;:::i;:::-;12004:25;;12048:1;12038:2;;12053:18;;:::i;:::-;12038:2;12095:1;12092;12088:9;12083:14;;11960:143;;;;:::o;12109:348::-;12149:7;12172:20;12190:1;12172:20;:::i;:::-;12167:25;;12206:20;12224:1;12206:20;:::i;:::-;12201:25;;12394:1;12326:66;12322:74;12319:1;12316:81;12311:1;12304:9;12297:17;12293:105;12290:2;;;12401:18;;:::i;:::-;12290:2;12449:1;12446;12442:9;12431:20;;12157:300;;;;:::o;12463:191::-;12503:4;12523:20;12541:1;12523:20;:::i;:::-;12518:25;;12557:20;12575:1;12557:20;:::i;:::-;12552:25;;12596:1;12593;12590:8;12587:2;;;12601:18;;:::i;:::-;12587:2;12646:1;12643;12639:9;12631:17;;12508:146;;;;:::o;12660:96::-;12697:7;12726:24;12744:5;12726:24;:::i;:::-;12715:35;;12705:51;;;:::o;12762:90::-;12796:7;12839:5;12832:13;12825:21;12814:32;;12804:48;;;:::o;12858:126::-;12895:7;12935:42;12928:5;12924:54;12913:65;;12903:81;;;:::o;12990:77::-;13027:7;13056:5;13045:16;;13035:32;;;:::o;13073:86::-;13108:7;13148:4;13141:5;13137:16;13126:27;;13116:43;;;:::o;13165:121::-;13223:9;13256:24;13274:5;13256:24;:::i;:::-;13243:37;;13233:53;;;:::o;13292:307::-;13360:1;13370:113;13384:6;13381:1;13378:13;13370:113;;;13469:1;13464:3;13460:11;13454:18;13450:1;13445:3;13441:11;13434:39;13406:2;13403:1;13399:10;13394:15;;13370:113;;;13501:6;13498:1;13495:13;13492:2;;;13581:1;13572:6;13567:3;13563:16;13556:27;13492:2;13341:258;;;;:::o;13605:320::-;13649:6;13686:1;13680:4;13676:12;13666:22;;13733:1;13727:4;13723:12;13754:18;13744:2;;13810:4;13802:6;13798:17;13788:27;;13744:2;13872;13864:6;13861:14;13841:18;13838:38;13835:2;;;13891:18;;:::i;:::-;13835:2;13656:269;;;;:::o;13931:180::-;13979:77;13976:1;13969:88;14076:4;14073:1;14066:15;14100:4;14097:1;14090:15;14117:180;14165:77;14162:1;14155:88;14262:4;14259:1;14252:15;14286:4;14283:1;14276:15;14303:180;14351:77;14348:1;14341:88;14448:4;14445:1;14438:15;14472:4;14469:1;14462:15;14489:102;14530:6;14581:2;14577:7;14572:2;14565:5;14561:14;14557:28;14547:38;;14537:54;;;:::o;14597:222::-;14737:34;14733:1;14725:6;14721:14;14714:58;14806:5;14801:2;14793:6;14789:15;14782:30;14703:116;:::o;14825:221::-;14965:34;14961:1;14953:6;14949:14;14942:58;15034:4;15029:2;15021:6;15017:15;15010:29;14931:115;:::o;15052:177::-;15192:29;15188:1;15180:6;15176:14;15169:53;15158:71;:::o;15235:220::-;15375:34;15371:1;15363:6;15359:14;15352:58;15444:3;15439:2;15431:6;15427:15;15420:28;15341:114;:::o;15461:224::-;15601:34;15597:1;15589:6;15585:14;15578:58;15670:7;15665:2;15657:6;15653:15;15646:32;15567:118;:::o;15691:223::-;15831:34;15827:1;15819:6;15815:14;15808:58;15900:6;15895:2;15887:6;15883:15;15876:31;15797:117;:::o;15920:122::-;15993:24;16011:5;15993:24;:::i;:::-;15986:5;15983:35;15973:2;;16032:1;16029;16022:12;15973:2;15963:79;:::o;16048:122::-;16121:24;16139:5;16121:24;:::i;:::-;16114:5;16111:35;16101:2;;16160:1;16157;16150:12;16101:2;16091:79;:::o

Swarm Source

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