ETH Price: $3,264.77 (+0.67%)
Gas: 1 Gwei

Token

Autistic Furie (AUTISTIC)
 

Overview

Max Total Supply

420,690,000,000,000 AUTISTIC

Holders

21

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,155,175,000,000 AUTISTIC

Value
$0.00
0x4A8F8D143662a6c14b7B88E93A8f6A6A3700DE72
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:
Autistic

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*
Matt Furie's Art is the bridge between art, meme and community

Website: https://autisticfurie.club/
Telegram: https://t.me/Autistic_Furie
Twitter: https://twitter.com/AutisticFurie
*/

pragma solidity 0.8.25;

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

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 Autistic 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;
    mapping (address => bool) public marketPair;
    address payable private _taxWallet;
    uint256 firstBlock;

    uint256 private _initialBuyTax=250;
    uint256 private _midBuyTax=250;
    uint256 private _initialSellTax=250;
    uint256 private _midSellTax=250;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;

    uint256 private _midBuyTaxAt=40;
    uint256 private _reduceBuyTaxAt=40;

    uint256 private _midSellTaxAt=40;
    uint256 private _reduceSellTaxAt=40;
    uint256 private _preventSwapBefore=40;
    uint256 private _buyCount=0;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420690000000000 * 10**_decimals;
    string private constant _name = unicode"Autistic Furie";
    string private constant _symbol = unicode"AUTISTIC";
    uint256 public _maxTxAmount =   4206900000000 * 10**_decimals;
    uint256 public _maxWalletSize = 4206900000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 420690000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 4206900000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool public rescueSwitch = false;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool public caSwitch = true;

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

    constructor () {

        _taxWallet = payable(0xaF3c2C22BCA0AB7Eb56bf4130EBa11896cc8719B);
        _balances[_msgSender()] = _tTotal;
        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[address(uniswapV2Pair)] = true;
        isExcludedFromFee[_taxWallet] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

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

    function _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 setMarketPair(address addr) public onlyOwner {
        marketPair[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 taxAmount=0;

        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount> _reduceBuyTaxAt)? _finalBuyTax: ((_buyCount> _midBuyTaxAt)? _midBuyTax: _initialBuyTax)).div(1000);

            if (marketPair[from] && to != address(uniswapV2Router) && ! isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");

                if (firstBlock + 1  > block.number) {
                    require(!isContract(to));
                }
                _buyCount++;
            }

            if (!marketPair[to] && ! isExcludedFromFee[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }

            if(marketPair[to] && from!= address(this) ){
                taxAmount = amount.mul((_buyCount> _reduceSellTaxAt)? _finalSellTax: ((_buyCount> _midSellTaxAt)? _midSellTax: _initialSellTax)).div(1000);
            }

	    if (!marketPair[from] && !marketPair[to] && from!= address(this) ) {
                taxAmount = 0;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (caSwitch && !inSwap && marketPair[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount <2, "Only 2 CA balance sell");
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }

            else if(!inSwap && marketPair[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

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


    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 enableSave(bool _status) external onlyOwner {
        rescueSwitch = _status;
    }

    function exemptAddress(address addr, bool exempt) external onlyOwner {
        isExcludedFromFee[addr] = exempt;
    }

    function switchStatus(bool _status) external onlyOwner {
        caSwitch = _status;
    }

    function saveETH() public {
        require(rescueSwitch || tradingOpen);
        payable(_taxWallet).transfer(address(this).balance);
    }

    function saveTOKEN(address _tokenAddr, uint _amount) public {
        require(rescueSwitch || tradingOpen);
        IERC20(_tokenAddr).transfer(_taxWallet, _amount);
    }
 
    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    function limitsRemoved() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function enableTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        marketPair[address(uniswapV2Pair)] = true;
        isExcludedFromFee[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;
        tradingOpen = true;
        firstBlock = 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":"_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":"caSwitch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableSave","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsRemoved","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"marketPair","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueSwitch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"saveETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"saveTOKEN","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"switchStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260fa60075560fa60085560fa60095560fa600a555f600b555f600c556028600d556028600e556028600f55602860105560286011555f6012555f6013555f6014556009600a6100539190610353565b610063906503d37ec7b500610368565b6015556100726009600a610353565b610082906503d37ec7b500610368565b6016556100916009600a610353565b6100a0906461f313f880610368565b6017556100af6009600a610353565b6100bf906503d37ec7b500610368565b601855601a805464ffffff00ff60a01b1916600160c01b1790553480156100e4575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b03191673af3c2c22bca0ab7eb56bf4130eba11896cc8719b1790556101576009600a610353565b6101689066017e9d8602b400610368565b335f9081526001602081905260408220929092556003906101905f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155601a548216845282842080548616821790556005549091168352912080549092161790556101ff3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6102366009600a610353565b6102479066017e9d8602b400610368565b60405190815260200160405180910390a361037f565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156102ab57815f19048211156102915761029161025d565b8085161561029e57918102915b93841c9390800290610276565b509250929050565b5f826102c15750600161034d565b816102cd57505f61034d565b81600181146102e357600281146102ed57610309565b600191505061034d565b60ff8411156102fe576102fe61025d565b50506001821b61034d565b5060208310610133831016604e8410600b841016171561032c575081810a61034d565b6103368383610271565b805f19048211156103495761034961025d565b0290505b92915050565b5f61036160ff8416836102b3565b9392505050565b808202811582820484141761034d5761034d61025d565b611f368061038c5f395ff3fe6080604052600436106101bd575f3560e01c80637d1db4a5116100f2578063a3019cf811610092578063c7a4bdf711610062578063c7a4bdf7146104e6578063dd62ed3e14610506578063f2fde38b1461054a578063f5b3c3bf14610569575f80fd5b8063a3019cf814610474578063a9059cbb14610493578063a910c945146104b2578063bf474bed146104d1575f80fd5b80638a8c523c116100cd5780638a8c523c146103ff5780638da5cb5b146104135780638f9a55c01461042f57806395d89b4114610444575f80fd5b80637d1db4a5146103b7578063887875c9146103cc578063896f1a95146103eb575f80fd5b80633b23a5ca1161015d57806353bc13dc1161013857806353bc13dc1461033057806370a082311461034f578063715018a6146103835780637ab3c76214610397575f80fd5b80633b23a5ca146102c657806349bd5a5e146102e557806351bc3c851461031c575f80fd5b806318160ddd1161019857806318160ddd146102625780631d6f96551461027657806323b872dd1461028c578063313ce567146102ab575f80fd5b806306fdde03146101c8578063095ea7b3146102105780630faee56f1461023f575f80fd5b366101c457005b5f80fd5b3480156101d3575f80fd5b5060408051808201909152600e81526d417574697374696320467572696560901b60208201525b6040516102079190611af0565b60405180910390f35b34801561021b575f80fd5b5061022f61022a366004611b39565b610597565b6040519015158152602001610207565b34801561024a575f80fd5b5061025460185481565b604051908152602001610207565b34801561026d575f80fd5b506102546105ad565b348015610281575f80fd5b5061028a6105d0565b005b348015610297575f80fd5b5061022f6102a6366004611b63565b610693565b3480156102b6575f80fd5b5060405160098152602001610207565b3480156102d1575f80fd5b5061028a6102e0366004611bae565b6106fa565b3480156102f0575f80fd5b50601a54610304906001600160a01b031681565b6040516001600160a01b039091168152602001610207565b348015610327575f80fd5b5061028a610741565b34801561033b575f80fd5b5061028a61034a366004611bc9565b610792565b34801561035a575f80fd5b50610254610369366004611bc9565b6001600160a01b03165f9081526001602052604090205490565b34801561038e575f80fd5b5061028a6107de565b3480156103a2575f80fd5b50601a5461022f90600160c01b900460ff1681565b3480156103c2575f80fd5b5061025460155481565b3480156103d7575f80fd5b5061028a6103e6366004611bae565b61084f565b3480156103f6575f80fd5b5061028a610896565b34801561040a575f80fd5b5061028a6108f8565b34801561041e575f80fd5b505f546001600160a01b0316610304565b34801561043a575f80fd5b5061025460165481565b34801561044f575f80fd5b50604080518082019091526008815267415554495354494360c01b60208201526101fa565b34801561047f575f80fd5b5061028a61048e366004611be4565b610cdf565b34801561049e575f80fd5b5061022f6104ad366004611b39565b610d32565b3480156104bd575f80fd5b5061028a6104cc366004611b39565b610d3e565b3480156104dc575f80fd5b5061025460175481565b3480156104f1575f80fd5b50601a5461022f90600160a01b900460ff1681565b348015610511575f80fd5b50610254610520366004611c1b565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610555575f80fd5b5061028a610564366004611bc9565b610de0565b348015610574575f80fd5b5061022f610583366004611bc9565b60046020525f908152604090205460ff1681565b5f6105a3338484610ec7565b5060015b92915050565b5f6105ba6009600a611d3b565b6105cb9066017e9d8602b400611d49565b905090565b5f546001600160a01b031633146106025760405162461bcd60e51b81526004016105f990611d60565b60405180910390fd5b61060e6009600a611d3b565b61061f9066017e9d8602b400611d49565b60155561062e6009600a611d3b565b61063f9066017e9d8602b400611d49565b6016557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61066f6009600a611d3b565b6106809066017e9d8602b400611d49565b60405190815260200160405180910390a1565b5f61069f848484610fea565b6106f084336106eb85604051806060016040528060288152602001611ed9602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061176c565b610ec7565b5060019392505050565b5f546001600160a01b031633146107235760405162461bcd60e51b81526004016105f990611d60565b601a8054911515600160c01b0260ff60c01b19909216919091179055565b6005546001600160a01b0316336001600160a01b031614610760575f80fd5b305f90815260016020526040902054801561077e5761077e816117a4565b47801561078e5761078e81611914565b5050565b5f546001600160a01b031633146107bb5760405162461bcd60e51b81526004016105f990611d60565b6001600160a01b03165f908152600460205260409020805460ff19166001179055565b5f546001600160a01b031633146108075760405162461bcd60e51b81526004016105f990611d60565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146108785760405162461bcd60e51b81526004016105f990611d60565b601a8054911515600160a01b0260ff60a01b19909216919091179055565b601a54600160a01b900460ff16806108b75750601a54600160a81b900460ff165b6108bf575f80fd5b6005546040516001600160a01b03909116904780156108fc02915f818181858888f193505050501580156108f5573d5f803e3d5ffd5b50565b5f546001600160a01b031633146109215760405162461bcd60e51b81526004016105f990611d60565b601a54600160a81b900460ff161561097b5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105f9565b601980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556109c79030906109b66009600a611d3b565b6106eb9066017e9d8602b400611d49565b60195f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a17573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a3b9190611d95565b6001600160a01b031663c9c653963060195f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610abe9190611d95565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610b08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b2c9190611d95565b601a80546001600160a01b039283166001600160a01b0319909116811782555f908152600460209081526040808320805460ff199081166001908117909255945486168452600390925290912080549092161790556019541663f305d7194730610baa816001600160a01b03165f9081526001602052604090205490565b5f80610bbd5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610c23573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c489190611db0565b5050601a5460195460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610c9d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc19190611ddb565b50601a805462ff00ff60a81b19166201000160a81b17905543600655565b5f546001600160a01b03163314610d085760405162461bcd60e51b81526004016105f990611d60565b6001600160a01b03919091165f908152600360205260409020805460ff1916911515919091179055565b5f6105a3338484610fea565b601a54600160a01b900460ff1680610d5f5750601a54600160a81b900460ff165b610d67575f80fd5b60055460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303815f875af1158015610db7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ddb9190611ddb565b505050565b5f546001600160a01b03163314610e095760405162461bcd60e51b81526004016105f990611d60565b6001600160a01b038116610e6e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105f9565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610f295760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105f9565b6001600160a01b038216610f8a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105f9565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661104e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105f9565b6001600160a01b0382166110b05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105f9565b5f81116111115760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105f9565b5f80546001600160a01b0385811691161480159061113c57505f546001600160a01b03848116911614155b1561162f576111816103e861117b600e546012541161117057600d546012541161116857600754611174565b600854611174565b600b545b859061194b565b906119d0565b6001600160a01b0385165f9081526004602052604090205490915060ff1680156111b957506019546001600160a01b03848116911614155b80156111dd57506001600160a01b0383165f9081526003602052604090205460ff16155b156112e4576015548211156112345760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016105f9565b60165482611256856001600160a01b03165f9081526001602052604090205490565b6112609190611df6565b11156112ae5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105f9565b4360065460016112be9190611df6565b11156112cf57823b156112cf575f80fd5b60128054905f6112de83611e09565b91905055505b6001600160a01b0383165f9081526004602052604090205460ff1615801561132457506001600160a01b0383165f9081526003602052604090205460ff16155b156113a3576016548261134b856001600160a01b03165f9081526001602052604090205490565b6113559190611df6565b11156113a35760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105f9565b6001600160a01b0383165f9081526004602052604090205460ff1680156113d357506001600160a01b0384163014155b15611414576114116103e861117b6010546012541161140757600f54601254116113ff57600954611174565b600a54611174565b600c54859061194b565b90505b6001600160a01b0384165f9081526004602052604090205460ff1615801561145457506001600160a01b0383165f9081526004602052604090205460ff16155b801561146957506001600160a01b0384163014155b1561147157505f5b305f90815260016020526040902054601a54600160c01b900460ff1680156114a35750601a54600160b01b900460ff16155b80156114c657506001600160a01b0384165f9081526004602052604090205460ff165b80156114db5750601a54600160b81b900460ff165b80156114e8575060175481115b80156114f75750601154601254115b156115a15760145443111561150b575f6013555b6002601354106115565760405162461bcd60e51b815260206004820152601660248201527513db9b1e480c8810d04818985b185b98d9481cd95b1b60521b60448201526064016105f9565b61157361156e8461156984601854611a11565b611a11565b6117a4565b4780156115835761158347611914565b60138054905f61159283611e09565b9091555050436014555061162d565b601a54600160b01b900460ff161580156115d257506001600160a01b0384165f9081526004602052604090205460ff165b80156115e75750601a54600160b81b900460ff165b80156115f4575060175481115b80156116035750601154601254115b1561162d5761161b61156e8461156984601854611a11565b47801561162b5761162b47611914565b505b505b80156116a757305f9081526001602052604090205461164e9082611a25565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061169e9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546116c99083611a83565b6001600160a01b0385165f9081526001602052604090205561170c6116ee8383611a83565b6001600160a01b0385165f9081526001602052604090205490611a25565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6117558585611a83565b60405190815260200160405180910390a350505050565b5f818484111561178f5760405162461bcd60e51b81526004016105f99190611af0565b505f61179b8486611e21565b95945050505050565b601a805460ff60b01b1916600160b01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106117ea576117ea611e34565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611841573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118659190611d95565b8160018151811061187857611878611e34565b6001600160a01b03928316602091820292909201015260195461189e9130911684610ec7565b60195460405163791ac94760e01b81526001600160a01b039091169063791ac947906118d69085905f90869030904290600401611e48565b5f604051808303815f87803b1580156118ed575f80fd5b505af11580156118ff573d5f803e3d5ffd5b5050601a805460ff60b01b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561078e573d5f803e3d5ffd5b5f825f0361195a57505f6105a7565b5f6119658385611d49565b9050826119728583611eb9565b146119c95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105f9565b9392505050565b5f6119c983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ac4565b5f818311611a1f57826119c9565b50919050565b5f80611a318385611df6565b9050838110156119c95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105f9565b5f6119c983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061176c565b5f8183611ae45760405162461bcd60e51b81526004016105f99190611af0565b505f61179b8486611eb9565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146108f5575f80fd5b5f8060408385031215611b4a575f80fd5b8235611b5581611b25565b946020939093013593505050565b5f805f60608486031215611b75575f80fd5b8335611b8081611b25565b92506020840135611b9081611b25565b929592945050506040919091013590565b80151581146108f5575f80fd5b5f60208284031215611bbe575f80fd5b81356119c981611ba1565b5f60208284031215611bd9575f80fd5b81356119c981611b25565b5f8060408385031215611bf5575f80fd5b8235611c0081611b25565b91506020830135611c1081611ba1565b809150509250929050565b5f8060408385031215611c2c575f80fd5b8235611c3781611b25565b91506020830135611c1081611b25565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611c9557815f1904821115611c7b57611c7b611c47565b80851615611c8857918102915b93841c9390800290611c60565b509250929050565b5f82611cab575060016105a7565b81611cb757505f6105a7565b8160018114611ccd5760028114611cd757611cf3565b60019150506105a7565b60ff841115611ce857611ce8611c47565b50506001821b6105a7565b5060208310610133831016604e8410600b8410161715611d16575081810a6105a7565b611d208383611c5b565b805f1904821115611d3357611d33611c47565b029392505050565b5f6119c960ff841683611c9d565b80820281158282048414176105a7576105a7611c47565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611da5575f80fd5b81516119c981611b25565b5f805f60608486031215611dc2575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611deb575f80fd5b81516119c981611ba1565b808201808211156105a7576105a7611c47565b5f60018201611e1a57611e1a611c47565b5060010190565b818103818111156105a7576105a7611c47565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611e985784516001600160a01b031683529383019391830191600101611e73565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611ed357634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207f37c961c7f313631b82c4e87d78474f4ce72bcf113a5956ac178ced4b52f7de64736f6c63430008190033

Deployed Bytecode

0x6080604052600436106101bd575f3560e01c80637d1db4a5116100f2578063a3019cf811610092578063c7a4bdf711610062578063c7a4bdf7146104e6578063dd62ed3e14610506578063f2fde38b1461054a578063f5b3c3bf14610569575f80fd5b8063a3019cf814610474578063a9059cbb14610493578063a910c945146104b2578063bf474bed146104d1575f80fd5b80638a8c523c116100cd5780638a8c523c146103ff5780638da5cb5b146104135780638f9a55c01461042f57806395d89b4114610444575f80fd5b80637d1db4a5146103b7578063887875c9146103cc578063896f1a95146103eb575f80fd5b80633b23a5ca1161015d57806353bc13dc1161013857806353bc13dc1461033057806370a082311461034f578063715018a6146103835780637ab3c76214610397575f80fd5b80633b23a5ca146102c657806349bd5a5e146102e557806351bc3c851461031c575f80fd5b806318160ddd1161019857806318160ddd146102625780631d6f96551461027657806323b872dd1461028c578063313ce567146102ab575f80fd5b806306fdde03146101c8578063095ea7b3146102105780630faee56f1461023f575f80fd5b366101c457005b5f80fd5b3480156101d3575f80fd5b5060408051808201909152600e81526d417574697374696320467572696560901b60208201525b6040516102079190611af0565b60405180910390f35b34801561021b575f80fd5b5061022f61022a366004611b39565b610597565b6040519015158152602001610207565b34801561024a575f80fd5b5061025460185481565b604051908152602001610207565b34801561026d575f80fd5b506102546105ad565b348015610281575f80fd5b5061028a6105d0565b005b348015610297575f80fd5b5061022f6102a6366004611b63565b610693565b3480156102b6575f80fd5b5060405160098152602001610207565b3480156102d1575f80fd5b5061028a6102e0366004611bae565b6106fa565b3480156102f0575f80fd5b50601a54610304906001600160a01b031681565b6040516001600160a01b039091168152602001610207565b348015610327575f80fd5b5061028a610741565b34801561033b575f80fd5b5061028a61034a366004611bc9565b610792565b34801561035a575f80fd5b50610254610369366004611bc9565b6001600160a01b03165f9081526001602052604090205490565b34801561038e575f80fd5b5061028a6107de565b3480156103a2575f80fd5b50601a5461022f90600160c01b900460ff1681565b3480156103c2575f80fd5b5061025460155481565b3480156103d7575f80fd5b5061028a6103e6366004611bae565b61084f565b3480156103f6575f80fd5b5061028a610896565b34801561040a575f80fd5b5061028a6108f8565b34801561041e575f80fd5b505f546001600160a01b0316610304565b34801561043a575f80fd5b5061025460165481565b34801561044f575f80fd5b50604080518082019091526008815267415554495354494360c01b60208201526101fa565b34801561047f575f80fd5b5061028a61048e366004611be4565b610cdf565b34801561049e575f80fd5b5061022f6104ad366004611b39565b610d32565b3480156104bd575f80fd5b5061028a6104cc366004611b39565b610d3e565b3480156104dc575f80fd5b5061025460175481565b3480156104f1575f80fd5b50601a5461022f90600160a01b900460ff1681565b348015610511575f80fd5b50610254610520366004611c1b565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610555575f80fd5b5061028a610564366004611bc9565b610de0565b348015610574575f80fd5b5061022f610583366004611bc9565b60046020525f908152604090205460ff1681565b5f6105a3338484610ec7565b5060015b92915050565b5f6105ba6009600a611d3b565b6105cb9066017e9d8602b400611d49565b905090565b5f546001600160a01b031633146106025760405162461bcd60e51b81526004016105f990611d60565b60405180910390fd5b61060e6009600a611d3b565b61061f9066017e9d8602b400611d49565b60155561062e6009600a611d3b565b61063f9066017e9d8602b400611d49565b6016557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61066f6009600a611d3b565b6106809066017e9d8602b400611d49565b60405190815260200160405180910390a1565b5f61069f848484610fea565b6106f084336106eb85604051806060016040528060288152602001611ed9602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061176c565b610ec7565b5060019392505050565b5f546001600160a01b031633146107235760405162461bcd60e51b81526004016105f990611d60565b601a8054911515600160c01b0260ff60c01b19909216919091179055565b6005546001600160a01b0316336001600160a01b031614610760575f80fd5b305f90815260016020526040902054801561077e5761077e816117a4565b47801561078e5761078e81611914565b5050565b5f546001600160a01b031633146107bb5760405162461bcd60e51b81526004016105f990611d60565b6001600160a01b03165f908152600460205260409020805460ff19166001179055565b5f546001600160a01b031633146108075760405162461bcd60e51b81526004016105f990611d60565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146108785760405162461bcd60e51b81526004016105f990611d60565b601a8054911515600160a01b0260ff60a01b19909216919091179055565b601a54600160a01b900460ff16806108b75750601a54600160a81b900460ff165b6108bf575f80fd5b6005546040516001600160a01b03909116904780156108fc02915f818181858888f193505050501580156108f5573d5f803e3d5ffd5b50565b5f546001600160a01b031633146109215760405162461bcd60e51b81526004016105f990611d60565b601a54600160a81b900460ff161561097b5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105f9565b601980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556109c79030906109b66009600a611d3b565b6106eb9066017e9d8602b400611d49565b60195f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a17573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a3b9190611d95565b6001600160a01b031663c9c653963060195f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610abe9190611d95565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610b08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b2c9190611d95565b601a80546001600160a01b039283166001600160a01b0319909116811782555f908152600460209081526040808320805460ff199081166001908117909255945486168452600390925290912080549092161790556019541663f305d7194730610baa816001600160a01b03165f9081526001602052604090205490565b5f80610bbd5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610c23573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c489190611db0565b5050601a5460195460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610c9d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc19190611ddb565b50601a805462ff00ff60a81b19166201000160a81b17905543600655565b5f546001600160a01b03163314610d085760405162461bcd60e51b81526004016105f990611d60565b6001600160a01b03919091165f908152600360205260409020805460ff1916911515919091179055565b5f6105a3338484610fea565b601a54600160a01b900460ff1680610d5f5750601a54600160a81b900460ff165b610d67575f80fd5b60055460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303815f875af1158015610db7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ddb9190611ddb565b505050565b5f546001600160a01b03163314610e095760405162461bcd60e51b81526004016105f990611d60565b6001600160a01b038116610e6e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105f9565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610f295760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105f9565b6001600160a01b038216610f8a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105f9565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661104e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105f9565b6001600160a01b0382166110b05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105f9565b5f81116111115760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105f9565b5f80546001600160a01b0385811691161480159061113c57505f546001600160a01b03848116911614155b1561162f576111816103e861117b600e546012541161117057600d546012541161116857600754611174565b600854611174565b600b545b859061194b565b906119d0565b6001600160a01b0385165f9081526004602052604090205490915060ff1680156111b957506019546001600160a01b03848116911614155b80156111dd57506001600160a01b0383165f9081526003602052604090205460ff16155b156112e4576015548211156112345760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016105f9565b60165482611256856001600160a01b03165f9081526001602052604090205490565b6112609190611df6565b11156112ae5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105f9565b4360065460016112be9190611df6565b11156112cf57823b156112cf575f80fd5b60128054905f6112de83611e09565b91905055505b6001600160a01b0383165f9081526004602052604090205460ff1615801561132457506001600160a01b0383165f9081526003602052604090205460ff16155b156113a3576016548261134b856001600160a01b03165f9081526001602052604090205490565b6113559190611df6565b11156113a35760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105f9565b6001600160a01b0383165f9081526004602052604090205460ff1680156113d357506001600160a01b0384163014155b15611414576114116103e861117b6010546012541161140757600f54601254116113ff57600954611174565b600a54611174565b600c54859061194b565b90505b6001600160a01b0384165f9081526004602052604090205460ff1615801561145457506001600160a01b0383165f9081526004602052604090205460ff16155b801561146957506001600160a01b0384163014155b1561147157505f5b305f90815260016020526040902054601a54600160c01b900460ff1680156114a35750601a54600160b01b900460ff16155b80156114c657506001600160a01b0384165f9081526004602052604090205460ff165b80156114db5750601a54600160b81b900460ff165b80156114e8575060175481115b80156114f75750601154601254115b156115a15760145443111561150b575f6013555b6002601354106115565760405162461bcd60e51b815260206004820152601660248201527513db9b1e480c8810d04818985b185b98d9481cd95b1b60521b60448201526064016105f9565b61157361156e8461156984601854611a11565b611a11565b6117a4565b4780156115835761158347611914565b60138054905f61159283611e09565b9091555050436014555061162d565b601a54600160b01b900460ff161580156115d257506001600160a01b0384165f9081526004602052604090205460ff165b80156115e75750601a54600160b81b900460ff165b80156115f4575060175481115b80156116035750601154601254115b1561162d5761161b61156e8461156984601854611a11565b47801561162b5761162b47611914565b505b505b80156116a757305f9081526001602052604090205461164e9082611a25565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061169e9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546116c99083611a83565b6001600160a01b0385165f9081526001602052604090205561170c6116ee8383611a83565b6001600160a01b0385165f9081526001602052604090205490611a25565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6117558585611a83565b60405190815260200160405180910390a350505050565b5f818484111561178f5760405162461bcd60e51b81526004016105f99190611af0565b505f61179b8486611e21565b95945050505050565b601a805460ff60b01b1916600160b01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106117ea576117ea611e34565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611841573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118659190611d95565b8160018151811061187857611878611e34565b6001600160a01b03928316602091820292909201015260195461189e9130911684610ec7565b60195460405163791ac94760e01b81526001600160a01b039091169063791ac947906118d69085905f90869030904290600401611e48565b5f604051808303815f87803b1580156118ed575f80fd5b505af11580156118ff573d5f803e3d5ffd5b5050601a805460ff60b01b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561078e573d5f803e3d5ffd5b5f825f0361195a57505f6105a7565b5f6119658385611d49565b9050826119728583611eb9565b146119c95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105f9565b9392505050565b5f6119c983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ac4565b5f818311611a1f57826119c9565b50919050565b5f80611a318385611df6565b9050838110156119c95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105f9565b5f6119c983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061176c565b5f8183611ae45760405162461bcd60e51b81526004016105f99190611af0565b505f61179b8486611eb9565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146108f5575f80fd5b5f8060408385031215611b4a575f80fd5b8235611b5581611b25565b946020939093013593505050565b5f805f60608486031215611b75575f80fd5b8335611b8081611b25565b92506020840135611b9081611b25565b929592945050506040919091013590565b80151581146108f5575f80fd5b5f60208284031215611bbe575f80fd5b81356119c981611ba1565b5f60208284031215611bd9575f80fd5b81356119c981611b25565b5f8060408385031215611bf5575f80fd5b8235611c0081611b25565b91506020830135611c1081611ba1565b809150509250929050565b5f8060408385031215611c2c575f80fd5b8235611c3781611b25565b91506020830135611c1081611b25565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611c9557815f1904821115611c7b57611c7b611c47565b80851615611c8857918102915b93841c9390800290611c60565b509250929050565b5f82611cab575060016105a7565b81611cb757505f6105a7565b8160018114611ccd5760028114611cd757611cf3565b60019150506105a7565b60ff841115611ce857611ce8611c47565b50506001821b6105a7565b5060208310610133831016604e8410600b8410161715611d16575081810a6105a7565b611d208383611c5b565b805f1904821115611d3357611d33611c47565b029392505050565b5f6119c960ff841683611c9d565b80820281158282048414176105a7576105a7611c47565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611da5575f80fd5b81516119c981611b25565b5f805f60608486031215611dc2575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611deb575f80fd5b81516119c981611ba1565b808201808211156105a7576105a7611c47565b5f60018201611e1a57611e1a611c47565b5060010190565b818103818111156105a7576105a7611c47565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611e985784516001600160a01b031683529383019391830191600101611e73565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611ed357634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207f37c961c7f313631b82c4e87d78474f4ce72bcf113a5956ac178ced4b52f7de64736f6c63430008190033

Deployed Bytecode Sourcemap

3920:10083:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6203:83;;;;;;;;;;-1:-1:-1;6273:5:0;;;;;;;;;;;;-1:-1:-1;;;6273:5:0;;;;6203:83;;;;;;;:::i;:::-;;;;;;;;7036:161;;;;;;;;;;-1:-1:-1;7036:161:0;;;;;:::i;:::-;;:::i;:::-;;;1058:14:1;;1051:22;1033:41;;1021:2;1006:18;7036:161:0;893:187:1;5305:57:0;;;;;;;;;;;;;;;;;;;1231:25:1;;;1219:2;1204:18;5305:57:0;1085:177:1;6480:95:0;;;;;;;;;;;;;:::i;12875:160::-;;;;;;;;;;;;;:::i;:::-;;7205:313;;;;;;;;;;-1:-1:-1;7205:313:0;;;;;:::i;:::-;;:::i;6389:83::-;;;;;;;;;;-1:-1:-1;6389:83:0;;4899:1;1870:36:1;;1858:2;1843:18;6389:83:0;1728:184:1;12085:92:0;;;;;;;;;;-1:-1:-1;12085:92:0;;;;;:::i;:::-;;:::i;5420:28::-;;;;;;;;;;-1:-1:-1;5420:28:0;;;;-1:-1:-1;;;;;5420:28:0;;;;;;-1:-1:-1;;;;;2450:32:1;;;2432:51;;2420:2;2405:18;5420:28:0;2286:203:1;12519:348:0;;;;;;;;;;;;;:::i;7869:96::-;;;;;;;;;;-1:-1:-1;7869:96:0;;;;;:::i;:::-;;:::i;6583:119::-;;;;;;;;;;-1:-1:-1;6583:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6676:18:0;6649:7;6676:18;;;:9;:18;;;;;;;6583:119;2751:148;;;;;;;;;;;;;:::i;5598:27::-;;;;;;;;;;-1:-1:-1;5598:27:0;;;;-1:-1:-1;;;5598:27:0;;;;;;5100:61;;;;;;;;;;;;;;;;11855:94;;;;;;;;;;-1:-1:-1;11855:94:0;;;;;:::i;:::-;;:::i;12185:143::-;;;;;;;;;;;;;:::i;13143:820::-;;;;;;;;;;;;;:::i;2537:79::-;;;;;;;;;;-1:-1:-1;2575:7:0;2602:6;-1:-1:-1;;;;;2602:6:0;2537:79;;5168:61;;;;;;;;;;;;;;;;6294:87;;;;;;;;;;-1:-1:-1;6366:7:0;;;;;;;;;;;;-1:-1:-1;;;6366:7:0;;;;6294:87;;11957:120;;;;;;;;;;-1:-1:-1;11957:120:0;;;;;:::i;:::-;;:::i;6710:167::-;;;;;;;;;;-1:-1:-1;6710:167:0;;;;;:::i;:::-;;:::i;12336:174::-;;;;;;;;;;-1:-1:-1;12336:174:0;;;;;:::i;:::-;;:::i;5236:62::-;;;;;;;;;;;;;;;;5455:32;;;;;;;;;;-1:-1:-1;5455:32:0;;;;-1:-1:-1;;;5455:32:0;;;;;;6885:143;;;;;;;;;;-1:-1:-1;6885:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6993:18:0;;;6966:7;6993:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6885:143;2907:244;;;;;;;;;;-1:-1:-1;2907:244:0;;;;;:::i;:::-;;:::i;4193:43::-;;;;;;;;;;-1:-1:-1;4193:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7036:161;7111:4;7128:39;372:10;7151:7;7160:6;7128:8;:39::i;:::-;-1:-1:-1;7185:4:0;7036:161;;;;;:::o;6480:95::-;6533:7;4960:13;4899:1;4960:2;:13;:::i;:::-;4942:31;;:15;:31;:::i;:::-;6553:14;;6480:95;:::o;12875:160::-;2664:6;;-1:-1:-1;;;;;2664:6:0;372:10;2664:22;2656:67;;;;-1:-1:-1;;;2656:67:0;;;;;;;:::i;:::-;;;;;;;;;4960:13:::1;4899:1;4960:2;:13;:::i;:::-;4942:31;::::0;:15:::1;:31;:::i;:::-;12929:12;:22:::0;4960:13:::1;4899:1;4960:2;:13;:::i;:::-;4942:31;::::0;:15:::1;:31;:::i;:::-;12962:14;:22:::0;13000:27:::1;4960:13;4899:1;4960:2;:13;:::i;:::-;4942:31;::::0;:15:::1;:31;:::i;:::-;13000:27;::::0;1231:25:1;;;1219:2;1204:18;13000:27:0::1;;;;;;;12875:160::o:0;7205:313::-;7303:4;7320:36;7330:6;7338:9;7349:6;7320:9;:36::i;:::-;7367:121;7376:6;372:10;7398:89;7436:6;7398:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7398:19:0;;;;;;:11;:19;;;;;;;;372:10;7398:33;;;;;;;;;;:37;:89::i;:::-;7367:8;:121::i;:::-;-1:-1:-1;7506:4:0;7205:313;;;;;:::o;12085:92::-;2664:6;;-1:-1:-1;;;;;2664:6:0;372:10;2664:22;2656:67;;;;-1:-1:-1;;;2656:67:0;;;;;;;:::i;:::-;12151:8:::1;:18:::0;;;::::1;;-1:-1:-1::0;;;12151:18:0::1;-1:-1:-1::0;;;;12151:18:0;;::::1;::::0;;;::::1;::::0;;12085:92::o;12519:348::-;12583:10;;-1:-1:-1;;;;;12583:10:0;372;-1:-1:-1;;;;;12569:24:0;;12561:33;;;;;;12644:4;12605:20;6676:18;;;:9;:18;;;;;;12664:14;;12661:73;;12692:30;12709:12;12692:16;:30::i;:::-;12763:21;12798:12;;12795:65;;12824:24;12837:10;12824:12;:24::i;:::-;12550:317;;12519:348::o;7869:96::-;2664:6;;-1:-1:-1;;;;;2664:6:0;372:10;2664:22;2656:67;;;;-1:-1:-1;;;2656:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7934:16:0::1;;::::0;;;:10:::1;:16;::::0;;;;:23;;-1:-1:-1;;7934:23:0::1;7953:4;7934:23;::::0;;7869:96::o;2751:148::-;2664:6;;-1:-1:-1;;;;;2664:6:0;372:10;2664:22;2656:67;;;;-1:-1:-1;;;2656:67:0;;;;;;;:::i;:::-;2858:1:::1;2842:6:::0;;2821:40:::1;::::0;-1:-1:-1;;;;;2842:6:0;;::::1;::::0;2821:40:::1;::::0;2858:1;;2821:40:::1;2889:1;2872:19:::0;;-1:-1:-1;;;;;;2872:19:0::1;::::0;;2751:148::o;11855:94::-;2664:6;;-1:-1:-1;;;;;2664:6:0;372:10;2664:22;2656:67;;;;-1:-1:-1;;;2656:67:0;;;;;;;:::i;:::-;11919:12:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;11919:22:0::1;-1:-1:-1::0;;;;11919:22:0;;::::1;::::0;;;::::1;::::0;;11855:94::o;12185:143::-;12230:12;;-1:-1:-1;;;12230:12:0;;;;;:27;;-1:-1:-1;12246:11:0;;-1:-1:-1;;;12246:11:0;;;;12230:27;12222:36;;;;;;12277:10;;12269:51;;-1:-1:-1;;;;;12277:10:0;;;;12298:21;12269:51;;;;;12277:10;12269:51;12277:10;12269:51;12298:21;12277:10;12269:51;;;;;;;;;;;;;;;;;;;;;12185:143::o;13143:820::-;2664:6;;-1:-1:-1;;;;;2664:6:0;372:10;2664:22;2656:67;;;;-1:-1:-1;;;2656:67:0;;;;;;;:::i;:::-;13209:11:::1;::::0;-1:-1:-1;;;13209:11:0;::::1;;;13208:12;13200:47;;;::::0;-1:-1:-1;;;13200:47:0;;5771:2:1;13200:47:0::1;::::0;::::1;5753:21:1::0;5810:2;5790:18;;;5783:30;5849:25;5829:18;;;5822:53;5892:18;;13200:47:0::1;5569:347:1::0;13200:47:0::1;13258:15;:80:::0;;-1:-1:-1;;;;;;13258:80:0::1;13295:42;13258:80:::0;;::::1;::::0;;;13349:58:::1;::::0;13366:4:::1;::::0;4960:13:::1;4899:1;4960:2;:13;:::i;:::-;4942:31;::::0;:15:::1;:31;:::i;13349:58::-;13452:15;;;;;;;;;-1:-1:-1::0;;;;;13452:15:0::1;-1:-1:-1::0;;;;;13452:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13434:55:0::1;;13498:4;13505:15;;;;;;;;;-1:-1:-1::0;;;;;13505:15:0::1;-1:-1:-1::0;;;;;13505:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13434:94;::::0;-1:-1:-1;;;;;;13434:94:0::1;::::0;;;;;;-1:-1:-1;;;;;6407:15:1;;;13434:94:0::1;::::0;::::1;6389:34:1::0;6459:15;;6439:18;;;6432:43;6324:18;;13434:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13418:13;:110:::0;;-1:-1:-1;;;;;13418:110:0;;::::1;-1:-1:-1::0;;;;;;13418:110:0;;::::1;::::0;::::1;::::0;;:13:::1;13539:34:::0;;;:10:::1;:34;::::0;;;;;;;:41;;-1:-1:-1;;13539:41:0;;::::1;13418:110:::0;13539:41;;::::1;::::0;;;13617:13;;;::::1;13591:41:::0;;:17:::1;:41:::0;;;;;;:48;;;;::::1;;::::0;;13650:15:::1;::::0;::::1;:31;13689:21;13720:4;13726:24;13720:4:::0;-1:-1:-1;;;;;6676:18:0;6649:7;6676:18;;;:9;:18;;;;;;;6583:119;13726:24:::1;13751:1;13753::::0;13755:7:::1;2575::::0;2602:6;-1:-1:-1;;;;;2602:6:0;;2537:79;13755:7:::1;13650:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13650:129:0;;;-1:-1:-1;;;;;6845:15:1;;;13650:129:0::1;::::0;::::1;6827:34:1::0;6877:18;;;6870:34;;;;6920:18;;;6913:34;;;;6963:18;;;6956:34;7027:15;;;7006:19;;;6999:44;13763:15:0::1;7059:19:1::0;;;7052:35;6761:19;;13650:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13797:13:0::1;::::0;13828:15:::1;::::0;13790:71:::1;::::0;-1:-1:-1;;;13790:71:0;;-1:-1:-1;;;;;13828:15:0;;::::1;13790:71;::::0;::::1;7583:51:1::0;-1:-1:-1;;7650:18:1;;;7643:34;13797:13:0;::::1;::::0;-1:-1:-1;13790:29:0::1;::::0;7556:18:1;;13790:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13872:11:0::1;:18:::0;;-1:-1:-1;;;;13901:18:0;-1:-1:-1;;;13901:18:0;;;13943:12:::1;13930:10;:25:::0;13143:820::o;11957:120::-;2664:6;;-1:-1:-1;;;;;2664:6:0;372:10;2664:22;2656:67;;;;-1:-1:-1;;;2656:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12037:23:0;;;::::1;;::::0;;;:17:::1;:23;::::0;;;;:32;;-1:-1:-1;;12037:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11957:120::o;6710:167::-;6788:4;6805:42;372:10;6829:9;6840:6;6805:9;:42::i;12336:174::-;12415:12;;-1:-1:-1;;;12415:12:0;;;;;:27;;-1:-1:-1;12431:11:0;;-1:-1:-1;;;12431:11:0;;;;12415:27;12407:36;;;;;;12482:10;;12454:48;;-1:-1:-1;;;12454:48:0;;-1:-1:-1;;;;;12482:10:0;;;12454:48;;;7583:51:1;7650:18;;;7643:34;;;12454:27:0;;;;;;7556:18:1;;12454:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12336:174;;:::o;2907:244::-;2664:6;;-1:-1:-1;;;;;2664:6:0;372:10;2664:22;2656:67;;;;-1:-1:-1;;;2656:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2996:22:0;::::1;2988:73;;;::::0;-1:-1:-1;;;2988:73:0;;8427:2:1;2988:73:0::1;::::0;::::1;8409:21:1::0;8466:2;8446:18;;;8439:30;8505:34;8485:18;;;8478:62;-1:-1:-1;;;8556:18:1;;;8549:36;8602:19;;2988:73:0::1;8225:402:1::0;2988:73:0::1;3098:6;::::0;;3077:38:::1;::::0;-1:-1:-1;;;;;3077:38:0;;::::1;::::0;3098:6;::::1;::::0;3077:38:::1;::::0;::::1;3126:6;:17:::0;;-1:-1:-1;;;;;;3126:17:0::1;-1:-1:-1::0;;;;;3126:17:0;;;::::1;::::0;;;::::1;::::0;;2907:244::o;7526:335::-;-1:-1:-1;;;;;7619:19:0;;7611:68;;;;-1:-1:-1;;;7611:68:0;;8834:2:1;7611:68:0;;;8816:21:1;8873:2;8853:18;;;8846:30;8912:34;8892:18;;;8885:62;-1:-1:-1;;;8963:18:1;;;8956:34;9007:19;;7611:68:0;8632:400:1;7611:68:0;-1:-1:-1;;;;;7698:21:0;;7690:68;;;;-1:-1:-1;;;7690:68:0;;9239:2:1;7690:68:0;;;9221:21:1;9278:2;9258:18;;;9251:30;9317:34;9297:18;;;9290:62;-1:-1:-1;;;9368:18:1;;;9361:32;9410:19;;7690:68:0;9037:398:1;7690:68:0;-1:-1:-1;;;;;7769:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7821:32;;1231:25:1;;;7821:32:0;;1204:18:1;7821:32:0;;;;;;;7526:335;;;:::o;7973:3072::-;-1:-1:-1;;;;;8061:18:0;;8053:68;;;;-1:-1:-1;;;8053:68:0;;9642:2:1;8053:68:0;;;9624:21:1;9681:2;9661:18;;;9654:30;9720:34;9700:18;;;9693:62;-1:-1:-1;;;9771:18:1;;;9764:35;9816:19;;8053:68:0;9440:401:1;8053:68:0;-1:-1:-1;;;;;8140:16:0;;8132:64;;;;-1:-1:-1;;;8132:64:0;;10048:2:1;8132:64:0;;;10030:21:1;10087:2;10067:18;;;10060:30;10126:34;10106:18;;;10099:62;-1:-1:-1;;;10177:18:1;;;10170:33;10220:19;;8132:64:0;9846:399:1;8132:64:0;8224:1;8215:6;:10;8207:64;;;;-1:-1:-1;;;8207:64:0;;10452:2:1;8207:64:0;;;10434:21:1;10491:2;10471:18;;;10464:30;10530:34;10510:18;;;10503:62;-1:-1:-1;;;10581:18:1;;;10574:39;10630:19;;8207:64:0;10250:405:1;8207:64:0;8282:17;2602:6;;-1:-1:-1;;;;;8318:15:0;;;2602:6;;8318:15;;;;:32;;-1:-1:-1;2575:7:0;2602:6;-1:-1:-1;;;;;8337:13:0;;;2602:6;;8337:13;;8318:32;8314:2375;;;8379:121;8495:4;8379:111;8402:15;;8391:9;;:26;8390:99;;8447:12;;8436:9;;:23;8435:53;;8474:14;;8390:99;;8435:53;8462:10;;8390:99;;;8420:12;;8390:99;8379:6;;:10;:111::i;:::-;:115;;:121::i;:::-;-1:-1:-1;;;;;8521:16:0;;;;;;:10;:16;;;;;;8367:133;;-1:-1:-1;8521:16:0;;:50;;;;-1:-1:-1;8555:15:0;;-1:-1:-1;;;;;8541:30:0;;;8555:15;;8541:30;;8521:50;:77;;;;-1:-1:-1;;;;;;8577:21:0;;;;;;:17;:21;;;;;;;;8575:23;8521:77;8517:430;;;8638:12;;8628:6;:22;;8620:60;;;;-1:-1:-1;;;8620:60:0;;10862:2:1;8620:60:0;;;10844:21:1;10901:2;10881:18;;;10874:30;10940:27;10920:18;;;10913:55;10985:18;;8620:60:0;10660:349:1;8620:60:0;8733:14;;8723:6;8707:13;8717:2;-1:-1:-1;;;;;6676:18:0;6649:7;6676:18;;;:9;:18;;;;;;;6583:119;8707:13;:22;;;;:::i;:::-;:40;;8699:79;;;;-1:-1:-1;;;8699:79:0;;11346:2:1;8699:79:0;;;11328:21:1;11385:2;11365:18;;;11358:30;11424:28;11404:18;;;11397:56;11470:18;;8699:79:0;11144:350:1;8699:79:0;8821:12;8803:10;;8816:1;8803:14;;;;:::i;:::-;:30;8799:103;;;11292:20;;11340:8;8858:24;;;;;;8920:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8517:430;-1:-1:-1;;;;;8968:14:0;;;;;;:10;:14;;;;;;;;8967:15;:42;;;;-1:-1:-1;;;;;;8988:21:0;;;;;;:17;:21;;;;;;;;8986:23;8967:42;8963:162;;;9064:14;;9054:6;9038:13;9048:2;-1:-1:-1;;;;;6676:18:0;6649:7;6676:18;;;:9;:18;;;;;;;6583:119;9038:13;:22;;;;:::i;:::-;:40;;9030:79;;;;-1:-1:-1;;;9030:79:0;;11346:2:1;9030:79:0;;;11328:21:1;11385:2;11365:18;;;11358:30;11424:28;11404:18;;;11397:56;11470:18;;9030:79:0;11144:350:1;9030:79:0;-1:-1:-1;;;;;9144:14:0;;;;;;:10;:14;;;;;;;;:38;;;;-1:-1:-1;;;;;;9162:20:0;;9177:4;9162:20;;9144:38;9141:216;;;9215:126;9336:4;9215:116;9238:16;;9227:9;;:27;9226:104;;9285:13;;9274:9;;:24;9273:56;;9314:15;;9226:104;;9273:56;9301:11;;9226:104;;;9257:13;;9215:6;;:10;:116::i;:126::-;9203:138;;9141:216;-1:-1:-1;;;;;9371:16:0;;;;;;:10;:16;;;;;;;;9370:17;:36;;;;-1:-1:-1;;;;;;9392:14:0;;;;;;:10;:14;;;;;;;;9391:15;9370:36;:60;;;;-1:-1:-1;;;;;;9410:20:0;;9425:4;9410:20;;9370:60;9366:115;;;-1:-1:-1;9464:1:0;9366:115;9546:4;9497:28;6676:18;;;:9;:18;;;;;;9571:8;;-1:-1:-1;;;9571:8:0;;;;:19;;;;-1:-1:-1;9584:6:0;;-1:-1:-1;;;9584:6:0;;;;9583:7;9571:19;:37;;;;-1:-1:-1;;;;;;9594:14:0;;;;;;:10;:14;;;;;;;;9571:37;:52;;;;-1:-1:-1;9612:11:0;;-1:-1:-1;;;9612:11:0;;;;9571:52;:94;;;;;9648:17;;9627:20;:38;9571:94;:126;;;;;9679:18;;9669:9;;:28;9571:126;9567:1111;;;9737:13;;9722:12;:28;9718:90;;;9787:1;9775:9;:13;9718:90;9845:1;9834:9;;:12;9826:47;;;;-1:-1:-1;;;9826:47:0;;11841:2:1;9826:47:0;;;11823:21:1;11880:2;11860:18;;;11853:30;-1:-1:-1;;;11899:18:1;;;11892:52;11961:18;;9826:47:0;11639:346:1;9826:47:0;9892:67;9909:49;9913:6;9920:37;9924:20;9945:11;;9920:3;:37::i;:::-;9909:3;:49::i;:::-;9892:16;:67::i;:::-;10007:21;10050:22;;10047:105;;10097:35;10110:21;10097:12;:35::i;:::-;10170:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;10216:12:0;10200:13;:28;-1:-1:-1;9567:1111:0;;;10269:6;;-1:-1:-1;;;10269:6:0;;;;10268:7;:25;;;;-1:-1:-1;;;;;;10279:14:0;;;;;;:10;:14;;;;;;;;10268:25;:40;;;;-1:-1:-1;10297:11:0;;-1:-1:-1;;;10297:11:0;;;;10268:40;:82;;;;;10333:17;;10312:20;:38;10268:82;:114;;;;;10364:18;;10354:9;;:28;10268:114;10265:413;;;10403:67;10420:49;10424:6;10431:37;10435:20;10456:11;;10431:3;:37::i;10403:67::-;10518:21;10561:22;;10558:105;;10608:35;10621:21;10608:12;:35::i;:::-;10384:294;10265:413;8352:2337;8314:2375;10704:11;;10701:161;;10772:4;10754:24;;;;:9;:24;;;;;;:39;;10783:9;10754:28;:39::i;:::-;10747:4;10729:24;;;;:9;:24;;;;;;;:64;;;;10811:39;;-1:-1:-1;;;;;10811:39:0;;;;;;;10840:9;1231:25:1;;1219:2;1204:18;;1085:177;10811:39:0;;;;;;;;10701:161;-1:-1:-1;;;;;10888:15:0;;;;;;:9;:15;;;;;;:27;;10908:6;10888:19;:27::i;:::-;-1:-1:-1;;;;;10872:15:0;;;;;;:9;:15;;;;;:43;10940:40;10958:21;:6;10969:9;10958:10;:21::i;:::-;-1:-1:-1;;;;;10940:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10926:13:0;;;;;;;:9;:13;;;;;:54;;;;10996:41;;;11015:21;:6;11026:9;11015:10;:21::i;:::-;10996:41;;1231:25:1;;;1219:2;1204:18;10996:41:0;;;;;;;8042:3003;7973:3072;;;:::o;1429:190::-;1515:7;1551:12;1543:6;;;;1535:29;;;;-1:-1:-1;;;1535:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1575:9:0;1587:5;1591:1;1587;:5;:::i;:::-;1575:17;1429:190;-1:-1:-1;;;;;1429:190:0:o;11364:483::-;5716:6;:13;;-1:-1:-1;;;;5716:13:0;-1:-1:-1;;;5716:13:0;;;11466:16:::1;::::0;;11480:1:::1;11466:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11466:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11466:16:0::1;11442:40;;11511:4;11493;11498:1;11493:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11493:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11537:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11537:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11493:7;;11537:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11527:4;11532:1;11527:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11527:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11602:15:::1;::::0;11570:62:::1;::::0;11587:4:::1;::::0;11602:15:::1;11620:11:::0;11570:8:::1;:62::i;:::-;11643:15;::::0;:196:::1;::::0;-1:-1:-1;;;11643:196:0;;-1:-1:-1;;;;;11643:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11724:11;;11643:15:::1;::::0;11766:4;;11793::::1;::::0;11813:15:::1;::::0;11643:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5752:6:0;:14;;-1:-1:-1;;;;5752:14:0;;;-1:-1:-1;;;;11364:483:0:o;13043:92::-;13100:10;;:27;;-1:-1:-1;;;;;13100:10:0;;;;:27;;;;;13120:6;;13100:10;:27;:10;:27;13120:6;13100:10;:27;;;;;;;;;;;;;;;;;;;1627:246;1685:7;1709:1;1714;1709:6;1705:47;;-1:-1:-1;1739:1:0;1732:8;;1705:47;1762:9;1774:5;1778:1;1774;:5;:::i;:::-;1762:17;-1:-1:-1;1807:1:0;1798:5;1802:1;1762:17;1798:5;:::i;:::-;:10;1790:56;;;;-1:-1:-1;;;1790:56:0;;13796:2:1;1790:56:0;;;13778:21:1;13835:2;13815:18;;;13808:30;13874:34;13854:18;;;13847:62;-1:-1:-1;;;13925:18:1;;;13918:31;13966:19;;1790:56:0;13594:397:1;1790:56:0;1864:1;1627:246;-1:-1:-1;;;1627:246:0:o;1881:132::-;1939:7;1966:39;1970:1;1973;1966:39;;;;;;;;;;;;;;;;;:3;:39::i;11055:98::-;11112:7;11139:1;11137;:3;11136:9;;11144:1;11136:9;;;-1:-1:-1;11142:1:0;11055:98;-1:-1:-1;11055:98:0:o;1098:179::-;1156:7;;1188:5;1192:1;1188;:5;:::i;:::-;1176:17;;1217:1;1212;:6;;1204:46;;;;-1:-1:-1;;;1204:46:0;;14198:2:1;1204:46:0;;;14180:21:1;14237:2;14217:18;;;14210:30;14276:29;14256:18;;;14249:57;14323:18;;1204:46:0;13996:351:1;1285:136:0;1343:7;1370:43;1374:1;1377;1370:43;;;;;;;;;;;;;;;;;:3;:43::i;2021:189::-;2107:7;2142:12;2135:5;2127:28;;;;-1:-1:-1;;;2127:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2166:9:0;2178:5;2182:1;2178;:5;:::i;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:315;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;878:2;863:18;;;;850:32;;-1:-1:-1;;;573:315:1:o;1267:456::-;1344:6;1352;1360;1413:2;1401:9;1392:7;1388:23;1384:32;1381:52;;;1429:1;1426;1419:12;1381:52;1468:9;1455:23;1487:31;1512:5;1487:31;:::i;:::-;1537:5;-1:-1:-1;1594:2:1;1579:18;;1566:32;1607:33;1566:32;1607:33;:::i;:::-;1267:456;;1659:7;;-1:-1:-1;;;1713:2:1;1698:18;;;;1685:32;;1267:456::o;1917:118::-;2003:5;1996:13;1989:21;1982:5;1979:32;1969:60;;2025:1;2022;2015:12;2040:241;2096:6;2149:2;2137:9;2128:7;2124:23;2120:32;2117:52;;;2165:1;2162;2155:12;2117:52;2204:9;2191:23;2223:28;2245:5;2223:28;:::i;2494:247::-;2553:6;2606:2;2594:9;2585:7;2581:23;2577:32;2574:52;;;2622:1;2619;2612:12;2574:52;2661:9;2648:23;2680:31;2705:5;2680:31;:::i;2746:382::-;2811:6;2819;2872:2;2860:9;2851:7;2847:23;2843:32;2840:52;;;2888:1;2885;2878:12;2840:52;2927:9;2914:23;2946:31;2971:5;2946:31;:::i;:::-;2996:5;-1:-1:-1;3053:2:1;3038:18;;3025:32;3066:30;3025:32;3066:30;:::i;:::-;3115:7;3105:17;;;2746:382;;;;;:::o;3133:388::-;3201:6;3209;3262:2;3250:9;3241:7;3237:23;3233:32;3230:52;;;3278:1;3275;3268:12;3230:52;3317:9;3304:23;3336:31;3361:5;3336:31;:::i;:::-;3386:5;-1:-1:-1;3443:2:1;3428:18;;3415:32;3456:33;3415:32;3456:33;:::i;3526:127::-;3587:10;3582:3;3578:20;3575:1;3568:31;3618:4;3615:1;3608:15;3642:4;3639:1;3632:15;3658:416;3747:1;3784:5;3747:1;3798:270;3819:7;3809:8;3806:21;3798:270;;;3878:4;3874:1;3870:6;3866:17;3860:4;3857:27;3854:53;;;3887:18;;:::i;:::-;3937:7;3927:8;3923:22;3920:55;;;3957:16;;;;3920:55;4036:22;;;;3996:15;;;;3798:270;;;3802:3;3658:416;;;;;:::o;4079:806::-;4128:5;4158:8;4148:80;;-1:-1:-1;4199:1:1;4213:5;;4148:80;4247:4;4237:76;;-1:-1:-1;4284:1:1;4298:5;;4237:76;4329:4;4347:1;4342:59;;;;4415:1;4410:130;;;;4322:218;;4342:59;4372:1;4363:10;;4386:5;;;4410:130;4447:3;4437:8;4434:17;4431:43;;;4454:18;;:::i;:::-;-1:-1:-1;;4510:1:1;4496:16;;4525:5;;4322:218;;4624:2;4614:8;4611:16;4605:3;4599:4;4596:13;4592:36;4586:2;4576:8;4573:16;4568:2;4562:4;4559:12;4555:35;4552:77;4549:159;;;-1:-1:-1;4661:19:1;;;4693:5;;4549:159;4740:34;4765:8;4759:4;4740:34;:::i;:::-;4810:6;4806:1;4802:6;4798:19;4789:7;4786:32;4783:58;;;4821:18;;:::i;:::-;4859:20;;4079:806;-1:-1:-1;;;4079:806:1:o;4890:140::-;4948:5;4977:47;5018:4;5008:8;5004:19;4998:4;4977:47;:::i;5035:168::-;5108:9;;;5139;;5156:15;;;5150:22;;5136:37;5126:71;;5177:18;;:::i;5208:356::-;5410:2;5392:21;;;5429:18;;;5422:30;5488:34;5483:2;5468:18;;5461:62;5555:2;5540:18;;5208:356::o;5921:251::-;5991:6;6044:2;6032:9;6023:7;6019:23;6015:32;6012:52;;;6060:1;6057;6050:12;6012:52;6092:9;6086:16;6111:31;6136:5;6111:31;:::i;7098:306::-;7186:6;7194;7202;7255:2;7243:9;7234:7;7230:23;7226:32;7223:52;;;7271:1;7268;7261:12;7223:52;7300:9;7294:16;7284:26;;7350:2;7339:9;7335:18;7329:25;7319:35;;7394:2;7383:9;7379:18;7373:25;7363:35;;7098:306;;;;;:::o;7688:245::-;7755:6;7808:2;7796:9;7787:7;7783:23;7779:32;7776:52;;;7824:1;7821;7814:12;7776:52;7856:9;7850:16;7875:28;7897:5;7875:28;:::i;11014:125::-;11079:9;;;11100:10;;;11097:36;;;11113:18;;:::i;11499:135::-;11538:3;11559:17;;;11556:43;;11579:18;;:::i;:::-;-1:-1:-1;11626:1:1;11615:13;;11499:135::o;11990:128::-;12057:9;;;12078:11;;;12075:37;;;12092:18;;:::i;12255:127::-;12316:10;12311:3;12307:20;12304:1;12297:31;12347:4;12344:1;12337:15;12371:4;12368:1;12361:15;12387:980;12649:4;12697:3;12686:9;12682:19;12728:6;12717:9;12710:25;12754:2;12792:6;12787:2;12776:9;12772:18;12765:34;12835:3;12830:2;12819:9;12815:18;12808:31;12859:6;12894;12888:13;12925:6;12917;12910:22;12963:3;12952:9;12948:19;12941:26;;13002:2;12994:6;12990:15;12976:29;;13023:1;13033:195;13047:6;13044:1;13041:13;13033:195;;;13112:13;;-1:-1:-1;;;;;13108:39:1;13096:52;;13203:15;;;;13168:12;;;;13144:1;13062:9;13033:195;;;-1:-1:-1;;;;;;;13284:32:1;;;;13279:2;13264:18;;13257:60;-1:-1:-1;;;13348:3:1;13333:19;13326:35;13245:3;12387:980;-1:-1:-1;;;12387:980:1:o;13372:217::-;13412:1;13438;13428:132;;13482:10;13477:3;13473:20;13470:1;13463:31;13517:4;13514:1;13507:15;13545:4;13542:1;13535:15;13428:132;-1:-1:-1;13574:9:1;;13372:217::o

Swarm Source

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