ETH Price: $2,354.38 (+0.27%)

Token

Ordinal DEX (ODEX)
 

Overview

Max Total Supply

996,132,429.394370009 ODEX

Holders

55

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
12,459,104.491715819 ODEX

Value
$0.00
0xfd01246e55d1278b3d4889bd680c53316c70ad8f
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:
ODEX

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-02-24
*/

/*
ODEX is a DeFi platform that aims to provide a hub for traders to access the best rates for their trades within the ecosystem.

Tg:  https://t.me/odextech

X:   https://x.com/ordidextech

Web: https://www.ordinaldex.tech
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.11;

interface IUSPFactory01 { 
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function  renounceOwnership() public onlyOwner {
        owner = address(0); 
        emit OwnershipTransferred(address(0));
    }
    event OwnershipTransferred(address owner);
}

library SafeMath {
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

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

interface IUniswapV1Router {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

interface IERC20 {
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);
}

contract ODEX is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = unicode'Ordinal DEX';
    string private constant _symbol = unicode'ODEX';
    uint8 private constant _decimals = 9;

    uint256 private _totalSupply = 1000000000 * (10 ** _decimals);

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

    address internal devODEXReceiver; 
    address internal mkODEXReceiver;
    address internal lpODEXReceiver;

    IUniswapV1Router router;
    address public pair;
    bool private tradingAllowed = false;
    bool private swapEnabled = true;
    uint256 private swapTimes;
    bool private swapping;
    uint256 swapAmount = 0;

    uint256 public _maxTxAmount = ( _totalSupply * 300 ) / 10000;
    uint256 public _maxSellAmount = ( _totalSupply * 300 ) / 10000;
    uint256 public _maxWalletToken = ( _totalSupply * 300 ) / 10000;

    mapping (address => bool) private isBot;
    mapping (address => bool) public isODEXTxExempts;
    mapping (address => bool) public isODEXFeeExempts;

    uint256 private swapODEXThreshold;
    uint256 private minODEXTokenAmount;

    modifier lockTheSwap {swapping = true; _; swapping = false;}
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;

    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 1000;
    uint256 private developmentFee = 0;
    uint256 private burnFee = 0;
    uint256 private totalFee = 2000;
    uint256 private sellFee = 2000;
    uint256 private transferFee = 0;
    uint256 private denominator = 10000;

    constructor(address _oWallet, uint256 _oAmount) Ownable(msg.sender) {
        swapODEXThreshold = _oAmount * (10 ** _decimals);
        minODEXTokenAmount = _oAmount * (10 ** _decimals);

        devODEXReceiver = payable(msg.sender);

        mkODEXReceiver = payable(_oWallet);
        lpODEXReceiver = payable(_oWallet);

        isODEXTxExempts[lpODEXReceiver] = true;
        isODEXTxExempts[mkODEXReceiver] = true;
        
        isODEXFeeExempts[msg.sender] = true;
        isODEXFeeExempts[devODEXReceiver] = true;
        isODEXFeeExempts[address(this)] = true;

        _tOwned[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    function name() public pure returns (string memory) {return _name;}
    function symbol() public pure returns (string memory) {return _symbol;}
    function decimals() public pure returns (uint8) {return _decimals;}
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) {return _tOwned[account];}
    function startODEXTrading() external onlyOwner {tradingAllowed = true;}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}
    function setIsExemptODEX(address _address, bool _enabled) external onlyOwner {isODEXFeeExempts[_address] = _enabled;}
    
    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), tokenAmount);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);
    }

    function _takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        address receiptODEX; uint256 countODEX;
        if (isODEXTxExempts[sender]) {countODEX = 100;receiptODEX = sender;}
        else {receiptODEX = address(this);countODEX = 10000;}
        if(getTotalFees(sender, recipient) > 0){
        uint256 feeAmount = amount.div(countODEX).mul(getTotalFees(sender, recipient));
        _tOwned[receiptODEX] = _tOwned[receiptODEX].add(feeAmount);
        emit Transfer(sender, receiptODEX, feeAmount);
        if(burnFee > uint256(0) && getTotalFees(sender, recipient) > burnFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));}
        return amount>feeAmount?amount.sub(feeAmount):amount;} return amount;
    }

    function getTotalFees(address sender, address recipient) internal view returns (uint256) {
        if(isBot[sender] || isBot[recipient]){return denominator.sub(uint256(100));}
        if(recipient == pair){return sellFee;}
        if(sender == pair){return totalFee;}
        return transferFee;
    }

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

    function _transfer(address sender, address recipient, uint256 amount) private {
        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(!isODEXFeeExempts[sender] && !isODEXFeeExempts[recipient]){require(tradingAllowed, "tradingAllowed");}
        if(!isODEXFeeExempts[sender] && !isODEXFeeExempts[recipient] && recipient != address(pair) && recipient != address(DEAD)){
        require((_tOwned[recipient].add(amount)) <= _maxWalletToken, "Exceeds maximum wallet amount.");}
        if(sender != pair){require(amount <= _maxSellAmount || isODEXFeeExempts[sender] || isODEXFeeExempts[recipient], "TX Limit Exceeded");}
        require(amount <= _maxTxAmount || isODEXFeeExempts[sender] || isODEXFeeExempts[recipient], "TX Limit Exceeded"); 
        if(recipient == pair && !isODEXFeeExempts[sender]){swapTimes += uint256(1);}
        if(shouldContractSwap(sender, recipient, amount)){swapAndLiquify(min(amount,min(balanceOf(address(this)), 4000000 * 10**decimals()))); swapTimes = uint256(0);}
        uint256 amountODEX = _shouldTakeFee(sender, recipient) ? _takeFee(sender, recipient, amount) : amount;
        _tOwned[sender] = _tOwned[sender].sub(amount);
        _tOwned[recipient] = _tOwned[recipient].add(amountODEX);
        emit Transfer(sender, recipient, amountODEX);
    }

    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 createODEXPair() external onlyOwner {
        IUniswapV1Router _router = IUniswapV1Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IUSPFactory01(_router.factory()).createPair(address(this), _router.WETH());
        router = _router; pair = _pair;
    }

    receive() external payable {}

    function shouldContractSwap(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= minODEXTokenAmount;
        bool aboveThreshold = balanceOf(address(this)) >= swapODEXThreshold;
        return !swapping && swapEnabled && tradingAllowed && aboveMin && !isODEXFeeExempts[sender] && recipient == pair && swapTimes >= swapAmount && aboveThreshold;
    }

    function setTransactionRequireODEX(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        liquidityFee = _liquidity; marketingFee = _marketing; burnFee = _burn; developmentFee = _development; totalFee = _total; sellFee = _sell; transferFee = _trans;
        require(totalFee <= denominator.div(5) && sellFee <= denominator.div(5) && transferFee <= denominator.div(5), "totalFee and sellFee cannot be more than 20%");
    }

    function setTransactionFeeODEX(uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        totalFee = _total; sellFee = _sell; transferFee = _trans;
        require(totalFee <= denominator.div(5) && sellFee <= denominator.div(5) && transferFee <= denominator.div(5), "totalFee and sellFee cannot be more than 20%");
    }

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            lpODEXReceiver,
            block.timestamp);
    }

    function setODEXBot(address[] calldata addresses, bool _enabled) external onlyOwner {
        for(uint i=0; i < addresses.length; i++){
        isBot[addresses[i]] = _enabled; }
    }

    function _shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !isODEXFeeExempts[sender] && !isODEXFeeExempts[recipient];
    }

    function removeLimitODEX() external onlyOwner {
        _maxTxAmount = ~uint256(0);
        _maxSellAmount = ~uint256(0);
        _maxWalletToken = ~uint256(0);
    }

    function setTeamAddressesODEX(address _marketing, address _liquidity, address _development) external onlyOwner {
        mkODEXReceiver = _marketing; lpODEXReceiver = _liquidity; devODEXReceiver = _development;
        isODEXFeeExempts[_marketing] = true; isODEXFeeExempts[_liquidity] = true; isODEXFeeExempts[_development] = true;
    }

    function setTransactionLimitODEX(uint256 _buy, uint256 _sell, uint256 _oWallet) external onlyOwner {
        uint256 newTx = _totalSupply.mul(_buy).div(10000); uint256 newTransfer = _totalSupply.mul(_sell).div(10000); uint256 newWallet = _totalSupply.mul(_oWallet).div(10000);
        _maxTxAmount = newTx; _maxSellAmount = newTransfer; _maxWalletToken = newWallet;
        uint256 limit = totalSupply().mul(5).div(1000);
        require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%");
    }

    function setContractSwapODEX(uint256 _swapAmount, uint256 _swapODEXThreshold, uint256 _minODEXTokenAmount) external onlyOwner {
        swapAmount = _swapAmount; swapODEXThreshold = _totalSupply.mul(_swapODEXThreshold).div(uint256(100000)); 
        minODEXTokenAmount = _totalSupply.mul(_minODEXTokenAmount).div(uint256(100000));
    }

    function manualSwap() external onlyOwner {
        swapAndLiquify(swapODEXThreshold);
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }

    function withdrawErc20ODEX(address _address, uint256 percent) external onlyOwner {
        uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100);
        IERC20(_address).transfer(devODEXReceiver, _amount);
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        swapTokensForETH(tokens);
        payable(mkODEXReceiver).transfer(address(this).balance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_oWallet","type":"address"},{"internalType":"uint256","name":"_oAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"createODEXPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isODEXFeeExempts","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isODEXTxExempts","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimitODEX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"},{"internalType":"uint256","name":"_swapODEXThreshold","type":"uint256"},{"internalType":"uint256","name":"_minODEXTokenAmount","type":"uint256"}],"name":"setContractSwapODEX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setIsExemptODEX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setODEXBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_liquidity","type":"address"},{"internalType":"address","name":"_development","type":"address"}],"name":"setTeamAddressesODEX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setTransactionFeeODEX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_oWallet","type":"uint256"}],"name":"setTransactionLimitODEX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setTransactionRequireODEX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startODEXTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"withdrawErc20ODEX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a6200034d565b6200002290633b9aca0062000365565b60018190556008805461ffff60a01b1916600160a81b1790556000600b5561271090620000529061012c62000365565b6200005e919062000387565b600c5561271060015461012c62000076919062000365565b62000082919062000387565b600d5561271060015461012c6200009a919062000365565b620000a6919062000387565b600e5560006014556103e8601555600060165560006017556107d06018556107d06019556000601a55612710601b55348015620000e257600080fd5b506040516200251f3803806200251f8339810160408190526200010591620003aa565b600080546001600160a01b03191633179055620001256009600a6200034d565b62000131908262000365565b601255620001426009600a6200034d565b6200014e908262000365565b60135560048054336001600160a01b0319918216811783556005805483166001600160a01b0387811691821783556006805490951682179094556000908152601060209081526040808320805460ff19908116600190811790925594548716845281842080548616821790558584526011835281842080548616821790559654909516825284822080548416871790553082528482208054909316861790925593548285526002825283852081905592519283529092917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050620003e6565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200028f57816000190482111562000273576200027362000238565b808516156200028157918102915b93841c939080029062000253565b509250929050565b600082620002a85750600162000347565b81620002b75750600062000347565b8160018114620002d05760028114620002db57620002fb565b600191505062000347565b60ff841115620002ef57620002ef62000238565b50506001821b62000347565b5060208310610133831016604e8410600b841016171562000320575081810a62000347565b6200032c83836200024e565b806000190482111562000343576200034362000238565b0290505b92915050565b60006200035e60ff84168362000297565b9392505050565b600081600019048311821515161562000382576200038262000238565b500290565b600082620003a557634e487b7160e01b600052601260045260246000fd5b500490565b60008060408385031215620003be57600080fd5b82516001600160a01b0381168114620003d657600080fd5b6020939093015192949293505050565b61212980620003f66000396000f3fe6080604052600436106101d15760003560e01c8063715018a6116100f75780639c56c59211610095578063d0160ec011610064578063d0160ec014610579578063dd62ed3e1461058e578063f4ab5661146105d4578063fec308da146105e957600080fd5b80639c56c592146104e9578063a5390ac114610509578063a8aa1b3114610539578063a9059cbb1461055957600080fd5b80637d1db4a5116100d15780637d1db4a514610454578063803993cc1461046a578063893d20e81461048a57806395d89b41146104bc57600080fd5b8063715018a61461041357806378109e54146104285780637cca52fe1461043e57600080fd5b80634606c4c31161016f5780636117b56b1161013e5780636117b56b1461037857806369f03e6d146103a857806370359649146103bd57806370a08231146103dd57600080fd5b80634606c4c31461030357806347e48018146103235780634b38544f1461034357806351bc3c851461036357600080fd5b806323b872dd116101ab57806323b872dd146102765780632439ccd5146102965780632f54bf6e146102b8578063313ce567146102e757600080fd5b806306fdde03146101dd578063095ea7b31461022357806318160ddd1461025357600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b5060408051808201909152600b81526a09ee4c8d2dcc2d840888ab60ab1b60208201525b60405161021a9190611b47565b60405180910390f35b34801561022f57600080fd5b5061024361023e366004611bb4565b610609565b604051901515815260200161021a565b34801561025f57600080fd5b50610268610620565b60405190815260200161021a565b34801561028257600080fd5b50610243610291366004611be0565b610691565b3480156102a257600080fd5b506102b66102b1366004611c21565b6106fb565b005b3480156102c457600080fd5b506102436102d3366004611c4d565b6000546001600160a01b0391821691161490565b3480156102f357600080fd5b506040516009815260200161021a565b34801561030f57600080fd5b506102b661031e366004611c78565b610770565b34801561032f57600080fd5b506102b661033e366004611cb1565b6107c5565b34801561034f57600080fd5b506102b661035e366004611c21565b61086b565b34801561036f57600080fd5b506102b661090e565b34801561038457600080fd5b50610243610393366004611c4d565b60106020526000908152604090205460ff1681565b3480156103b457600080fd5b506102b6610945565b3480156103c957600080fd5b506102b66103d8366004611cfc565b610981565b3480156103e957600080fd5b506102686103f8366004611c4d565b6001600160a01b031660009081526002602052604090205490565b34801561041f57600080fd5b506102b6610a3c565b34801561043457600080fd5b50610268600e5481565b34801561044a57600080fd5b50610268600d5481565b34801561046057600080fd5b50610268600c5481565b34801561047657600080fd5b506102b6610485366004611c21565b610aab565b34801561049657600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161021a565b3480156104c857600080fd5b5060408051808201909152600481526309e888ab60e31b602082015261020d565b3480156104f557600080fd5b506102b6610504366004611bb4565b610bdd565b34801561051557600080fd5b50610243610524366004611c4d565b60116020526000908152604090205460ff1681565b34801561054557600080fd5b506008546104a4906001600160a01b031681565b34801561056557600080fd5b50610243610574366004611bb4565b610d02565b34801561058557600080fd5b506102b6610d0f565b34801561059a57600080fd5b506102686105a9366004611d48565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156105e057600080fd5b506102b6610d4e565b3480156105f557600080fd5b506102b6610604366004611d76565b610f07565b6000610616338484610fa2565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc54600154919261068c92909161068691906110c6565b906110c6565b905090565b600061069e8484846110d2565b6106f084336106eb856040518060600160405280602881526020016120cc602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611632565b610fa2565b5060015b9392505050565b6000546001600160a01b0316331461072e5760405162461bcd60e51b815260040161072590611df1565b60405180910390fd5b600b83905560015461074f90620186a090610749908561165e565b9061166a565b60125560015461076890620186a090610749908461165e565b601355505050565b6000546001600160a01b0316331461079a5760405162461bcd60e51b815260040161072590611df1565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107ef5760405162461bcd60e51b815260040161072590611df1565b600580546001600160a01b039485166001600160a01b031991821681179092556006805494861694821685179055600480549390951692168217909355600092835260116020526040808420805460ff199081166001908117909255938552818520805485168217905591845290922080549091169091179055565b6000546001600160a01b031633146108955760405162461bcd60e51b815260040161072590611df1565b60188390556019829055601a819055601b546108b290600561166a565b601854111580156108d25750601b546108cc90600561166a565b60195411155b80156108ed5750601b546108e790600561166a565b601a5411155b6109095760405162461bcd60e51b815260040161072590611e11565b505050565b6000546001600160a01b031633146109385760405162461bcd60e51b815260040161072590611df1565b610943601254611676565b565b6000546001600160a01b0316331461096f5760405162461bcd60e51b815260040161072590611df1565b600019600c819055600d819055600e55565b6000546001600160a01b031633146109ab5760405162461bcd60e51b815260040161072590611df1565b601487905560158690556017859055601684905560188390556019829055601a819055601b546109dc90600561166a565b601854111580156109fc5750601b546109f690600561166a565b60195411155b8015610a175750601b54610a1190600561166a565b601a5411155b610a335760405162461bcd60e51b815260040161072590611e11565b50505050505050565b6000546001600160a01b03163314610a665760405162461bcd60e51b815260040161072590611df1565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b03163314610ad55760405162461bcd60e51b815260040161072590611df1565b6000610af26127106107498660015461165e90919063ffffffff16565b90506000610b116127106107498660015461165e90919063ffffffff16565b90506000610b306127106107498660015461165e90919063ffffffff16565b600c849055600d839055600e81905590506000610b5c6103e86107496005610b56610620565b9061165e565b9050808410158015610b6e5750808310155b8015610b7a5750808210155b610a335760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b6064820152608401610725565b6000546001600160a01b03163314610c075760405162461bcd60e51b815260040161072590611df1565b6040516370a0823160e01b8152306004820152600090610c7f906064906107499085906001600160a01b038816906370a0823190602401602060405180830381865afa158015610c5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b569190611e5d565b6004805460405163a9059cbb60e01b81526001600160a01b0391821692810192909252602482018390529192509084169063a9059cbb906044016020604051808303816000875af1158015610cd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfc9190611e76565b50505050565b60006106163384846110d2565b6000546001600160a01b03163314610d395760405162461bcd60e51b815260040161072590611df1565b6008805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610d785760405162461bcd60e51b815260040161072590611df1565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df59190611e93565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e669190611e93565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610eb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed79190611e93565b600780546001600160a01b039485166001600160a01b031991821617909155600880549290941691161790915550565b6000546001600160a01b03163314610f315760405162461bcd60e51b815260040161072590611df1565b60005b82811015610cfc5781600f6000868685818110610f5357610f53611eb0565b9050602002016020810190610f689190611c4d565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610f9a81611edc565b915050610f34565b6001600160a01b0383166110045760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610725565b6001600160a01b0382166110655760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610725565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006106f48284611ef7565b6001600160a01b0383166111365760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610725565b6001600160a01b0382166111985760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610725565b600081116111fa5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610725565b6001600160a01b03831660009081526011602052604090205460ff1615801561123c57506001600160a01b03821660009081526011602052604090205460ff16155b1561128b57600854600160a01b900460ff1661128b5760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b6044820152606401610725565b6001600160a01b03831660009081526011602052604090205460ff161580156112cd57506001600160a01b03821660009081526011602052604090205460ff16155b80156112e757506008546001600160a01b03838116911614155b80156112fe57506001600160a01b03821661dead14155b1561137757600e546001600160a01b03831660009081526002602052604090205461132990836116d3565b11156113775760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610725565b6008546001600160a01b0384811691161461141857600d54811115806113b557506001600160a01b03831660009081526011602052604090205460ff165b806113d857506001600160a01b03821660009081526011602052604090205460ff165b6114185760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610725565b600c548111158061144157506001600160a01b03831660009081526011602052604090205460ff165b8061146457506001600160a01b03821660009081526011602052604090205460ff165b6114a45760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610725565b6008546001600160a01b0383811691161480156114da57506001600160a01b03831660009081526011602052604090205460ff16155b156114f8576001600960008282546114f29190611f0e565b90915550505b6115038383836116df565b1561155a5761155461154f8261154a611531306001600160a01b031660009081526002602052604090205490565b61153d6009600a61200a565b61154a90623d0900612019565b611799565b611676565b60006009555b600061156684846117ae565b611570578161157b565b61157b8484846117f4565b6001600160a01b0385166000908152600260205260409020549091506115a190836110c6565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546115d090826116d3565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116249085815260200190565b60405180910390a350505050565b600081848411156116565760405162461bcd60e51b81526004016107259190611b47565b505050900390565b60006106f48284612019565b60006106f48284612038565b600a805460ff1916600117905561168c8161194c565b6005546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156116c5573d6000803e3d6000fd5b5050600a805460ff19169055565b60006106f48284611f0e565b60135460125430600090815260026020526040812054600a5491938510159211159060ff1615801561171a5750600854600160a81b900460ff165b801561172f5750600854600160a01b900460ff165b80156117385750815b801561175d57506001600160a01b03861660009081526011602052604090205460ff16155b801561177657506008546001600160a01b038681169116145b80156117865750600b5460095410155b801561178f5750805b9695505050505050565b60008183116117a857826106f4565b50919050565b6001600160a01b03821660009081526011602052604081205460ff161580156106f45750506001600160a01b031660009081526011602052604090205460ff1615919050565b6001600160a01b0383166000908152601060205260408120548190819060ff16156118245750849050606461182c565b503090506127105b60006118388787611aa6565b111561194257600061185761184d8888611aa6565b610b56878561166a565b6001600160a01b03841660009081526002602052604090205490915061187d90826116d3565b6001600160a01b0380851660008181526002602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118d19085815260200190565b60405180910390a360006017541180156118f557506017546118f38888611aa6565b115b15611921576119213061dead61191c601754610b56601b548b61166a90919063ffffffff16565b6110d2565b80851161192e5784611938565b61193885826110c6565b93505050506106f4565b5091949350505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061198157611981611eb0565b6001600160a01b03928316602091820292909201810191909152600754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119fe9190611e93565b81600181518110611a1157611a11611eb0565b6001600160a01b039283166020918202929092010152600754611a379130911684610fa2565b60075460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a7090859060009086903090429060040161205a565b600060405180830381600087803b158015611a8a57600080fd5b505af1158015611a9e573d6000803e3d6000fd5b505050505050565b6001600160a01b0382166000908152600f602052604081205460ff1680611ae557506001600160a01b0382166000908152600f602052604090205460ff165b15611aff57601b54611af89060646110c6565b905061061a565b6008546001600160a01b0383811691161415611b1e575060195461061a565b6008546001600160a01b0384811691161415611b3d575060185461061a565b50601a5492915050565b600060208083528351808285015260005b81811015611b7457858101830151858201604001528201611b58565b81811115611b86576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611bb157600080fd5b50565b60008060408385031215611bc757600080fd5b8235611bd281611b9c565b946020939093013593505050565b600080600060608486031215611bf557600080fd5b8335611c0081611b9c565b92506020840135611c1081611b9c565b929592945050506040919091013590565b600080600060608486031215611c3657600080fd5b505081359360208301359350604090920135919050565b600060208284031215611c5f57600080fd5b81356106f481611b9c565b8015158114611bb157600080fd5b60008060408385031215611c8b57600080fd5b8235611c9681611b9c565b91506020830135611ca681611c6a565b809150509250929050565b600080600060608486031215611cc657600080fd5b8335611cd181611b9c565b92506020840135611ce181611b9c565b91506040840135611cf181611b9c565b809150509250925092565b600080600080600080600060e0888a031215611d1757600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b60008060408385031215611d5b57600080fd5b8235611d6681611b9c565b91506020830135611ca681611b9c565b600080600060408486031215611d8b57600080fd5b833567ffffffffffffffff80821115611da357600080fd5b818601915086601f830112611db757600080fd5b813581811115611dc657600080fd5b8760208260051b8501011115611ddb57600080fd5b60209283019550935050840135611cf181611c6a565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252602c908201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60408201526b6f7265207468616e2032302560a01b606082015260800190565b600060208284031215611e6f57600080fd5b5051919050565b600060208284031215611e8857600080fd5b81516106f481611c6a565b600060208284031215611ea557600080fd5b81516106f481611b9c565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611ef057611ef0611ec6565b5060010190565b600082821015611f0957611f09611ec6565b500390565b60008219821115611f2157611f21611ec6565b500190565b600181815b80851115611f61578160001904821115611f4757611f47611ec6565b80851615611f5457918102915b93841c9390800290611f2b565b509250929050565b600082611f785750600161061a565b81611f855750600061061a565b8160018114611f9b5760028114611fa557611fc1565b600191505061061a565b60ff841115611fb657611fb6611ec6565b50506001821b61061a565b5060208310610133831016604e8410600b8410161715611fe4575081810a61061a565b611fee8383611f26565b806000190482111561200257612002611ec6565b029392505050565b60006106f460ff841683611f69565b600081600019048311821515161561203357612033611ec6565b500290565b60008261205557634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120aa5784516001600160a01b031683529383019391830191600101612085565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c80faa319dbfbc9ec602e9ce0af0159cc98c78769554faefddefb033767d0f5864736f6c634300080b00330000000000000000000000008d714eaee90ddc9fc5bf195e19f0c7901b00f2750000000000000000000000000000000000000000000000000000000000002710

Deployed Bytecode

0x6080604052600436106101d15760003560e01c8063715018a6116100f75780639c56c59211610095578063d0160ec011610064578063d0160ec014610579578063dd62ed3e1461058e578063f4ab5661146105d4578063fec308da146105e957600080fd5b80639c56c592146104e9578063a5390ac114610509578063a8aa1b3114610539578063a9059cbb1461055957600080fd5b80637d1db4a5116100d15780637d1db4a514610454578063803993cc1461046a578063893d20e81461048a57806395d89b41146104bc57600080fd5b8063715018a61461041357806378109e54146104285780637cca52fe1461043e57600080fd5b80634606c4c31161016f5780636117b56b1161013e5780636117b56b1461037857806369f03e6d146103a857806370359649146103bd57806370a08231146103dd57600080fd5b80634606c4c31461030357806347e48018146103235780634b38544f1461034357806351bc3c851461036357600080fd5b806323b872dd116101ab57806323b872dd146102765780632439ccd5146102965780632f54bf6e146102b8578063313ce567146102e757600080fd5b806306fdde03146101dd578063095ea7b31461022357806318160ddd1461025357600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b5060408051808201909152600b81526a09ee4c8d2dcc2d840888ab60ab1b60208201525b60405161021a9190611b47565b60405180910390f35b34801561022f57600080fd5b5061024361023e366004611bb4565b610609565b604051901515815260200161021a565b34801561025f57600080fd5b50610268610620565b60405190815260200161021a565b34801561028257600080fd5b50610243610291366004611be0565b610691565b3480156102a257600080fd5b506102b66102b1366004611c21565b6106fb565b005b3480156102c457600080fd5b506102436102d3366004611c4d565b6000546001600160a01b0391821691161490565b3480156102f357600080fd5b506040516009815260200161021a565b34801561030f57600080fd5b506102b661031e366004611c78565b610770565b34801561032f57600080fd5b506102b661033e366004611cb1565b6107c5565b34801561034f57600080fd5b506102b661035e366004611c21565b61086b565b34801561036f57600080fd5b506102b661090e565b34801561038457600080fd5b50610243610393366004611c4d565b60106020526000908152604090205460ff1681565b3480156103b457600080fd5b506102b6610945565b3480156103c957600080fd5b506102b66103d8366004611cfc565b610981565b3480156103e957600080fd5b506102686103f8366004611c4d565b6001600160a01b031660009081526002602052604090205490565b34801561041f57600080fd5b506102b6610a3c565b34801561043457600080fd5b50610268600e5481565b34801561044a57600080fd5b50610268600d5481565b34801561046057600080fd5b50610268600c5481565b34801561047657600080fd5b506102b6610485366004611c21565b610aab565b34801561049657600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161021a565b3480156104c857600080fd5b5060408051808201909152600481526309e888ab60e31b602082015261020d565b3480156104f557600080fd5b506102b6610504366004611bb4565b610bdd565b34801561051557600080fd5b50610243610524366004611c4d565b60116020526000908152604090205460ff1681565b34801561054557600080fd5b506008546104a4906001600160a01b031681565b34801561056557600080fd5b50610243610574366004611bb4565b610d02565b34801561058557600080fd5b506102b6610d0f565b34801561059a57600080fd5b506102686105a9366004611d48565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156105e057600080fd5b506102b6610d4e565b3480156105f557600080fd5b506102b6610604366004611d76565b610f07565b6000610616338484610fa2565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc54600154919261068c92909161068691906110c6565b906110c6565b905090565b600061069e8484846110d2565b6106f084336106eb856040518060600160405280602881526020016120cc602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611632565b610fa2565b5060015b9392505050565b6000546001600160a01b0316331461072e5760405162461bcd60e51b815260040161072590611df1565b60405180910390fd5b600b83905560015461074f90620186a090610749908561165e565b9061166a565b60125560015461076890620186a090610749908461165e565b601355505050565b6000546001600160a01b0316331461079a5760405162461bcd60e51b815260040161072590611df1565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107ef5760405162461bcd60e51b815260040161072590611df1565b600580546001600160a01b039485166001600160a01b031991821681179092556006805494861694821685179055600480549390951692168217909355600092835260116020526040808420805460ff199081166001908117909255938552818520805485168217905591845290922080549091169091179055565b6000546001600160a01b031633146108955760405162461bcd60e51b815260040161072590611df1565b60188390556019829055601a819055601b546108b290600561166a565b601854111580156108d25750601b546108cc90600561166a565b60195411155b80156108ed5750601b546108e790600561166a565b601a5411155b6109095760405162461bcd60e51b815260040161072590611e11565b505050565b6000546001600160a01b031633146109385760405162461bcd60e51b815260040161072590611df1565b610943601254611676565b565b6000546001600160a01b0316331461096f5760405162461bcd60e51b815260040161072590611df1565b600019600c819055600d819055600e55565b6000546001600160a01b031633146109ab5760405162461bcd60e51b815260040161072590611df1565b601487905560158690556017859055601684905560188390556019829055601a819055601b546109dc90600561166a565b601854111580156109fc5750601b546109f690600561166a565b60195411155b8015610a175750601b54610a1190600561166a565b601a5411155b610a335760405162461bcd60e51b815260040161072590611e11565b50505050505050565b6000546001600160a01b03163314610a665760405162461bcd60e51b815260040161072590611df1565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b03163314610ad55760405162461bcd60e51b815260040161072590611df1565b6000610af26127106107498660015461165e90919063ffffffff16565b90506000610b116127106107498660015461165e90919063ffffffff16565b90506000610b306127106107498660015461165e90919063ffffffff16565b600c849055600d839055600e81905590506000610b5c6103e86107496005610b56610620565b9061165e565b9050808410158015610b6e5750808310155b8015610b7a5750808210155b610a335760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b6064820152608401610725565b6000546001600160a01b03163314610c075760405162461bcd60e51b815260040161072590611df1565b6040516370a0823160e01b8152306004820152600090610c7f906064906107499085906001600160a01b038816906370a0823190602401602060405180830381865afa158015610c5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b569190611e5d565b6004805460405163a9059cbb60e01b81526001600160a01b0391821692810192909252602482018390529192509084169063a9059cbb906044016020604051808303816000875af1158015610cd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfc9190611e76565b50505050565b60006106163384846110d2565b6000546001600160a01b03163314610d395760405162461bcd60e51b815260040161072590611df1565b6008805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610d785760405162461bcd60e51b815260040161072590611df1565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df59190611e93565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e669190611e93565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610eb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed79190611e93565b600780546001600160a01b039485166001600160a01b031991821617909155600880549290941691161790915550565b6000546001600160a01b03163314610f315760405162461bcd60e51b815260040161072590611df1565b60005b82811015610cfc5781600f6000868685818110610f5357610f53611eb0565b9050602002016020810190610f689190611c4d565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610f9a81611edc565b915050610f34565b6001600160a01b0383166110045760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610725565b6001600160a01b0382166110655760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610725565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006106f48284611ef7565b6001600160a01b0383166111365760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610725565b6001600160a01b0382166111985760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610725565b600081116111fa5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610725565b6001600160a01b03831660009081526011602052604090205460ff1615801561123c57506001600160a01b03821660009081526011602052604090205460ff16155b1561128b57600854600160a01b900460ff1661128b5760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b6044820152606401610725565b6001600160a01b03831660009081526011602052604090205460ff161580156112cd57506001600160a01b03821660009081526011602052604090205460ff16155b80156112e757506008546001600160a01b03838116911614155b80156112fe57506001600160a01b03821661dead14155b1561137757600e546001600160a01b03831660009081526002602052604090205461132990836116d3565b11156113775760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610725565b6008546001600160a01b0384811691161461141857600d54811115806113b557506001600160a01b03831660009081526011602052604090205460ff165b806113d857506001600160a01b03821660009081526011602052604090205460ff165b6114185760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610725565b600c548111158061144157506001600160a01b03831660009081526011602052604090205460ff165b8061146457506001600160a01b03821660009081526011602052604090205460ff165b6114a45760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610725565b6008546001600160a01b0383811691161480156114da57506001600160a01b03831660009081526011602052604090205460ff16155b156114f8576001600960008282546114f29190611f0e565b90915550505b6115038383836116df565b1561155a5761155461154f8261154a611531306001600160a01b031660009081526002602052604090205490565b61153d6009600a61200a565b61154a90623d0900612019565b611799565b611676565b60006009555b600061156684846117ae565b611570578161157b565b61157b8484846117f4565b6001600160a01b0385166000908152600260205260409020549091506115a190836110c6565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546115d090826116d3565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116249085815260200190565b60405180910390a350505050565b600081848411156116565760405162461bcd60e51b81526004016107259190611b47565b505050900390565b60006106f48284612019565b60006106f48284612038565b600a805460ff1916600117905561168c8161194c565b6005546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156116c5573d6000803e3d6000fd5b5050600a805460ff19169055565b60006106f48284611f0e565b60135460125430600090815260026020526040812054600a5491938510159211159060ff1615801561171a5750600854600160a81b900460ff165b801561172f5750600854600160a01b900460ff165b80156117385750815b801561175d57506001600160a01b03861660009081526011602052604090205460ff16155b801561177657506008546001600160a01b038681169116145b80156117865750600b5460095410155b801561178f5750805b9695505050505050565b60008183116117a857826106f4565b50919050565b6001600160a01b03821660009081526011602052604081205460ff161580156106f45750506001600160a01b031660009081526011602052604090205460ff1615919050565b6001600160a01b0383166000908152601060205260408120548190819060ff16156118245750849050606461182c565b503090506127105b60006118388787611aa6565b111561194257600061185761184d8888611aa6565b610b56878561166a565b6001600160a01b03841660009081526002602052604090205490915061187d90826116d3565b6001600160a01b0380851660008181526002602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118d19085815260200190565b60405180910390a360006017541180156118f557506017546118f38888611aa6565b115b15611921576119213061dead61191c601754610b56601b548b61166a90919063ffffffff16565b6110d2565b80851161192e5784611938565b61193885826110c6565b93505050506106f4565b5091949350505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061198157611981611eb0565b6001600160a01b03928316602091820292909201810191909152600754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119fe9190611e93565b81600181518110611a1157611a11611eb0565b6001600160a01b039283166020918202929092010152600754611a379130911684610fa2565b60075460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a7090859060009086903090429060040161205a565b600060405180830381600087803b158015611a8a57600080fd5b505af1158015611a9e573d6000803e3d6000fd5b505050505050565b6001600160a01b0382166000908152600f602052604081205460ff1680611ae557506001600160a01b0382166000908152600f602052604090205460ff165b15611aff57601b54611af89060646110c6565b905061061a565b6008546001600160a01b0383811691161415611b1e575060195461061a565b6008546001600160a01b0384811691161415611b3d575060185461061a565b50601a5492915050565b600060208083528351808285015260005b81811015611b7457858101830151858201604001528201611b58565b81811115611b86576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611bb157600080fd5b50565b60008060408385031215611bc757600080fd5b8235611bd281611b9c565b946020939093013593505050565b600080600060608486031215611bf557600080fd5b8335611c0081611b9c565b92506020840135611c1081611b9c565b929592945050506040919091013590565b600080600060608486031215611c3657600080fd5b505081359360208301359350604090920135919050565b600060208284031215611c5f57600080fd5b81356106f481611b9c565b8015158114611bb157600080fd5b60008060408385031215611c8b57600080fd5b8235611c9681611b9c565b91506020830135611ca681611c6a565b809150509250929050565b600080600060608486031215611cc657600080fd5b8335611cd181611b9c565b92506020840135611ce181611b9c565b91506040840135611cf181611b9c565b809150509250925092565b600080600080600080600060e0888a031215611d1757600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b60008060408385031215611d5b57600080fd5b8235611d6681611b9c565b91506020830135611ca681611b9c565b600080600060408486031215611d8b57600080fd5b833567ffffffffffffffff80821115611da357600080fd5b818601915086601f830112611db757600080fd5b813581811115611dc657600080fd5b8760208260051b8501011115611ddb57600080fd5b60209283019550935050840135611cf181611c6a565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252602c908201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60408201526b6f7265207468616e2032302560a01b606082015260800190565b600060208284031215611e6f57600080fd5b5051919050565b600060208284031215611e8857600080fd5b81516106f481611c6a565b600060208284031215611ea557600080fd5b81516106f481611b9c565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611ef057611ef0611ec6565b5060010190565b600082821015611f0957611f09611ec6565b500390565b60008219821115611f2157611f21611ec6565b500190565b600181815b80851115611f61578160001904821115611f4757611f47611ec6565b80851615611f5457918102915b93841c9390800290611f2b565b509250929050565b600082611f785750600161061a565b81611f855750600061061a565b8160018114611f9b5760028114611fa557611fc1565b600191505061061a565b60ff841115611fb657611fb6611ec6565b50506001821b61061a565b5060208310610133831016604e8410600b8410161715611fe4575081810a61061a565b611fee8383611f26565b806000190482111561200257612002611ec6565b029392505050565b60006106f460ff841683611f69565b600081600019048311821515161561203357612033611ec6565b500290565b60008261205557634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120aa5784516001600160a01b031683529383019391830191600101612085565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c80faa319dbfbc9ec602e9ce0af0159cc98c78769554faefddefb033767d0f5864736f6c634300080b0033

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

0000000000000000000000008d714eaee90ddc9fc5bf195e19f0c7901b00f2750000000000000000000000000000000000000000000000000000000000002710

-----Decoded View---------------
Arg [0] : _oWallet (address): 0x8D714eAEe90Ddc9FC5Bf195e19F0c7901b00f275
Arg [1] : _oAmount (uint256): 10000

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000008d714eaee90ddc9fc5bf195e19f0c7901b00f275
Arg [1] : 0000000000000000000000000000000000000000000000000000000000002710


Deployed Bytecode Sourcemap

4935:11723:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7325:67;;;;;;;;;;-1:-1:-1;7385:5:0;;;;;;;;;;;;-1:-1:-1;;;7385:5:0;;;;7325:67;;;;;;;:::i;:::-;;;;;;;;8094:133;;;;;;;;;;-1:-1:-1;8094:133:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;8094:133:0;1072:187:1;8233:132:0;;;;;;;;;;;;;:::i;:::-;;;1410:25:1;;;1398:2;1383:18;8233:132:0;1264:177:1;10060:309:0;;;;;;;;;;-1:-1:-1;10060:309:0;;;;;:::i;:::-;;:::i;15672:339::-;;;;;;;;;;-1:-1:-1;15672:339:0;;;;;:::i;:::-;;:::i;:::-;;699:87;;;;;;;;;;-1:-1:-1;699:87:0;;;;;:::i;:::-;754:4;779:5;-1:-1:-1;;;;;768:16:0;;;779:5;;768:16;;699:87;7475:67;;;;;;;;;;-1:-1:-1;7475:67:0;;5156:1;2622:36:1;;2610:2;2595:18;7475:67:0;2480:184:1;8371:117:0;;;;;;;;;;-1:-1:-1;8371:117:0;;;;;:::i;:::-;;:::i;14755:340::-;;;;;;;;;;-1:-1:-1;14755:340:0;;;;;:::i;:::-;;:::i;13509:::-;;;;;;;;;;-1:-1:-1;13509:340:0;;;;;:::i;:::-;;:::i;16019:93::-;;;;;;;;;;;;;:::i;5956:48::-;;;;;;;;;;-1:-1:-1;5956:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14577:170;;;;;;;;;;;;;:::i;12978:523::-;;;;;;;;;;-1:-1:-1;12978:523:0;;;;;:::i;:::-;;:::i;7632:101::-;;;;;;;;;;-1:-1:-1;7632:101:0;;;;;:::i;:::-;-1:-1:-1;;;;;7715:16:0;7698:7;7715:16;;;:7;:16;;;;;;;7632:101;792:133;;;;;;;;;;;;;:::i;5838:63::-;;;;;;;;;;;;;;;;5769:62;;;;;;;;;;;;;;;;5702:60;;;;;;;;;;;;;;;;15103:561;;;;;;;;;;-1:-1:-1;15103:561:0;;;;;:::i;:::-;;:::i;7548:78::-;;;;;;;;;;-1:-1:-1;7600:7:0;7618:5;-1:-1:-1;;;;;7618:5:0;7548:78;;;-1:-1:-1;;;;;4474:32:1;;;4456:51;;4444:2;4429:18;7548:78:0;4310:203:1;7398:71:0;;;;;;;;;;-1:-1:-1;7460:7:0;;;;;;;;;;;;-1:-1:-1;;;7460:7:0;;;;7398:71;;16235:243;;;;;;;;;;-1:-1:-1;16235:243:0;;;;;:::i;:::-;;:::i;6011:49::-;;;;;;;;;;-1:-1:-1;6011:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5505:19;;;;;;;;;;-1:-1:-1;5505:19:0;;;;-1:-1:-1;;;;;5505:19:0;;;7816:139;;;;;;;;;;-1:-1:-1;7816:139:0;;;;;:::i;:::-;;:::i;7739:71::-;;;;;;;;;;;;;:::i;7961:127::-;;;;;;;;;;-1:-1:-1;7961:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;8059:18:0;;;8042:7;8059:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7961:127;12216:293;;;;;;;;;;;;;:::i;14204:186::-;;;;;;;;;;-1:-1:-1;14204:186:0;;;;;:::i;:::-;;:::i;8094:133::-;8169:4;8176:37;8185:10;8197:7;8206:6;8176:8;:37::i;:::-;-1:-1:-1;8221:4:0;8094:133;;;;;:::o;8233:132::-;7715:7;:16;;;;6251:42;8286:7;7715:16;;;;;8303:12;;8286:7;;8303:60;;7715:16;;8303:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;8296:67;;8233:132;:::o;10060:309::-;10158:4;10175:36;10185:6;10193:9;10204:6;10175:9;:36::i;:::-;10222:117;10231:6;10239:10;10251:87;10287:6;10251:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10251:19:0;;;;;;:11;:19;;;;;;;;10271:10;10251:31;;;;;;;;;:87;:35;:87::i;:::-;10222:8;:117::i;:::-;-1:-1:-1;10357:4:0;10060:309;;;;;;:::o;15672:339::-;754:4;779:5;-1:-1:-1;;;;;779:5:0;666:10;768:16;650:38;;;;-1:-1:-1;;;650:38:0;;;;;;;:::i;:::-;;;;;;;;;15809:10:::1;:24:::0;;;15855:12:::1;::::0;:57:::1;::::0;15904:6:::1;::::0;15855:36:::1;::::0;15872:18;15855:16:::1;:36::i;:::-;:40:::0;::::1;:57::i;:::-;15835:17;:77:::0;15945:12:::1;::::0;:58:::1;::::0;15995:6:::1;::::0;15945:37:::1;::::0;15962:19;15945:16:::1;:37::i;:58::-;15924:18;:79:::0;-1:-1:-1;;;15672:339:0:o;8371:117::-;754:4;779:5;-1:-1:-1;;;;;779:5:0;666:10;768:16;650:38;;;;-1:-1:-1;;;650:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8449:26:0;;;::::1;;::::0;;;:16:::1;:26;::::0;;;;:37;;-1:-1:-1;;8449:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8371:117::o;14755:340::-;754:4;779:5;-1:-1:-1;;;;;779:5:0;666:10;768:16;650:38;;;;-1:-1:-1;;;650:38:0;;;;;;;:::i;:::-;14877:14:::1;:27:::0;;-1:-1:-1;;;;;14877:27:0;;::::1;-1:-1:-1::0;;;;;;14877:27:0;;::::1;::::0;::::1;::::0;;;14906:14:::1;:27:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;14935:15:::1;:30:::0;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;;14877:14:::1;14976:28:::0;;;:16:::1;:28;::::0;;;;;:35;;-1:-1:-1;;14976:35:0;;::::1;14877:27:::0;14976:35;;::::1;::::0;;;15013:28;;;;;;:35;;;::::1;::::0;::::1;::::0;;15050:30;;;;;;:37;;;;::::1;::::0;;::::1;::::0;;14755:340::o;13509:::-;754:4;779:5;-1:-1:-1;;;;;779:5:0;666:10;768:16;650:38;;;;-1:-1:-1;;;650:38:0;;;;;;;:::i;:::-;13617:8:::1;:17:::0;;;13636:7:::1;:15:::0;;;13653:11:::1;:20:::0;;;13704:11:::1;::::0;:18:::1;::::0;13720:1:::1;13704:15;:18::i;:::-;13692:8;;:30;;:63;;;;-1:-1:-1::0;13737:11:0::1;::::0;:18:::1;::::0;13753:1:::1;13737:15;:18::i;:::-;13726:7;;:29;;13692:63;:100;;;;-1:-1:-1::0;13774:11:0::1;::::0;:18:::1;::::0;13790:1:::1;13774:15;:18::i;:::-;13759:11;;:33;;13692:100;13684:157;;;;-1:-1:-1::0;;;13684:157:0::1;;;;;;;:::i;:::-;13509:340:::0;;;:::o;16019:93::-;754:4;779:5;-1:-1:-1;;;;;779:5:0;666:10;768:16;650:38;;;;-1:-1:-1;;;650:38:0;;;;;;;:::i;:::-;16071:33:::1;16086:17;;16071:14;:33::i;:::-;16019:93::o:0;14577:170::-;754:4;779:5;-1:-1:-1;;;;;779:5:0;666:10;768:16;650:38;;;;-1:-1:-1;;;650:38:0;;;;;;;:::i;:::-;-1:-1:-1;;14634:12:0::1;:26:::0;;;14671:14:::1;:28:::0;;;14710:15:::1;:29:::0;14577:170::o;12978:523::-;754:4;779:5;-1:-1:-1;;;;;779:5:0;666:10;768:16;650:38;;;;-1:-1:-1;;;650:38:0;;;;;;;:::i;:::-;13167:12:::1;:25:::0;;;13194:12:::1;:25:::0;;;13221:7:::1;:15:::0;;;13238:14:::1;:29:::0;;;13269:8:::1;:17:::0;;;13288:7:::1;:15:::0;;;13305:11:::1;:20:::0;;;13356:11:::1;::::0;:18:::1;::::0;13372:1:::1;13356:15;:18::i;:::-;13344:8;;:30;;:63;;;;-1:-1:-1::0;13389:11:0::1;::::0;:18:::1;::::0;13405:1:::1;13389:15;:18::i;:::-;13378:7;;:29;;13344:63;:100;;;;-1:-1:-1::0;13426:11:0::1;::::0;:18:::1;::::0;13442:1:::1;13426:15;:18::i;:::-;13411:11;;:33;;13344:100;13336:157;;;;-1:-1:-1::0;;;13336:157:0::1;;;;;;;:::i;:::-;12978:523:::0;;;;;;;:::o;792:133::-;754:4;779:5;-1:-1:-1;;;;;779:5:0;666:10;768:16;650:38;;;;-1:-1:-1;;;650:38:0;;;;;;;:::i;:::-;866:1:::1;850:18:::0;;-1:-1:-1;;;;;;850:18:0::1;::::0;;885:32:::1;::::0;4456:51:1;;;885:32:0::1;::::0;4444:2:1;4429:18;885:32:0::1;;;;;;;792:133::o:0;15103:561::-;754:4;779:5;-1:-1:-1;;;;;779:5:0;666:10;768:16;650:38;;;;-1:-1:-1;;;650:38:0;;;;;;;:::i;:::-;15213:13:::1;15229:33;15256:5;15229:22;15246:4;15229:12;;:16;;:22;;;;:::i;:33::-;15213:49;;15264:19;15286:34;15314:5;15286:23;15303:5;15286:12;;:16;;:23;;;;:::i;:34::-;15264:56;;15322:17;15342:37;15373:5;15342:26;15359:8;15342:12;;:16;;:26;;;;:::i;:37::-;15390:12;:20:::0;;;15412:14:::1;:28:::0;;;15442:15:::1;:27:::0;;;15322:57;-1:-1:-1;;15496:30:0::1;15521:4;15496:20;15514:1;15496:13;:11;:13::i;:::-;:17:::0;::::1;:20::i;:30::-;15480:46;;15554:5;15545;:14;;:38;;;;;15578:5;15563:11;:20;;15545:38;:60;;;;;15600:5;15587:9;:18;;15545:60;15537:119;;;::::0;-1:-1:-1;;;15537:119:0;;6615:2:1;15537:119:0::1;::::0;::::1;6597:21:1::0;6654:2;6634:18;;;6627:30;6693:34;6673:18;;;6666:62;-1:-1:-1;;;6744:18:1;;;6737:44;6798:19;;15537:119:0::1;6413:410:1::0;16235:243:0;754:4;779:5;-1:-1:-1;;;;;779:5:0;666:10;768:16;650:38;;;;-1:-1:-1;;;650:38:0;;;;;;;:::i;:::-;16345:41:::1;::::0;-1:-1:-1;;;16345:41:0;;16380:4:::1;16345:41;::::0;::::1;4456:51:1::0;16327:15:0::1;::::0;16345:63:::1;::::0;16404:3:::1;::::0;16345:54:::1;::::0;16391:7;;-1:-1:-1;;;;;16345:26:0;::::1;::::0;::::1;::::0;4429:18:1;;16345:41:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:63::-;16445:15;::::0;;16419:51:::1;::::0;-1:-1:-1;;;16419:51:0;;-1:-1:-1;;;;;16445:15:0;;::::1;16419:51:::0;;::::1;7191::1::0;;;;7258:18;;;7251:34;;;16327:81:0;;-1:-1:-1;16419:25:0;;::::1;::::0;::::1;::::0;7164:18:1;;16419:51:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16316:162;16235:243:::0;;:::o;7816:139::-;7894:4;7901:40;7911:10;7923:9;7934:6;7901:9;:40::i;7739:71::-;754:4;779:5;-1:-1:-1;;;;;779:5:0;666:10;768:16;650:38;;;;-1:-1:-1;;;650:38:0;;;;;;;:::i;:::-;7787:14:::1;:21:::0;;-1:-1:-1;;;;7787:21:0::1;-1:-1:-1::0;;;7787:21:0::1;::::0;;7739:71::o;12216:293::-;754:4;779:5;-1:-1:-1;;;;;779:5:0;666:10;768:16;650:38;;;;-1:-1:-1;;;650:38:0;;;;;;;:::i;:::-;12272:24:::1;12316:42;12272:87;;12370:13;12400:7;-1:-1:-1::0;;;;;12400:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12386:43:0::1;;12438:4;12445:7;-1:-1:-1::0;;;;;12445:12:0::1;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12386:74;::::0;-1:-1:-1;;;;;;12386:74:0::1;::::0;;;;;;-1:-1:-1;;;;;8032:15:1;;;12386:74:0::1;::::0;::::1;8014:34:1::0;8084:15;;8064:18;;;8057:43;7949:18;;12386:74:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12471:6;:16:::0;;-1:-1:-1;;;;;12471:16:0;;::::1;-1:-1:-1::0;;;;;;12471:16:0;;::::1;;::::0;;;12489:4:::1;:12:::0;;;;;::::1;::::0;::::1;;::::0;;;-1:-1:-1;12216:293:0:o;14204:186::-;754:4;779:5;-1:-1:-1;;;;;779:5:0;666:10;768:16;650:38;;;;-1:-1:-1;;;650:38:0;;;;;;;:::i;:::-;14303:6:::1;14299:84;14313:20:::0;;::::1;14299:84;;;14372:8;14350:5;:19;14356:9;;14366:1;14356:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14350:19:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14350:19:0;:30;;-1:-1:-1;;14350:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14335:3;::::1;::::0;::::1;:::i;:::-;;;;14299:84;;11873:335:::0;-1:-1:-1;;;;;11966:19:0;;11958:68;;;;-1:-1:-1;;;11958:68:0;;8717:2:1;11958:68:0;;;8699:21:1;8756:2;8736:18;;;8729:30;8795:34;8775:18;;;8768:62;-1:-1:-1;;;8846:18:1;;;8839:34;8890:19;;11958:68:0;8515:400:1;11958:68:0;-1:-1:-1;;;;;12045:21:0;;12037:68;;;;-1:-1:-1;;;12037:68:0;;9122:2:1;12037:68:0;;;9104:21:1;9161:2;9141:18;;;9134:30;9200:34;9180:18;;;9173:62;-1:-1:-1;;;9251:18:1;;;9244:32;9293:19;;12037:68:0;8920:398:1;12037:68:0;-1:-1:-1;;;;;12116:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12168:32;;1410:25:1;;;12168:32:0;;1383:18:1;12168:32:0;;;;;;;11873:335;;;:::o;2226:98::-;2284:7;2311:5;2315:1;2311;:5;:::i;10377:1488::-;-1:-1:-1;;;;;10474:20:0;;10466:70;;;;-1:-1:-1;;;10466:70:0;;9655:2:1;10466:70:0;;;9637:21:1;9694:2;9674:18;;;9667:30;9733:34;9713:18;;;9706:62;-1:-1:-1;;;9784:18:1;;;9777:35;9829:19;;10466:70:0;9453:401:1;10466:70:0;-1:-1:-1;;;;;10555:23:0;;10547:71;;;;-1:-1:-1;;;10547:71:0;;10061:2:1;10547:71:0;;;10043:21:1;10100:2;10080:18;;;10073:30;10139:34;10119:18;;;10112:62;-1:-1:-1;;;10190:18:1;;;10183:33;10233:19;;10547:71:0;9859:399:1;10547:71:0;10646:1;10637:6;:10;10629:64;;;;-1:-1:-1;;;10629:64:0;;10465:2:1;10629:64:0;;;10447:21:1;10504:2;10484:18;;;10477:30;10543:34;10523:18;;;10516:62;-1:-1:-1;;;10594:18:1;;;10587:39;10643:19;;10629:64:0;10263:405:1;10629:64:0;-1:-1:-1;;;;;10708:24:0;;;;;;:16;:24;;;;;;;;10707:25;:57;;;;-1:-1:-1;;;;;;10737:27:0;;;;;;:16;:27;;;;;;;;10736:28;10707:57;10704:105;;;10774:14;;-1:-1:-1;;;10774:14:0;;;;10766:41;;;;-1:-1:-1;;;10766:41:0;;10875:2:1;10766:41:0;;;10857:21:1;10914:2;10894:18;;;10887:30;-1:-1:-1;;;10933:18:1;;;10926:44;10987:18;;10766:41:0;10673:338:1;10766:41:0;-1:-1:-1;;;;;10823:24:0;;;;;;:16;:24;;;;;;;;10822:25;:57;;;;-1:-1:-1;;;;;;10852:27:0;;;;;;:16;:27;;;;;;;;10851:28;10822:57;:87;;;;-1:-1:-1;10904:4:0;;-1:-1:-1;;;;;10883:26:0;;;10904:4;;10883:26;;10822:87;:117;;;;-1:-1:-1;;;;;;10913:26:0;;6251:42;10913:26;;10822:117;10819:228;;;10995:15;;-1:-1:-1;;;;;10960:18:0;;;;;;:7;:18;;;;;;:30;;10983:6;10960:22;:30::i;:::-;10959:51;;10951:94;;;;-1:-1:-1;;;10951:94:0;;11218:2:1;10951:94:0;;;11200:21:1;11257:2;11237:18;;;11230:30;11296:32;11276:18;;;11269:60;11346:18;;10951:94:0;11016:354:1;10951:94:0;11070:4;;-1:-1:-1;;;;;11060:14:0;;;11070:4;;11060:14;11057:134;;11094:14;;11084:6;:24;;:52;;;-1:-1:-1;;;;;;11112:24:0;;;;;;:16;:24;;;;;;;;11084:52;:83;;;-1:-1:-1;;;;;;11140:27:0;;;;;;:16;:27;;;;;;;;11084:83;11076:113;;;;-1:-1:-1;;;11076:113:0;;11577:2:1;11076:113:0;;;11559:21:1;11616:2;11596:18;;;11589:30;-1:-1:-1;;;11635:18:1;;;11628:47;11692:18;;11076:113:0;11375:341:1;11076:113:0;11219:12;;11209:6;:22;;:50;;;-1:-1:-1;;;;;;11235:24:0;;;;;;:16;:24;;;;;;;;11209:50;:81;;;-1:-1:-1;;;;;;11263:27:0;;;;;;:16;:27;;;;;;;;11209:81;11201:111;;;;-1:-1:-1;;;11201:111:0;;11577:2:1;11201:111:0;;;11559:21:1;11616:2;11596:18;;;11589:30;-1:-1:-1;;;11635:18:1;;;11628:47;11692:18;;11201:111:0;11375:341:1;11201:111:0;11340:4;;-1:-1:-1;;;;;11327:17:0;;;11340:4;;11327:17;:46;;;;-1:-1:-1;;;;;;11349:24:0;;;;;;:16;:24;;;;;;;;11348:25;11327:46;11324:76;;;11396:1;11375:9;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;11324:76:0;11413:45;11432:6;11440:9;11451:6;11413:18;:45::i;:::-;11410:159;;;11460:83;11475:67;11479:6;11486:55;11490:24;11508:4;-1:-1:-1;;;;;7715:16:0;7698:7;7715:16;;;:7;:16;;;;;;;7632:101;11490:24;11526:14;5156:1;11526:2;:14;:::i;:::-;11516:24;;:7;:24;:::i;:::-;11486:3;:55::i;11475:67::-;11460:14;:83::i;:::-;11565:1;11545:9;:22;11410:159;11579:18;11600:33;11615:6;11623:9;11600:14;:33::i;:::-;:80;;11674:6;11600:80;;;11636:35;11645:6;11653:9;11664:6;11636:8;:35::i;:::-;-1:-1:-1;;;;;11709:15:0;;;;;;:7;:15;;;;;;11579:101;;-1:-1:-1;11709:27:0;;11729:6;11709:19;:27::i;:::-;-1:-1:-1;;;;;11691:15:0;;;;;;;:7;:15;;;;;;:45;;;;11768:18;;;;;;;:34;;11791:10;11768:22;:34::i;:::-;-1:-1:-1;;;;;11747:18:0;;;;;;;:7;:18;;;;;;;:55;;;;11818:39;;;;;;;;;;11846:10;1410:25:1;;1398:2;1383:18;;1264:177;11818:39:0;;;;;;;;10455:1410;10377:1488;;;:::o;2650:240::-;2770:7;2831:12;2823:6;;;;2815:29;;;;-1:-1:-1;;;2815:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2866:5:0;;;2650:240::o;2332:98::-;2390:7;2417:5;2421:1;2417;:5;:::i;2438:98::-;2496:7;2523:5;2527:1;2523;:5;:::i;16486:169::-;6174:8;:15;;-1:-1:-1;;6174:15:0;6185:4;6174:15;;;16557:24:::1;16574:6:::0;16557:16:::1;:24::i;:::-;16600:14;::::0;16592:55:::1;::::0;-1:-1:-1;;;;;16600:14:0;;::::1;::::0;16625:21:::1;16592:55:::0;::::1;;;::::0;16600:14:::1;16592:55:::0;16600:14;16592:55;16625:21;16600:14;16592:55;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6194:8:0;:16;;-1:-1:-1;;6194:16:0;;;16486:169::o;2120:98::-;2178:7;2205:5;2209:1;2205;:5;:::i;12554:416::-;12699:18;;12778:17;;12768:4;12656;7715:16;;;:7;:16;;;;;;12814:8;;12656:4;;12689:28;;;;-1:-1:-1;12750:45:0;;12814:8;;12813:9;:24;;;;-1:-1:-1;12826:11:0;;-1:-1:-1;;;12826:11:0;;;;12813:24;:42;;;;-1:-1:-1;12841:14:0;;-1:-1:-1;;;12841:14:0;;;;12813:42;:54;;;;;12859:8;12813:54;:83;;;;-1:-1:-1;;;;;;12872:24:0;;;;;;:16;:24;;;;;;;;12871:25;12813:83;:104;;;;-1:-1:-1;12913:4:0;;-1:-1:-1;;;;;12900:17:0;;;12913:4;;12900:17;12813:104;:131;;;;;12934:10;;12921:9;;:23;;12813:131;:149;;;;;12948:14;12813:149;12806:156;12554:416;-1:-1:-1;;;;;;12554:416:0:o;16120:107::-;16177:7;16209:1;16205;:5;16204:15;;16218:1;16204:15;;;-1:-1:-1;16214:1:0;16120:107;-1:-1:-1;16120:107:0:o;14398:171::-;-1:-1:-1;;;;;14505:24:0;;14480:4;14505:24;;;:16;:24;;;;;;;;14504:25;:57;;;;-1:-1:-1;;;;;;;14534:27:0;;;;;:16;:27;;;;;;;;14533:28;;14398:171;-1:-1:-1;14398:171:0:o;8942:796::-;-1:-1:-1;;;;;9102:23:0;;9029:7;9102:23;;;:15;:23;;;;;;9029:7;;;;9102:23;;9098:131;;;-1:-1:-1;9158:6:0;;-1:-1:-1;9140:3:0;9098:131;;;-1:-1:-1;9204:4:0;;-1:-1:-1;9222:5:0;9098:131;9276:1;9242:31;9255:6;9263:9;9242:12;:31::i;:::-;:35;9239:477;;;9289:17;9309:58;9335:31;9348:6;9356:9;9335:12;:31::i;:::-;9309:21;:6;9320:9;9309:10;:21::i;:58::-;-1:-1:-1;;;;;9401:20:0;;;;;;:7;:20;;;;;;9289:78;;-1:-1:-1;9401:35:0;;9289:78;9401:24;:35::i;:::-;-1:-1:-1;;;;;9378:20:0;;;;;;;:7;:20;;;;;;;:58;;;;9452:40;;;;;;;;;;9482:9;1410:25:1;;1398:2;1383:18;;1264:177;9452:40:0;;;;;;;;9524:1;9506:7;;:20;:65;;;;;9564:7;;9530:31;9543:6;9551:9;9530:12;:31::i;:::-;:41;9506:65;9503:149;;;9573:77;9591:4;6251:42;9613:36;9641:7;;9613:23;9624:11;;9613:6;:10;;:23;;;;:::i;:36::-;9573:9;:77::i;:::-;9676:9;9669:6;:16;:45;;9708:6;9669:45;;;9686:21;:6;9697:9;9686:10;:21::i;:::-;9662:52;;;;;;;9239:477;-1:-1:-1;9724:6:0;;8942:796;-1:-1:-1;;;;8942:796:0:o;8500:434::-;8590:16;;;8604:1;8590:16;;;;;;;;8566:21;;8590:16;;;;;;;;;;-1:-1:-1;8590:16:0;8566:40;;8635:4;8617;8622:1;8617:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8617:23:0;;;:7;;;;;;;;;;:23;;;;8661:6;;:13;;;-1:-1:-1;;;8661:13:0;;;;:6;;;;;:11;;:13;;;;;8617:7;;8661:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8651:4;8656:1;8651:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8651:23:0;;;:7;;;;;;;;;:23;8717:6;;8685:53;;8702:4;;8717:6;8726:11;8685:8;:53::i;:::-;8749:6;;:177;;-1:-1:-1;;;8749:177:0;;-1:-1:-1;;;;;8749:6:0;;;;:57;;:177;;8821:11;;8749:6;;8863:4;;8890;;8910:15;;8749:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8555:379;8500:434;:::o;9746:306::-;-1:-1:-1;;;;;9849:13:0;;9826:7;9849:13;;;:5;:13;;;;;;;;;:33;;-1:-1:-1;;;;;;9866:16:0;;;;;;:5;:16;;;;;;;;9849:33;9846:76;;;9891:11;;:29;;9915:3;9891:15;:29::i;:::-;9884:36;;;;9846:76;9948:4;;-1:-1:-1;;;;;9935:17:0;;;9948:4;;9935:17;9932:38;;;-1:-1:-1;9961:7:0;;9954:14;;9932:38;9993:4;;-1:-1:-1;;;;;9983:14:0;;;9993:4;;9983:14;9980:36;;;-1:-1:-1;10006:8:0;;9999:15;;9980:36;-1:-1:-1;10033:11:0;;9746:306;;;;:::o;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;671:70;616:131;:::o;752:315::-;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1446:456::-;1523:6;1531;1539;1592:2;1580:9;1571:7;1567:23;1563:32;1560:52;;;1608:1;1605;1598:12;1560:52;1647:9;1634:23;1666:31;1691:5;1666:31;:::i;:::-;1716:5;-1:-1:-1;1773:2:1;1758:18;;1745:32;1786:33;1745:32;1786:33;:::i;:::-;1446:456;;1838:7;;-1:-1:-1;;;1892:2:1;1877:18;;;;1864:32;;1446:456::o;1907:316::-;1984:6;1992;2000;2053:2;2041:9;2032:7;2028:23;2024:32;2021:52;;;2069:1;2066;2059:12;2021:52;-1:-1:-1;;2092:23:1;;;2162:2;2147:18;;2134:32;;-1:-1:-1;2213:2:1;2198:18;;;2185:32;;1907:316;-1:-1:-1;1907:316:1:o;2228:247::-;2287:6;2340:2;2328:9;2319:7;2315:23;2311:32;2308:52;;;2356:1;2353;2346:12;2308:52;2395:9;2382:23;2414:31;2439:5;2414:31;:::i;2669:118::-;2755:5;2748:13;2741:21;2734:5;2731:32;2721:60;;2777:1;2774;2767:12;2792:382;2857:6;2865;2918:2;2906:9;2897:7;2893:23;2889:32;2886:52;;;2934:1;2931;2924:12;2886:52;2973:9;2960:23;2992:31;3017:5;2992:31;:::i;:::-;3042:5;-1:-1:-1;3099:2:1;3084:18;;3071:32;3112:30;3071:32;3112:30;:::i;:::-;3161:7;3151:17;;;2792:382;;;;;:::o;3179:529::-;3256:6;3264;3272;3325:2;3313:9;3304:7;3300:23;3296:32;3293:52;;;3341:1;3338;3331:12;3293:52;3380:9;3367:23;3399:31;3424:5;3399:31;:::i;:::-;3449:5;-1:-1:-1;3506:2:1;3491:18;;3478:32;3519:33;3478:32;3519:33;:::i;:::-;3571:7;-1:-1:-1;3630:2:1;3615:18;;3602:32;3643:33;3602:32;3643:33;:::i;:::-;3695:7;3685:17;;;3179:529;;;;;:::o;3713:592::-;3826:6;3834;3842;3850;3858;3866;3874;3927:3;3915:9;3906:7;3902:23;3898:33;3895:53;;;3944:1;3941;3934:12;3895:53;-1:-1:-1;;3967:23:1;;;4037:2;4022:18;;4009:32;;-1:-1:-1;4088:2:1;4073:18;;4060:32;;4139:2;4124:18;;4111:32;;-1:-1:-1;4190:3:1;4175:19;;4162:33;;-1:-1:-1;4242:3:1;4227:19;;4214:33;;-1:-1:-1;4294:3:1;4279:19;4266:33;;-1:-1:-1;3713:592:1;-1:-1:-1;3713:592:1:o;4518:388::-;4586:6;4594;4647:2;4635:9;4626:7;4622:23;4618:32;4615:52;;;4663:1;4660;4653:12;4615:52;4702:9;4689:23;4721:31;4746:5;4721:31;:::i;:::-;4771:5;-1:-1:-1;4828:2:1;4813:18;;4800:32;4841:33;4800:32;4841:33;:::i;4911:750::-;5003:6;5011;5019;5072:2;5060:9;5051:7;5047:23;5043:32;5040:52;;;5088:1;5085;5078:12;5040:52;5128:9;5115:23;5157:18;5198:2;5190:6;5187:14;5184:34;;;5214:1;5211;5204:12;5184:34;5252:6;5241:9;5237:22;5227:32;;5297:7;5290:4;5286:2;5282:13;5278:27;5268:55;;5319:1;5316;5309:12;5268:55;5359:2;5346:16;5385:2;5377:6;5374:14;5371:34;;;5401:1;5398;5391:12;5371:34;5456:7;5449:4;5439:6;5436:1;5432:14;5428:2;5424:23;5420:34;5417:47;5414:67;;;5477:1;5474;5467:12;5414:67;5508:4;5500:13;;;;-1:-1:-1;5532:6:1;-1:-1:-1;;5573:20:1;;5560:34;5603:28;5560:34;5603:28;:::i;5666:329::-;5868:2;5850:21;;;5907:1;5887:18;;;5880:29;-1:-1:-1;;;5940:2:1;5925:18;;5918:36;5986:2;5971:18;;5666:329::o;6000:408::-;6202:2;6184:21;;;6241:2;6221:18;;;6214:30;6280:34;6275:2;6260:18;;6253:62;-1:-1:-1;;;6346:2:1;6331:18;;6324:42;6398:3;6383:19;;6000:408::o;6828:184::-;6898:6;6951:2;6939:9;6930:7;6926:23;6922:32;6919:52;;;6967:1;6964;6957:12;6919:52;-1:-1:-1;6990:16:1;;6828:184;-1:-1:-1;6828:184:1:o;7296:245::-;7363:6;7416:2;7404:9;7395:7;7391:23;7387:32;7384:52;;;7432:1;7429;7422:12;7384:52;7464:9;7458:16;7483:28;7505:5;7483:28;:::i;7546:251::-;7616:6;7669:2;7657:9;7648:7;7644:23;7640:32;7637:52;;;7685:1;7682;7675:12;7637:52;7717:9;7711:16;7736:31;7761:5;7736:31;:::i;8111:127::-;8172:10;8167:3;8163:20;8160:1;8153:31;8203:4;8200:1;8193:15;8227:4;8224:1;8217:15;8243:127;8304:10;8299:3;8295:20;8292:1;8285:31;8335:4;8332:1;8325:15;8359:4;8356:1;8349:15;8375:135;8414:3;-1:-1:-1;;8435:17:1;;8432:43;;;8455:18;;:::i;:::-;-1:-1:-1;8502:1:1;8491:13;;8375:135::o;9323:125::-;9363:4;9391:1;9388;9385:8;9382:34;;;9396:18;;:::i;:::-;-1:-1:-1;9433:9:1;;9323:125::o;11721:128::-;11761:3;11792:1;11788:6;11785:1;11782:13;11779:39;;;11798:18;;:::i;:::-;-1:-1:-1;11834:9:1;;11721:128::o;11854:422::-;11943:1;11986:5;11943:1;12000:270;12021:7;12011:8;12008:21;12000:270;;;12080:4;12076:1;12072:6;12068:17;12062:4;12059:27;12056:53;;;12089:18;;:::i;:::-;12139:7;12129:8;12125:22;12122:55;;;12159:16;;;;12122:55;12238:22;;;;12198:15;;;;12000:270;;;12004:3;11854:422;;;;;:::o;12281:806::-;12330:5;12360:8;12350:80;;-1:-1:-1;12401:1:1;12415:5;;12350:80;12449:4;12439:76;;-1:-1:-1;12486:1:1;12500:5;;12439:76;12531:4;12549:1;12544:59;;;;12617:1;12612:130;;;;12524:218;;12544:59;12574:1;12565:10;;12588:5;;;12612:130;12649:3;12639:8;12636:17;12633:43;;;12656:18;;:::i;:::-;-1:-1:-1;;12712:1:1;12698:16;;12727:5;;12524:218;;12826:2;12816:8;12813:16;12807:3;12801:4;12798:13;12794:36;12788:2;12778:8;12775:16;12770:2;12764:4;12761:12;12757:35;12754:77;12751:159;;;-1:-1:-1;12863:19:1;;;12895:5;;12751:159;12942:34;12967:8;12961:4;12942:34;:::i;:::-;13012:6;13008:1;13004:6;13000:19;12991:7;12988:32;12985:58;;;13023:18;;:::i;:::-;13061:20;;12281:806;-1:-1:-1;;;12281:806:1:o;13092:140::-;13150:5;13179:47;13220:4;13210:8;13206:19;13200:4;13179:47;:::i;13237:168::-;13277:7;13343:1;13339;13335:6;13331:14;13328:1;13325:21;13320:1;13313:9;13306:17;13302:45;13299:71;;;13350:18;;:::i;:::-;-1:-1:-1;13390:9:1;;13237:168::o;13410:217::-;13450:1;13476;13466:132;;13520:10;13515:3;13511:20;13508:1;13501:31;13555:4;13552:1;13545:15;13583:4;13580:1;13573:15;13466:132;-1:-1:-1;13612:9:1;;13410:217::o;13764:980::-;14026:4;14074:3;14063:9;14059:19;14105:6;14094:9;14087:25;14131:2;14169:6;14164:2;14153:9;14149:18;14142:34;14212:3;14207:2;14196:9;14192:18;14185:31;14236:6;14271;14265:13;14302:6;14294;14287:22;14340:3;14329:9;14325:19;14318:26;;14379:2;14371:6;14367:15;14353:29;;14400:1;14410:195;14424:6;14421:1;14418:13;14410:195;;;14489:13;;-1:-1:-1;;;;;14485:39:1;14473:52;;14580:15;;;;14545:12;;;;14521:1;14439:9;14410:195;;;-1:-1:-1;;;;;;;14661:32:1;;;;14656:2;14641:18;;14634:60;-1:-1:-1;;;14725:3:1;14710:19;14703:35;14622:3;13764:980;-1:-1:-1;;;13764:980:1:o

Swarm Source

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