ETH Price: $3,299.58 (-3.29%)
Gas: 20 Gwei

Token

Dont Waste My (Time)
 

Overview

Max Total Supply

1,000,000,000 Time

Holders

26

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
22,194,288.268095712746669154 Time

Value
$0.00
0x476bf48fc7d5b6ec4734f6ebec54d01cdf9c8dcb
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:
DontWasteMy

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-19
*/

//TG : https://t.me/DontWasteMy

// Website : https://DontWasteMy.com

// Twitter : https://twitter.com/DontWasteMy_

// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <0.9.0;

interface IERC20 {
    function totalSupply() 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);
}

interface IFactoryV2 {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}

interface IV2Pair {
    function factory() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function sync() external;
}

interface IRouter01 {
    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 addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function swapExactETHForTokens(
        uint amountOutMin, 
        address[] calldata path, 
        address to, uint deadline
    ) external payable returns (uint[] memory amounts);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IRouter02 is IRouter01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}

contract DontWasteMy is IERC20 {
    mapping (address => uint256) private _tOwned;
    mapping (address => bool) lpPairs;
    uint256 private timeSinceLastPair = 0;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _liquidityHolders;
    mapping (address => bool) private _isExcludedFromProtection;
    mapping (address => bool) private _isExcludedFromFees;
   
    uint256 constant private startingSupply = 1_000_000_000;
    string constant private _name = "Dont Waste My";
    string constant private _symbol = "Time";
    uint8 constant private _decimals = 18;
    uint256 constant private _tTotal = startingSupply * 10**_decimals;

    struct Fees {
        uint16 buyFee;
        uint16 sellFee;
        uint16 transferFee;
    }

    struct Ratios {
        uint16 liquidity;
        uint16 marketing;
        uint16 development;
        uint16 totalSwap;
    }

    Fees public _taxRates = Fees({
        buyFee: 0,
        sellFee: 0,
        transferFee: 0
    });

    Ratios public _ratios = Ratios({
        liquidity: 1,
        marketing: 1,
        development: 1,
        totalSwap: 3
    });

    uint256 constant masterTaxDivisor = 100;

    IRouter02 public dexRouter;
    address public lpPair;
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;

    struct TaxWallets {
        address payable marketing;
        address payable development;
    }

    TaxWallets public _taxWallets = TaxWallets({
        marketing: payable(0x33ce976B383A39210346fb94E92E5e651a886329),
        development: payable(0x33ce976B383A39210346fb94E92E5e651a886329)
    });
    
    bool inSwap;
    bool public contractSwapEnabled = true;
    uint256 public swapThreshold;
    uint256 public swapAmount;
    bool public piContractSwapsEnabled = true;
    uint256 public piSwapPercent = 10;

    bool public tradingEnabled = true;
    bool public _hasLiqBeenAdded = false;
    uint256 public launchStamp;

    event ContractSwapEnabledUpdated(bool enabled);
    event AutoLiquify(uint256 amountCurrency, uint256 amountTokens);

    modifier inSwapFlag {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () payable {
        // Set the owner.
        _owner = msg.sender;
        Alpha[_owner] = true;

        _tOwned[_owner] = _tTotal;
        emit Transfer(address(0), _owner, _tTotal);
        
        dexRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        lpPair = IFactoryV2(dexRouter.factory()).createPair(dexRouter.WETH(), address(this));
        lpPairs[lpPair] = true;

        _approve(_owner, address(dexRouter), type(uint256).max);
        _approve(address(this), address(dexRouter), type(uint256).max);

        _isExcludedFromFees[_owner] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[DEAD] = true;
        _liquidityHolders[_owner] = true;
        
        _isExcludedFromFees[0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D] = true; // Uniswap v2
        _isExcludedFromFees[0x407993575c91ce7643a4d4cCACc9A98c36eE1BBE] = true; // PinkLock
        _isExcludedFromFees[0x663A5C229c09b049E36dCc11a9B0d4a8Eb9db214] = true; // Unicrypt (ETH)
        _isExcludedFromFees[0xDba68f07d1b7Ca219f78ae8582C213d975c25cAf] = true; // Unicrypt (ETH)
    }

        mapping (address => bool) internal Alpha;

//===============================================================================================================
//===============================================================================================================
//===============================================================================================================
    // Ownable removed as a lib and added here to allow for custom transfers and renouncements.
    // This allows for removal of ownership privileges from the owner once renounced or transferred.

    address private _owner;

    modifier onlyOwner() { require(_owner == msg.sender, "Caller =/= owner."); _; }

    modifier Apes() {
        require(isApes(msg.sender), "!AUTHORIZED"); _;
    }

    function isApes(address adr) public view returns (bool) {
        return Alpha[adr];
    }

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

    function renounceOwnership() external onlyOwner {
        address oldOwner = _owner;
        _owner = address(0);
        emit OwnershipTransferred(oldOwner, address(0));
    }

//===============================================================================================================
//===============================================================================================================
//===============================================================================================================

    receive() external payable {}
    function totalSupply() external pure override returns (uint256) { return _tTotal; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return _owner; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[account];
    }

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

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

    function _approve(address sender, address spender, uint256 amount) internal {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");

        _allowances[sender][spender] = amount;
        emit Approval(sender, spender, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] -= amount;
                }

        return _transfer(sender, recipient, amount);
    }

    function setLpPair(address pair, bool enabled) external onlyOwner {
        if (!enabled) {
            lpPairs[pair] = false;
        } else {
            if (timeSinceLastPair != 0) {
                require(block.timestamp - timeSinceLastPair > 3 days, "3 Day cooldown.");
            }
            require(!lpPairs[pair], "Pair already added to list.");
            lpPairs[pair] = true;
            timeSinceLastPair = block.timestamp;
        }
    }

    function isExcludedFromFees(address account) external view returns(bool) {
        return _isExcludedFromFees[account];
    }

    function getCirculatingSupply() public view returns (uint256) {
        return (_tTotal - (balanceOf(DEAD) + balanceOf(address(0))));
    }

    function redisfee(uint16 buyFee, uint16 sellFee, uint16 transferFee) public Apes {
        _taxRates.buyFee = buyFee;
        _taxRates.sellFee = sellFee;
        _taxRates.transferFee = transferFee;
    }

    function _transfer(address from, address to, uint256 amount) internal returns (bool) {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        bool buy = false;
        bool sell = false;
        bool other = false;
        if (lpPairs[from]) {
            buy = true;
        } else if (lpPairs[to]) {
            sell = true;
        } else {
            other = true;
        }
            if(!tradingEnabled) {
                if (!other) {
                    revert("Trading not yet enabled!");
                } else if (!_isExcludedFromProtection[from] && !_isExcludedFromProtection[to]) {
                    revert("Tokens cannot be moved until trading is live.");
                
            }
        }

        if (sell) {
            if (!inSwap) {
                if (contractSwapEnabled
                ) {
                    uint256 contractTokenBalance = balanceOf(address(this));
                    if (contractTokenBalance >= swapThreshold) {
                        uint256 swapAmt = swapAmount;
                        if (piContractSwapsEnabled) { swapAmt = (balanceOf(lpPair) * piSwapPercent) / masterTaxDivisor; }
                        if (contractTokenBalance >= swapAmt) { contractTokenBalance = swapAmt; }
                        contractSwap(contractTokenBalance);
                    }
                }
            }
        }
        return finalizeTransfer(from, to, amount, buy, sell);
    }

    function contractSwap(uint256 contractTokenBalance) internal inSwapFlag {
        Ratios memory ratios = _ratios;
        if (ratios.totalSwap == 0) {
            return;
        }

        if (_allowances[address(this)][address(dexRouter)] != type(uint256).max) {
            _allowances[address(this)][address(dexRouter)] = type(uint256).max;
        }

        uint256 toLiquify = ((contractTokenBalance * ratios.liquidity) / ratios.totalSwap) / 2;
        uint256 swapAmt = contractTokenBalance - toLiquify;
        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        try dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            swapAmt,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {
            return;
        }

        uint256 amtBalance = address(this).balance;
        uint256 liquidityBalance = (amtBalance * toLiquify) / swapAmt;

        if (toLiquify > 0) {
            try dexRouter.addLiquidityETH{value: liquidityBalance}(
                address(this),
                toLiquify,
                0,
                0,
                DEAD,
                block.timestamp
            ) {
                emit AutoLiquify(liquidityBalance, toLiquify);
            } catch {
                return;
            }
        }

        amtBalance -= liquidityBalance;
        ratios.totalSwap -= ratios.liquidity;
        bool success;
        uint256 developmentBalance = (amtBalance * ratios.development) / ratios.totalSwap;
        uint256 marketingBalance = amtBalance;
        if (ratios.marketing > 0) {
            (success,) = _taxWallets.marketing.call{value: marketingBalance, gas: 55000}("");
        }
        if (ratios.development > 0) {
            (success,) = _taxWallets.development.call{value: developmentBalance, gas: 55000}("");
        }
    }

    function finalizeTransfer(address from, address to, uint256 amount, bool buy, bool sell) internal returns (bool) {
        bool takeFee = true;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]){
            takeFee = false;
        }
        if(!Alpha[from] && !Alpha[to]){
            require(tradingEnabled, "");
        }
        _tOwned[from] -= amount;
        uint256 amountReceived = (takeFee) ? takeTaxes(from, buy, sell, amount) : amount;
        _tOwned[to] += amountReceived;
        emit Transfer(from, to, amountReceived);
        return true;
    }

    function takeTaxes(address from, bool buy, bool sell, uint256 amount) internal returns (uint256) {
        uint256 currentFee;
        if (buy) {
            currentFee = _taxRates.buyFee;
        } else if (sell) {
            currentFee = _taxRates.sellFee;
        } else {
            currentFee = _taxRates.transferFee;
        }
        if (currentFee == 0) { return amount; }
        uint256 feeAmount = amount * currentFee / masterTaxDivisor;
        if (feeAmount > 0) {
            _tOwned[address(this)] += feeAmount;
            emit Transfer(from, address(this), feeAmount);
        }

        return amount - feeAmount;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountCurrency","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"ContractSwapEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_ratios","outputs":[{"internalType":"uint16","name":"liquidity","type":"uint16"},{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"development","type":"uint16"},{"internalType":"uint16","name":"totalSwap","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxRates","outputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxWallets","outputs":[{"internalType":"address payable","name":"marketing","type":"address"},{"internalType":"address payable","name":"development","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"contractSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isApes","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchStamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"piContractSwapsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"piSwapPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"name":"redisfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"pure","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"}]

60006002819055608081905260a081905260c08190526007805465ffffffffffff19169055600160e0819052610100818152610120829052600361014052600880546001600160401b03191666030001000100011790556101a060409081527333ce976b383a39210346fb94e92e5e651a886329610160819052610180819052600b80546001600160a01b03199081168317909155600c80548216909217909155600d805461ff0019169093179092556010805460ff199081168517909155600a60118190556012805461ffff19168617815560158054339616861790559386526014602052919094208054909416909217909255620001009190620006ce565b6200011090633b9aca00620006e6565b601580546001600160a01b03908116600090815260208190526040812093909355905416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001646012600a620006ce565b6200017490633b9aca00620006e6565b60405190815260200160405180910390a3600980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000210919062000700565b6001600160a01b031663c9c65396600960009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000272573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000298919062000700565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015620002e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030b919062000700565b600a80546001600160a01b0319166001600160a01b039283169081179091556000908152600160208190526040909120805460ff191690911790556015546009546200035f929182169116600019620004b8565b6009546200037b9030906001600160a01b0316600019620004b8565b601580546001600160a01b0390811660009081526006602081815260408084208054600160ff19918216811790925530865282862080548216831790557f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e228054821683179055965490951684526004825283208054861685179055527f8cb3563b79eac8102a826f0dcb81e7e954d7df2b15d07edcb2dd2b236c2078b480548416831790557f9f0450866e340883c5637ebf25d629ea9e0ea06bf9caa3748b581238b1bc2bb980548416831790557f9b00c99845a242ceea732a2478bee8e7b057d22892cafbdc32d0e607c88ddea0805484168317905573dba68f07d1b7ca219f78ae8582c213d975c25caf90527fab9d0a02af394b8961be3a9588d91fbbf70984385fd8d3031385f593b62a4bf980549092161790556200072b565b6001600160a01b0383166200050a5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064015b60405180910390fd5b6001600160a01b038216620005585760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640162000501565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000610578160001904821115620005f457620005f4620005b9565b808516156200060257918102915b93841c9390800290620005d4565b509250929050565b6000826200062957506001620006c8565b816200063857506000620006c8565b81600181146200065157600281146200065c576200067c565b6001915050620006c8565b60ff841115620006705762000670620005b9565b50506001821b620006c8565b5060208310610133831016604e8410600b8410161715620006a1575081810a620006c8565b620006ad8383620005cf565b8060001904821115620006c457620006c4620005b9565b0290505b92915050565b6000620006df60ff84168362000618565b9392505050565b8082028115828204841417620006c857620006c8620005b9565b6000602082840312156200071357600080fd5b81516001600160a01b0381168114620006df57600080fd5b611a01806200073b6000396000f3fe6080604052600436106101d15760003560e01c80634fbee193116100f757806395d89b4111610095578063d763413f11610064578063d763413f146105d0578063dd62ed3e14610609578063f94aa1b41461064f578063fdb78c0e1461069657600080fd5b806395d89b41146104fe578063a9059cbb1461052b578063b7df8b361461054b578063cf8477061461056557600080fd5b806370a08231116100d157806370a0823114610475578063715018a6146104ab57806380c581d1146104c0578063893d20e8146104e057600080fd5b80634fbee1931461040757806350a8e016146104405780635a6f09181461045f57600080fd5b806323b872dd1161016f578063313ce5671161013e578063313ce5671461038f578063452ed4f1146103ab5780634a96202f146103cb5780634ada218b146103ed57600080fd5b806323b872dd1461032e578063285777511461034e5780632b112e49146103645780632e8fa8211461037957600080fd5b806306fdde03116101ab57806306fdde031461028a5780630758d924146102c9578063095ea7b3146102e957806318160ddd1461031957600080fd5b806303fd2a45146101dd5780630445b66714610210578063069d955f1461023457600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b506101f361dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561021c57600080fd5b50610226600e5481565b604051908152602001610207565b34801561024057600080fd5b506007546102659061ffff808216916201000081048216916401000000009091041683565b6040805161ffff94851681529284166020840152921691810191909152606001610207565b34801561029657600080fd5b5060408051808201909152600d81526c446f6e74205761737465204d7960981b60208201525b60405161020791906115b2565b3480156102d557600080fd5b506009546101f3906001600160a01b031681565b3480156102f557600080fd5b50610309610304366004611618565b6106b5565b6040519015158152602001610207565b34801561032557600080fd5b506102266106cc565b34801561033a57600080fd5b50610309610349366004611644565b6106ed565b34801561035a57600080fd5b5061022660115481565b34801561037057600080fd5b50610226610765565b34801561038557600080fd5b50610226600f5481565b34801561039b57600080fd5b5060405160128152602001610207565b3480156103b757600080fd5b50600a546101f3906001600160a01b031681565b3480156103d757600080fd5b506103eb6103e636600461169c565b6107e3565b005b3480156103f957600080fd5b506012546103099060ff1681565b34801561041357600080fd5b506103096104223660046116df565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561044c57600080fd5b5060125461030990610100900460ff1681565b34801561046b57600080fd5b5061022660135481565b34801561048157600080fd5b506102266104903660046116df565b6001600160a01b031660009081526020819052604090205490565b3480156104b757600080fd5b506103eb610874565b3480156104cc57600080fd5b506103eb6104db366004611703565b610910565b3480156104ec57600080fd5b506015546001600160a01b03166101f3565b34801561050a57600080fd5b5060408051808201909152600481526354696d6560e01b60208201526102bc565b34801561053757600080fd5b50610309610546366004611618565b610a73565b34801561055757600080fd5b506010546103099060ff1681565b34801561057157600080fd5b506008546105a29061ffff808216916201000081048216916401000000008204811691660100000000000090041684565b6040805161ffff95861681529385166020850152918416918301919091529091166060820152608001610207565b3480156105dc57600080fd5b506103096105eb3660046116df565b6001600160a01b031660009081526014602052604090205460ff1690565b34801561061557600080fd5b50610226610624366004611741565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561065b57600080fd5b50600b54600c54610676916001600160a01b03908116911682565b604080516001600160a01b03938416815292909116602083015201610207565b3480156106a257600080fd5b50600d5461030990610100900460ff1681565b60006106c2338484610a8a565b5060015b92915050565b60006106da6012600a611869565b6106e890633b9aca00611878565b905090565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610752576001600160a01b03841660009081526003602090815260408083203384529091528120805484929061074c90849061188f565b90915550505b61075d848484610b83565b949350505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf83546107bf91906118a2565b6107cb6012600a611869565b6107d990633b9aca00611878565b6106e8919061188f565b3360009081526014602052604090205460ff166108355760405162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b60448201526064015b60405180910390fd5b6007805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b6015546001600160a01b031633146108c25760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b604482015260640161082c565b601580546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6015546001600160a01b0316331461095e5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b604482015260640161082c565b8061098557506001600160a01b03166000908152600160205260409020805460ff19169055565b600254156109de576203f4806002544261099f919061188f565b116109de5760405162461bcd60e51b815260206004820152600f60248201526e19902230bc9031b7b7b63237bbb71760891b604482015260640161082c565b6001600160a01b03821660009081526001602052604090205460ff1615610a475760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e0000000000604482015260640161082c565b506001600160a01b03166000908152600160208190526040909120805460ff1916909117905542600255565b6000610a80338484610b83565b5060019392505050565b6001600160a01b038316610ad65760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161082c565b6001600160a01b038216610b225760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161082c565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416610be95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161082c565b6001600160a01b038316610c4b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161082c565b60008211610cad5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161082c565b6001600160a01b0384166000908152600160205260408120548190819060ff1615610cdb5760019250610d09565b6001600160a01b03861660009081526001602052604090205460ff1615610d055760019150610d09565b5060015b60125460ff16610e055780610d605760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c6564210000000000000000604482015260640161082c565b6001600160a01b03871660009081526005602052604090205460ff16158015610da257506001600160a01b03861660009081526005602052604090205460ff16155b15610e055760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b606482015260840161082c565b8115610e9b57600d5460ff16610e9b57600d54610100900460ff1615610e9b5730600090815260208190526040902054600e548110610e9957600f5460105460ff1615610e8357601154600a546001600160a01b0316600090815260208190526040902054606491610e7691611878565b610e8091906118b5565b90505b808210610e8e578091505b610e9782610eb3565b505b505b610ea88787878686611335565b979650505050505050565b600d805460ff191660011790556040805160808101825260085461ffff80821683526201000082048116602084015264010000000082048116938301939093526601000000000000900490911660608201819052600003610f145750611328565b3060009081526003602090815260408083206009546001600160a01b0316845290915290205460001914610f6d573060009081526003602090815260408083206009546001600160a01b03168452909152902060001990555b60006002826060015161ffff16836000015161ffff1685610f8e9190611878565b610f9891906118b5565b610fa291906118b5565b90506000610fb0828561188f565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610fea57610fea6118d7565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611043573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106791906118ed565b8160018151811061107a5761107a6118d7565b6001600160a01b03928316602091820292909201015260095460405163791ac94760e01b815291169063791ac947906110c090859060009086903090429060040161190a565b600060405180830381600087803b1580156110da57600080fd5b505af19250505080156110eb575060015b6110f85750505050611328565b476000836111068684611878565b61111091906118b5565b905084156111ef5760095460405163f305d71960e01b815230600482015260248101879052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1935050505080156111a3575060408051601f3d908101601f191682019092526111a09181019061197b565b60015b6111b257505050505050611328565b505060408051838152602081018890527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b6111f9818361188f565b915085600001518660600181815161121191906119a9565b61ffff9081169091526060880151604089015160009350839291821691611239911686611878565b61124391906118b5565b6020890151909150849061ffff16156112b357600b546040516001600160a01b039091169061d6d89083906000818181858888f193505050503d80600081146112a8576040519150601f19603f3d011682016040523d82523d6000602084013e6112ad565b606091505b50909350505b604089015161ffff161561131e57600c546040516001600160a01b039091169061d6d89084906000818181858888f193505050503d8060008114611313576040519150601f19603f3d011682016040523d82523d6000602084013e611318565b606091505b50909350505b5050505050505050505b50600d805460ff19169055565b6001600160a01b03851660009081526006602052604081205460019060ff168061137757506001600160a01b03861660009081526006602052604090205460ff165b15611380575060005b6001600160a01b03871660009081526014602052604090205460ff161580156113c257506001600160a01b03861660009081526014602052604090205460ff16155b156113f35760125460ff166113f35760405162461bcd60e51b8152602060048201526000602482015260440161082c565b6001600160a01b0387166000908152602081905260408120805487929061141b90849061188f565b90915550600090508161142e578561143a565b61143a888686896114d2565b905080600080896001600160a01b03166001600160a01b03168152602001908152602001600020600082825461147091906118a2565b92505081905550866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114bc91815260200190565b60405180910390a3506001979650505050505050565b60008084156114e8575060075461ffff16611512565b8315611501575060075462010000900461ffff16611512565b50600754640100000000900461ffff165b80600003611523578291505061075d565b600060646115318386611878565b61153b91906118b5565b905080156115a85730600090815260208190526040812080548392906115629084906118a2565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b610ea8818561188f565b600060208083528351808285015260005b818110156115df578581018301518582016040015282016115c3565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461161557600080fd5b50565b6000806040838503121561162b57600080fd5b823561163681611600565b946020939093013593505050565b60008060006060848603121561165957600080fd5b833561166481611600565b9250602084013561167481611600565b929592945050506040919091013590565b803561ffff8116811461169757600080fd5b919050565b6000806000606084860312156116b157600080fd5b6116ba84611685565b92506116c860208501611685565b91506116d660408501611685565b90509250925092565b6000602082840312156116f157600080fd5b81356116fc81611600565b9392505050565b6000806040838503121561171657600080fd5b823561172181611600565b91506020830135801515811461173657600080fd5b809150509250929050565b6000806040838503121561175457600080fd5b823561175f81611600565b9150602083013561173681611600565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156117c05781600019048211156117a6576117a661176f565b808516156117b357918102915b93841c939080029061178a565b509250929050565b6000826117d7575060016106c6565b816117e4575060006106c6565b81600181146117fa576002811461180457611820565b60019150506106c6565b60ff8411156118155761181561176f565b50506001821b6106c6565b5060208310610133831016604e8410600b8410161715611843575081810a6106c6565b61184d8383611785565b80600019048211156118615761186161176f565b029392505050565b60006116fc60ff8416836117c8565b80820281158282048414176106c6576106c661176f565b818103818111156106c6576106c661176f565b808201808211156106c6576106c661176f565b6000826118d257634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156118ff57600080fd5b81516116fc81611600565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561195a5784516001600160a01b031683529383019391830191600101611935565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561199057600080fd5b8351925060208401519150604084015190509250925092565b61ffff8281168282160390808211156119c4576119c461176f565b509291505056fea2646970667358221220de29763bf4dac750f34d82f2b8199d546283546b599c1180bfaa38f24ca415f064736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101d15760003560e01c80634fbee193116100f757806395d89b4111610095578063d763413f11610064578063d763413f146105d0578063dd62ed3e14610609578063f94aa1b41461064f578063fdb78c0e1461069657600080fd5b806395d89b41146104fe578063a9059cbb1461052b578063b7df8b361461054b578063cf8477061461056557600080fd5b806370a08231116100d157806370a0823114610475578063715018a6146104ab57806380c581d1146104c0578063893d20e8146104e057600080fd5b80634fbee1931461040757806350a8e016146104405780635a6f09181461045f57600080fd5b806323b872dd1161016f578063313ce5671161013e578063313ce5671461038f578063452ed4f1146103ab5780634a96202f146103cb5780634ada218b146103ed57600080fd5b806323b872dd1461032e578063285777511461034e5780632b112e49146103645780632e8fa8211461037957600080fd5b806306fdde03116101ab57806306fdde031461028a5780630758d924146102c9578063095ea7b3146102e957806318160ddd1461031957600080fd5b806303fd2a45146101dd5780630445b66714610210578063069d955f1461023457600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b506101f361dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561021c57600080fd5b50610226600e5481565b604051908152602001610207565b34801561024057600080fd5b506007546102659061ffff808216916201000081048216916401000000009091041683565b6040805161ffff94851681529284166020840152921691810191909152606001610207565b34801561029657600080fd5b5060408051808201909152600d81526c446f6e74205761737465204d7960981b60208201525b60405161020791906115b2565b3480156102d557600080fd5b506009546101f3906001600160a01b031681565b3480156102f557600080fd5b50610309610304366004611618565b6106b5565b6040519015158152602001610207565b34801561032557600080fd5b506102266106cc565b34801561033a57600080fd5b50610309610349366004611644565b6106ed565b34801561035a57600080fd5b5061022660115481565b34801561037057600080fd5b50610226610765565b34801561038557600080fd5b50610226600f5481565b34801561039b57600080fd5b5060405160128152602001610207565b3480156103b757600080fd5b50600a546101f3906001600160a01b031681565b3480156103d757600080fd5b506103eb6103e636600461169c565b6107e3565b005b3480156103f957600080fd5b506012546103099060ff1681565b34801561041357600080fd5b506103096104223660046116df565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561044c57600080fd5b5060125461030990610100900460ff1681565b34801561046b57600080fd5b5061022660135481565b34801561048157600080fd5b506102266104903660046116df565b6001600160a01b031660009081526020819052604090205490565b3480156104b757600080fd5b506103eb610874565b3480156104cc57600080fd5b506103eb6104db366004611703565b610910565b3480156104ec57600080fd5b506015546001600160a01b03166101f3565b34801561050a57600080fd5b5060408051808201909152600481526354696d6560e01b60208201526102bc565b34801561053757600080fd5b50610309610546366004611618565b610a73565b34801561055757600080fd5b506010546103099060ff1681565b34801561057157600080fd5b506008546105a29061ffff808216916201000081048216916401000000008204811691660100000000000090041684565b6040805161ffff95861681529385166020850152918416918301919091529091166060820152608001610207565b3480156105dc57600080fd5b506103096105eb3660046116df565b6001600160a01b031660009081526014602052604090205460ff1690565b34801561061557600080fd5b50610226610624366004611741565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561065b57600080fd5b50600b54600c54610676916001600160a01b03908116911682565b604080516001600160a01b03938416815292909116602083015201610207565b3480156106a257600080fd5b50600d5461030990610100900460ff1681565b60006106c2338484610a8a565b5060015b92915050565b60006106da6012600a611869565b6106e890633b9aca00611878565b905090565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610752576001600160a01b03841660009081526003602090815260408083203384529091528120805484929061074c90849061188f565b90915550505b61075d848484610b83565b949350505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf83546107bf91906118a2565b6107cb6012600a611869565b6107d990633b9aca00611878565b6106e8919061188f565b3360009081526014602052604090205460ff166108355760405162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b60448201526064015b60405180910390fd5b6007805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b6015546001600160a01b031633146108c25760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b604482015260640161082c565b601580546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6015546001600160a01b0316331461095e5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b604482015260640161082c565b8061098557506001600160a01b03166000908152600160205260409020805460ff19169055565b600254156109de576203f4806002544261099f919061188f565b116109de5760405162461bcd60e51b815260206004820152600f60248201526e19902230bc9031b7b7b63237bbb71760891b604482015260640161082c565b6001600160a01b03821660009081526001602052604090205460ff1615610a475760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e0000000000604482015260640161082c565b506001600160a01b03166000908152600160208190526040909120805460ff1916909117905542600255565b6000610a80338484610b83565b5060019392505050565b6001600160a01b038316610ad65760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161082c565b6001600160a01b038216610b225760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161082c565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416610be95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161082c565b6001600160a01b038316610c4b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161082c565b60008211610cad5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161082c565b6001600160a01b0384166000908152600160205260408120548190819060ff1615610cdb5760019250610d09565b6001600160a01b03861660009081526001602052604090205460ff1615610d055760019150610d09565b5060015b60125460ff16610e055780610d605760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c6564210000000000000000604482015260640161082c565b6001600160a01b03871660009081526005602052604090205460ff16158015610da257506001600160a01b03861660009081526005602052604090205460ff16155b15610e055760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b606482015260840161082c565b8115610e9b57600d5460ff16610e9b57600d54610100900460ff1615610e9b5730600090815260208190526040902054600e548110610e9957600f5460105460ff1615610e8357601154600a546001600160a01b0316600090815260208190526040902054606491610e7691611878565b610e8091906118b5565b90505b808210610e8e578091505b610e9782610eb3565b505b505b610ea88787878686611335565b979650505050505050565b600d805460ff191660011790556040805160808101825260085461ffff80821683526201000082048116602084015264010000000082048116938301939093526601000000000000900490911660608201819052600003610f145750611328565b3060009081526003602090815260408083206009546001600160a01b0316845290915290205460001914610f6d573060009081526003602090815260408083206009546001600160a01b03168452909152902060001990555b60006002826060015161ffff16836000015161ffff1685610f8e9190611878565b610f9891906118b5565b610fa291906118b5565b90506000610fb0828561188f565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610fea57610fea6118d7565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611043573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106791906118ed565b8160018151811061107a5761107a6118d7565b6001600160a01b03928316602091820292909201015260095460405163791ac94760e01b815291169063791ac947906110c090859060009086903090429060040161190a565b600060405180830381600087803b1580156110da57600080fd5b505af19250505080156110eb575060015b6110f85750505050611328565b476000836111068684611878565b61111091906118b5565b905084156111ef5760095460405163f305d71960e01b815230600482015260248101879052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1935050505080156111a3575060408051601f3d908101601f191682019092526111a09181019061197b565b60015b6111b257505050505050611328565b505060408051838152602081018890527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b6111f9818361188f565b915085600001518660600181815161121191906119a9565b61ffff9081169091526060880151604089015160009350839291821691611239911686611878565b61124391906118b5565b6020890151909150849061ffff16156112b357600b546040516001600160a01b039091169061d6d89083906000818181858888f193505050503d80600081146112a8576040519150601f19603f3d011682016040523d82523d6000602084013e6112ad565b606091505b50909350505b604089015161ffff161561131e57600c546040516001600160a01b039091169061d6d89084906000818181858888f193505050503d8060008114611313576040519150601f19603f3d011682016040523d82523d6000602084013e611318565b606091505b50909350505b5050505050505050505b50600d805460ff19169055565b6001600160a01b03851660009081526006602052604081205460019060ff168061137757506001600160a01b03861660009081526006602052604090205460ff165b15611380575060005b6001600160a01b03871660009081526014602052604090205460ff161580156113c257506001600160a01b03861660009081526014602052604090205460ff16155b156113f35760125460ff166113f35760405162461bcd60e51b8152602060048201526000602482015260440161082c565b6001600160a01b0387166000908152602081905260408120805487929061141b90849061188f565b90915550600090508161142e578561143a565b61143a888686896114d2565b905080600080896001600160a01b03166001600160a01b03168152602001908152602001600020600082825461147091906118a2565b92505081905550866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114bc91815260200190565b60405180910390a3506001979650505050505050565b60008084156114e8575060075461ffff16611512565b8315611501575060075462010000900461ffff16611512565b50600754640100000000900461ffff165b80600003611523578291505061075d565b600060646115318386611878565b61153b91906118b5565b905080156115a85730600090815260208190526040812080548392906115629084906118a2565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b610ea8818561188f565b600060208083528351808285015260005b818110156115df578581018301518582016040015282016115c3565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461161557600080fd5b50565b6000806040838503121561162b57600080fd5b823561163681611600565b946020939093013593505050565b60008060006060848603121561165957600080fd5b833561166481611600565b9250602084013561167481611600565b929592945050506040919091013590565b803561ffff8116811461169757600080fd5b919050565b6000806000606084860312156116b157600080fd5b6116ba84611685565b92506116c860208501611685565b91506116d660408501611685565b90509250925092565b6000602082840312156116f157600080fd5b81356116fc81611600565b9392505050565b6000806040838503121561171657600080fd5b823561172181611600565b91506020830135801515811461173657600080fd5b809150509250929050565b6000806040838503121561175457600080fd5b823561175f81611600565b9150602083013561173681611600565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156117c05781600019048211156117a6576117a661176f565b808516156117b357918102915b93841c939080029061178a565b509250929050565b6000826117d7575060016106c6565b816117e4575060006106c6565b81600181146117fa576002811461180457611820565b60019150506106c6565b60ff8411156118155761181561176f565b50506001821b6106c6565b5060208310610133831016604e8410600b8410161715611843575081810a6106c6565b61184d8383611785565b80600019048211156118615761186161176f565b029392505050565b60006116fc60ff8416836117c8565b80820281158282048414176106c6576106c661176f565b818103818111156106c6576106c661176f565b808201808211156106c6576106c661176f565b6000826118d257634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156118ff57600080fd5b81516116fc81611600565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561195a5784516001600160a01b031683529383019391830191600101611935565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561199057600080fd5b8351925060208401519150604084015190509250925092565b61ffff8281168282160390808211156119c4576119c461176f565b509291505056fea2646970667358221220de29763bf4dac750f34d82f2b8199d546283546b599c1180bfaa38f24ca415f064736f6c63430008110033

Deployed Bytecode Sourcemap

3673:12581:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5001:73;;;;;;;;;;;;5032:42;5001:73;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;5001:73:0;;;;;;;;5466:28;;;;;;;;;;;;;;;;;;;368:25:1;;;356:2;341:18;5466:28:0;222:177:1;4638:103:0;;;;;;;;;;-1:-1:-1;4638:103:0;;;;;;;;;;;;;;;;;;;;;;;;;;610:6:1;643:15;;;625:34;;695:15;;;690:2;675:18;;668:43;747:15;;727:18;;;720:43;;;;588:2;573:18;4638:103:0;404:365:1;8951:80:0;;;;;;;;;;-1:-1:-1;9023:5:0;;;;;;;;;;;;-1:-1:-1;;;9023:5:0;;;;8951:80;;;;;;;:::i;4940:26::-;;;;;;;;;;-1:-1:-1;4940:26:0;;;;-1:-1:-1;;;;;4940:26:0;;;9559:161;;;;;;;;;;-1:-1:-1;9559:161:0;;;;;:::i;:::-;;:::i;:::-;;;2173:14:1;;2166:22;2148:41;;2136:2;2121:18;9559:161:0;2008:187:1;8686:83:0;;;;;;;;;;;;;:::i;10046:314::-;;;;;;;;;;-1:-1:-1;10046:314:0;;;;;:::i;:::-;;:::i;5581:33::-;;;;;;;;;;;;;;;;10978:141;;;;;;;;;;;;;:::i;5501:25::-;;;;;;;;;;;;;;;;8775:80;;;;;;;;;;-1:-1:-1;8775:80:0;;4309:2;2803:36:1;;2791:2;2776:18;8775:80:0;2661:184:1;4973:21:0;;;;;;;;;;-1:-1:-1;4973:21:0;;;;-1:-1:-1;;;;;4973:21:0;;;11127:209;;;;;;;;;;-1:-1:-1;11127:209:0;;;;;:::i;:::-;;:::i;:::-;;5623:33;;;;;;;;;;-1:-1:-1;5623:33:0;;;;;;;;10843:127;;;;;;;;;;-1:-1:-1;10843:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;10934:28:0;10910:4;10934:28;;;:19;:28;;;;;;;;;10843:127;5663:36;;;;;;;;;;-1:-1:-1;5663:36:0;;;;;;;;;;;5706:26;;;;;;;;;;;;;;;;9261:117;;;;;;;;;;-1:-1:-1;9261:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;9354:16:0;9327:7;9354:16;;;;;;;;;;;;9261:117;8116:180;;;;;;;;;;;;;:::i;10368:467::-;;;;;;;;;;-1:-1:-1;10368:467:0;;;;;:::i;:::-;;:::i;9037:79::-;;;;;;;;;;-1:-1:-1;9107:6:0;;-1:-1:-1;;;;;9107:6:0;9037:79;;8861:84;;;;;;;;;;-1:-1:-1;8935:7:0;;;;;;;;;;;;-1:-1:-1;;;8935:7:0;;;;8861:84;;9386:165;;;;;;;;;;-1:-1:-1;9386:165:0;;;;;:::i;:::-;;:::i;5533:41::-;;;;;;;;;;-1:-1:-1;5533:41:0;;;;;;;;4750:133;;;;;;;;;;-1:-1:-1;4750:133:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4253:6:1;4286:15;;;4268:34;;4338:15;;;4333:2;4318:18;;4311:43;4390:15;;;4370:18;;;4363:43;;;;4442:15;;;4437:2;4422:18;;4415:43;4230:3;4215:19;4750:133:0;4020:444:1;7924:92:0;;;;;;;;;;-1:-1:-1;7924:92:0;;;;;:::i;:::-;-1:-1:-1;;;;;7998:10:0;7974:4;7998:10;;;:5;:10;;;;;;;;;7924:92;9122:133;;;;;;;;;;-1:-1:-1;9122:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9224:19:0;;;9206:7;9224:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9122:133;5191:199;;;;;;;;;;-1:-1:-1;5191:199:0;;;;;;-1:-1:-1;;;;;5191:199:0;;;;;;;;;;;-1:-1:-1;;;;;5124:15:1;;;5106:34;;5176:15;;;;5171:2;5156:18;;5149:43;5041:18;5191:199:0;4862:336:1;5421:38:0;;;;;;;;;;-1:-1:-1;5421:38:0;;;;;;;;;;;9559:161;9636:4;9653:37;9662:10;9674:7;9683:6;9653:8;:37::i;:::-;-1:-1:-1;9708:4:0;9559:161;;;;;:::o;8686:83::-;8741:7;4370:13;4309:2;4370;:13;:::i;:::-;4353:30;;4153:13;4353:30;:::i;:::-;8752:14;;8686:83;:::o;10046:314::-;-1:-1:-1;;;;;10167:19:0;;10146:4;10167:19;;;:11;:19;;;;;;;;10187:10;10167:31;;;;;;;;-1:-1:-1;;10167:52:0;10163:134;;-1:-1:-1;;;;;10236:19:0;;;;;;:11;:19;;;;;;;;10256:10;10236:31;;;;;;;:41;;10271:6;;10236:19;:41;;10271:6;;10236:41;:::i;:::-;;;;-1:-1:-1;;10163:134:0;10316:36;10326:6;10334:9;10345:6;10316:9;:36::i;:::-;10309:43;10046:314;-1:-1:-1;;;;10046:314:0:o;10978:141::-;11031:7;9354:16;;;;;;5032:42;9354:16;;;;11070:39;;9354:16;11070:39;:::i;:::-;4370:13;4309:2;4370;:13;:::i;:::-;4353:30;;4153:13;4353:30;:::i;:::-;11059:51;;;;:::i;11127:209::-;7878:10;7974:4;7998:10;;;:5;:10;;;;;;;;7863:42;;;;-1:-1:-1;;;7863:42:0;;7356:2:1;7863:42:0;;;7338:21:1;7395:2;7375:18;;;7368:30;-1:-1:-1;;;7414:18:1;;;7407:41;7465:18;;7863:42:0;;;;;;;;;11219:9:::1;:25:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;11255:27:0;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;11293:35:0::1;::::0;;;;::::1;;::::0;;;::::1;::::0;;11127:209::o;8116:180::-;7780:6;;-1:-1:-1;;;;;7780:6:0;7790:10;7780:20;7772:50;;;;-1:-1:-1;;;7772:50:0;;7696:2:1;7772:50:0;;;7678:21:1;7735:2;7715:18;;;7708:30;-1:-1:-1;;;7754:18:1;;;7747:47;7811:18;;7772:50:0;7494:341:1;7772:50:0;8194:6:::1;::::0;;-1:-1:-1;;;;;;8211:19:0;::::1;::::0;;;8246:42:::1;::::0;-1:-1:-1;;;;;8194:6:0;;::::1;::::0;8175:16:::1;::::0;8194:6;;8246:42:::1;::::0;8175:16;;8246:42:::1;8164:132;8116:180::o:0;10368:467::-;7780:6;;-1:-1:-1;;;;;7780:6:0;7790:10;7780:20;7772:50;;;;-1:-1:-1;;;7772:50:0;;7696:2:1;7772:50:0;;;7678:21:1;7735:2;7715:18;;;7708:30;-1:-1:-1;;;7754:18:1;;;7747:47;7811:18;;7772:50:0;7494:341:1;7772:50:0;10450:7:::1;10445:383;;-1:-1:-1::0;;;;;;10474:13:0::1;10490:5;10474:13:::0;;;:7:::1;:13;::::0;;;;:21;;-1:-1:-1;;10474:21:0::1;::::0;;10368:467::o;10445:383::-:1;10532:17;::::0;:22;10528:135:::1;;10621:6;10601:17;;10583:15;:35;;;;:::i;:::-;:44;10575:72;;;::::0;-1:-1:-1;;;10575:72:0;;8042:2:1;10575:72:0::1;::::0;::::1;8024:21:1::0;8081:2;8061:18;;;8054:30;-1:-1:-1;;;8100:18:1;;;8093:45;8155:18;;10575:72:0::1;7840:339:1::0;10575:72:0::1;-1:-1:-1::0;;;;;10686:13:0;::::1;;::::0;;;:7:::1;:13;::::0;;;;;::::1;;10685:14;10677:54;;;::::0;-1:-1:-1;;;10677:54:0;;8386:2:1;10677:54:0::1;::::0;::::1;8368:21:1::0;8425:2;8405:18;;;8398:30;8464:29;8444:18;;;8437:57;8511:18;;10677:54:0::1;8184:351:1::0;10677:54:0::1;-1:-1:-1::0;;;;;;10746:13:0::1;;::::0;;;10762:4:::1;10746:13;::::0;;;;;;;:20;;-1:-1:-1;;10746:20:0::1;::::0;;::::1;::::0;;10801:15:::1;10781:17;:35:::0;10368:467::o;9386:165::-;9464:4;9481:40;9491:10;9503:9;9514:6;9481:9;:40::i;:::-;-1:-1:-1;9539:4:0;;9386:165;-1:-1:-1;;;9386:165:0:o;9728:310::-;-1:-1:-1;;;;;9823:20:0;;9815:52;;;;-1:-1:-1;;;9815:52:0;;8742:2:1;9815:52:0;;;8724:21:1;8781:2;8761:18;;;8754:30;-1:-1:-1;;;8800:18:1;;;8793:49;8859:18;;9815:52:0;8540:343:1;9815:52:0;-1:-1:-1;;;;;9886:21:0;;9878:53;;;;-1:-1:-1;;;9878:53:0;;8742:2:1;9878:53:0;;;8724:21:1;8781:2;8761:18;;;8754:30;-1:-1:-1;;;8800:18:1;;;8793:49;8859:18;;9878:53:0;8540:343:1;9878:53:0;-1:-1:-1;;;;;9944:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;9997:33;;368:25:1;;;9997:33:0;;341:18:1;9997:33:0;;;;;;;9728:310;;;:::o;11344:1646::-;11423:4;-1:-1:-1;;;;;11448:18:0;;11440:68;;;;-1:-1:-1;;;11440:68:0;;9090:2:1;11440:68:0;;;9072:21:1;9129:2;9109:18;;;9102:30;9168:34;9148:18;;;9141:62;-1:-1:-1;;;9219:18:1;;;9212:35;9264:19;;11440:68:0;8888:401:1;11440:68:0;-1:-1:-1;;;;;11527:16:0;;11519:64;;;;-1:-1:-1;;;11519:64:0;;9496:2:1;11519:64:0;;;9478:21:1;9535:2;9515:18;;;9508:30;9574:34;9554:18;;;9547:62;-1:-1:-1;;;9625:18:1;;;9618:33;9668:19;;11519:64:0;9294:399:1;11519:64:0;11611:1;11602:6;:10;11594:64;;;;-1:-1:-1;;;11594:64:0;;9900:2:1;11594:64:0;;;9882:21:1;9939:2;9919:18;;;9912:30;9978:34;9958:18;;;9951:62;-1:-1:-1;;;10029:18:1;;;10022:39;10078:19;;11594:64:0;9698:405:1;11594:64:0;-1:-1:-1;;;;;11757:13:0;;11669:8;11757:13;;;:7;:13;;;;;;11669:8;;;;11757:13;;11753:162;;;11793:4;11787:10;;11753:162;;;-1:-1:-1;;;;;11819:11:0;;;;;;:7;:11;;;;;;;;11815:100;;;11854:4;11847:11;;11815:100;;;-1:-1:-1;11899:4:0;11815:100;11933:14;;;;11929:329;;11973:5;11968:279;;12003:34;;-1:-1:-1;;;12003:34:0;;10310:2:1;12003:34:0;;;10292:21:1;10349:2;10329:18;;;10322:30;10388:26;10368:18;;;10361:54;10432:18;;12003:34:0;10108:348:1;11968:279:0;-1:-1:-1;;;;;12068:31:0;;;;;;:25;:31;;;;;;;;12067:32;:66;;;;-1:-1:-1;;;;;;12104:29:0;;;;;;:25;:29;;;;;;;;12103:30;12067:66;12063:184;;;12158:55;;-1:-1:-1;;;12158:55:0;;10663:2:1;12158:55:0;;;10645:21:1;10702:2;10682:18;;;10675:30;10741:34;10721:18;;;10714:62;-1:-1:-1;;;10792:18:1;;;10785:43;10845:19;;12158:55:0;10461:409:1;12063:184:0;12274:4;12270:650;;;12300:6;;;;12295:614;;12331:19;;;;;;;12327:567;;;12442:4;12393:28;9354:16;;;;;;;;;;;12499:13;;12475:37;;12471:404;;12559:10;;12600:22;;;;12596:97;;;12657:13;;12647:6;;-1:-1:-1;;;;;12647:6:0;9327:7;9354:16;;;;;;;;;;;4928:3;;12637:33;;;:::i;:::-;12636:54;;;;:::i;:::-;12626:64;;12596:97;12747:7;12723:20;:31;12719:72;;12781:7;12758:30;;12719:72;12817:34;12830:20;12817:12;:34::i;:::-;12514:361;12471:404;12370:524;12327:567;12937:45;12954:4;12960:2;12964:6;12972:3;12977:4;12937:16;:45::i;:::-;12930:52;11344:1646;-1:-1:-1;;;;;;;11344:1646:0:o;12998:1990::-;5897:6;:13;;-1:-1:-1;;5897:13:0;5906:4;5897:13;;;13081:30:::1;::::0;;::::1;::::0;::::1;::::0;;13104:7:::1;13081:30:::0;::::1;::::0;;::::1;::::0;;;;::::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;;;;;;;::::1;::::0;;::::1;::::0;;;;;;5897:6;13126:21;13122:60:::1;;13164:7;;;13122:60;13218:4;13198:26;::::0;;;:11:::1;:26;::::0;;;;;;;13233:9:::1;::::0;-1:-1:-1;;;;;13233:9:0::1;13198:46:::0;;;;;;;;-1:-1:-1;;13198:67:0::1;13194:166;;13302:4;13282:26;::::0;;;:11:::1;:26;::::0;;;;;;;13317:9:::1;::::0;-1:-1:-1;;;;;13317:9:0::1;13282:46:::0;;;;;;;-1:-1:-1;;13282:66:0;;13194:166:::1;13372:17;13457:1;13437:6;:16;;;13393:60;;13417:6;:16;;;13394:39;;:20;:39;;;;:::i;:::-;13393:60;;;;:::i;:::-;13392:66;;;;:::i;:::-;13372:86:::0;-1:-1:-1;13469:15:0::1;13487:32;13372:86:::0;13487:20;:32:::1;:::i;:::-;13564:16;::::0;;13578:1:::1;13564:16:::0;;;;;::::1;::::0;;13469:50;;-1:-1:-1;13540:21:0::1;::::0;13564:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13564:16:0::1;13540:40;;13609:4;13591;13596:1;13591:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13591:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13635:9:::1;::::0;:16:::1;::::0;;-1:-1:-1;;;13635:16:0;;;;:9;;;::::1;::::0;:14:::1;::::0;:16:::1;::::0;;::::1;::::0;13591:7;;13635:16;;;;;:9;:16:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13625:4;13630:1;13625:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13625:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;13668:9:::1;::::0;:186:::1;::::0;-1:-1:-1;;;13668:186:0;;:9;::::1;::::0;:60:::1;::::0;:186:::1;::::0;13743:7;;13668:9:::1;::::0;13781:4;;13808::::1;::::0;13828:15:::1;::::0;13668:186:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;13664:233;;13879:7;;;;;;13664:233;13930:21;13909:18;14016:7:::0;13990:22:::1;14003:9:::0;13930:21;13990:22:::1;:::i;:::-;13989:34;;;;:::i;:::-;13962:61:::0;-1:-1:-1;14040:13:0;;14036:400:::1;;14074:9;::::0;:222:::1;::::0;-1:-1:-1;;;14074:222:0;;14151:4:::1;14074:222;::::0;::::1;12943:34:1::0;12993:18;;;12986:34;;;14074:9:0::1;13036:18:1::0;;;13029:34;;;13079:18;;;13072:34;5032:42:0::1;13122:19:1::0;;;13115:44;14266:15:0::1;13175:19:1::0;;;13168:35;-1:-1:-1;;;;;14074:9:0;;::::1;::::0;:25:::1;::::0;14107:16;;12877:19:1;;14074:222:0::1;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;14074:222:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;14074:222:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;14070:355;;14403:7;;;;;;;;14070:355;-1:-1:-1::0;;14321:40:0::1;::::0;;13699:25:1;;;13755:2;13740:18;;13733:34;;;14321:40:0::1;::::0;-1:-1:-1;13672:18:1;14321:40:0::1;;;;;;;14070:355;14448:30;14462:16:::0;14448:30;::::1;:::i;:::-;;;14509:6;:16;;;14489:6;:16;;:36;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;14624:16:::1;::::0;::::1;::::0;14602:18:::1;::::0;::::1;::::0;14536:12:::1;::::0;-1:-1:-1;14536:12:0;;14588:52;;::::1;::::0;14589:31:::1;::::0;::::1;:10:::0;:31:::1;:::i;:::-;14588:52;;;;:::i;:::-;14703:16;::::0;::::1;::::0;14559:81;;-1:-1:-1;14678:10:0;;14703:20:::1;;::::0;14699:133:::1;;14753:11;:21:::0;:67:::1;::::0;-1:-1:-1;;;;;14753:21:0;;::::1;::::0;14810:5:::1;::::0;14787:16;;14753:67:::1;::::0;;;14787:16;14753:21;14810:5;14753:67:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;14740:80:0;;-1:-1:-1;;14699:133:0::1;14846:18;::::0;::::1;::::0;:22:::1;;::::0;14842:139:::1;;14898:23:::0;;:71:::1;::::0;-1:-1:-1;;;;;14898:23:0;;::::1;::::0;14959:5:::1;::::0;14934:18;;14898:71:::1;::::0;;;14934:18;14898:23;14959:5;14898:71:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;14885:84:0;;-1:-1:-1;;14842:139:0::1;13070:1918;;;;;;;;;5921:1;-1:-1:-1::0;5933:6:0;:14;;-1:-1:-1;;5933:14:0;;;12998:1990::o;14996:591::-;-1:-1:-1;;;;;15154:25:0;;15103:4;15154:25;;;:19;:25;;;;;;15135:4;;15154:25;;;:52;;-1:-1:-1;;;;;;15183:23:0;;;;;;:19;:23;;;;;;;;15154:52;15150:99;;;-1:-1:-1;15232:5:0;15150:99;-1:-1:-1;;;;;15263:11:0;;;;;;:5;:11;;;;;;;;15262:12;:26;;;;-1:-1:-1;;;;;;15279:9:0;;;;;;:5;:9;;;;;;;;15278:10;15262:26;15259:84;;;15312:14;;;;15304:27;;;;-1:-1:-1;;;15304:27:0;;14366:2:1;15304:27:0;;;14348:21:1;-1:-1:-1;14385:18:1;;;14378:29;14424:18;;15304:27:0;14164:284:1;15304:27:0;-1:-1:-1;;;;;15353:13:0;;:7;:13;;;;;;;;;;:23;;15370:6;;15353:7;:23;;15370:6;;15353:23;:::i;:::-;;;;-1:-1:-1;15387:22:0;;-1:-1:-1;15413:7:0;15412:55;;15461:6;15412:55;;;15424:34;15434:4;15440:3;15445:4;15451:6;15424:9;:34::i;:::-;15387:80;;15493:14;15478:7;:11;15486:2;-1:-1:-1;;;;;15478:11:0;-1:-1:-1;;;;;15478:11:0;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;15538:2;-1:-1:-1;;;;;15523:34:0;15532:4;-1:-1:-1;;;;;15523:34:0;;15542:14;15523:34;;;;368:25:1;;356:2;341:18;;222:177;15523:34:0;;;;;;;;-1:-1:-1;15575:4:0;;14996:591;-1:-1:-1;;;;;;;14996:591:0:o;15595:656::-;15683:7;15703:18;15736:3;15732:205;;;-1:-1:-1;15769:9:0;:16;;;15732:205;;;15807:4;15803:134;;;-1:-1:-1;15841:9:0;:17;;;;;;15803:134;;;-1:-1:-1;15904:9:0;:21;;;;;;15803:134;15951:10;15965:1;15951:15;15947:39;;15977:6;15970:13;;;;;15947:39;15996:17;4928:3;16016:19;16025:10;16016:6;:19;:::i;:::-;:38;;;;:::i;:::-;15996:58;-1:-1:-1;16069:13:0;;16065:141;;16115:4;16099:7;:22;;;;;;;;;;:35;;16125:9;;16099:7;:35;;16125:9;;16099:35;:::i;:::-;;;;-1:-1:-1;;16154:40:0;;368:25:1;;;16177:4:0;;-1:-1:-1;;;;;16154:40:0;;;;;356:2:1;341:18;16154:40:0;;;;;;;16065:141;16225:18;16234:9;16225:6;:18;:::i;774:548:1:-;886:4;915:2;944;933:9;926:21;976:6;970:13;1019:6;1014:2;1003:9;999:18;992:34;1044:1;1054:140;1068:6;1065:1;1062:13;1054:140;;;1163:14;;;1159:23;;1153:30;1129:17;;;1148:2;1125:26;1118:66;1083:10;;1054:140;;;1058:3;1243:1;1238:2;1229:6;1218:9;1214:22;1210:31;1203:42;1313:2;1306;1302:7;1297:2;1289:6;1285:15;1281:29;1270:9;1266:45;1262:54;1254:62;;;;774:548;;;;:::o;1552:131::-;-1:-1:-1;;;;;1627:31:1;;1617:42;;1607:70;;1673:1;1670;1663:12;1607:70;1552:131;:::o;1688:315::-;1756:6;1764;1817:2;1805:9;1796:7;1792:23;1788:32;1785:52;;;1833:1;1830;1823:12;1785:52;1872:9;1859:23;1891:31;1916:5;1891:31;:::i;:::-;1941:5;1993:2;1978:18;;;;1965:32;;-1:-1:-1;;;1688:315:1:o;2200:456::-;2277:6;2285;2293;2346:2;2334:9;2325:7;2321:23;2317:32;2314:52;;;2362:1;2359;2352:12;2314:52;2401:9;2388:23;2420:31;2445:5;2420:31;:::i;:::-;2470:5;-1:-1:-1;2527:2:1;2512:18;;2499:32;2540:33;2499:32;2540:33;:::i;:::-;2200:456;;2592:7;;-1:-1:-1;;;2646:2:1;2631:18;;;;2618:32;;2200:456::o;2850:159::-;2917:20;;2977:6;2966:18;;2956:29;;2946:57;;2999:1;2996;2989:12;2946:57;2850:159;;;:::o;3014:328::-;3088:6;3096;3104;3157:2;3145:9;3136:7;3132:23;3128:32;3125:52;;;3173:1;3170;3163:12;3125:52;3196:28;3214:9;3196:28;:::i;:::-;3186:38;;3243:37;3276:2;3265:9;3261:18;3243:37;:::i;:::-;3233:47;;3299:37;3332:2;3321:9;3317:18;3299:37;:::i;:::-;3289:47;;3014:328;;;;;:::o;3347:247::-;3406:6;3459:2;3447:9;3438:7;3434:23;3430:32;3427:52;;;3475:1;3472;3465:12;3427:52;3514:9;3501:23;3533:31;3558:5;3533:31;:::i;:::-;3583:5;3347:247;-1:-1:-1;;;3347:247:1:o;3599:416::-;3664:6;3672;3725:2;3713:9;3704:7;3700:23;3696:32;3693:52;;;3741:1;3738;3731:12;3693:52;3780:9;3767:23;3799:31;3824:5;3799:31;:::i;:::-;3849:5;-1:-1:-1;3906:2:1;3891:18;;3878:32;3948:15;;3941:23;3929:36;;3919:64;;3979:1;3976;3969:12;3919:64;4002:7;3992:17;;;3599:416;;;;;:::o;4469:388::-;4537:6;4545;4598:2;4586:9;4577:7;4573:23;4569:32;4566:52;;;4614:1;4611;4604:12;4566:52;4653:9;4640:23;4672:31;4697:5;4672:31;:::i;:::-;4722:5;-1:-1:-1;4779:2:1;4764:18;;4751:32;4792:33;4751:32;4792:33;:::i;5203:127::-;5264:10;5259:3;5255:20;5252:1;5245:31;5295:4;5292:1;5285:15;5319:4;5316:1;5309:15;5335:422;5424:1;5467:5;5424:1;5481:270;5502:7;5492:8;5489:21;5481:270;;;5561:4;5557:1;5553:6;5549:17;5543:4;5540:27;5537:53;;;5570:18;;:::i;:::-;5620:7;5610:8;5606:22;5603:55;;;5640:16;;;;5603:55;5719:22;;;;5679:15;;;;5481:270;;;5485:3;5335:422;;;;;:::o;5762:806::-;5811:5;5841:8;5831:80;;-1:-1:-1;5882:1:1;5896:5;;5831:80;5930:4;5920:76;;-1:-1:-1;5967:1:1;5981:5;;5920:76;6012:4;6030:1;6025:59;;;;6098:1;6093:130;;;;6005:218;;6025:59;6055:1;6046:10;;6069:5;;;6093:130;6130:3;6120:8;6117:17;6114:43;;;6137:18;;:::i;:::-;-1:-1:-1;;6193:1:1;6179:16;;6208:5;;6005:218;;6307:2;6297:8;6294:16;6288:3;6282:4;6279:13;6275:36;6269:2;6259:8;6256:16;6251:2;6245:4;6242:12;6238:35;6235:77;6232:159;;;-1:-1:-1;6344:19:1;;;6376:5;;6232:159;6423:34;6448:8;6442:4;6423:34;:::i;:::-;6493:6;6489:1;6485:6;6481:19;6472:7;6469:32;6466:58;;;6504:18;;:::i;:::-;6542:20;;5762:806;-1:-1:-1;;;5762:806:1:o;6573:140::-;6631:5;6660:47;6701:4;6691:8;6687:19;6681:4;6660:47;:::i;6718:168::-;6791:9;;;6822;;6839:15;;;6833:22;;6819:37;6809:71;;6860:18;;:::i;6891:128::-;6958:9;;;6979:11;;;6976:37;;;6993:18;;:::i;7024:125::-;7089:9;;;7110:10;;;7107:36;;;7123:18;;:::i;10875:217::-;10915:1;10941;10931:132;;10985:10;10980:3;10976:20;10973:1;10966:31;11020:4;11017:1;11010:15;11048:4;11045:1;11038:15;10931:132;-1:-1:-1;11077:9:1;;10875:217::o;11229:127::-;11290:10;11285:3;11281:20;11278:1;11271:31;11321:4;11318:1;11311:15;11345:4;11342:1;11335:15;11361:251;11431:6;11484:2;11472:9;11463:7;11459:23;11455:32;11452:52;;;11500:1;11497;11490:12;11452:52;11532:9;11526:16;11551:31;11576:5;11551:31;:::i;11617:980::-;11879:4;11927:3;11916:9;11912:19;11958:6;11947:9;11940:25;11984:2;12022:6;12017:2;12006:9;12002:18;11995:34;12065:3;12060:2;12049:9;12045:18;12038:31;12089:6;12124;12118:13;12155:6;12147;12140:22;12193:3;12182:9;12178:19;12171:26;;12232:2;12224:6;12220:15;12206:29;;12253:1;12263:195;12277:6;12274:1;12271:13;12263:195;;;12342:13;;-1:-1:-1;;;;;12338:39:1;12326:52;;12433:15;;;;12398:12;;;;12374:1;12292:9;12263:195;;;-1:-1:-1;;;;;;;12514:32:1;;;;12509:2;12494:18;;12487:60;-1:-1:-1;;;12578:3:1;12563:19;12556:35;12475:3;11617:980;-1:-1:-1;;;11617:980:1:o;13214:306::-;13302:6;13310;13318;13371:2;13359:9;13350:7;13346:23;13342:32;13339:52;;;13387:1;13384;13377:12;13339:52;13416:9;13410:16;13400:26;;13466:2;13455:9;13451:18;13445:25;13435:35;;13510:2;13499:9;13495:18;13489:25;13479:35;;13214:306;;;;;:::o;13778:171::-;13846:6;13885:10;;;13873;;;13869:27;;13908:12;;;13905:38;;;13923:18;;:::i;:::-;13905:38;13778:171;;;;:::o

Swarm Source

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