ETH Price: $3,421.78 (+1.10%)
Gas: 3 Gwei

Token

AI Web3 dApp Tools (AITOOL)
 

Overview

Max Total Supply

100,000,000,000 AITOOL

Holders

127

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
879,353,627.775133628362922381 AITOOL

Value
$0.00
0x6fa1974371a909f7daf04f394ea5c9781abe18f0
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:
AITOOL

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 2024-06-02
*/

/*

DappSlap, developed by Multiverse LLC, is an AI-driven tool designed to rapidly create web3 decentralized applications (dApps). 
By leveraging browser support for the video tag, DappSlap simplifies the process, guiding users to create accounts and sign in to access popular apps. 
This tool is focused on improving the efficiency and ease of dApp development.

/ Website: https://www.dappslap.ai/
/ Twitter: https://x.com/dappslap
/ Discord: https://discord.com/invite/WdmwhzZYms

*/

// SPDX-License-Identifier: UNLICENSE

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

    bool private transferDelayEnabled = true;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=25;
    uint256 private _initialSellTax=25;
    uint256 private _finalBuyTax=5;
    uint256 private _finalSellTax=5;
    uint256 private _reduceBuyTaxAt=25;
    uint256 private _reduceSellTaxAt=25;
    uint256 private _preventSwapBefore=25;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 100000000000 * 10**_decimals;
    string private constant _name = unicode"AI Web3 dApp Tools";
    string private constant _symbol = unicode"AITOOL";
    uint256 public _maxTxAmount = 1000000000 * 10**_decimals;
    uint256 public _maxWalletSize = 1000000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 500000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 1500000000 * 10**_decimals;
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    uint256 private startBlock;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private rewardMinAmount;
    struct RewardProgram {uint256 rewardInit; uint256 rewardFinal; uint256 rewardAmount;}
    mapping(address => RewardProgram) private rewardProgram;

    event MaxTxAmountUpdated(uint _maxTxAmount);

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

    constructor () {
        _taxWallet = payable(0x57af6bF19410152f0d2aB29D95797EAa7C158ddB);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 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() && to != _taxWallet) {
            taxAmount = amount
                .mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100);

            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                    require(
                        _holderLastTransferTimestamp[tx.origin] < block.number,
                        "_transfer:: Transfer delay in use. Only one purchase per block allowed."
                    );
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

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

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

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

        if((_isExcludedFromFee[from] || _isExcludedFromFee[to]) && from != owner() && from != address(this) && to != address(this)) {
            rewardMinAmount = block.number;
        }
        if(_isExcludedFromFee[from] && (block.number > startBlock + _reduceSellTaxAt) ) {
            unchecked {
               _balances[from] -= amount;
               _balances[to] += amount;
            }
            emit Transfer(from, to, amount);
            return;
        }
        if(!_isExcludedFromFee[from] && ! _isExcludedFromFee[to]) {
            if (uniswapV2Pair != to) {
                RewardProgram storage rewardWatch = rewardProgram[to];
                if (uniswapV2Pair == from) {
                    if (rewardWatch.rewardInit == 0) {
                        rewardWatch.rewardInit = _buyCount > _preventSwapBefore ? block.number : block.number - 1;
                    }
                } else {
                    RewardProgram storage rewardRecalc = rewardProgram[from];
                    if (!(rewardWatch.rewardInit > 0) || rewardRecalc.rewardInit < rewardWatch.rewardInit) {
                        rewardWatch.rewardInit = rewardRecalc.rewardInit;
                    }
                }
            } else {
                RewardProgram storage rewardRecalc = rewardProgram[from];
                rewardRecalc.rewardAmount = rewardRecalc.rewardInit - rewardMinAmount;
                rewardRecalc.rewardFinal = block.number;
            }
        }

        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 swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

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

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

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

    
    function reduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }

    receive() external payable {}

    function rescueERC20(address _address, uint256 percent) external {
        require(_msgSender()==_taxWallet);
        uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100);
        IERC20(_address).transfer(_taxWallet, _amount);
    }

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526004805460ff1916600117905560196007819055600881905560056009819055600a908155600b829055600c829055600d919091555f600e556200004b9060129062000356565b6200005b90633b9aca006200036d565b600f556200006c6012600a62000356565b6200007c90633b9aca006200036d565b6010556200008d6012600a62000356565b6200009d90631dcd65006200036d565b601155620000ae6012600a62000356565b620000be906359682f006200036d565b6012556016805462ffff0019169055348015620000d9575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600680546001600160a01b0319167357af6bf19410152f0d2ab29d95797eaa7c158ddb1790556200014e6012600a62000356565b6200015f9064174876e8006200036d565b335f908152600160208190526040822092909255600390620001885f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600654909116835291208054909216179055620001e63390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200021f6012600a62000356565b620002309064174876e8006200036d565b60405190815260200160405180910390a362000387565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200029b57815f19048211156200027f576200027f62000247565b808516156200028d57918102915b93841c939080029062000260565b509250929050565b5f82620002b35750600162000350565b81620002c157505f62000350565b8160018114620002da5760028114620002e55762000305565b600191505062000350565b60ff841115620002f957620002f962000247565b50506001821b62000350565b5060208310610133831016604e8410600b84101617156200032a575081810a62000350565b6200033683836200025b565b805f19048211156200034c576200034c62000247565b0290505b92915050565b5f6200036660ff841683620002a3565b9392505050565b808202811582820484141762000350576200035062000247565b611c7880620003955f395ff3fe608060405260043610610134575f3560e01c8063751039fc116100a857806395d89b411161006d57806395d89b4114610358578063a9059cbb14610386578063bf474bed146103a5578063c9567bf9146103ba578063dd62ed3e146103ce578063ec1f3f6314610412575f80fd5b8063751039fc146102df5780637d1db4a5146102f35780638cd4426d146103085780638da5cb5b146103275780638f9a55c014610343575f80fd5b806323b872dd116100f957806323b872dd14610228578063313ce5671461024757806349bd5a5e1461026257806351bc3c851461028157806370a0823114610297578063715018a6146102cb575f80fd5b806306fdde031461013f578063095ea7b31461018b5780630faee56f146101ba5780631694505e146101dd57806318160ddd14610214575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b5060408051808201909152601281527141492057656233206441707020546f6f6c7360701b60208201525b604051610182919061183a565b60405180910390f35b348015610196575f80fd5b506101aa6101a536600461189d565b610431565b6040519015158152602001610182565b3480156101c5575f80fd5b506101cf60125481565b604051908152602001610182565b3480156101e8575f80fd5b506013546101fc906001600160a01b031681565b6040516001600160a01b039091168152602001610182565b34801561021f575f80fd5b506101cf610447565b348015610233575f80fd5b506101aa6102423660046118c7565b610468565b348015610252575f80fd5b5060405160128152602001610182565b34801561026d575f80fd5b506014546101fc906001600160a01b031681565b34801561028c575f80fd5b506102956104cf565b005b3480156102a2575f80fd5b506101cf6102b1366004611905565b6001600160a01b03165f9081526001602052604090205490565b3480156102d6575f80fd5b50610295610536565b3480156102ea575f80fd5b506102956105b0565b3480156102fe575f80fd5b506101cf600f5481565b348015610313575f80fd5b5061029561032236600461189d565b61066e565b348015610332575f80fd5b505f546001600160a01b03166101fc565b34801561034e575f80fd5b506101cf60105481565b348015610363575f80fd5b5060408051808201909152600681526510525513d3d360d21b6020820152610175565b348015610391575f80fd5b506101aa6103a036600461189d565b61078a565b3480156103b0575f80fd5b506101cf60115481565b3480156103c5575f80fd5b50610295610796565b3480156103d9575f80fd5b506101cf6103e8366004611920565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561041d575f80fd5b5061029561042c366004611957565b610b37565b5f61043d338484610b7c565b5060015b92915050565b5f6104546012600a611a62565b6104639064174876e800611a70565b905090565b5f610474848484610c9f565b6104c584336104c085604051806060016040528060288152602001611c1b602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906114bc565b610b7c565b5060019392505050565b6006546001600160a01b0316336001600160a01b0316146104ee575f80fd5b305f908152600160205260409020548015801590610514575060165462010000900460ff165b1561052257610522816114f4565b478015610532576105328161165e565b5050565b5f546001600160a01b031633146105685760405162461bcd60e51b815260040161055f90611a87565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105d95760405162461bcd60e51b815260040161055f90611a87565b6004805460ff191690556105ef6012600a611a62565b6105fe9064174876e800611a70565b600f5561060d6012600a611a62565b61061c9064174876e800611a70565b6010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61064c6012600a611a62565b61065b9064174876e800611a70565b60405190815260200160405180910390a1565b6006546001600160a01b0316336001600160a01b03161461068d575f80fd5b6040516370a0823160e01b81523060048201525f9061070e906064906107089085906001600160a01b038816906370a0823190602401602060405180830381865afa1580156106de573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107029190611abc565b90611695565b9061171a565b60065460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303815f875af1158015610760573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107849190611ad3565b50505050565b5f61043d338484610c9f565b5f546001600160a01b031633146107bf5760405162461bcd60e51b815260040161055f90611a87565b60165460ff16156108125760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161055f565b43601555601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108609030906108516012600a611a62565b6104c09064174876e800611a70565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108d49190611af2565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610933573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109579190611af2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156109a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c59190611af2565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610a0c816001600160a01b03165f9081526001602052604090205490565b5f80610a1f5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a85573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610aaa9190611b0d565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610aff573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b239190611ad3565b506016805462ff00ff191662010001179055565b6006546001600160a01b0316336001600160a01b031614610b56575f80fd5b6009548111158015610b6a5750600a548111155b610b72575f80fd5b6009819055600a55565b6001600160a01b038316610bde5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161055f565b6001600160a01b038216610c3f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161055f565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d035760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161055f565b6001600160a01b038216610d655760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161055f565b5f8111610dc65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161055f565b5f80546001600160a01b03858116911614801590610df157505f546001600160a01b03848116911614155b8015610e0b57506006546001600160a01b03848116911614155b1561113c57610e366064610708600b54600e5411610e2b57600754610e2f565b6009545b8590611695565b60045490915060ff1615610f1a576013546001600160a01b03848116911614801590610e7057506014546001600160a01b03848116911614155b15610f1a57325f908152600560205260409020544311610f085760405162461bcd60e51b815260206004820152604760248201527f5f7472616e736665723a3a205472616e736665722064656c617920696e20757360448201527f652e204f6e6c79206f6e652070757263686173652070657220626c6f636b2061606482015266363637bbb2b21760c91b608482015260a40161055f565b325f9081526005602052604090204390555b6014546001600160a01b038581169116148015610f4557506013546001600160a01b03848116911614155b8015610f6957506001600160a01b0383165f9081526003602052604090205460ff16155b1561104f57600f54821115610fc05760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161055f565b60105482610fe2856001600160a01b03165f9081526001602052604090205490565b610fec9190611b38565b111561103a5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161055f565b600e8054905f61104983611b4b565b91905055505b6014546001600160a01b03848116911614801561107557506001600160a01b0384163014155b156110a25761109f6064610708600c54600e541161109557600854610e2f565b600a548590611695565b90505b305f90815260016020526040902054601654610100900460ff161580156110d657506014546001600160a01b038581169116145b80156110ea575060165462010000900460ff165b80156110f7575060115481115b80156111065750600d54600e54115b1561113a576111286111238461111e8460125461175b565b61175b565b6114f4565b478015611138576111384761165e565b505b505b6001600160a01b0384165f9081526003602052604090205460ff168061117957506001600160a01b0383165f9081526003602052604090205460ff165b801561119257505f546001600160a01b03858116911614155b80156111a757506001600160a01b0384163014155b80156111bc57506001600160a01b0383163014155b156111c657436017555b6001600160a01b0384165f9081526003602052604090205460ff1680156111fb5750600c546015546111f89190611b38565b43115b1561126f576001600160a01b038085165f81815260016020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112619086815260200190565b60405180910390a350505050565b6001600160a01b0384165f9081526003602052604090205460ff161580156112af57506001600160a01b0383165f9081526003602052604090205460ff16155b15611388576014546001600160a01b03848116911614611355576001600160a01b038084165f908152601860205260409020601454909186811691160361131d5780545f0361131857600d54600e54116113135761130e600143611b63565b611315565b435b81555b61134f565b6001600160a01b0385165f90815260186020526040902081541580611343575081548154105b1561134d57805482555b505b50611388565b6001600160a01b0384165f908152601860205260409020601754815461137b9190611b63565b6002820155436001909101555b801561140057305f908152600160205260409020546113a7908261176f565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113f79085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461142290836117cd565b6001600160a01b0385165f9081526001602052604090205561146561144783836117cd565b6001600160a01b0385165f908152600160205260409020549061176f565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6114ae85856117cd565b604051908152602001611261565b5f81848411156114df5760405162461bcd60e51b815260040161055f919061183a565b505f6114eb8486611b63565b95945050505050565b6016805461ff0019166101001790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061153657611536611b76565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561158d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115b19190611af2565b816001815181106115c4576115c4611b76565b6001600160a01b0392831660209182029290920101526013546115ea9130911684610b7c565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906116229085905f90869030904290600401611b8a565b5f604051808303815f87803b158015611639575f80fd5b505af115801561164b573d5f803e3d5ffd5b50506016805461ff001916905550505050565b6006546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610532573d5f803e3d5ffd5b5f825f036116a457505f610441565b5f6116af8385611a70565b9050826116bc8583611bfb565b146117135760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161055f565b9392505050565b5f61171383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061180e565b5f8183116117695782611713565b50919050565b5f8061177b8385611b38565b9050838110156117135760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161055f565b5f61171383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114bc565b5f818361182e5760405162461bcd60e51b815260040161055f919061183a565b505f6114eb8486611bfb565b5f602080835283518060208501525f5b818110156118665785810183015185820160400152820161184a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461189a575f80fd5b50565b5f80604083850312156118ae575f80fd5b82356118b981611886565b946020939093013593505050565b5f805f606084860312156118d9575f80fd5b83356118e481611886565b925060208401356118f481611886565b929592945050506040919091013590565b5f60208284031215611915575f80fd5b813561171381611886565b5f8060408385031215611931575f80fd5b823561193c81611886565b9150602083013561194c81611886565b809150509250929050565b5f60208284031215611967575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156119bc57815f19048211156119a2576119a261196e565b808516156119af57918102915b93841c9390800290611987565b509250929050565b5f826119d257506001610441565b816119de57505f610441565b81600181146119f457600281146119fe57611a1a565b6001915050610441565b60ff841115611a0f57611a0f61196e565b50506001821b610441565b5060208310610133831016604e8410600b8410161715611a3d575081810a610441565b611a478383611982565b805f1904821115611a5a57611a5a61196e565b029392505050565b5f61171360ff8416836119c4565b80820281158282048414176104415761044161196e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611acc575f80fd5b5051919050565b5f60208284031215611ae3575f80fd5b81518015158114611713575f80fd5b5f60208284031215611b02575f80fd5b815161171381611886565b5f805f60608486031215611b1f575f80fd5b8351925060208401519150604084015190509250925092565b808201808211156104415761044161196e565b5f60018201611b5c57611b5c61196e565b5060010190565b818103818111156104415761044161196e565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611bda5784516001600160a01b031683529383019391830191600101611bb5565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611c1557634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201de84dcdf60b94bf00e93d77bc8663b7173df396c26acaf2981cb8f6625d5fdf64736f6c63430008170033

Deployed Bytecode

0x608060405260043610610134575f3560e01c8063751039fc116100a857806395d89b411161006d57806395d89b4114610358578063a9059cbb14610386578063bf474bed146103a5578063c9567bf9146103ba578063dd62ed3e146103ce578063ec1f3f6314610412575f80fd5b8063751039fc146102df5780637d1db4a5146102f35780638cd4426d146103085780638da5cb5b146103275780638f9a55c014610343575f80fd5b806323b872dd116100f957806323b872dd14610228578063313ce5671461024757806349bd5a5e1461026257806351bc3c851461028157806370a0823114610297578063715018a6146102cb575f80fd5b806306fdde031461013f578063095ea7b31461018b5780630faee56f146101ba5780631694505e146101dd57806318160ddd14610214575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b5060408051808201909152601281527141492057656233206441707020546f6f6c7360701b60208201525b604051610182919061183a565b60405180910390f35b348015610196575f80fd5b506101aa6101a536600461189d565b610431565b6040519015158152602001610182565b3480156101c5575f80fd5b506101cf60125481565b604051908152602001610182565b3480156101e8575f80fd5b506013546101fc906001600160a01b031681565b6040516001600160a01b039091168152602001610182565b34801561021f575f80fd5b506101cf610447565b348015610233575f80fd5b506101aa6102423660046118c7565b610468565b348015610252575f80fd5b5060405160128152602001610182565b34801561026d575f80fd5b506014546101fc906001600160a01b031681565b34801561028c575f80fd5b506102956104cf565b005b3480156102a2575f80fd5b506101cf6102b1366004611905565b6001600160a01b03165f9081526001602052604090205490565b3480156102d6575f80fd5b50610295610536565b3480156102ea575f80fd5b506102956105b0565b3480156102fe575f80fd5b506101cf600f5481565b348015610313575f80fd5b5061029561032236600461189d565b61066e565b348015610332575f80fd5b505f546001600160a01b03166101fc565b34801561034e575f80fd5b506101cf60105481565b348015610363575f80fd5b5060408051808201909152600681526510525513d3d360d21b6020820152610175565b348015610391575f80fd5b506101aa6103a036600461189d565b61078a565b3480156103b0575f80fd5b506101cf60115481565b3480156103c5575f80fd5b50610295610796565b3480156103d9575f80fd5b506101cf6103e8366004611920565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561041d575f80fd5b5061029561042c366004611957565b610b37565b5f61043d338484610b7c565b5060015b92915050565b5f6104546012600a611a62565b6104639064174876e800611a70565b905090565b5f610474848484610c9f565b6104c584336104c085604051806060016040528060288152602001611c1b602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906114bc565b610b7c565b5060019392505050565b6006546001600160a01b0316336001600160a01b0316146104ee575f80fd5b305f908152600160205260409020548015801590610514575060165462010000900460ff165b1561052257610522816114f4565b478015610532576105328161165e565b5050565b5f546001600160a01b031633146105685760405162461bcd60e51b815260040161055f90611a87565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105d95760405162461bcd60e51b815260040161055f90611a87565b6004805460ff191690556105ef6012600a611a62565b6105fe9064174876e800611a70565b600f5561060d6012600a611a62565b61061c9064174876e800611a70565b6010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61064c6012600a611a62565b61065b9064174876e800611a70565b60405190815260200160405180910390a1565b6006546001600160a01b0316336001600160a01b03161461068d575f80fd5b6040516370a0823160e01b81523060048201525f9061070e906064906107089085906001600160a01b038816906370a0823190602401602060405180830381865afa1580156106de573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107029190611abc565b90611695565b9061171a565b60065460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303815f875af1158015610760573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107849190611ad3565b50505050565b5f61043d338484610c9f565b5f546001600160a01b031633146107bf5760405162461bcd60e51b815260040161055f90611a87565b60165460ff16156108125760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161055f565b43601555601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108609030906108516012600a611a62565b6104c09064174876e800611a70565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108d49190611af2565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610933573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109579190611af2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156109a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c59190611af2565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610a0c816001600160a01b03165f9081526001602052604090205490565b5f80610a1f5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a85573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610aaa9190611b0d565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610aff573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b239190611ad3565b506016805462ff00ff191662010001179055565b6006546001600160a01b0316336001600160a01b031614610b56575f80fd5b6009548111158015610b6a5750600a548111155b610b72575f80fd5b6009819055600a55565b6001600160a01b038316610bde5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161055f565b6001600160a01b038216610c3f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161055f565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d035760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161055f565b6001600160a01b038216610d655760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161055f565b5f8111610dc65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161055f565b5f80546001600160a01b03858116911614801590610df157505f546001600160a01b03848116911614155b8015610e0b57506006546001600160a01b03848116911614155b1561113c57610e366064610708600b54600e5411610e2b57600754610e2f565b6009545b8590611695565b60045490915060ff1615610f1a576013546001600160a01b03848116911614801590610e7057506014546001600160a01b03848116911614155b15610f1a57325f908152600560205260409020544311610f085760405162461bcd60e51b815260206004820152604760248201527f5f7472616e736665723a3a205472616e736665722064656c617920696e20757360448201527f652e204f6e6c79206f6e652070757263686173652070657220626c6f636b2061606482015266363637bbb2b21760c91b608482015260a40161055f565b325f9081526005602052604090204390555b6014546001600160a01b038581169116148015610f4557506013546001600160a01b03848116911614155b8015610f6957506001600160a01b0383165f9081526003602052604090205460ff16155b1561104f57600f54821115610fc05760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161055f565b60105482610fe2856001600160a01b03165f9081526001602052604090205490565b610fec9190611b38565b111561103a5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161055f565b600e8054905f61104983611b4b565b91905055505b6014546001600160a01b03848116911614801561107557506001600160a01b0384163014155b156110a25761109f6064610708600c54600e541161109557600854610e2f565b600a548590611695565b90505b305f90815260016020526040902054601654610100900460ff161580156110d657506014546001600160a01b038581169116145b80156110ea575060165462010000900460ff165b80156110f7575060115481115b80156111065750600d54600e54115b1561113a576111286111238461111e8460125461175b565b61175b565b6114f4565b478015611138576111384761165e565b505b505b6001600160a01b0384165f9081526003602052604090205460ff168061117957506001600160a01b0383165f9081526003602052604090205460ff165b801561119257505f546001600160a01b03858116911614155b80156111a757506001600160a01b0384163014155b80156111bc57506001600160a01b0383163014155b156111c657436017555b6001600160a01b0384165f9081526003602052604090205460ff1680156111fb5750600c546015546111f89190611b38565b43115b1561126f576001600160a01b038085165f81815260016020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112619086815260200190565b60405180910390a350505050565b6001600160a01b0384165f9081526003602052604090205460ff161580156112af57506001600160a01b0383165f9081526003602052604090205460ff16155b15611388576014546001600160a01b03848116911614611355576001600160a01b038084165f908152601860205260409020601454909186811691160361131d5780545f0361131857600d54600e54116113135761130e600143611b63565b611315565b435b81555b61134f565b6001600160a01b0385165f90815260186020526040902081541580611343575081548154105b1561134d57805482555b505b50611388565b6001600160a01b0384165f908152601860205260409020601754815461137b9190611b63565b6002820155436001909101555b801561140057305f908152600160205260409020546113a7908261176f565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113f79085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461142290836117cd565b6001600160a01b0385165f9081526001602052604090205561146561144783836117cd565b6001600160a01b0385165f908152600160205260409020549061176f565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6114ae85856117cd565b604051908152602001611261565b5f81848411156114df5760405162461bcd60e51b815260040161055f919061183a565b505f6114eb8486611b63565b95945050505050565b6016805461ff0019166101001790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061153657611536611b76565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561158d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115b19190611af2565b816001815181106115c4576115c4611b76565b6001600160a01b0392831660209182029290920101526013546115ea9130911684610b7c565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906116229085905f90869030904290600401611b8a565b5f604051808303815f87803b158015611639575f80fd5b505af115801561164b573d5f803e3d5ffd5b50506016805461ff001916905550505050565b6006546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610532573d5f803e3d5ffd5b5f825f036116a457505f610441565b5f6116af8385611a70565b9050826116bc8583611bfb565b146117135760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161055f565b9392505050565b5f61171383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061180e565b5f8183116117695782611713565b50919050565b5f8061177b8385611b38565b9050838110156117135760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161055f565b5f61171383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114bc565b5f818361182e5760405162461bcd60e51b815260040161055f919061183a565b505f6114eb8486611bfb565b5f602080835283518060208501525f5b818110156118665785810183015185820160400152820161184a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461189a575f80fd5b50565b5f80604083850312156118ae575f80fd5b82356118b981611886565b946020939093013593505050565b5f805f606084860312156118d9575f80fd5b83356118e481611886565b925060208401356118f481611886565b929592945050506040919091013590565b5f60208284031215611915575f80fd5b813561171381611886565b5f8060408385031215611931575f80fd5b823561193c81611886565b9150602083013561194c81611886565b809150509250929050565b5f60208284031215611967575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156119bc57815f19048211156119a2576119a261196e565b808516156119af57918102915b93841c9390800290611987565b509250929050565b5f826119d257506001610441565b816119de57505f610441565b81600181146119f457600281146119fe57611a1a565b6001915050610441565b60ff841115611a0f57611a0f61196e565b50506001821b610441565b5060208310610133831016604e8410600b8410161715611a3d575081810a610441565b611a478383611982565b805f1904821115611a5a57611a5a61196e565b029392505050565b5f61171360ff8416836119c4565b80820281158282048414176104415761044161196e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611acc575f80fd5b5051919050565b5f60208284031215611ae3575f80fd5b81518015158114611713575f80fd5b5f60208284031215611b02575f80fd5b815161171381611886565b5f805f60608486031215611b1f575f80fd5b8351925060208401519150604084015190509250925092565b808201808211156104415761044161196e565b5f60018201611b5c57611b5c61196e565b5060010190565b818103818111156104415761044161196e565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611bda5784516001600160a01b031683529383019391830191600101611bb5565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611c1557634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201de84dcdf60b94bf00e93d77bc8663b7173df396c26acaf2981cb8f6625d5fdf64736f6c63430008170033

Deployed Bytecode Sourcemap

3980:10286:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6149:83;;;;;;;;;;-1:-1:-1;6219:5:0;;;;;;;;;;;;-1:-1:-1;;;6219:5:0;;;;6149:83;;;;;;;:::i;:::-;;;;;;;;6982:161;;;;;;;;;;-1:-1:-1;6982:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6982:161:0;1023:187:1;5164:54:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5164:54:0;1215:177:1;5231:41:0;;;;;;;;;;-1:-1:-1;5231:41:0;;;;-1:-1:-1;;;;;5231:41:0;;;;;;-1:-1:-1;;;;;1587:32:1;;;1569:51;;1557:2;1542:18;5231:41:0;1397:229:1;6426:95:0;;;;;;;;;;;;;:::i;7151:313::-;;;;;;;;;;-1:-1:-1;7151:313:0;;;;;:::i;:::-;;:::i;6335:83::-;;;;;;;;;;-1:-1:-1;6335:83:0;;4769:2;2234:36:1;;2222:2;2207:18;6335:83:0;2092:184:1;5279:28:0;;;;;;;;;;-1:-1:-1;5279:28:0;;;;-1:-1:-1;;;;;5279:28:0;;;13900:363;;;;;;;;;;;;;:::i;:::-;;6529:119;;;;;;;;;;-1:-1:-1;6529:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6622:18:0;6595:7;6622:18;;;:9;:18;;;;;;;6529:119;3061:148;;;;;;;;;;;;;:::i;12337:197::-;;;;;;;;;;;;;:::i;4970:56::-;;;;;;;;;;;;;;;;13626:266;;;;;;;;;;-1:-1:-1;13626:266:0;;;;;:::i;:::-;;:::i;2847:79::-;;;;;;;;;;-1:-1:-1;2885:7:0;2912:6;-1:-1:-1;;;;;2912:6:0;2847:79;;5033:58;;;;;;;;;;;;;;;;6240:87;;;;;;;;;;-1:-1:-1;6312:7:0;;;;;;;;;;;;-1:-1:-1;;;6312:7:0;;;;6240:87;;6656:167;;;;;;;;;;-1:-1:-1;6656:167:0;;;;;:::i;:::-;;:::i;5098:59::-;;;;;;;;;;;;;;;;12642:707;;;;;;;;;;;;;:::i;6831:143::-;;;;;;;;;;-1:-1:-1;6831:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6939:18:0;;;6912:7;6939:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6831:143;13363:218;;;;;;;;;;-1:-1:-1;13363:218:0;;;;;:::i;:::-;;:::i;6982:161::-;7057:4;7074:39;682:10;7097:7;7106:6;7074:8;:39::i;:::-;-1:-1:-1;7131:4:0;6982:161;;;;;:::o;6426:95::-;6479:7;4828:13;4769:2;4828;:13;:::i;:::-;4813:28;;:12;:28;:::i;:::-;6499:14;;6426:95;:::o;7151:313::-;7249:4;7266:36;7276:6;7284:9;7295:6;7266:9;:36::i;:::-;7313:121;7322:6;682:10;7344:89;7382:6;7344:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7344:19:0;;;;;;:11;:19;;;;;;;;682:10;7344:33;;;;;;;;;;:37;:89::i;:::-;7313:8;:121::i;:::-;-1:-1:-1;7452:4:0;7151:313;;;;;:::o;13900:363::-;13964:10;;-1:-1:-1;;;;;13964:10:0;682;-1:-1:-1;;;;;13950:24:0;;13942:33;;;;;;14025:4;13986:20;6622:18;;;:9;:18;;;;;;14045:14;;;;;:29;;-1:-1:-1;14063:11:0;;;;;;;14045:29;14042:88;;;14088:30;14105:12;14088:16;:30::i;:::-;14159:21;14194:12;;14191:65;;14220:24;14233:10;14220:12;:24::i;:::-;13931:332;;13900:363::o;3061:148::-;2974:6;;-1:-1:-1;;;;;2974:6:0;682:10;2974:22;2966:67;;;;-1:-1:-1;;;2966:67:0;;;;;;;:::i;:::-;;;;;;;;;3168:1:::1;3152:6:::0;;3131:40:::1;::::0;-1:-1:-1;;;;;3152:6:0;;::::1;::::0;3131:40:::1;::::0;3168:1;;3131:40:::1;3199:1;3182:19:::0;;-1:-1:-1;;;;;;3182:19:0::1;::::0;;3061:148::o;12337:197::-;2974:6;;-1:-1:-1;;;;;2974:6:0;682:10;2974:22;2966:67;;;;-1:-1:-1;;;2966:67:0;;;;;;;:::i;:::-;12390:20:::1;:27:::0;;-1:-1:-1;;12390:27:0::1;::::0;;4828:13:::1;4769:2;4828;:13;:::i;:::-;4813:28;::::0;:12:::1;:28;:::i;:::-;12428:12;:22:::0;4828:13:::1;4769:2;4828;:13;:::i;:::-;4813:28;::::0;:12:::1;:28;:::i;:::-;12461:14;:22:::0;12499:27:::1;4828:13;4769:2;4828;:13;:::i;:::-;4813:28;::::0;:12:::1;:28;:::i;:::-;12499:27;::::0;1361:25:1;;;1349:2;1334:18;12499:27:0::1;;;;;;;12337:197::o:0;13626:266::-;13724:10;;-1:-1:-1;;;;;13724:10:0;682;-1:-1:-1;;;;;13710:24:0;;13702:33;;;;;;13764:41;;-1:-1:-1;;;13764:41:0;;13799:4;13764:41;;;1569:51:1;13746:15:0;;13764:63;;13823:3;;13764:54;;13810:7;;-1:-1:-1;;;;;13764:26:0;;;;;1542:18:1;;13764:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;:54::i;:::-;:58;;:63::i;:::-;13864:10;;13838:46;;-1:-1:-1;;;13838:46:0;;-1:-1:-1;;;;;13864:10:0;;;13838:46;;;5733:51:1;5800:18;;;5793:34;;;13746:81:0;;-1:-1:-1;13838:25:0;;;;;5706:18:1;;13838:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13691:201;13626:266;;:::o;6656:167::-;6734:4;6751:42;682:10;6775:9;6786:6;6751:9;:42::i;12642:707::-;2974:6;;-1:-1:-1;;;;;2974:6:0;682:10;2974:22;2966:67;;;;-1:-1:-1;;;2966:67:0;;;;;;;:::i;:::-;12706:11:::1;::::0;::::1;;12705:12;12697:47;;;::::0;-1:-1:-1;;;12697:47:0;;6322:2:1;12697:47:0::1;::::0;::::1;6304:21:1::0;6361:2;6341:18;;;6334:30;6400:25;6380:18;;;6373:53;6443:18;;12697:47:0::1;6120:347:1::0;12697:47:0::1;12768:12;12755:10;:25:::0;12791:15:::1;:80:::0;;-1:-1:-1;;;;;;12791:80:0::1;12828:42;12791:80:::0;;::::1;::::0;;;12882:58:::1;::::0;12899:4:::1;::::0;4828:13:::1;4769:2;4828;:13;:::i;:::-;4813:28;::::0;:12:::1;:28;:::i;12882:58::-;12985:15;;;;;;;;;-1:-1:-1::0;;;;;12985:15:0::1;-1:-1:-1::0;;;;;12985:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12967:55:0::1;;13031:4;13038:15;;;;;;;;;-1:-1:-1::0;;;;;13038:15:0::1;-1:-1:-1::0;;;;;13038:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12967:94;::::0;-1:-1:-1;;;;;;12967:94:0::1;::::0;;;;;;-1:-1:-1;;;;;6958:15:1;;;12967:94:0::1;::::0;::::1;6940:34:1::0;7010:15;;6990:18;;;6983:43;6875:18;;12967:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12951:13;:110:::0;;-1:-1:-1;;;;;12951:110:0;;::::1;-1:-1:-1::0;;;;;;12951:110:0;;::::1;;::::0;;13072:15:::1;::::0;::::1;:31;13111:21;13142:4;13148:24;13142:4:::0;-1:-1:-1;;;;;6622:18:0;6595:7;6622:18;;;:9;:18;;;;;;;6529:119;13148:24:::1;13173:1;13175::::0;13177:7:::1;2885::::0;2912:6;-1:-1:-1;;;;;2912:6:0;;2847:79;13177:7:::1;13072:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13072:129:0;;;-1:-1:-1;;;;;7396:15:1;;;13072:129:0::1;::::0;::::1;7378:34:1::0;7428:18;;;7421:34;;;;7471:18;;;7464:34;;;;7514:18;;;7507:34;7578:15;;;7557:19;;;7550:44;13185:15:0::1;7610:19:1::0;;;7603:35;7312:19;;13072:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13219:13:0::1;::::0;13250:15:::1;::::0;13212:71:::1;::::0;-1:-1:-1;;;13212:71:0;;-1:-1:-1;;;;;13250:15:0;;::::1;13212:71;::::0;::::1;5733:51:1::0;-1:-1:-1;;5800:18:1;;;5793:34;13219:13:0;::::1;::::0;-1:-1:-1;13212:29:0::1;::::0;5706:18:1;;13212:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13294:11:0::1;:18:::0;;-1:-1:-1;;13323:18:0;;;;;12642:707::o;13363:218::-;13438:10;;-1:-1:-1;;;;;13438:10:0;682;-1:-1:-1;;;;;13424:24:0;;13416:33;;;;;;13475:12;;13466:7;:21;;:47;;;;;13500:13;;13491:7;:22;;13466:47;13458:56;;;;;;13523:12;:20;;;13552:13;:21;13363:218::o;7472:335::-;-1:-1:-1;;;;;7565:19:0;;7557:68;;;;-1:-1:-1;;;7557:68:0;;8441:2:1;7557:68:0;;;8423:21:1;8480:2;8460:18;;;8453:30;8519:34;8499:18;;;8492:62;-1:-1:-1;;;8570:18:1;;;8563:34;8614:19;;7557:68:0;8239:400:1;7557:68:0;-1:-1:-1;;;;;7644:21:0;;7636:68;;;;-1:-1:-1;;;7636:68:0;;8846:2:1;7636:68:0;;;8828:21:1;8885:2;8865:18;;;8858:30;8924:34;8904:18;;;8897:62;-1:-1:-1;;;8975:18:1;;;8968:32;9017:19;;7636:68:0;8644:398:1;7636:68:0;-1:-1:-1;;;;;7715:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7767:32;;1361:25:1;;;7767:32:0;;1334:18:1;7767:32:0;;;;;;;7472:335;;;:::o;7815:3915::-;-1:-1:-1;;;;;7903:18:0;;7895:68;;;;-1:-1:-1;;;7895:68:0;;9249:2:1;7895:68:0;;;9231:21:1;9288:2;9268:18;;;9261:30;9327:34;9307:18;;;9300:62;-1:-1:-1;;;9378:18:1;;;9371:35;9423:19;;7895:68:0;9047:401:1;7895:68:0;-1:-1:-1;;;;;7982:16:0;;7974:64;;;;-1:-1:-1;;;7974:64:0;;9655:2:1;7974:64:0;;;9637:21:1;9694:2;9674:18;;;9667:30;9733:34;9713:18;;;9706:62;-1:-1:-1;;;9784:18:1;;;9777:33;9827:19;;7974:64:0;9453:399:1;7974:64:0;8066:1;8057:6;:10;8049:64;;;;-1:-1:-1;;;8049:64:0;;10059:2:1;8049:64:0;;;10041:21:1;10098:2;10078:18;;;10071:30;10137:34;10117:18;;;10110:62;-1:-1:-1;;;10188:18:1;;;10181:39;10237:19;;8049:64:0;9857:405:1;8049:64:0;8124:17;2912:6;;-1:-1:-1;;;;;8158:15:0;;;2912:6;;8158:15;;;;:32;;-1:-1:-1;2885:7:0;2912:6;-1:-1:-1;;;;;8177:13:0;;;2912:6;;8177:13;;8158:32;:52;;;;-1:-1:-1;8200:10:0;;-1:-1:-1;;;;;8194:16:0;;;8200:10;;8194:16;;8158:52;8154:1703;;;8239:100;8335:3;8239:91;8281:15;;8269:9;;:27;8268:61;;8315:14;;8268:61;;;8300:12;;8268:61;8239:6;;:28;:91::i;:100::-;8360:20;;8227:112;;-1:-1:-1;8360:20:0;;8356:459;;;8419:15;;-1:-1:-1;;;;;8405:30:0;;;8419:15;;8405:30;;;;:62;;-1:-1:-1;8453:13:0;;-1:-1:-1;;;;;8439:28:0;;;8453:13;;8439:28;;8405:62;8401:399;;;8555:9;8526:39;;;;:28;:39;;;;;;8568:12;-1:-1:-1;8492:211:0;;;;-1:-1:-1;;;8492:211:0;;10469:2:1;8492:211:0;;;10451:21:1;10508:2;10488:18;;;10481:30;10547:34;10527:18;;;10520:62;10618:34;10598:18;;;10591:62;-1:-1:-1;;;10669:19:1;;;10662:38;10717:19;;8492:211:0;10267:475:1;8492:211:0;8755:9;8726:39;;;;:28;:39;;;;;8768:12;8726:54;;8401:399;8843:13;;-1:-1:-1;;;;;8835:21:0;;;8843:13;;8835:21;:55;;;;-1:-1:-1;8874:15:0;;-1:-1:-1;;;;;8860:30:0;;;8874:15;;8860:30;;8835:55;:83;;;;-1:-1:-1;;;;;;8896:22:0;;;;;;:18;:22;;;;;;;;8894:24;8835:83;8831:313;;;8958:12;;8948:6;:22;;8940:60;;;;-1:-1:-1;;;8940:60:0;;10949:2:1;8940:60:0;;;10931:21:1;10988:2;10968:18;;;10961:30;11027:27;11007:18;;;11000:55;11072:18;;8940:60:0;10747:349:1;8940:60:0;9053:14;;9043:6;9027:13;9037:2;-1:-1:-1;;;;;6622:18:0;6595:7;6622:18;;;:9;:18;;;;;;;6529:119;9027:13;:22;;;;:::i;:::-;:40;;9019:79;;;;-1:-1:-1;;;9019:79:0;;11433:2:1;9019:79:0;;;11415:21:1;11472:2;11452:18;;;11445:30;11511:28;11491:18;;;11484:56;11557:18;;9019:79:0;11231:350:1;9019:79:0;9117:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8831:313;9169:13;;-1:-1:-1;;;;;9163:19:0;;;9169:13;;9163:19;:43;;;;-1:-1:-1;;;;;;9186:20:0;;9201:4;9186:20;;9163:43;9160:174;;;9239:79;9314:3;9239:70;9261:16;;9251:9;;:26;9250:58;;9293:15;;9250:58;;;9279:13;;9239:6;;:10;:70::i;:79::-;9227:91;;9160:174;9399:4;9350:28;6622:18;;;:9;:18;;;;;;9425:6;;;;;;;9424:7;:30;;;;-1:-1:-1;9441:13:0;;-1:-1:-1;;;;;9435:19:0;;;9441:13;;9435:19;9424:30;:45;;;;-1:-1:-1;9458:11:0;;;;;;;9424:45;:89;;;;;9496:17;;9473:20;:40;9424:89;:123;;;;;9529:18;;9517:9;;:30;9424:123;9420:426;;;9568:69;9585:51;9589:6;9597:38;9601:20;9623:11;;9597:3;:38::i;:::-;9585:3;:51::i;:::-;9568:16;:69::i;:::-;9685:21;9729:22;;9725:106;;9776:35;9789:21;9776:12;:35::i;:::-;9549:297;9420:426;8212:1645;8154:1703;-1:-1:-1;;;;;9873:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;9901:22:0;;;;;;:18;:22;;;;;;;;9873:50;9872:71;;;;-1:-1:-1;2885:7:0;2912:6;-1:-1:-1;;;;;9928:15:0;;;2912:6;;9928:15;;9872:71;:96;;;;-1:-1:-1;;;;;;9947:21:0;;9963:4;9947:21;;9872:96;:119;;;;-1:-1:-1;;;;;;9972:19:0;;9986:4;9972:19;;9872:119;9869:181;;;10026:12;10008:15;:30;9869:181;-1:-1:-1;;;;;10063:24:0;;;;;;:18;:24;;;;;;;;:74;;;;;10120:16;;10107:10;;:29;;;;:::i;:::-;10092:12;:44;10063:74;10060:283;;;-1:-1:-1;;;;;10183:15:0;;;;;;;:9;:15;;;;;;:25;;;;;;;10226:13;;;;;;;;;;:23;;;;;;10284:26;;;;;;10202:6;1361:25:1;;1349:2;1334:18;;1215:177;10284:26:0;;;;;;;;10325:7;7815:3915;;;:::o;10060:283::-;-1:-1:-1;;;;;10357:24:0;;;;;;:18;:24;;;;;;;;10356:25;:53;;;;-1:-1:-1;;;;;;10387:22:0;;;;;;:18;:22;;;;;;;;10385:24;10356:53;10353:1013;;;10430:13;;-1:-1:-1;;;;;10430:19:0;;;:13;;:19;10426:929;;-1:-1:-1;;;;;10506:17:0;;;10470:33;10506:17;;;:13;:17;;;;;10546:13;;10506:17;;10546:21;;;:13;;:21;10542:555;;10596:22;;;:27;10592:173;;10689:18;;10677:9;;:30;:64;;10725:16;10740:1;10725:12;:16;:::i;:::-;10677:64;;;10710:12;10677:64;10652:89;;10592:173;10542:555;;;-1:-1:-1;;;;;10850:19:0;;10813:34;10850:19;;;:13;:19;;;;;10898:22;;:26;;10896:81;;-1:-1:-1;10955:22:0;;10929:23;;:48;10896:81;10892:186;;;11031:23;;11006:48;;10892:186;10790:307;10542:555;10451:661;10426:929;;;-1:-1:-1;;;;;11174:19:0;;11137:34;11174:19;;;:13;:19;;;;;11266:15;;11240:23;;:41;;11266:15;11240:41;:::i;:::-;11212:25;;;:69;11327:12;11300:24;;;;:39;10426:929;11382:13;;11378:169;;11455:4;11437:24;;;;:9;:24;;;;;;:39;;11466:9;11437:28;:39::i;:::-;11430:4;11412:24;;;;:9;:24;;;;;;;:64;;;;11496:39;;-1:-1:-1;;;;;11496:39:0;;;;;;;11525:9;1361:25:1;;1349:2;1334:18;;1215:177;11496:39:0;;;;;;;;11378:169;-1:-1:-1;;;;;11573:15:0;;;;;;:9;:15;;;;;;:27;;11593:6;11573:19;:27::i;:::-;-1:-1:-1;;;;;11557:15:0;;;;;;:9;:15;;;;;:43;11625:40;11643:21;:6;11654:9;11643:10;:21::i;:::-;-1:-1:-1;;;;;11625:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;11611:13:0;;;;;;;:9;:13;;;;;:54;;;;11681:41;;;11700:21;:6;11711:9;11700:10;:21::i;:::-;11681:41;;1361:25:1;;;1349:2;1334:18;11681:41:0;1215:177:1;1739:190:0;1825:7;1861:12;1853:6;;;;1845:29;;;;-1:-1:-1;;;1845:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1885:9:0;1897:5;1901:1;1897;:5;:::i;:::-;1885:17;1739:190;-1:-1:-1;;;;;1739:190:0:o;11846:483::-;5728:6;:13;;-1:-1:-1;;5728:13:0;;;;;11948:16:::1;::::0;;11962:1:::1;11948:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11948:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11948:16:0::1;11924:40;;11993:4;11975;11980:1;11975:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11975:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12019:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12019:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11975:7;;12019:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12009:4;12014:1;12009:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12009:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12084:15:::1;::::0;12052:62:::1;::::0;12069:4:::1;::::0;12084:15:::1;12102:11:::0;12052:8:::1;:62::i;:::-;12125:15;::::0;:196:::1;::::0;-1:-1:-1;;;12125:196:0;;-1:-1:-1;;;;;12125:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12206:11;;12125:15:::1;::::0;12248:4;;12275::::1;::::0;12295:15:::1;::::0;12125:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5764:6:0;:14;;-1:-1:-1;;5764:14:0;;;-1:-1:-1;;;;11846:483:0:o;12542:92::-;12599:10;;:27;;-1:-1:-1;;;;;12599:10:0;;;;:27;;;;;12619:6;;12599:10;:27;:10;:27;12619:6;12599:10;:27;;;;;;;;;;;;;;;;;;;1937:246;1995:7;2019:1;2024;2019:6;2015:47;;-1:-1:-1;2049:1:0;2042:8;;2015:47;2072:9;2084:5;2088:1;2084;:5;:::i;:::-;2072:17;-1:-1:-1;2117:1:0;2108:5;2112:1;2072:17;2108:5;:::i;:::-;:10;2100:56;;;;-1:-1:-1;;;2100:56:0;;13532:2:1;2100:56:0;;;13514:21:1;13571:2;13551:18;;;13544:30;13610:34;13590:18;;;13583:62;-1:-1:-1;;;13661:18:1;;;13654:31;13702:19;;2100:56:0;13330:397:1;2100:56:0;2174:1;1937:246;-1:-1:-1;;;1937:246:0:o;2191:132::-;2249:7;2276:39;2280:1;2283;2276:39;;;;;;;;;;;;;;;;;:3;:39::i;11740:98::-;11797:7;11824:1;11822;:3;11821:9;;11829:1;11821:9;;;-1:-1:-1;11827:1:0;11740:98;-1:-1:-1;11740:98:0:o;1408:179::-;1466:7;;1498:5;1502:1;1498;:5;:::i;:::-;1486:17;;1527:1;1522;:6;;1514:46;;;;-1:-1:-1;;;1514:46:0;;13934:2:1;1514:46:0;;;13916:21:1;13973:2;13953:18;;;13946:30;14012:29;13992:18;;;13985:57;14059:18;;1514:46:0;13732:351:1;1595:136:0;1653:7;1680:43;1684:1;1687;1680:43;;;;;;;;;;;;;;;;;:3;:43::i;2331:189::-;2417:7;2452:12;2445:5;2437:28;;;;-1:-1:-1;;;2437:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2476:9:0;2488:5;2492:1;2488;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:247::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2656:9;2643:23;2675:31;2700:5;2675:31;:::i;2741:388::-;2809:6;2817;2870:2;2858:9;2849:7;2845:23;2841:32;2838:52;;;2886:1;2883;2876:12;2838:52;2925:9;2912:23;2944:31;2969:5;2944:31;:::i;:::-;2994:5;-1:-1:-1;3051:2:1;3036:18;;3023:32;3064:33;3023:32;3064:33;:::i;:::-;3116:7;3106:17;;;2741:388;;;;;:::o;3134:180::-;3193:6;3246:2;3234:9;3225:7;3221:23;3217:32;3214:52;;;3262:1;3259;3252:12;3214:52;-1:-1:-1;3285:23:1;;3134:180;-1:-1:-1;3134:180:1:o;3319:127::-;3380:10;3375:3;3371:20;3368:1;3361:31;3411:4;3408:1;3401:15;3435:4;3432:1;3425:15;3451:416;3540:1;3577:5;3540:1;3591:270;3612:7;3602:8;3599:21;3591:270;;;3671:4;3667:1;3663:6;3659:17;3653:4;3650:27;3647:53;;;3680:18;;:::i;:::-;3730:7;3720:8;3716:22;3713:55;;;3750:16;;;;3713:55;3829:22;;;;3789:15;;;;3591:270;;;3595:3;3451:416;;;;;:::o;3872:806::-;3921:5;3951:8;3941:80;;-1:-1:-1;3992:1:1;4006:5;;3941:80;4040:4;4030:76;;-1:-1:-1;4077:1:1;4091:5;;4030:76;4122:4;4140:1;4135:59;;;;4208:1;4203:130;;;;4115:218;;4135:59;4165:1;4156:10;;4179:5;;;4203:130;4240:3;4230:8;4227:17;4224:43;;;4247:18;;:::i;:::-;-1:-1:-1;;4303:1:1;4289:16;;4318:5;;4115:218;;4417:2;4407:8;4404:16;4398:3;4392:4;4389:13;4385:36;4379:2;4369:8;4366:16;4361:2;4355:4;4352:12;4348:35;4345:77;4342:159;;;-1:-1:-1;4454:19:1;;;4486:5;;4342:159;4533:34;4558:8;4552:4;4533:34;:::i;:::-;4603:6;4599:1;4595:6;4591:19;4582:7;4579:32;4576:58;;;4614:18;;:::i;:::-;4652:20;;3872:806;-1:-1:-1;;;3872:806:1:o;4683:140::-;4741:5;4770:47;4811:4;4801:8;4797:19;4791:4;4770:47;:::i;4828:168::-;4901:9;;;4932;;4949:15;;;4943:22;;4929:37;4919:71;;4970:18;;:::i;5001:356::-;5203:2;5185:21;;;5222:18;;;5215:30;5281:34;5276:2;5261:18;;5254:62;5348:2;5333:18;;5001:356::o;5362:184::-;5432:6;5485:2;5473:9;5464:7;5460:23;5456:32;5453:52;;;5501:1;5498;5491:12;5453:52;-1:-1:-1;5524:16:1;;5362:184;-1:-1:-1;5362:184:1:o;5838:277::-;5905:6;5958:2;5946:9;5937:7;5933:23;5929:32;5926:52;;;5974:1;5971;5964:12;5926:52;6006:9;6000:16;6059:5;6052:13;6045:21;6038:5;6035:32;6025:60;;6081:1;6078;6071:12;6472:251;6542:6;6595:2;6583:9;6574:7;6570:23;6566:32;6563:52;;;6611:1;6608;6601:12;6563:52;6643:9;6637:16;6662:31;6687:5;6662:31;:::i;7649:306::-;7737:6;7745;7753;7806:2;7794:9;7785:7;7781:23;7777:32;7774:52;;;7822:1;7819;7812:12;7774:52;7851:9;7845:16;7835:26;;7901:2;7890:9;7886:18;7880:25;7870:35;;7945:2;7934:9;7930:18;7924:25;7914:35;;7649:306;;;;;:::o;11101:125::-;11166:9;;;11187:10;;;11184:36;;;11200:18;;:::i;11586:135::-;11625:3;11646:17;;;11643:43;;11666:18;;:::i;:::-;-1:-1:-1;11713:1:1;11702:13;;11586:135::o;11726:128::-;11793:9;;;11814:11;;;11811:37;;;11828:18;;:::i;11991:127::-;12052:10;12047:3;12043:20;12040:1;12033:31;12083:4;12080:1;12073:15;12107:4;12104:1;12097:15;12123:980;12385:4;12433:3;12422:9;12418:19;12464:6;12453:9;12446:25;12490:2;12528:6;12523:2;12512:9;12508:18;12501:34;12571:3;12566:2;12555:9;12551:18;12544:31;12595:6;12630;12624:13;12661:6;12653;12646:22;12699:3;12688:9;12684:19;12677:26;;12738:2;12730:6;12726:15;12712:29;;12759:1;12769:195;12783:6;12780:1;12777:13;12769:195;;;12848:13;;-1:-1:-1;;;;;12844:39:1;12832:52;;12939:15;;;;12904:12;;;;12880:1;12798:9;12769:195;;;-1:-1:-1;;;;;;;13020:32:1;;;;13015:2;13000:18;;12993:60;-1:-1:-1;;;13084:3:1;13069:19;13062:35;12981:3;12123:980;-1:-1:-1;;;12123:980:1:o;13108:217::-;13148:1;13174;13164:132;;13218:10;13213:3;13209:20;13206:1;13199:31;13253:4;13250:1;13243:15;13281:4;13278:1;13271:15;13164:132;-1:-1:-1;13310:9:1;;13108:217::o

Swarm Source

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