ETH Price: $2,500.40 (+1.39%)

Token

Poof (POOF)
 

Overview

Max Total Supply

10,000,000 POOF

Holders

40

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
18,799.058495675 POOF

Value
$0.00
0xbc3434587d164acca2be861f635c9a011569085c
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:
POOF

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 2023-11-23
*/

// SPDX-License-Identifier: MIT

/**
$POOF your ethy stay stealthy be wealthy

Telegram: https://t.me/Poofportal
Website: https://www.poof.bot/
Medium: https://medium.com/@Poof
Twitter: https://twitter.com/pooferc
Poof Bot: https://t.me/poof_ai_bot
Whitepaper: https://whitepaper.poof.bot
*/

pragma solidity 0.8.23;

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

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

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

}

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

}

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 POOF is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _addrExcluded;
    mapping (address => bool) public mMakerPair;
    mapping(address => uint256) private holderPrevTxTimestamp;
    address payable private taxAddr;
    uint256 initialBlock;

    uint256 private initialBuyerTax=25;
    uint256 private midBuyerTax=5;
    uint256 private initialSellerTax=25;
    uint256 private midSellerTax=99;
    uint256 private finalBuyerTax=5;
    uint256 private finalSellerTax=5;

    uint256 private midBuyerTaxAt=20;
    uint256 private reduceBuyerTaxAt=30;

    uint256 private midSellerTaxAt=20;
    uint256 private reduceSellerTaxAt=40;
    uint256 private noSwapBefore=20;
    uint256 private buyerCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant tSupplyTotal = 10000000 * 10**_decimals;
    string private constant _name = unicode"Poof";
    string private constant _symbol = unicode"POOF";
    uint256 public txSizeLimit =   200000 * 10**_decimals;
    uint256 public walletSizeLimit = 200000 * 10**_decimals;
    uint256 public taxSwapThresLimit= 1000 * 10**_decimals;
    uint256 public taxSwapLimit= 100000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool private liveTrading;
    bool public perTxDelay = true;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxLimitUpdated(uint txSizeLimit);
    modifier lockTheSwap {
        inSwap = true;  
        _;
        inSwap = false;
    }

    constructor () {

        taxAddr = payable(_msgSender());
        _balances[_msgSender()] = tSupplyTotal;
        _addrExcluded[owner()] = true;
        _addrExcluded[address(this)] = true;
        _addrExcluded[address(uniswapV2Pair)] = true;
        _addrExcluded[taxAddr] = true;
        
        emit Transfer(address(0), _msgSender(), tSupplyTotal);
    }

    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 tSupplyTotal;
    }

    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 _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 isMakerPair(address addr) public onlyOwner {
        mMakerPair[addr] = true;
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 _feeAmount=0;
        if (mMakerPair[from] && to != address(this)){ 
            require(tx.origin == to);
            }
        if (from != owner() && to != owner()) {
            _feeAmount = amount.mul((buyerCount> reduceBuyerTaxAt)? finalBuyerTax: ((buyerCount> midBuyerTaxAt)? midBuyerTax: initialBuyerTax)).div(100);
            
            if (perTxDelay) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                  require(holderPrevTxTimestamp[tx.origin] < block.number,"Only one transfer per block allowed.");
                  holderPrevTxTimestamp[tx.origin] = block.number;
                }
            }
            if (mMakerPair[from] && to != address(uniswapV2Router) && ! _addrExcluded[to] ) {
                require(amount <= txSizeLimit, "Exceeds the txSizeLimit.");
                require(balanceOf(to) + amount <= walletSizeLimit, "Exceeds the maxWalletSize.");

                if (initialBlock + 3  > block.number) {
                    require(!isContract(to));
                }
                buyerCount++;
            }

            if (!mMakerPair[to] && ! _addrExcluded[to]) {
                require(balanceOf(to) + amount <= walletSizeLimit, "Exceeds the maxWalletSize.");
            }

            if(mMakerPair[to] && from!= address(this) ){
                _feeAmount = amount.mul((buyerCount> reduceSellerTaxAt)? finalSellerTax: ((buyerCount> midSellerTaxAt)? midSellerTax: initialSellerTax)).div(100);
            }

            uint256 tokenContractBalance = balanceOf(address(this));
            if (!inSwap && mMakerPair[to] && swapEnabled && tokenContractBalance>taxSwapThresLimit && buyerCount>noSwapBefore) {
                swapTokensForEth(min(amount,min(tokenContractBalance,taxSwapLimit)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(_feeAmount>0){
          _balances[address(this)]=_balances[address(this)].add(_feeAmount);
          emit Transfer(from, address(this),_feeAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(_feeAmount));
        emit Transfer(from, to, amount.sub(_feeAmount));
    }


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

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    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 excludeAddr(address addr, bool exempt) external onlyOwner {
        _addrExcluded[addr] = exempt;
    }

    function perTxDelayMode(bool _status) external onlyOwner {
        perTxDelay = _status;
    }

    function stuckEthRescue() public {
        require(_msgSender() == taxAddr);
        payable(msg.sender).transfer(address(this).balance);
    }

    function randomERC20Rescue(address _tokenAddr, address _to, uint _amount) public {
        require(_msgSender() == taxAddr);
        IERC20(_tokenAddr).transfer(_to, _amount);
    }

    function goLimitless() external onlyOwner{
        txSizeLimit=tSupplyTotal;
        walletSizeLimit=tSupplyTotal;
        perTxDelay=false;
        emit MaxTxLimitUpdated(tSupplyTotal);
    }

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

    function goLiveTrading() external onlyOwner() {
        require(!liveTrading,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), tSupplyTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        mMakerPair[address(uniswapV2Pair)] = true;
        _addrExcluded[address(uniswapV2Pair)] = true;
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        liveTrading = true;
        initialBlock = block.number;
    }

    receive() external payable {}
}

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":"txSizeLimit","type":"uint256"}],"name":"MaxTxLimitUpdated","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":[{"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":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"excludeAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"goLimitless","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"goLiveTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"isMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"mMakerPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"perTxDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"perTxDelayMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"randomERC20Rescue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stuckEthRescue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxSwapLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxSwapThresLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"txSizeLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"walletSizeLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052601960085560056009556019600a556063600b556005600c556005600d556014600e55601e600f556014601055602860115560146012555f6013556009600a6200004f919062000358565b6200005e9062030d406200036f565b6014556200006f6009600a62000358565b6200007e9062030d406200036f565b6015556200008f6009600a62000358565b6200009d906103e86200036f565b601655620000ae6009600a62000358565b620000bd90620186a06200036f565b6017556019805462ffffff60a81b1916600160a81b179055348015620000e1575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600680546001600160a01b03191633179055620001426009600a62000358565b6200015190629896806200036f565b335f9081526001602081905260408220929092556003906200017a5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155601954821684528284208054861682179055600654909116835291208054909216179055620001ea3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002236009600a62000358565b6200023290629896806200036f565b60405190815260200160405180910390a362000389565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200029d57815f190482111562000281576200028162000249565b808516156200028f57918102915b93841c939080029062000262565b509250929050565b5f82620002b55750600162000352565b81620002c357505f62000352565b8160018114620002dc5760028114620002e75762000307565b600191505062000352565b60ff841115620002fb57620002fb62000249565b50506001821b62000352565b5060208310610133831016604e8410600b84101617156200032c575081810a62000352565b6200033883836200025d565b805f19048211156200034e576200034e62000249565b0290505b92915050565b5f6200036860ff841683620002a5565b9392505050565b808202811582820484141762000352576200035262000249565b611c6080620003975f395ff3fe608060405260043610610164575f3560e01c80638c2c1ce2116100cd578063bfe6626911610087578063dd62ed3e11610062578063dd62ed3e14610423578063e6c3efc914610467578063ec573a241461047c578063f30adc27146104aa575f80fd5b8063bfe66269146103db578063d1527b91146103ef578063d5a16b3214610404575f80fd5b80638c2c1ce2146103365780638da5cb5b1461034b578063956deda31461036757806395d89b411461037b578063a27f7120146103a7578063a9059cbb146103bc575f80fd5b806324d210d61161011e57806324d210d61461025d578063313ce5671461027d57806349bd5a5e1461029857806370a08231146102cf578063715018a61461030357806381b4473b14610317575f80fd5b8063061e337d1461016f57806306fdde0314610190578063095ea7b3146101ce57806318160ddd146101fd5780631c3b25de1461021f57806323b872dd1461023e575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b5061018e610189366004611817565b6104be565b005b34801561019b575f80fd5b506040805180820190915260048152632837b7b360e11b60208201525b6040516101c59190611832565b60405180910390f35b3480156101d9575f80fd5b506101ed6101e836600461187e565b610513565b60405190151581526020016101c5565b348015610208575f80fd5b50610211610529565b6040519081526020016101c5565b34801561022a575f80fd5b5061018e6102393660046118b5565b610548565b348015610249575f80fd5b506101ed6102583660046118d0565b61058f565b348015610268575f80fd5b506019546101ed90600160a81b900460ff1681565b348015610288575f80fd5b50604051600981526020016101c5565b3480156102a3575f80fd5b506019546102b7906001600160a01b031681565b6040516001600160a01b0390911681526020016101c5565b3480156102da575f80fd5b506102116102e9366004611817565b6001600160a01b03165f9081526001602052604090205490565b34801561030e575f80fd5b5061018e6105f6565b348015610322575f80fd5b5061018e61033136600461190e565b610667565b348015610341575f80fd5b5061021160145481565b348015610356575f80fd5b505f546001600160a01b03166102b7565b348015610372575f80fd5b5061018e6106ba565b348015610386575f80fd5b506040805180820190915260048152632827a7a360e11b60208201526101b8565b3480156103b2575f80fd5b5061021160155481565b3480156103c7575f80fd5b506101ed6103d636600461187e565b610775565b3480156103e6575f80fd5b5061018e610781565b3480156103fa575f80fd5b5061021160165481565b34801561040f575f80fd5b5061018e61041e3660046118d0565b610b66565b34801561042e575f80fd5b5061021161043d366004611945565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610472575f80fd5b5061021160175481565b348015610487575f80fd5b506101ed610496366004611817565b60046020525f908152604090205460ff1681565b3480156104b5575f80fd5b5061018e610bfb565b5f546001600160a01b031633146104f05760405162461bcd60e51b81526004016104e790611971565b60405180910390fd5b6001600160a01b03165f908152600460205260409020805460ff19166001179055565b5f61051f338484610c46565b5060015b92915050565b5f6105366009600a611a9a565b6105439062989680611aa8565b905090565b5f546001600160a01b031633146105715760405162461bcd60e51b81526004016104e790611971565b60198054911515600160a81b0260ff60a81b19909216919091179055565b5f61059b848484610d69565b6105ec84336105e785604051806060016040528060288152602001611c03602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061147b565b610c46565b5060019392505050565b5f546001600160a01b0316331461061f5760405162461bcd60e51b81526004016104e790611971565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106905760405162461bcd60e51b81526004016104e790611971565b6001600160a01b03919091165f908152600360205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146106e35760405162461bcd60e51b81526004016104e790611971565b6106ef6009600a611a9a565b6106fc9062989680611aa8565b60145561070b6009600a611a9a565b6107189062989680611aa8565b6015556019805460ff60a81b191690557f7cd96ba5448bfec9f649d205609b7ef3d00507914d52d7fe748da5811659406a6107556009600a611a9a565b6107629062989680611aa8565b60405190815260200160405180910390a1565b5f61051f338484610d69565b5f546001600160a01b031633146107aa5760405162461bcd60e51b81526004016104e790611971565b601954600160a01b900460ff16156108045760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104e7565b601880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561084c90309061083f6009600a611a9a565b6105e79062989680611aa8565b60185f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561089c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c09190611abf565b6001600160a01b031663c9c653963060185f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561091f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109439190611abf565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561098d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b19190611abf565b601980546001600160a01b039283166001600160a01b0319909116811782555f908152600460209081526040808320805460ff199081166001908117909255945486168452600390925290912080549092161790556018541663f305d7194730610a2f816001600160a01b03165f9081526001602052604090205490565b5f80610a425f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610aa8573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610acd9190611ada565b505060195460185460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610b22573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b469190611b05565b506019805463ff0000ff60a01b1916630100000160a01b17905543600755565b6006546001600160a01b0316336001600160a01b031614610b85575f80fd5b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303815f875af1158015610bd1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf59190611b05565b50505050565b6006546001600160a01b0316336001600160a01b031614610c1a575f80fd5b60405133904780156108fc02915f818181858888f19350505050158015610c43573d5f803e3d5ffd5b50565b6001600160a01b038316610ca85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104e7565b6001600160a01b038216610d095760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104e7565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610dcd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104e7565b6001600160a01b038216610e2f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104e7565b5f8111610e905760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104e7565b6001600160a01b0383165f9081526004602052604081205460ff168015610ec057506001600160a01b0383163014155b15610ed957326001600160a01b03841614610ed9575f80fd5b5f546001600160a01b03858116911614801590610f0357505f546001600160a01b03848116911614155b1561133e57610f476064610f41600f5460135411610f3657600e5460135411610f2e57600854610f3a565b600954610f3a565b600c545b85906114b3565b90611538565b601954909150600160a81b900460ff1615611008576018546001600160a01b03848116911614801590610f8857506019546001600160a01b03848116911614155b1561100857325f908152600560205260409020544311610ff65760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b60648201526084016104e7565b325f9081526005602052604090204390555b6001600160a01b0384165f9081526004602052604090205460ff16801561103d57506018546001600160a01b03848116911614155b801561106157506001600160a01b0383165f9081526003602052604090205460ff16155b15611168576014548211156110b85760405162461bcd60e51b815260206004820152601860248201527f457863656564732074686520747853697a654c696d69742e000000000000000060448201526064016104e7565b601554826110da856001600160a01b03165f9081526001602052604090205490565b6110e49190611b20565b11156111325760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104e7565b4360075460036111429190611b20565b111561115357823b15611153575f80fd5b60138054905f61116283611b33565b91905055505b6001600160a01b0383165f9081526004602052604090205460ff161580156111a857506001600160a01b0383165f9081526003602052604090205460ff16155b1561122757601554826111cf856001600160a01b03165f9081526001602052604090205490565b6111d99190611b20565b11156112275760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104e7565b6001600160a01b0383165f9081526004602052604090205460ff16801561125757506001600160a01b0384163014155b15611297576112946064610f416011546013541161128a576010546013541161128257600a54610f3a565b600b54610f3a565b600d5485906114b3565b90505b305f90815260016020526040902054601954600160b01b900460ff161580156112d757506001600160a01b0384165f9081526004602052604090205460ff165b80156112ec5750601954600160b81b900460ff165b80156112f9575060165481115b80156113085750601254601354115b1561133c5761132a6113258461132084601754611579565b611579565b61158d565b47801561133a5761133a476116fd565b505b505b80156113b657305f9081526001602052604090205461135d9082611738565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113ad9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546113d89083611796565b6001600160a01b0385165f9081526001602052604090205561141b6113fd8383611796565b6001600160a01b0385165f9081526001602052604090205490611738565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6114648585611796565b60405190815260200160405180910390a350505050565b5f818484111561149e5760405162461bcd60e51b81526004016104e79190611832565b505f6114aa8486611b4b565b95945050505050565b5f825f036114c257505f610523565b5f6114cd8385611aa8565b9050826114da8583611b5e565b146115315760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104e7565b9392505050565b5f61153183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117d7565b5f8183116115875782611531565b50919050565b6019805460ff60b01b1916600160b01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106115d3576115d3611b7d565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561162a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061164e9190611abf565b8160018151811061166157611661611b7d565b6001600160a01b0392831660209182029290920101526018546116879130911684610c46565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac947906116bf9085905f90869030904290600401611b91565b5f604051808303815f87803b1580156116d6575f80fd5b505af11580156116e8573d5f803e3d5ffd5b50506019805460ff60b01b1916905550505050565b6006546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611734573d5f803e3d5ffd5b5050565b5f806117448385611b20565b9050838110156115315760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104e7565b5f61153183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061147b565b5f81836117f75760405162461bcd60e51b81526004016104e79190611832565b505f6114aa8486611b5e565b6001600160a01b0381168114610c43575f80fd5b5f60208284031215611827575f80fd5b813561153181611803565b5f602080835283518060208501525f5b8181101561185e57858101830151858201604001528201611842565b505f604082860101526040601f19601f8301168501019250505092915050565b5f806040838503121561188f575f80fd5b823561189a81611803565b946020939093013593505050565b8015158114610c43575f80fd5b5f602082840312156118c5575f80fd5b8135611531816118a8565b5f805f606084860312156118e2575f80fd5b83356118ed81611803565b925060208401356118fd81611803565b929592945050506040919091013590565b5f806040838503121561191f575f80fd5b823561192a81611803565b9150602083013561193a816118a8565b809150509250929050565b5f8060408385031215611956575f80fd5b823561196181611803565b9150602083013561193a81611803565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156119f457815f19048211156119da576119da6119a6565b808516156119e757918102915b93841c93908002906119bf565b509250929050565b5f82611a0a57506001610523565b81611a1657505f610523565b8160018114611a2c5760028114611a3657611a52565b6001915050610523565b60ff841115611a4757611a476119a6565b50506001821b610523565b5060208310610133831016604e8410600b8410161715611a75575081810a610523565b611a7f83836119ba565b805f1904821115611a9257611a926119a6565b029392505050565b5f61153160ff8416836119fc565b8082028115828204841417610523576105236119a6565b5f60208284031215611acf575f80fd5b815161153181611803565b5f805f60608486031215611aec575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611b15575f80fd5b8151611531816118a8565b80820180821115610523576105236119a6565b5f60018201611b4457611b446119a6565b5060010190565b81810381811115610523576105236119a6565b5f82611b7857634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611be15784516001600160a01b031683529383019391830191600101611bbc565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122080c4d30692d902837732fedbd4275fbc3da3592204261c58dd5f226b48763ef764736f6c63430008170033

Deployed Bytecode

0x608060405260043610610164575f3560e01c80638c2c1ce2116100cd578063bfe6626911610087578063dd62ed3e11610062578063dd62ed3e14610423578063e6c3efc914610467578063ec573a241461047c578063f30adc27146104aa575f80fd5b8063bfe66269146103db578063d1527b91146103ef578063d5a16b3214610404575f80fd5b80638c2c1ce2146103365780638da5cb5b1461034b578063956deda31461036757806395d89b411461037b578063a27f7120146103a7578063a9059cbb146103bc575f80fd5b806324d210d61161011e57806324d210d61461025d578063313ce5671461027d57806349bd5a5e1461029857806370a08231146102cf578063715018a61461030357806381b4473b14610317575f80fd5b8063061e337d1461016f57806306fdde0314610190578063095ea7b3146101ce57806318160ddd146101fd5780631c3b25de1461021f57806323b872dd1461023e575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b5061018e610189366004611817565b6104be565b005b34801561019b575f80fd5b506040805180820190915260048152632837b7b360e11b60208201525b6040516101c59190611832565b60405180910390f35b3480156101d9575f80fd5b506101ed6101e836600461187e565b610513565b60405190151581526020016101c5565b348015610208575f80fd5b50610211610529565b6040519081526020016101c5565b34801561022a575f80fd5b5061018e6102393660046118b5565b610548565b348015610249575f80fd5b506101ed6102583660046118d0565b61058f565b348015610268575f80fd5b506019546101ed90600160a81b900460ff1681565b348015610288575f80fd5b50604051600981526020016101c5565b3480156102a3575f80fd5b506019546102b7906001600160a01b031681565b6040516001600160a01b0390911681526020016101c5565b3480156102da575f80fd5b506102116102e9366004611817565b6001600160a01b03165f9081526001602052604090205490565b34801561030e575f80fd5b5061018e6105f6565b348015610322575f80fd5b5061018e61033136600461190e565b610667565b348015610341575f80fd5b5061021160145481565b348015610356575f80fd5b505f546001600160a01b03166102b7565b348015610372575f80fd5b5061018e6106ba565b348015610386575f80fd5b506040805180820190915260048152632827a7a360e11b60208201526101b8565b3480156103b2575f80fd5b5061021160155481565b3480156103c7575f80fd5b506101ed6103d636600461187e565b610775565b3480156103e6575f80fd5b5061018e610781565b3480156103fa575f80fd5b5061021160165481565b34801561040f575f80fd5b5061018e61041e3660046118d0565b610b66565b34801561042e575f80fd5b5061021161043d366004611945565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610472575f80fd5b5061021160175481565b348015610487575f80fd5b506101ed610496366004611817565b60046020525f908152604090205460ff1681565b3480156104b5575f80fd5b5061018e610bfb565b5f546001600160a01b031633146104f05760405162461bcd60e51b81526004016104e790611971565b60405180910390fd5b6001600160a01b03165f908152600460205260409020805460ff19166001179055565b5f61051f338484610c46565b5060015b92915050565b5f6105366009600a611a9a565b6105439062989680611aa8565b905090565b5f546001600160a01b031633146105715760405162461bcd60e51b81526004016104e790611971565b60198054911515600160a81b0260ff60a81b19909216919091179055565b5f61059b848484610d69565b6105ec84336105e785604051806060016040528060288152602001611c03602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061147b565b610c46565b5060019392505050565b5f546001600160a01b0316331461061f5760405162461bcd60e51b81526004016104e790611971565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106905760405162461bcd60e51b81526004016104e790611971565b6001600160a01b03919091165f908152600360205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146106e35760405162461bcd60e51b81526004016104e790611971565b6106ef6009600a611a9a565b6106fc9062989680611aa8565b60145561070b6009600a611a9a565b6107189062989680611aa8565b6015556019805460ff60a81b191690557f7cd96ba5448bfec9f649d205609b7ef3d00507914d52d7fe748da5811659406a6107556009600a611a9a565b6107629062989680611aa8565b60405190815260200160405180910390a1565b5f61051f338484610d69565b5f546001600160a01b031633146107aa5760405162461bcd60e51b81526004016104e790611971565b601954600160a01b900460ff16156108045760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104e7565b601880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561084c90309061083f6009600a611a9a565b6105e79062989680611aa8565b60185f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561089c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c09190611abf565b6001600160a01b031663c9c653963060185f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561091f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109439190611abf565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561098d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b19190611abf565b601980546001600160a01b039283166001600160a01b0319909116811782555f908152600460209081526040808320805460ff199081166001908117909255945486168452600390925290912080549092161790556018541663f305d7194730610a2f816001600160a01b03165f9081526001602052604090205490565b5f80610a425f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610aa8573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610acd9190611ada565b505060195460185460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610b22573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b469190611b05565b506019805463ff0000ff60a01b1916630100000160a01b17905543600755565b6006546001600160a01b0316336001600160a01b031614610b85575f80fd5b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303815f875af1158015610bd1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf59190611b05565b50505050565b6006546001600160a01b0316336001600160a01b031614610c1a575f80fd5b60405133904780156108fc02915f818181858888f19350505050158015610c43573d5f803e3d5ffd5b50565b6001600160a01b038316610ca85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104e7565b6001600160a01b038216610d095760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104e7565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610dcd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104e7565b6001600160a01b038216610e2f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104e7565b5f8111610e905760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104e7565b6001600160a01b0383165f9081526004602052604081205460ff168015610ec057506001600160a01b0383163014155b15610ed957326001600160a01b03841614610ed9575f80fd5b5f546001600160a01b03858116911614801590610f0357505f546001600160a01b03848116911614155b1561133e57610f476064610f41600f5460135411610f3657600e5460135411610f2e57600854610f3a565b600954610f3a565b600c545b85906114b3565b90611538565b601954909150600160a81b900460ff1615611008576018546001600160a01b03848116911614801590610f8857506019546001600160a01b03848116911614155b1561100857325f908152600560205260409020544311610ff65760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b60648201526084016104e7565b325f9081526005602052604090204390555b6001600160a01b0384165f9081526004602052604090205460ff16801561103d57506018546001600160a01b03848116911614155b801561106157506001600160a01b0383165f9081526003602052604090205460ff16155b15611168576014548211156110b85760405162461bcd60e51b815260206004820152601860248201527f457863656564732074686520747853697a654c696d69742e000000000000000060448201526064016104e7565b601554826110da856001600160a01b03165f9081526001602052604090205490565b6110e49190611b20565b11156111325760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104e7565b4360075460036111429190611b20565b111561115357823b15611153575f80fd5b60138054905f61116283611b33565b91905055505b6001600160a01b0383165f9081526004602052604090205460ff161580156111a857506001600160a01b0383165f9081526003602052604090205460ff16155b1561122757601554826111cf856001600160a01b03165f9081526001602052604090205490565b6111d99190611b20565b11156112275760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104e7565b6001600160a01b0383165f9081526004602052604090205460ff16801561125757506001600160a01b0384163014155b15611297576112946064610f416011546013541161128a576010546013541161128257600a54610f3a565b600b54610f3a565b600d5485906114b3565b90505b305f90815260016020526040902054601954600160b01b900460ff161580156112d757506001600160a01b0384165f9081526004602052604090205460ff165b80156112ec5750601954600160b81b900460ff165b80156112f9575060165481115b80156113085750601254601354115b1561133c5761132a6113258461132084601754611579565b611579565b61158d565b47801561133a5761133a476116fd565b505b505b80156113b657305f9081526001602052604090205461135d9082611738565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113ad9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546113d89083611796565b6001600160a01b0385165f9081526001602052604090205561141b6113fd8383611796565b6001600160a01b0385165f9081526001602052604090205490611738565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6114648585611796565b60405190815260200160405180910390a350505050565b5f818484111561149e5760405162461bcd60e51b81526004016104e79190611832565b505f6114aa8486611b4b565b95945050505050565b5f825f036114c257505f610523565b5f6114cd8385611aa8565b9050826114da8583611b5e565b146115315760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104e7565b9392505050565b5f61153183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117d7565b5f8183116115875782611531565b50919050565b6019805460ff60b01b1916600160b01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106115d3576115d3611b7d565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561162a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061164e9190611abf565b8160018151811061166157611661611b7d565b6001600160a01b0392831660209182029290920101526018546116879130911684610c46565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac947906116bf9085905f90869030904290600401611b91565b5f604051808303815f87803b1580156116d6575f80fd5b505af11580156116e8573d5f803e3d5ffd5b50506019805460ff60b01b1916905550505050565b6006546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611734573d5f803e3d5ffd5b5050565b5f806117448385611b20565b9050838110156115315760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104e7565b5f61153183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061147b565b5f81836117f75760405162461bcd60e51b81526004016104e79190611832565b505f6114aa8486611b5e565b6001600160a01b0381168114610c43575f80fd5b5f60208284031215611827575f80fd5b813561153181611803565b5f602080835283518060208501525f5b8181101561185e57858101830151858201604001528201611842565b505f604082860101526040601f19601f8301168501019250505092915050565b5f806040838503121561188f575f80fd5b823561189a81611803565b946020939093013593505050565b8015158114610c43575f80fd5b5f602082840312156118c5575f80fd5b8135611531816118a8565b5f805f606084860312156118e2575f80fd5b83356118ed81611803565b925060208401356118fd81611803565b929592945050506040919091013590565b5f806040838503121561191f575f80fd5b823561192a81611803565b9150602083013561193a816118a8565b809150509250929050565b5f8060408385031215611956575f80fd5b823561196181611803565b9150602083013561193a81611803565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156119f457815f19048211156119da576119da6119a6565b808516156119e757918102915b93841c93908002906119bf565b509250929050565b5f82611a0a57506001610523565b81611a1657505f610523565b8160018114611a2c5760028114611a3657611a52565b6001915050610523565b60ff841115611a4757611a476119a6565b50506001821b610523565b5060208310610133831016604e8410600b8410161715611a75575081810a610523565b611a7f83836119ba565b805f1904821115611a9257611a926119a6565b029392505050565b5f61153160ff8416836119fc565b8082028115828204841417610523576105236119a6565b5f60208284031215611acf575f80fd5b815161153181611803565b5f805f60608486031215611aec575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611b15575f80fd5b8151611531816118a8565b80820180821115610523576105236119a6565b5f60018201611b4457611b446119a6565b5060010190565b81810381811115610523576105236119a6565b5f82611b7857634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611be15784516001600160a01b031683529383019391830191600101611bbc565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122080c4d30692d902837732fedbd4275fbc3da3592204261c58dd5f226b48763ef764736f6c63430008170033

Deployed Bytecode Sourcemap

3744:9177:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7554:94;;;;;;;;;;-1:-1:-1;7554:94:0;;;;;:::i;:::-;;:::i;:::-;;5883:83;;;;;;;;;;-1:-1:-1;5953:5:0;;;;;;;;;;;;-1:-1:-1;;;5953:5:0;;;;5883:83;;;;;;;:::i;:::-;;;;;;;;6721:161;;;;;;;;;;-1:-1:-1;6721:161:0;;;;;:::i;:::-;;:::i;:::-;;;1440:14:1;;1433:22;1415:41;;1403:2;1388:18;6721:161:0;1275:187:1;6160:100:0;;;;;;;;;;;;;:::i;:::-;;;1613:25:1;;;1601:2;1586:18;6160:100:0;1467:177:1;11306:96:0;;;;;;;;;;-1:-1:-1;11306:96:0;;;;;:::i;:::-;;:::i;6890:313::-;;;;;;;;;;-1:-1:-1;6890:313:0;;;;;:::i;:::-;;:::i;5245:29::-;;;;;;;;;;-1:-1:-1;5245:29:0;;;;-1:-1:-1;;;5245:29:0;;;;;;6069:83;;;;;;;;;;-1:-1:-1;6069:83:0;;4702:1;2621:36:1;;2609:2;2594:18;6069:83:0;2479:184:1;5179:28:0;;;;;;;;;;-1:-1:-1;5179:28:0;;;;-1:-1:-1;;;;;5179:28:0;;;;;;-1:-1:-1;;;;;2832:32:1;;;2814:51;;2802:2;2787:18;5179:28:0;2668:203:1;6268:119:0;;;;;;;;;;-1:-1:-1;6268:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6361:18:0;6334:7;6361:18;;;:9;:18;;;;;;;6268:119;2825:148;;;;;;;;;;;;;:::i;11184:114::-;;;;;;;;;;-1:-1:-1;11184:114:0;;;;;:::i;:::-;;:::i;4887:53::-;;;;;;;;;;;;;;;;2611:79;;;;;;;;;;-1:-1:-1;2649:7:0;2676:6;-1:-1:-1;;;;;2676:6:0;2611:79;;11756:197;;;;;;;;;;;;;:::i;5974:87::-;;;;;;;;;;-1:-1:-1;6046:7:0;;;;;;;;;;;;-1:-1:-1;;;6046:7:0;;;;5974:87;;4947:55;;;;;;;;;;;;;;;;6395:167;;;;;;;;;;-1:-1:-1;6395:167:0;;;;;:::i;:::-;;:::i;12058:823::-;;;;;;;;;;;;;:::i;5009:54::-;;;;;;;;;;;;;;;;11564:184;;;;;;;;;;-1:-1:-1;11564:184:0;;;;;:::i;:::-;;:::i;6570:143::-;;;;;;;;;;-1:-1:-1;6570:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6678:18:0;;;6651:7;6678:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6570:143;5070:51;;;;;;;;;;;;;;;;4009:43;;;;;;;;;;-1:-1:-1;4009:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11410:146;;;;;;;;;;;;;:::i;7554:94::-;2738:6;;-1:-1:-1;;;;;2738:6:0;446:10;2738:22;2730:67;;;;-1:-1:-1;;;2730:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;7617:16:0::1;;::::0;;;:10:::1;:16;::::0;;;;:23;;-1:-1:-1;;7617:23:0::1;7636:4;7617:23;::::0;;7554:94::o;6721:161::-;6796:4;6813:39;446:10;6836:7;6845:6;6813:8;:39::i;:::-;-1:-1:-1;6870:4:0;6721:161;;;;;:::o;6160:100::-;6213:7;4761:13;4702:1;4761:2;:13;:::i;:::-;4750:24;;:8;:24;:::i;:::-;6233:19;;6160:100;:::o;11306:96::-;2738:6;;-1:-1:-1;;;;;2738:6:0;446:10;2738:22;2730:67;;;;-1:-1:-1;;;2730:67:0;;;;;;;:::i;:::-;11374:10:::1;:20:::0;;;::::1;;-1:-1:-1::0;;;11374:20:0::1;-1:-1:-1::0;;;;11374:20:0;;::::1;::::0;;;::::1;::::0;;11306:96::o;6890:313::-;6988:4;7005:36;7015:6;7023:9;7034:6;7005:9;:36::i;:::-;7052:121;7061:6;446:10;7083:89;7121:6;7083:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7083:19:0;;;;;;:11;:19;;;;;;;;446:10;7083:33;;;;;;;;;;:37;:89::i;:::-;7052:8;:121::i;:::-;-1:-1:-1;7191:4:0;6890:313;;;;;:::o;2825:148::-;2738:6;;-1:-1:-1;;;;;2738:6:0;446:10;2738:22;2730:67;;;;-1:-1:-1;;;2730:67:0;;;;;;;:::i;:::-;2932:1:::1;2916:6:::0;;2895:40:::1;::::0;-1:-1:-1;;;;;2916:6:0;;::::1;::::0;2895:40:::1;::::0;2932:1;;2895:40:::1;2963:1;2946:19:::0;;-1:-1:-1;;;;;;2946:19:0::1;::::0;;2825:148::o;11184:114::-;2738:6;;-1:-1:-1;;;;;2738:6:0;446:10;2738:22;2730:67;;;;-1:-1:-1;;;2730:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11262:19:0;;;::::1;;::::0;;;:13:::1;:19;::::0;;;;:28;;-1:-1:-1;;11262:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11184:114::o;11756:197::-;2738:6;;-1:-1:-1;;;;;2738:6:0;446:10;2738:22;2730:67;;;;-1:-1:-1;;;2730:67:0;;;;;;;:::i;:::-;4761:13:::1;4702:1;4761:2;:13;:::i;:::-;4750:24;::::0;:8:::1;:24;:::i;:::-;11808:11;:24:::0;4761:13:::1;4702:1;4761:2;:13;:::i;:::-;4750:24;::::0;:8:::1;:24;:::i;:::-;11843:15;:28:::0;11882:10:::1;:16:::0;;-1:-1:-1;;;;11882:16:0::1;::::0;;11914:31:::1;4761:13;4702:1;4761:2;:13;:::i;:::-;4750:24;::::0;:8:::1;:24;:::i;:::-;11914:31;::::0;1613:25:1;;;1601:2;1586:18;11914:31:0::1;;;;;;;11756:197::o:0;6395:167::-;6473:4;6490:42;446:10;6514:9;6525:6;6490:9;:42::i;12058:823::-;2738:6;;-1:-1:-1;;;;;2738:6:0;446:10;2738:22;2730:67;;;;-1:-1:-1;;;2730:67:0;;;;;;;:::i;:::-;12124:11:::1;::::0;-1:-1:-1;;;12124:11:0;::::1;;;12123:12;12115:47;;;::::0;-1:-1:-1;;;12115:47:0;;5901:2:1;12115:47:0::1;::::0;::::1;5883:21:1::0;5940:2;5920:18;;;5913:30;5979:25;5959:18;;;5952:53;6022:18;;12115:47:0::1;5699:347:1::0;12115:47:0::1;12173:15;:80:::0;;-1:-1:-1;;;;;;12173:80:0::1;12210:42;12173:80:::0;;::::1;::::0;;;12264:63:::1;::::0;12281:4:::1;::::0;4761:13:::1;4702:1;4761:2;:13;:::i;:::-;4750:24;::::0;:8:::1;:24;:::i;12264:63::-;12372:15;;;;;;;;;-1:-1:-1::0;;;;;12372:15:0::1;-1:-1:-1::0;;;;;12372:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12354:55:0::1;;12418:4;12425:15;;;;;;;;;-1:-1:-1::0;;;;;12425:15:0::1;-1:-1:-1::0;;;;;12425:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12354:94;::::0;-1:-1:-1;;;;;;12354:94:0::1;::::0;;;;;;-1:-1:-1;;;;;6537:15:1;;;12354:94:0::1;::::0;::::1;6519:34:1::0;6589:15;;6569:18;;;6562:43;6454:18;;12354:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12338:13;:110:::0;;-1:-1:-1;;;;;12338:110:0;;::::1;-1:-1:-1::0;;;;;;12338:110:0;;::::1;::::0;::::1;::::0;;:13:::1;12459:34:::0;;;:10:::1;:34;::::0;;;;;;;:41;;-1:-1:-1;;12459:41:0;;::::1;12338:110:::0;12459:41;;::::1;::::0;;;12533:13;;;::::1;12511:37:::0;;:13:::1;:37:::0;;;;;;:44;;;;::::1;;::::0;;12566:15:::1;::::0;::::1;:31;12605:21;12636:4;12642:24;12636:4:::0;-1:-1:-1;;;;;6361:18:0;6334:7;6361:18;;;:9;:18;;;;;;;6268:119;12642:24:::1;12667:1;12669::::0;12671:7:::1;2649::::0;2676:6;-1:-1:-1;;;;;2676:6:0;;2611:79;12671:7:::1;12566:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12566:129:0;;;-1:-1:-1;;;;;6975:15:1;;;12566:129:0::1;::::0;::::1;6957:34:1::0;7007:18;;;7000:34;;;;7050:18;;;7043:34;;;;7093:18;;;7086:34;7157:15;;;7136:19;;;7129:44;12679:15:0::1;7189:19:1::0;;;7182:35;6891:19;;12566:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12713:13:0::1;::::0;12744:15:::1;::::0;12706:71:::1;::::0;-1:-1:-1;;;12706:71:0;;-1:-1:-1;;;;;12744:15:0;;::::1;12706:71;::::0;::::1;7713:51:1::0;-1:-1:-1;;7780:18:1;;;7773:34;12713:13:0;::::1;::::0;-1:-1:-1;12706:29:0::1;::::0;7686:18:1;;12706:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12788:11:0::1;:18:::0;;-1:-1:-1;;;;12817:18:0;-1:-1:-1;;;12817:18:0;;;12861:12:::1;12846;:27:::0;12058:823::o;11564:184::-;11680:7;;-1:-1:-1;;;;;11680:7:0;446:10;-1:-1:-1;;;;;11664:23:0;;11656:32;;;;;;11699:41;;-1:-1:-1;;;11699:41:0;;-1:-1:-1;;;;;7731:32:1;;;11699:41:0;;;7713:51:1;7780:18;;;7773:34;;;11699:27:0;;;;;7686:18:1;;11699:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11564:184;;;:::o;11410:146::-;11478:7;;-1:-1:-1;;;;;11478:7:0;446:10;-1:-1:-1;;;;;11462:23:0;;11454:32;;;;;;11497:51;;11505:10;;11526:21;11497:51;;;;;;;;;11526:21;11505:10;11497:51;;;;;;;;;;;;;;;;;;;;;11410:146::o;7211:335::-;-1:-1:-1;;;;;7304:19:0;;7296:68;;;;-1:-1:-1;;;7296:68:0;;8270:2:1;7296:68:0;;;8252:21:1;8309:2;8289:18;;;8282:30;8348:34;8328:18;;;8321:62;-1:-1:-1;;;8399:18:1;;;8392:34;8443:19;;7296:68:0;8068:400:1;7296:68:0;-1:-1:-1;;;;;7383:21:0;;7375:68;;;;-1:-1:-1;;;7375:68:0;;8675:2:1;7375:68:0;;;8657:21:1;8714:2;8694:18;;;8687:30;8753:34;8733:18;;;8726:62;-1:-1:-1;;;8804:18:1;;;8797:32;8846:19;;7375:68:0;8473:398:1;7375:68:0;-1:-1:-1;;;;;7454:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7506:32;;1613:25:1;;;7506:32:0;;1586:18:1;7506:32:0;;;;;;;7211:335;;;:::o;7656:2718::-;-1:-1:-1;;;;;7744:18:0;;7736:68;;;;-1:-1:-1;;;7736:68:0;;9078:2:1;7736:68:0;;;9060:21:1;9117:2;9097:18;;;9090:30;9156:34;9136:18;;;9129:62;-1:-1:-1;;;9207:18:1;;;9200:35;9252:19;;7736:68:0;8876:401:1;7736:68:0;-1:-1:-1;;;;;7823:16:0;;7815:64;;;;-1:-1:-1;;;7815:64:0;;9484:2:1;7815:64:0;;;9466:21:1;9523:2;9503:18;;;9496:30;9562:34;9542:18;;;9535:62;-1:-1:-1;;;9613:18:1;;;9606:33;9656:19;;7815:64:0;9282:399:1;7815:64:0;7907:1;7898:6;:10;7890:64;;;;-1:-1:-1;;;7890:64:0;;9888:2:1;7890:64:0;;;9870:21:1;9927:2;9907:18;;;9900:30;9966:34;9946:18;;;9939:62;-1:-1:-1;;;10017:18:1;;;10010:39;10066:19;;7890:64:0;9686:405:1;7890:64:0;-1:-1:-1;;;;;8000:16:0;;7965:18;8000:16;;;:10;:16;;;;;;;;:39;;;;-1:-1:-1;;;;;;8020:19:0;;8034:4;8020:19;;8000:39;7996:100;;;8064:9;-1:-1:-1;;;;;8064:15:0;;;8056:24;;;;;;2649:7;2676:6;-1:-1:-1;;;;;8110:15:0;;;2676:6;;8110:15;;;;:32;;-1:-1:-1;2649:7:0;2676:6;-1:-1:-1;;;;;8129:13:0;;;2676:6;;8129:13;;8110:32;8106:1907;;;8172:127;8295:3;8172:118;8196:16;;8184:10;;:28;8183:106;;8244:13;;8232:10;;:25;8231:57;;8273:15;;8183:106;;8231:57;8260:11;;8183:106;;;8215:13;;8183:106;8172:6;;:10;:118::i;:::-;:122;;:127::i;:::-;8332:10;;8159:140;;-1:-1:-1;;;;8332:10:0;;;;8328:322;;;8381:15;;-1:-1:-1;;;;;8367:30:0;;;8381:15;;8367:30;;;;:62;;-1:-1:-1;8415:13:0;;-1:-1:-1;;;;;8401:28:0;;;8415:13;;8401:28;;8367:62;8363:272;;;8482:9;8460:32;;;;:21;:32;;;;;;8495:12;-1:-1:-1;8452:95:0;;;;-1:-1:-1;;;8452:95:0;;10298:2:1;8452:95:0;;;10280:21:1;10337:2;10317:18;;;10310:30;10376:34;10356:18;;;10349:62;-1:-1:-1;;;10427:18:1;;;10420:34;10471:19;;8452:95:0;10096:400:1;8452:95:0;8590:9;8568:32;;;;:21;:32;;;;;8603:12;8568:47;;8363:272;-1:-1:-1;;;;;8668:16:0;;;;;;:10;:16;;;;;;;;:50;;;;-1:-1:-1;8702:15:0;;-1:-1:-1;;;;;8688:30:0;;;8702:15;;8688:30;;8668:50;:73;;;;-1:-1:-1;;;;;;8724:17:0;;;;;;:13;:17;;;;;;;;8722:19;8668:73;8664:428;;;8781:11;;8771:6;:21;;8763:58;;;;-1:-1:-1;;;8763:58:0;;10703:2:1;8763:58:0;;;10685:21:1;10742:2;10722:18;;;10715:30;10781:26;10761:18;;;10754:54;10825:18;;8763:58:0;10501:348:1;8763:58:0;8874:15;;8864:6;8848:13;8858:2;-1:-1:-1;;;;;6361:18:0;6334:7;6361:18;;;:9;:18;;;;;;;6268:119;8848:13;:22;;;;:::i;:::-;:41;;8840:80;;;;-1:-1:-1;;;8840:80:0;;11186:2:1;8840:80:0;;;11168:21:1;11225:2;11205:18;;;11198:30;11264:28;11244:18;;;11237:56;11310:18;;8840:80:0;10984:350:1;8840:80:0;8965:12;8945;;8960:1;8945:16;;;;:::i;:::-;:32;8941:105;;;10621:20;;10669:8;9002:24;;;;;;9064:10;:12;;;:10;:12;;;:::i;:::-;;;;;;8664:428;-1:-1:-1;;;;;9113:14:0;;;;;;:10;:14;;;;;;;;9112:15;:38;;;;-1:-1:-1;;;;;;9133:17:0;;;;;;:13;:17;;;;;;;;9131:19;9112:38;9108:159;;;9205:15;;9195:6;9179:13;9189:2;-1:-1:-1;;;;;6361:18:0;6334:7;6361:18;;;:9;:18;;;;;;;6268:119;9179:13;:22;;;;:::i;:::-;:41;;9171:80;;;;-1:-1:-1;;;9171:80:0;;11186:2:1;9171:80:0;;;11168:21:1;11225:2;11205:18;;;11198:30;11264:28;11244:18;;;11237:56;11310:18;;9171:80:0;10984:350:1;9171:80:0;-1:-1:-1;;;;;9286:14:0;;;;;;:10;:14;;;;;;;;:38;;;;-1:-1:-1;;;;;;9304:20:0;;9319:4;9304:20;;9286:38;9283:223;;;9358:132;9486:3;9358:123;9382:17;;9370:10;;:29;9369:111;;9432:14;;9420:10;;:26;9419:60;;9463:16;;9369:111;;9419:60;9449:12;;9369:111;;;9402:14;;9358:6;;:10;:123::i;:132::-;9345:145;;9283:223;9571:4;9522:28;6361:18;;;:9;:18;;;;;;9597:6;;-1:-1:-1;;;9597:6:0;;;;9596:7;:25;;;;-1:-1:-1;;;;;;9607:14:0;;;;;;:10;:14;;;;;;;;9596:25;:40;;;;-1:-1:-1;9625:11:0;;-1:-1:-1;;;9625:11:0;;;;9596:40;:82;;;;;9661:17;;9640:20;:38;9596:82;:109;;;;;9693:12;;9682:10;;:23;9596:109;9592:410;;;9726:68;9743:50;9747:6;9754:38;9758:20;9779:12;;9754:3;:38::i;:::-;9743:3;:50::i;:::-;9726:16;:68::i;:::-;9842:21;9885:22;;9882:105;;9932:35;9945:21;9932:12;:35::i;:::-;9707:295;9592:410;8144:1869;8106:1907;10028:12;;10025:164;;10097:4;10079:24;;;;:9;:24;;;;;;:40;;10108:10;10079:28;:40::i;:::-;10072:4;10054:24;;;;:9;:24;;;;;;;:65;;;;10137:40;;-1:-1:-1;;;;;10137:40:0;;;;;;;10166:10;1613:25:1;;1601:2;1586:18;;1467:177;10137:40:0;;;;;;;;10025:164;-1:-1:-1;;;;;10215:15:0;;;;;;:9;:15;;;;;;:27;;10235:6;10215:19;:27::i;:::-;-1:-1:-1;;;;;10199:15:0;;;;;;:9;:15;;;;;:43;10267:41;10285:22;:6;10296:10;10285;:22::i;:::-;-1:-1:-1;;;;;10267:13:0;;;;;;:9;:13;;;;;;;:17;:41::i;:::-;-1:-1:-1;;;;;10253:13:0;;;;;;;:9;:13;;;;;:55;;;;10324:42;;;10343:22;:6;10354:10;10343;:22::i;:::-;10324:42;;1613:25:1;;;1601:2;1586:18;10324:42:0;;;;;;;7725:2649;7656:2718;;;:::o;1503:190::-;1589:7;1625:12;1617:6;;;;1609:29;;;;-1:-1:-1;;;1609:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1649:9:0;1661:5;1665:1;1661;:5;:::i;:::-;1649:17;1503:190;-1:-1:-1;;;;;1503:190:0:o;1701:246::-;1759:7;1783:1;1788;1783:6;1779:47;;-1:-1:-1;1813:1:0;1806:8;;1779:47;1836:9;1848:5;1852:1;1848;:5;:::i;:::-;1836:17;-1:-1:-1;1881:1:0;1872:5;1876:1;1836:17;1872:5;:::i;:::-;:10;1864:56;;;;-1:-1:-1;;;1864:56:0;;12036:2:1;1864:56:0;;;12018:21:1;12075:2;12055:18;;;12048:30;12114:34;12094:18;;;12087:62;-1:-1:-1;;;12165:18:1;;;12158:31;12206:19;;1864:56:0;11834:397:1;1864:56:0;1938:1;1701:246;-1:-1:-1;;;1701:246:0:o;1955:132::-;2013:7;2040:39;2044:1;2047;2040:39;;;;;;;;;;;;;;;;;:3;:39::i;10384:98::-;10441:7;10468:1;10466;:3;10465:9;;10473:1;10465:9;;;-1:-1:-1;10471:1:0;10384:98;-1:-1:-1;10384:98:0:o;10693:483::-;5436:6;:13;;-1:-1:-1;;;;5436:13:0;-1:-1:-1;;;5436:13:0;;;10795:16:::1;::::0;;10809:1:::1;10795:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10795:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10795:16:0::1;10771:40;;10840:4;10822;10827:1;10822:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10822:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10866:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10866:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10822:7;;10866:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10856:4;10861:1;10856:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10856:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10931:15:::1;::::0;10899:62:::1;::::0;10916:4:::1;::::0;10931:15:::1;10949:11:::0;10899:8:::1;:62::i;:::-;10972:15;::::0;:196:::1;::::0;-1:-1:-1;;;10972:196:0;;-1:-1:-1;;;;;10972:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11053:11;;10972:15:::1;::::0;11095:4;;11122::::1;::::0;11142:15:::1;::::0;10972:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5474:6:0;:14;;-1:-1:-1;;;;5474:14:0;;;-1:-1:-1;;;;10693:483:0:o;11961:89::-;12018:7;;:24;;-1:-1:-1;;;;;12018:7:0;;;;:24;;;;;12035:6;;12018:7;:24;:7;:24;12035:6;12018:7;:24;;;;;;;;;;;;;;;;;;;;;11961:89;:::o;1172:179::-;1230:7;;1262:5;1266:1;1262;:5;:::i;:::-;1250:17;;1291:1;1286;:6;;1278:46;;;;-1:-1:-1;;;1278:46:0;;13687:2:1;1278:46:0;;;13669:21:1;13726:2;13706:18;;;13699:30;13765:29;13745:18;;;13738:57;13812:18;;1278:46:0;13485:351:1;1359:136:0;1417:7;1444:43;1448:1;1451;1444:43;;;;;;;;;;;;;;;;;:3;:43::i;2095:189::-;2181:7;2216:12;2209:5;2201:28;;;;-1:-1:-1;;;2201:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2240:9:0;2252:5;2256:1;2252;:5;:::i;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;150:247;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;402:548::-;514:4;543:2;572;561:9;554:21;604:6;598:13;647:6;642:2;631:9;627:18;620:34;672:1;682:140;696:6;693:1;690:13;682:140;;;791:14;;;787:23;;781:30;757:17;;;776:2;753:26;746:66;711:10;;682:140;;;686:3;871:1;866:2;857:6;846:9;842:22;838:31;831:42;941:2;934;930:7;925:2;917:6;913:15;909:29;898:9;894:45;890:54;882:62;;;;402:548;;;;:::o;955:315::-;1023:6;1031;1084:2;1072:9;1063:7;1059:23;1055:32;1052:52;;;1100:1;1097;1090:12;1052:52;1139:9;1126:23;1158:31;1183:5;1158:31;:::i;:::-;1208:5;1260:2;1245:18;;;;1232:32;;-1:-1:-1;;;955:315:1:o;1649:118::-;1735:5;1728:13;1721:21;1714:5;1711:32;1701:60;;1757:1;1754;1747:12;1772:241;1828:6;1881:2;1869:9;1860:7;1856:23;1852:32;1849:52;;;1897:1;1894;1887:12;1849:52;1936:9;1923:23;1955:28;1977:5;1955:28;:::i;2018:456::-;2095:6;2103;2111;2164:2;2152:9;2143:7;2139:23;2135:32;2132:52;;;2180:1;2177;2170:12;2132:52;2219:9;2206:23;2238:31;2263:5;2238:31;:::i;:::-;2288:5;-1:-1:-1;2345:2:1;2330:18;;2317:32;2358:33;2317:32;2358:33;:::i;:::-;2018:456;;2410:7;;-1:-1:-1;;;2464:2:1;2449:18;;;;2436:32;;2018:456::o;2876:382::-;2941:6;2949;3002:2;2990:9;2981:7;2977:23;2973:32;2970:52;;;3018:1;3015;3008:12;2970:52;3057:9;3044:23;3076:31;3101:5;3076:31;:::i;:::-;3126:5;-1:-1:-1;3183:2:1;3168:18;;3155:32;3196:30;3155:32;3196:30;:::i;:::-;3245:7;3235:17;;;2876:382;;;;;:::o;3263:388::-;3331:6;3339;3392:2;3380:9;3371:7;3367:23;3363:32;3360:52;;;3408:1;3405;3398:12;3360:52;3447:9;3434:23;3466:31;3491:5;3466:31;:::i;:::-;3516:5;-1:-1:-1;3573:2:1;3558:18;;3545:32;3586:33;3545:32;3586:33;:::i;3656:356::-;3858:2;3840:21;;;3877:18;;;3870:30;3936:34;3931:2;3916:18;;3909:62;4003:2;3988:18;;3656:356::o;4017:127::-;4078:10;4073:3;4069:20;4066:1;4059:31;4109:4;4106:1;4099:15;4133:4;4130:1;4123:15;4149:416;4238:1;4275:5;4238:1;4289:270;4310:7;4300:8;4297:21;4289:270;;;4369:4;4365:1;4361:6;4357:17;4351:4;4348:27;4345:53;;;4378:18;;:::i;:::-;4428:7;4418:8;4414:22;4411:55;;;4448:16;;;;4411:55;4527:22;;;;4487:15;;;;4289:270;;;4293:3;4149:416;;;;;:::o;4570:806::-;4619:5;4649:8;4639:80;;-1:-1:-1;4690:1:1;4704:5;;4639:80;4738:4;4728:76;;-1:-1:-1;4775:1:1;4789:5;;4728:76;4820:4;4838:1;4833:59;;;;4906:1;4901:130;;;;4813:218;;4833:59;4863:1;4854:10;;4877:5;;;4901:130;4938:3;4928:8;4925:17;4922:43;;;4945:18;;:::i;:::-;-1:-1:-1;;5001:1:1;4987:16;;5016:5;;4813:218;;5115:2;5105:8;5102:16;5096:3;5090:4;5087:13;5083:36;5077:2;5067:8;5064:16;5059:2;5053:4;5050:12;5046:35;5043:77;5040:159;;;-1:-1:-1;5152:19:1;;;5184:5;;5040:159;5231:34;5256:8;5250:4;5231:34;:::i;:::-;5301:6;5297:1;5293:6;5289:19;5280:7;5277:32;5274:58;;;5312:18;;:::i;:::-;5350:20;;4570:806;-1:-1:-1;;;4570:806:1:o;5381:140::-;5439:5;5468:47;5509:4;5499:8;5495:19;5489:4;5468:47;:::i;5526:168::-;5599:9;;;5630;;5647:15;;;5641:22;;5627:37;5617:71;;5668:18;;:::i;6051:251::-;6121:6;6174:2;6162:9;6153:7;6149:23;6145:32;6142:52;;;6190:1;6187;6180:12;6142:52;6222:9;6216:16;6241:31;6266:5;6241:31;:::i;7228:306::-;7316:6;7324;7332;7385:2;7373:9;7364:7;7360:23;7356:32;7353:52;;;7401:1;7398;7391:12;7353:52;7430:9;7424:16;7414:26;;7480:2;7469:9;7465:18;7459:25;7449:35;;7524:2;7513:9;7509:18;7503:25;7493:35;;7228:306;;;;;:::o;7818:245::-;7885:6;7938:2;7926:9;7917:7;7913:23;7909:32;7906:52;;;7954:1;7951;7944:12;7906:52;7986:9;7980:16;8005:28;8027:5;8005:28;:::i;10854:125::-;10919:9;;;10940:10;;;10937:36;;;10953:18;;:::i;11339:135::-;11378:3;11399:17;;;11396:43;;11419:18;;:::i;:::-;-1:-1:-1;11466:1:1;11455:13;;11339:135::o;11479:128::-;11546:9;;;11567:11;;;11564:37;;;11581:18;;:::i;11612:217::-;11652:1;11678;11668:132;;11722:10;11717:3;11713:20;11710:1;11703:31;11757:4;11754:1;11747:15;11785:4;11782:1;11775:15;11668:132;-1:-1:-1;11814:9:1;;11612:217::o;12368:127::-;12429:10;12424:3;12420:20;12417:1;12410:31;12460:4;12457:1;12450:15;12484:4;12481:1;12474:15;12500:980;12762:4;12810:3;12799:9;12795:19;12841:6;12830:9;12823:25;12867:2;12905:6;12900:2;12889:9;12885:18;12878:34;12948:3;12943:2;12932:9;12928:18;12921:31;12972:6;13007;13001:13;13038:6;13030;13023:22;13076:3;13065:9;13061:19;13054:26;;13115:2;13107:6;13103:15;13089:29;;13136:1;13146:195;13160:6;13157:1;13154:13;13146:195;;;13225:13;;-1:-1:-1;;;;;13221:39:1;13209:52;;13316:15;;;;13281:12;;;;13257:1;13175:9;13146:195;;;-1:-1:-1;;;;;;;13397:32:1;;;;13392:2;13377:18;;13370:60;-1:-1:-1;;;13461:3:1;13446:19;13439:35;13358:3;12500:980;-1:-1:-1;;;12500:980:1:o

Swarm Source

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