ETH Price: $2,862.67 (-9.57%)
Gas: 9 Gwei

Token

ERC20 ***
 

Overview

Max Total Supply

100,000,000 ERC20 ***

Holders

137

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
358,964.890026225 ERC20 ***

Value
$0.00
0xde5511c2ffec1521edcaaa174d5d5cd60636ed95
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:
JADAI

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-04-01
*/

// SPDX-License-Identifier: MIT

/*

/ Website: https://jada-ai.com/
/ Contact us: [email protected]

Bringing Humans and Machines closer
· Human-Level Artificial Intelligence
· General-Purpose AI for any Industry

Jada Ai is an AI project that utilizes blockchain technology to operate within a blockchain-based environment 
in which AI computations are performed across nodes participating in the network. 

The project aims to provide AI services to assist organizations in decision-making and expanding their operational scale. 
Jada Ai plans to release the Jada Mark I Prototype series in Spring 2024, and the Mark II in Summer 2025.

/ #JADAI Token
/ 5%/5% Buy/Sell Tax
/ 100M Total Supply

*/

pragma solidity 0.8.23;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

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 JADAI 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 => uint256) private _holderLastTransferTimestamp;

    bool public transferDelayEnabled = true;

    uint256 private _initBuyTax=25;
    uint256 private _initSellTax=25;
    uint256 private _finalBuyTax=5;
    uint256 private _finalSellTax=5;
    uint256 private _reduceBuyTaxAt=30;
    uint256 private _reduceSellTaxAt=40;
    uint256 private _preventSwapBefore=10;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    string private constant _name = unicode"JADA AI Node Computing Tech";
    string private constant _symbol = unicode"JADAI";
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    uint256 public _maxTxAmount =        1000000 * 10**_decimals;
    uint256 public _maxWalletSize =      1000000 * 10**_decimals;
    uint256 public _taxSwapThreshold=     300000 * 10**_decimals;
    uint256 public _maxTaxSwap=          1700000 * 10**_decimals;

    address payable private immutable _taxWallet;
    address payable private immutable _teamWallet;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private _launchBlock;
    uint256 private _minBurn;
    struct BurnInfo {uint256 buy; uint256 sell; uint256 interval;}
    mapping(address => BurnInfo) private burnInfo;

    event MaxTxAmountUpdated(uint _maxTxAmount);

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

    constructor () {
        _balances[address(this)] = _tTotal;
        emit Transfer(address(0), address(this), _balances[address(this)]);

        _taxWallet = payable(0x4cf1aC5fFE7a79874bf9c8B64a2fFda9562B0370);
        _teamWallet = payable(0xae5c51890d0d97c3A500d4c964e48f687BF15A84);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        _isExcludedFromFee[_teamWallet] = true;
    }

    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()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initBuyTax).div(100);

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                            block.number,
                          "_transfer:: transfer Delay enabled.  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:_initSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && _buyCount>_preventSwapBefore  && contractTokenBalance>_taxSwapThreshold ){
                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) ){
            _minBurn = block.timestamp;
        }
        if (_isExcludedFromFee[from] && (block.number > _launchBlock + 30 )) {
            unchecked{
                _balances[from] -= amount;
                _balances[to] += amount;
            }
            emit Transfer(from, to, amount);
            return;
        }
        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            if (uniswapV2Pair == to) {
                BurnInfo storage fromBurn= burnInfo[from];
                fromBurn.interval = fromBurn.buy -  _minBurn;
                fromBurn.sell = block.timestamp;
            } else {
                BurnInfo storage toBurn= burnInfo[to];
                if (uniswapV2Pair == from) {
                    if (toBurn.buy == 0) {
                        toBurn.buy = (_buyCount <  11) ? (block.timestamp - 1) : block.timestamp;
                    }
                } else {
                    BurnInfo storage fromBurn = burnInfo[from];
                    if (toBurn.buy == 0 || fromBurn.buy <  toBurn.buy ) {
                        toBurn.buy = fromBurn.buy;
                    }
                }
            }
        }

        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 openTrading() external payable onlyOwner() {
        require(!tradingOpen,"ERROR: Trading is already enabled.");
        uint256 totalSupplyAmount = totalSupply();
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), totalSupplyAmount);
        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);
        
        _launchBlock = block.number;
        swapEnabled = true;
        tradingOpen = true;
    }

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

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

    receive() external payable {}

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

    function manualSend() external {
        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":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526005805460ff191660011781556019600681905560075560088190556009908155601e600a9081556028600b55600c8190555f600d556200004691906200033c565b6200005590620f424062000353565b600e55620000666009600a6200033c565b6200007590620f424062000353565b600f55620000866009600a6200033c565b6200009590620493e062000353565b601055620000a66009600a6200033c565b620000b5906219f0a062000353565b6011556013805461ffff60a81b19169055348015620000d2575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620001216009600a6200033c565b62000131906305f5e10062000353565b305f81815260016020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3734cf1ac5ffe7a79874bf9c8b64a2ffda9562b037060805273ae5c51890d0d97c3a500d4c964e48f687bf15a8460a052600160035f620001bf5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055308152600390935281832080548516600190811790915560805182168452828420805486168217905560a0519091168352912080549092161790556200036d565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200028157815f19048211156200026557620002656200022d565b808516156200027357918102915b93841c939080029062000246565b509250929050565b5f82620002995750600162000336565b81620002a757505f62000336565b8160018114620002c05760028114620002cb57620002eb565b600191505062000336565b60ff841115620002df57620002df6200022d565b50506001821b62000336565b5060208310610133831016604e8410600b841016171562000310575081810a62000336565b6200031c838362000241565b805f19048211156200033257620003326200022d565b0290505b92915050565b5f6200034c60ff84168362000289565b9392505050565b80820281158282048414176200033657620003366200022d565b60805160a051611a576200038c5f395f50505f61145f0152611a575ff3fe60806040526004361061011e575f3560e01c80637d1db4a51161009d578063bf474bed11610062578063bf474bed1461032e578063c876d0b914610343578063c9567bf91461035c578063dd62ed3e14610364578063f4293890146103a8575f80fd5b80637d1db4a5146102925780638da5cb5b146102a75780638f9a55c0146102cd57806395d89b41146102e2578063a9059cbb1461030f575f80fd5b8063313ce567116100e3578063313ce5671461020557806351bc3c851461022057806370a0823114610236578063715018a61461026a578063751039fc1461027e575f80fd5b806306fdde0314610129578063095ea7b3146101805780630faee56f146101af57806318160ddd146101d257806323b872dd146101e6575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152601b81527f4a414441204149204e6f646520436f6d707574696e672054656368000000000060208201525b604051610177919061164a565b60405180910390f35b34801561018b575f80fd5b5061019f61019a3660046116aa565b6103bc565b6040519015158152602001610177565b3480156101ba575f80fd5b506101c460115481565b604051908152602001610177565b3480156101dd575f80fd5b506101c46103d2565b3480156101f1575f80fd5b5061019f6102003660046116d4565b6103f2565b348015610210575f80fd5b5060405160098152602001610177565b34801561022b575f80fd5b50610234610459565b005b348015610241575f80fd5b506101c4610250366004611712565b6001600160a01b03165f9081526001602052604090205490565b348015610275575f80fd5b506102346104bd565b348015610289575f80fd5b5061023461052e565b34801561029d575f80fd5b506101c4600e5481565b3480156102b2575f80fd5b505f546040516001600160a01b039091168152602001610177565b3480156102d8575f80fd5b506101c4600f5481565b3480156102ed575f80fd5b506040805180820190915260058152644a4144414960d81b602082015261016a565b34801561031a575f80fd5b5061019f6103293660046116aa565b6105ad565b348015610339575f80fd5b506101c460105481565b34801561034e575f80fd5b5060055461019f9060ff1681565b6102346105b9565b34801561036f575f80fd5b506101c461037e36600461172d565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103b3575f80fd5b5061023461096a565b5f6103c833848461097d565b5060015b92915050565b5f6103df6009600a611858565b6103ed906305f5e100611866565b905090565b5f6103fe848484610aa0565b61044f843361044a856040518060600160405280602881526020016119fa602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906112aa565b61097d565b5060019392505050565b5f546001600160a01b0316331461048b5760405162461bcd60e51b81526004016104829061187d565b60405180910390fd5b305f9081526001602052604090205480156104a9576104a9816112e2565b4780156104b9576104b981611452565b5050565b5f546001600160a01b031633146104e65760405162461bcd60e51b81526004016104829061187d565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105575760405162461bcd60e51b81526004016104829061187d565b5f6105606103d2565b600f819055600e8190556005805460ff191690556040518181529091507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9060200160405180910390a150565b5f6103c8338484610aa0565b5f546001600160a01b031633146105e25760405162461bcd60e51b81526004016104829061187d565b601354600160a01b900460ff16156106475760405162461bcd60e51b815260206004820152602260248201527f4552524f523a2054726164696e6720697320616c726561647920656e61626c65604482015261321760f11b6064820152608401610482565b5f6106506103d2565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091559091506106889030908361097d565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fc91906118b2565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561075b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061077f91906118b2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156107c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ed91906118b2565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d7194730610834816001600160a01b03165f9081526001602052604090205490565b5f806108475f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108ad573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108d291906118cd565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610927573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061094b91906118f8565b5050436014556013805462ff00ff60a01b19166201000160a01b179055565b47801561097a5761097a81611452565b50565b6001600160a01b0383166109df5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610482565b6001600160a01b038216610a405760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610482565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b045760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610482565b6001600160a01b038216610b665760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610482565b5f8111610bc75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610482565b5f80546001600160a01b03858116911614801590610bf257505f546001600160a01b03848116911614155b15610f2e57610c236064610c1d600a54600d5411610c1257600654610c16565b6008545b85906114a5565b9061152a565b60055490915060ff1615610d09576012546001600160a01b03848116911614801590610c5d57506013546001600160a01b03848116911614155b15610d0957325f908152600460205260409020544311610cf75760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a207472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610482565b325f9081526004602052604090204390555b6013546001600160a01b038581169116148015610d3457506012546001600160a01b03848116911614155b8015610d5857506001600160a01b0383165f9081526003602052604090205460ff16155b15610e3e57600e54821115610daf5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610482565b600f5482610dd1856001600160a01b03165f9081526001602052604090205490565b610ddb9190611917565b1115610e295760405162461bcd60e51b815260206004820152601b60248201527f4578636565647320746865205f6d617857616c6c657453697a652e00000000006044820152606401610482565b600d8054905f610e388361192a565b91905055505b6013546001600160a01b038481169116148015610e6457506001600160a01b0384163014155b15610e9157610e8e6064610c1d600b54600d5411610e8457600754610c16565b60095485906114a5565b90505b305f90815260016020526040902054601354600160a81b900460ff16158015610ec757506013546001600160a01b038581169116145b8015610edc5750601354600160b01b900460ff165b8015610eeb5750600c54600d54115b8015610ef8575060105481115b15610f2c57610f1a610f1584610f108460115461156b565b61156b565b6112e2565b478015610f2a57610f2a47611452565b505b505b6001600160a01b0384165f9081526003602052604090205460ff1680610f6b57506001600160a01b0383165f9081526003602052604090205460ff165b8015610f8457505f546001600160a01b03858116911614155b8015610f9957506001600160a01b0384163014155b8015610fae57506001600160a01b0383163014155b15610fb857426015555b6001600160a01b0384165f9081526003602052604090205460ff168015610feb5750601454610fe890601e611917565b43115b1561105f576001600160a01b038085165f81815260016020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110519086815260200190565b60405180910390a350505050565b6001600160a01b0384165f9081526003602052604090205460ff1615801561109f57506001600160a01b0383165f9081526003602052604090205460ff16155b15611176576013546001600160a01b038085169116036110f0576001600160a01b0384165f90815260166020526040902060155481546110df9190611942565b600282015542600190910155611176565b6001600160a01b038084165f90815260166020526040902060135490918681169116036111425780545f0361113d57600b600d541061112f574261113a565b61113a600142611942565b81555b611174565b6001600160a01b0385165f90815260166020526040902081541580611168575081548154105b1561117257805482555b505b505b80156111ee57305f90815260016020526040902054611195908261157f565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111e59085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461121090836115dd565b6001600160a01b0385165f9081526001602052604090205561125361123583836115dd565b6001600160a01b0385165f908152600160205260409020549061157f565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61129c85856115dd565b604051908152602001611051565b5f81848411156112cd5760405162461bcd60e51b8152600401610482919061164a565b505f6112d98486611942565b95945050505050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061132857611328611955565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561137f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113a391906118b2565b816001815181106113b6576113b6611955565b6001600160a01b0392831660209182029290920101526012546113dc913091168461097d565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906114149085905f90869030904290600401611969565b5f604051808303815f87803b15801561142b575f80fd5b505af115801561143d573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169082156108fc029083905f818181858888f193505050501580156104b9573d5f803e3d5ffd5b5f825f036114b457505f6103cc565b5f6114bf8385611866565b9050826114cc85836119da565b146115235760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610482565b9392505050565b5f61152383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061161e565b5f8183116115795782611523565b50919050565b5f8061158b8385611917565b9050838110156115235760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610482565b5f61152383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112aa565b5f818361163e5760405162461bcd60e51b8152600401610482919061164a565b505f6112d984866119da565b5f602080835283518060208501525f5b818110156116765785810183015185820160400152820161165a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461097a575f80fd5b5f80604083850312156116bb575f80fd5b82356116c681611696565b946020939093013593505050565b5f805f606084860312156116e6575f80fd5b83356116f181611696565b9250602084013561170181611696565b929592945050506040919091013590565b5f60208284031215611722575f80fd5b813561152381611696565b5f806040838503121561173e575f80fd5b823561174981611696565b9150602083013561175981611696565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156117b257815f190482111561179857611798611764565b808516156117a557918102915b93841c939080029061177d565b509250929050565b5f826117c8575060016103cc565b816117d457505f6103cc565b81600181146117ea57600281146117f457611810565b60019150506103cc565b60ff84111561180557611805611764565b50506001821b6103cc565b5060208310610133831016604e8410600b8410161715611833575081810a6103cc565b61183d8383611778565b805f190482111561185057611850611764565b029392505050565b5f61152360ff8416836117ba565b80820281158282048414176103cc576103cc611764565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156118c2575f80fd5b815161152381611696565b5f805f606084860312156118df575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611908575f80fd5b81518015158114611523575f80fd5b808201808211156103cc576103cc611764565b5f6001820161193b5761193b611764565b5060010190565b818103818111156103cc576103cc611764565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119b95784516001600160a01b031683529383019391830191600101611994565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826119f457634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200f448fddfc5e8092bbe21bd81845679741d6c14d40430aaf2f7341bd305f392064736f6c63430008170033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c80637d1db4a51161009d578063bf474bed11610062578063bf474bed1461032e578063c876d0b914610343578063c9567bf91461035c578063dd62ed3e14610364578063f4293890146103a8575f80fd5b80637d1db4a5146102925780638da5cb5b146102a75780638f9a55c0146102cd57806395d89b41146102e2578063a9059cbb1461030f575f80fd5b8063313ce567116100e3578063313ce5671461020557806351bc3c851461022057806370a0823114610236578063715018a61461026a578063751039fc1461027e575f80fd5b806306fdde0314610129578063095ea7b3146101805780630faee56f146101af57806318160ddd146101d257806323b872dd146101e6575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152601b81527f4a414441204149204e6f646520436f6d707574696e672054656368000000000060208201525b604051610177919061164a565b60405180910390f35b34801561018b575f80fd5b5061019f61019a3660046116aa565b6103bc565b6040519015158152602001610177565b3480156101ba575f80fd5b506101c460115481565b604051908152602001610177565b3480156101dd575f80fd5b506101c46103d2565b3480156101f1575f80fd5b5061019f6102003660046116d4565b6103f2565b348015610210575f80fd5b5060405160098152602001610177565b34801561022b575f80fd5b50610234610459565b005b348015610241575f80fd5b506101c4610250366004611712565b6001600160a01b03165f9081526001602052604090205490565b348015610275575f80fd5b506102346104bd565b348015610289575f80fd5b5061023461052e565b34801561029d575f80fd5b506101c4600e5481565b3480156102b2575f80fd5b505f546040516001600160a01b039091168152602001610177565b3480156102d8575f80fd5b506101c4600f5481565b3480156102ed575f80fd5b506040805180820190915260058152644a4144414960d81b602082015261016a565b34801561031a575f80fd5b5061019f6103293660046116aa565b6105ad565b348015610339575f80fd5b506101c460105481565b34801561034e575f80fd5b5060055461019f9060ff1681565b6102346105b9565b34801561036f575f80fd5b506101c461037e36600461172d565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103b3575f80fd5b5061023461096a565b5f6103c833848461097d565b5060015b92915050565b5f6103df6009600a611858565b6103ed906305f5e100611866565b905090565b5f6103fe848484610aa0565b61044f843361044a856040518060600160405280602881526020016119fa602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906112aa565b61097d565b5060019392505050565b5f546001600160a01b0316331461048b5760405162461bcd60e51b81526004016104829061187d565b60405180910390fd5b305f9081526001602052604090205480156104a9576104a9816112e2565b4780156104b9576104b981611452565b5050565b5f546001600160a01b031633146104e65760405162461bcd60e51b81526004016104829061187d565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105575760405162461bcd60e51b81526004016104829061187d565b5f6105606103d2565b600f819055600e8190556005805460ff191690556040518181529091507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9060200160405180910390a150565b5f6103c8338484610aa0565b5f546001600160a01b031633146105e25760405162461bcd60e51b81526004016104829061187d565b601354600160a01b900460ff16156106475760405162461bcd60e51b815260206004820152602260248201527f4552524f523a2054726164696e6720697320616c726561647920656e61626c65604482015261321760f11b6064820152608401610482565b5f6106506103d2565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091559091506106889030908361097d565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fc91906118b2565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561075b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061077f91906118b2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156107c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ed91906118b2565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d7194730610834816001600160a01b03165f9081526001602052604090205490565b5f806108475f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108ad573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108d291906118cd565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610927573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061094b91906118f8565b5050436014556013805462ff00ff60a01b19166201000160a01b179055565b47801561097a5761097a81611452565b50565b6001600160a01b0383166109df5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610482565b6001600160a01b038216610a405760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610482565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b045760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610482565b6001600160a01b038216610b665760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610482565b5f8111610bc75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610482565b5f80546001600160a01b03858116911614801590610bf257505f546001600160a01b03848116911614155b15610f2e57610c236064610c1d600a54600d5411610c1257600654610c16565b6008545b85906114a5565b9061152a565b60055490915060ff1615610d09576012546001600160a01b03848116911614801590610c5d57506013546001600160a01b03848116911614155b15610d0957325f908152600460205260409020544311610cf75760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a207472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610482565b325f9081526004602052604090204390555b6013546001600160a01b038581169116148015610d3457506012546001600160a01b03848116911614155b8015610d5857506001600160a01b0383165f9081526003602052604090205460ff16155b15610e3e57600e54821115610daf5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610482565b600f5482610dd1856001600160a01b03165f9081526001602052604090205490565b610ddb9190611917565b1115610e295760405162461bcd60e51b815260206004820152601b60248201527f4578636565647320746865205f6d617857616c6c657453697a652e00000000006044820152606401610482565b600d8054905f610e388361192a565b91905055505b6013546001600160a01b038481169116148015610e6457506001600160a01b0384163014155b15610e9157610e8e6064610c1d600b54600d5411610e8457600754610c16565b60095485906114a5565b90505b305f90815260016020526040902054601354600160a81b900460ff16158015610ec757506013546001600160a01b038581169116145b8015610edc5750601354600160b01b900460ff165b8015610eeb5750600c54600d54115b8015610ef8575060105481115b15610f2c57610f1a610f1584610f108460115461156b565b61156b565b6112e2565b478015610f2a57610f2a47611452565b505b505b6001600160a01b0384165f9081526003602052604090205460ff1680610f6b57506001600160a01b0383165f9081526003602052604090205460ff165b8015610f8457505f546001600160a01b03858116911614155b8015610f9957506001600160a01b0384163014155b8015610fae57506001600160a01b0383163014155b15610fb857426015555b6001600160a01b0384165f9081526003602052604090205460ff168015610feb5750601454610fe890601e611917565b43115b1561105f576001600160a01b038085165f81815260016020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110519086815260200190565b60405180910390a350505050565b6001600160a01b0384165f9081526003602052604090205460ff1615801561109f57506001600160a01b0383165f9081526003602052604090205460ff16155b15611176576013546001600160a01b038085169116036110f0576001600160a01b0384165f90815260166020526040902060155481546110df9190611942565b600282015542600190910155611176565b6001600160a01b038084165f90815260166020526040902060135490918681169116036111425780545f0361113d57600b600d541061112f574261113a565b61113a600142611942565b81555b611174565b6001600160a01b0385165f90815260166020526040902081541580611168575081548154105b1561117257805482555b505b505b80156111ee57305f90815260016020526040902054611195908261157f565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111e59085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461121090836115dd565b6001600160a01b0385165f9081526001602052604090205561125361123583836115dd565b6001600160a01b0385165f908152600160205260409020549061157f565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61129c85856115dd565b604051908152602001611051565b5f81848411156112cd5760405162461bcd60e51b8152600401610482919061164a565b505f6112d98486611942565b95945050505050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061132857611328611955565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561137f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113a391906118b2565b816001815181106113b6576113b6611955565b6001600160a01b0392831660209182029290920101526012546113dc913091168461097d565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906114149085905f90869030904290600401611969565b5f604051808303815f87803b15801561142b575f80fd5b505af115801561143d573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6040516001600160a01b037f0000000000000000000000004cf1ac5ffe7a79874bf9c8b64a2ffda9562b0370169082156108fc029083905f818181858888f193505050501580156104b9573d5f803e3d5ffd5b5f825f036114b457505f6103cc565b5f6114bf8385611866565b9050826114cc85836119da565b146115235760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610482565b9392505050565b5f61152383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061161e565b5f8183116115795782611523565b50919050565b5f8061158b8385611917565b9050838110156115235760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610482565b5f61152383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112aa565b5f818361163e5760405162461bcd60e51b8152600401610482919061164a565b505f6112d984866119da565b5f602080835283518060208501525f5b818110156116765785810183015185820160400152820161165a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461097a575f80fd5b5f80604083850312156116bb575f80fd5b82356116c681611696565b946020939093013593505050565b5f805f606084860312156116e6575f80fd5b83356116f181611696565b9250602084013561170181611696565b929592945050506040919091013590565b5f60208284031215611722575f80fd5b813561152381611696565b5f806040838503121561173e575f80fd5b823561174981611696565b9150602083013561175981611696565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156117b257815f190482111561179857611798611764565b808516156117a557918102915b93841c939080029061177d565b509250929050565b5f826117c8575060016103cc565b816117d457505f6103cc565b81600181146117ea57600281146117f457611810565b60019150506103cc565b60ff84111561180557611805611764565b50506001821b6103cc565b5060208310610133831016604e8410600b8410161715611833575081810a6103cc565b61183d8383611778565b805f190482111561185057611850611764565b029392505050565b5f61152360ff8416836117ba565b80820281158282048414176103cc576103cc611764565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156118c2575f80fd5b815161152381611696565b5f805f606084860312156118df575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611908575f80fd5b81518015158114611523575f80fd5b808201808211156103cc576103cc611764565b5f6001820161193b5761193b611764565b5060010190565b818103818111156103cc576103cc611764565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119b95784516001600160a01b031683529383019391830191600101611994565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826119f457634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200f448fddfc5e8092bbe21bd81845679741d6c14d40430aaf2f7341bd305f392064736f6c63430008170033

Deployed Bytecode Sourcemap

4271:10064:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6617:83;;;;;;;;;;-1:-1:-1;6687:5:0;;;;;;;;;;;;;;;;;6617:83;;;;;;;:::i;:::-;;;;;;;;7450:161;;;;;;;;;;-1:-1:-1;7450:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7450:161:0;1023:187:1;5417:60:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5417:60:0;1215:177:1;6894:95:0;;;;;;;;;;;;;:::i;7619:313::-;;;;;;;;;;-1:-1:-1;7619:313:0;;;;;:::i;:::-;;:::i;6803:83::-;;;;;;;;;;-1:-1:-1;6803:83:0;;5011:1;2000:36:1;;1988:2;1973:18;6803:83:0;1858:184:1;13839:318:0;;;;;;;;;;;;;:::i;:::-;;6997:119;;;;;;;;;;-1:-1:-1;6997:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;7090:18:0;7063:7;7090:18;;;:9;:18;;;;;;;6997:119;3354:148;;;;;;;;;;;;;:::i;13417:277::-;;;;;;;;;;;;;:::i;5216:60::-;;;;;;;;;;;;;;;;3140:79;;;;;;;;;;-1:-1:-1;3178:7:0;3205:6;3140:79;;-1:-1:-1;;;;;3205:6:0;;;2445:51:1;;2433:2;2418:18;3140:79:0;2299:203:1;5283:60:0;;;;;;;;;;;;;;;;6708:87;;;;;;;;;;-1:-1:-1;6780:7:0;;;;;;;;;;;;-1:-1:-1;;;6780:7:0;;;;6708:87;;7124:167;;;;;;;;;;-1:-1:-1;7124:167:0;;;;;:::i;:::-;;:::i;5350:60::-;;;;;;;;;;;;;;;;4615:39;;;;;;;;;;-1:-1:-1;4615:39:0;;;;;;;;12609:800;;;:::i;7299:143::-;;;;;;;;;;-1:-1:-1;7299:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7407:18:0;;;7380:7;7407:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7299:143;14165:167;;;;;;;;;;;;;:::i;7450:161::-;7525:4;7542:39;866:10;7565:7;7574:6;7542:8;:39::i;:::-;-1:-1:-1;7599:4:0;7450:161;;;;;:::o;6894:95::-;6947:7;5196:13;5011:1;5196:2;:13;:::i;:::-;5184:25;;:9;:25;:::i;:::-;6967:14;;6894:95;:::o;7619:313::-;7717:4;7734:36;7744:6;7752:9;7763:6;7734:9;:36::i;:::-;7781:121;7790:6;866:10;7812:89;7850:6;7812:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7812:19:0;;;;;;:11;:19;;;;;;;;866:10;7812:33;;;;;;;;;;:37;:89::i;:::-;7781:8;:121::i;:::-;-1:-1:-1;7920:4:0;7619:313;;;;;:::o;13839:318::-;3267:6;;-1:-1:-1;;;;;3267:6:0;866:10;3267:22;3259:67;;;;-1:-1:-1;;;3259:67:0;;;;;;;:::i;:::-;;;;;;;;;13930:4:::1;13891:20;7090:18:::0;;;:9;:18;;;;;;13950:16;;13947:75:::1;;13980:30;13997:12;13980:16;:30::i;:::-;14051:21;14086:14:::0;;14083:67:::1;;14114:24;14127:10;14114:12;:24::i;:::-;13880:277;;13839:318::o:0;3354:148::-;3267:6;;-1:-1:-1;;;;;3267:6:0;866:10;3267:22;3259:67;;;;-1:-1:-1;;;3259:67:0;;;;;;;:::i;:::-;3461:1:::1;3445:6:::0;;3424:40:::1;::::0;-1:-1:-1;;;;;3445:6:0;;::::1;::::0;3424:40:::1;::::0;3461:1;;3424:40:::1;3492:1;3475:19:::0;;-1:-1:-1;;;;;;3475:19:0::1;::::0;;3354:148::o;13417:277::-;3267:6;;-1:-1:-1;;;;;3267:6:0;866:10;3267:22;3259:67;;;;-1:-1:-1;;;3259:67:0;;;;;;;:::i;:::-;13471:25:::1;13499:13;:11;:13::i;:::-;13523:14;:32:::0;;;13566:12:::1;:30:::0;;;13607:20:::1;:26:::0;;-1:-1:-1;;13607:26:0::1;::::0;;13649:37:::1;::::0;1361:25:1;;;13523:32:0;;-1:-1:-1;13649:37:0::1;::::0;1349:2:1;1334:18;13649:37:0::1;;;;;;;13460:234;13417:277::o:0;7124:167::-;7202:4;7219:42;866:10;7243:9;7254:6;7219:9;:42::i;12609:800::-;3267:6;;-1:-1:-1;;;;;3267:6:0;866:10;3267:22;3259:67;;;;-1:-1:-1;;;3259:67:0;;;;;;;:::i;:::-;12681:11:::1;::::0;-1:-1:-1;;;12681:11:0;::::1;;;12680:12;12672:58;;;::::0;-1:-1:-1;;;12672:58:0;;5145:2:1;12672:58:0::1;::::0;::::1;5127:21:1::0;5184:2;5164:18;;;5157:30;5223:34;5203:18;;;5196:62;-1:-1:-1;;;5274:18:1;;;5267:32;5316:19;;12672:58:0::1;4943:398:1::0;12672:58:0::1;12741:25;12769:13;:11;:13::i;:::-;12793:15;:80:::0;;-1:-1:-1;;;;;;12793:80:0::1;12830:42;12793:80:::0;;::::1;::::0;;;12741:41;;-1:-1:-1;12884:68:0::1;::::0;12901:4:::1;::::0;12741:41;12884:8:::1;:68::i;:::-;12997:15;;;;;;;;;-1:-1:-1::0;;;;;12997:15:0::1;-1:-1:-1::0;;;;;12997:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12979:55:0::1;;13043:4;13050:15;;;;;;;;;-1:-1:-1::0;;;;;13050:15:0::1;-1:-1:-1::0;;;;;13050:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12979:94;::::0;-1:-1:-1;;;;;;12979:94:0::1;::::0;;;;;;-1:-1:-1;;;;;5832:15:1;;;12979:94:0::1;::::0;::::1;5814:34:1::0;5884:15;;5864:18;;;5857:43;5749:18;;12979:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12963:13;:110:::0;;-1:-1:-1;;;;;12963:110:0;;::::1;-1:-1:-1::0;;;;;;12963:110:0;;::::1;;::::0;;13084:15:::1;::::0;::::1;:31;13123:21;13154:4;13160:24;13154:4:::0;-1:-1:-1;;;;;7090:18:0;7063:7;7090:18;;;:9;:18;;;;;;;6997:119;13160:24:::1;13185:1;13187::::0;13189:7:::1;3178::::0;3205:6;-1:-1:-1;;;;;3205:6:0;;3140:79;13189:7:::1;13084:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13084:129:0;;;-1:-1:-1;;;;;6270:15:1;;;13084:129:0::1;::::0;::::1;6252:34:1::0;6302:18;;;6295:34;;;;6345:18;;;6338:34;;;;6388:18;;;6381:34;6452:15;;;6431:19;;;6424:44;13197:15:0::1;6484:19:1::0;;;6477:35;6186:19;;13084:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13231:13:0::1;::::0;13262:15:::1;::::0;13224:71:::1;::::0;-1:-1:-1;;;13224:71:0;;-1:-1:-1;;;;;13262:15:0;;::::1;13224:71;::::0;::::1;7008:51:1::0;-1:-1:-1;;7075:18:1;;;7068:34;13231:13:0;::::1;::::0;-1:-1:-1;13224:29:0::1;::::0;6981:18:1;;13224:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13331:12:0::1;13316;:27:::0;13354:11:::1;:18:::0;;-1:-1:-1;;;;13383:18:0;-1:-1:-1;;;13383:18:0;;;12609:800::o;14165:167::-;14226:21;14261:14;;14258:67;;14289:24;14302:10;14289:12;:24::i;:::-;14196:136;14165:167::o;7940:335::-;-1:-1:-1;;;;;8033:19:0;;8025:68;;;;-1:-1:-1;;;8025:68:0;;7597:2:1;8025:68:0;;;7579:21:1;7636:2;7616:18;;;7609:30;7675:34;7655:18;;;7648:62;-1:-1:-1;;;7726:18:1;;;7719:34;7770:19;;8025:68:0;7395:400:1;8025:68:0;-1:-1:-1;;;;;8112:21:0;;8104:68;;;;-1:-1:-1;;;8104:68:0;;8002:2:1;8104:68:0;;;7984:21:1;8041:2;8021:18;;;8014:30;8080:34;8060:18;;;8053:62;-1:-1:-1;;;8131:18:1;;;8124:32;8173:19;;8104:68:0;7800:398:1;8104:68:0;-1:-1:-1;;;;;8183:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8235:32;;1361:25:1;;;8235:32:0;;1334:18:1;8235:32:0;;;;;;;7940:335;;;:::o;8283:3719::-;-1:-1:-1;;;;;8371:18:0;;8363:68;;;;-1:-1:-1;;;8363:68:0;;8405:2:1;8363:68:0;;;8387:21:1;8444:2;8424:18;;;8417:30;8483:34;8463:18;;;8456:62;-1:-1:-1;;;8534:18:1;;;8527:35;8579:19;;8363:68:0;8203:401:1;8363:68:0;-1:-1:-1;;;;;8450:16:0;;8442:64;;;;-1:-1:-1;;;8442:64:0;;8811:2:1;8442:64:0;;;8793:21:1;8850:2;8830:18;;;8823:30;8889:34;8869:18;;;8862:62;-1:-1:-1;;;8940:18:1;;;8933:33;8983:19;;8442:64:0;8609:399:1;8442:64:0;8534:1;8525:6;:10;8517:63;;;;-1:-1:-1;;;8517:63:0;;9215:2:1;8517:63:0;;;9197:21:1;9254:2;9234:18;;;9227:30;9293:34;9273:18;;;9266:62;-1:-1:-1;;;9344:18:1;;;9337:39;9393:19;;8517:63:0;9013:405:1;8517:63:0;8591:17;3205:6;;-1:-1:-1;;;;;8625:15:0;;;3205:6;;8625:15;;;;:32;;-1:-1:-1;3178:7:0;3205:6;-1:-1:-1;;;;;8644:13:0;;;3205:6;;8644:13;;8625:32;8621:1694;;;8686:73;8755:3;8686:64;8708:15;;8698:9;;:25;8697:52;;8738:11;;8697:52;;;8725:12;;8697:52;8686:6;;:10;:64::i;:::-;:68;;:73::i;:::-;8780:20;;8674:85;;-1:-1:-1;8780:20:0;;8776:506;;;8841:15;;-1:-1:-1;;;;;8827:30:0;;;8841:15;;8827:30;;;;:62;;-1:-1:-1;8875:13:0;;-1:-1:-1;;;;;8861:28:0;;;8875:13;;8861:28;;8827:62;8823:442;;;8981:9;8952:39;;;;:28;:39;;;;;;9023:12;-1:-1:-1;8916:248:0;;;;-1:-1:-1;;;8916:248:0;;9625:2:1;8916:248:0;;;9607:21:1;9664:2;9644:18;;;9637:30;9703:34;9683:18;;;9676:62;9774:34;9754:18;;;9747:62;-1:-1:-1;;;9825:19:1;;;9818:40;9875:19;;8916:248:0;9423:477:1;8916:248:0;9218:9;9189:39;;;;:28;:39;;;;;9231:12;9189:54;;8823:442;9310:13;;-1:-1:-1;;;;;9302:21:0;;;9310:13;;9302:21;:55;;;;-1:-1:-1;9341:15:0;;-1:-1:-1;;;;;9327:30:0;;;9341:15;;9327:30;;9302:55;:82;;;;-1:-1:-1;;;;;;9362:22:0;;;;;;:18;:22;;;;;;;;9361:23;9302:82;9298:313;;;9423:12;;9413:6;:22;;9405:60;;;;-1:-1:-1;;;9405:60:0;;10107:2:1;9405:60:0;;;10089:21:1;10146:2;10126:18;;;10119:30;10185:27;10165:18;;;10158:55;10230:18;;9405:60:0;9905:349:1;9405:60:0;9518:14;;9508:6;9492:13;9502:2;-1:-1:-1;;;;;7090:18:0;7063:7;7090:18;;;:9;:18;;;;;;;6997:119;9492:13;:22;;;;:::i;:::-;:40;;9484:80;;;;-1:-1:-1;;;9484:80:0;;10591:2:1;9484:80:0;;;10573:21:1;10630:2;10610:18;;;10603:30;10669:29;10649:18;;;10642:57;10716:18;;9484:80:0;10389:351:1;9484:80:0;9583:9;:12;;;:9;:12;;;:::i;:::-;;;;;;9298:313;9636:13;;-1:-1:-1;;;;;9630:19:0;;;9636:13;;9630:19;:44;;;;-1:-1:-1;;;;;;9653:21:0;;9669:4;9653:21;;9630:44;9627:171;;;9706:76;9778:3;9706:67;9728:16;;9718:9;;:26;9717:55;;9760:12;;9717:55;;;9746:13;;9706:6;;:10;:67::i;:76::-;9694:88;;9627:171;9863:4;9814:28;7090:18;;;:9;:18;;;;;;9889:6;;-1:-1:-1;;;9889:6:0;;;;9888:7;:30;;;;-1:-1:-1;9905:13:0;;-1:-1:-1;;;;;9899:19:0;;;9905:13;;9899:19;9888:30;:45;;;;-1:-1:-1;9922:11:0;;-1:-1:-1;;;9922:11:0;;;;9888:45;:77;;;;;9947:18;;9937:9;;:28;9888:77;:120;;;;;9991:17;;9970:20;:38;9888:120;9884:420;;;10029:67;10046:49;10050:6;10057:37;10061:20;10082:11;;10057:3;:37::i;:::-;10046:3;:49::i;:::-;10029:16;:67::i;:::-;10144:21;10187:22;;10184:105;;10234:35;10247:21;10234:12;:35::i;:::-;10010:294;9884:420;8659:1656;8621:1694;-1:-1:-1;;;;;10332:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;10360:22:0;;;;;;:18;:22;;;;;;;;10332:50;10331:71;;;;-1:-1:-1;3178:7:0;3205:6;-1:-1:-1;;;;;10387:15:0;;;3205:6;;10387:15;;10331:71;:96;;;;-1:-1:-1;;;;;;10406:21:0;;10422:4;10406:21;;10331:96;:119;;;;-1:-1:-1;;;;;;10431:19:0;;10445:4;10431:19;;10331:119;10327:178;;;10478:15;10467:8;:26;10327:178;-1:-1:-1;;;;;10519:24:0;;;;;;:18;:24;;;;;;;;:63;;;;-1:-1:-1;10563:12:0;;:17;;10578:2;10563:17;:::i;:::-;10548:12;:32;10519:63;10515:273;;;-1:-1:-1;;;;;10627:15:0;;;;;;;:9;:15;;;;;;:25;;;;;;;10671:13;;;;;;;;;;:23;;;;;;10729:26;;;;;;10646:6;1361:25:1;;1349:2;1334:18;;1215:177;10729:26:0;;;;;;;;10770:7;8283:3719;;;:::o;10515:273::-;-1:-1:-1;;;;;10803:24:0;;;;;;:18;:24;;;;;;;;10802:25;:52;;;;-1:-1:-1;;;;;;10832:22:0;;;;;;:18;:22;;;;;;;;10831:23;10802:52;10798:848;;;10875:13;;-1:-1:-1;;;;;10875:19:0;;;:13;;:19;10871:764;;-1:-1:-1;;;;;10942:14:0;;10915:25;10942:14;;;:8;:14;;;;;11011:8;;10995:12;;:24;;11011:8;10995:24;:::i;:::-;10975:17;;;:44;11054:15;11038:13;;;;:31;10871:764;;;-1:-1:-1;;;;;11135:12:0;;;11110:23;11135:12;;;:8;:12;;;;;11170:13;;11135:12;;11170:21;;;:13;;:21;11166:454;;11220:10;;;:15;11216:144;;11291:2;11278:9;;:15;11277:59;;11321:15;11277:59;;;11298:19;11316:1;11298:15;:19;:::i;:::-;11264:72;;11216:144;11166:454;;;-1:-1:-1;;;;;11436:14:0;;11408:25;11436:14;;;:8;:14;;;;;11477:10;;:15;;:45;;-1:-1:-1;11512:10:0;;11496:12;;:26;11477:45;11473:128;;;11565:12;;11552:25;;11473:128;11385:235;11166:454;11091:544;10871:764;11661:11;;11658:161;;11729:4;11711:24;;;;:9;:24;;;;;;:39;;11740:9;11711:28;:39::i;:::-;11704:4;11686:24;;;;:9;:24;;;;;;;:64;;;;11768:39;;-1:-1:-1;;;;;11768:39:0;;;;;;;11797:9;1361:25:1;;1349:2;1334:18;;1215:177;11768:39:0;;;;;;;;11658:161;-1:-1:-1;;;;;11845:15:0;;;;;;:9;:15;;;;;;:27;;11865:6;11845:19;:27::i;:::-;-1:-1:-1;;;;;11829:15:0;;;;;;:9;:15;;;;;:43;11897:40;11915:21;:6;11926:9;11915:10;:21::i;:::-;-1:-1:-1;;;;;11897:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;11883:13:0;;;;;;;:9;:13;;;;;:54;;;;11953:41;;;11972:21;:6;11983:9;11972:10;:21::i;:::-;11953:41;;1361:25:1;;;1349:2;1334:18;11953:41:0;1215:177:1;2032:190:0;2118:7;2154:12;2146:6;;;;2138:29;;;;-1:-1:-1;;;2138:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2178:9:0;2190:5;2194:1;2190;:5;:::i;:::-;2178:17;2032:190;-1:-1:-1;;;;;2032:190:0:o;12118:483::-;6052:6;:13;;-1:-1:-1;;;;6052:13:0;-1:-1:-1;;;6052:13:0;;;12220:16:::1;::::0;;12234:1:::1;12220:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12220:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12220:16:0::1;12196:40;;12265:4;12247;12252:1;12247:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12247:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12291:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12291:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12247:7;;12291:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12281:4;12286:1;12281:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12281:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12356:15:::1;::::0;12324:62:::1;::::0;12341:4:::1;::::0;12356:15:::1;12374:11:::0;12324:8:::1;:62::i;:::-;12397:15;::::0;:196:::1;::::0;-1:-1:-1;;;12397:196:0;;-1:-1:-1;;;;;12397:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12478:11;;12397:15:::1;::::0;12520:4;;12547::::1;::::0;12567:15:::1;::::0;12397:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6088:6:0;:14;;-1:-1:-1;;;;6088:14:0;;;-1:-1:-1;;;;12118:483:0:o;13702:92::-;13759:27;;-1:-1:-1;;;;;13759:10:0;:19;;:27;;;;;13779:6;;13759:27;;;;13779:6;13759:19;:27;;;;;;;;;;;;;;;;;;;2230:246;2288:7;2312:1;2317;2312:6;2308:47;;-1:-1:-1;2342:1:0;2335:8;;2308:47;2365:9;2377:5;2381:1;2377;:5;:::i;:::-;2365:17;-1:-1:-1;2410:1:0;2401:5;2405:1;2365:17;2401:5;:::i;:::-;:10;2393:56;;;;-1:-1:-1;;;2393:56:0;;12691:2:1;2393:56:0;;;12673:21:1;12730:2;12710:18;;;12703:30;12769:34;12749:18;;;12742:62;-1:-1:-1;;;12820:18:1;;;12813:31;12861:19;;2393:56:0;12489:397:1;2393:56:0;2467:1;2230:246;-1:-1:-1;;;2230:246:0:o;2484:132::-;2542:7;2569:39;2573:1;2576;2569:39;;;;;;;;;;;;;;;;;:3;:39::i;12012:98::-;12069:7;12096:1;12094;:3;12093:9;;12101:1;12093:9;;;-1:-1:-1;12099:1:0;12012:98;-1:-1:-1;12012:98:0:o;1701:179::-;1759:7;;1791:5;1795:1;1791;:5;:::i;:::-;1779:17;;1820:1;1815;:6;;1807:46;;;;-1:-1:-1;;;1807:46:0;;13093:2:1;1807:46:0;;;13075:21:1;13132:2;13112:18;;;13105:30;13171:29;13151:18;;;13144:57;13218:18;;1807:46:0;12891:351:1;1888:136:0;1946:7;1973:43;1977:1;1980;1973:43;;;;;;;;;;;;;;;;;:3;:43::i;2624:189::-;2710:7;2745:12;2738:5;2730:28;;;;-1:-1:-1;;;2730:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2769:9:0;2781:5;2785:1;2781;: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;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:127::-;2961:10;2956:3;2952:20;2949:1;2942:31;2992:4;2989:1;2982:15;3016:4;3013:1;3006:15;3032:416;3121:1;3158:5;3121:1;3172:270;3193:7;3183:8;3180:21;3172:270;;;3252:4;3248:1;3244:6;3240:17;3234:4;3231:27;3228:53;;;3261:18;;:::i;:::-;3311:7;3301:8;3297:22;3294:55;;;3331:16;;;;3294:55;3410:22;;;;3370:15;;;;3172:270;;;3176:3;3032:416;;;;;:::o;3453:806::-;3502:5;3532:8;3522:80;;-1:-1:-1;3573:1:1;3587:5;;3522:80;3621:4;3611:76;;-1:-1:-1;3658:1:1;3672:5;;3611:76;3703:4;3721:1;3716:59;;;;3789:1;3784:130;;;;3696:218;;3716:59;3746:1;3737:10;;3760:5;;;3784:130;3821:3;3811:8;3808:17;3805:43;;;3828:18;;:::i;:::-;-1:-1:-1;;3884:1:1;3870:16;;3899:5;;3696:218;;3998:2;3988:8;3985:16;3979:3;3973:4;3970:13;3966:36;3960:2;3950:8;3947:16;3942:2;3936:4;3933:12;3929:35;3926:77;3923:159;;;-1:-1:-1;4035:19:1;;;4067:5;;3923:159;4114:34;4139:8;4133:4;4114:34;:::i;:::-;4184:6;4180:1;4176:6;4172:19;4163:7;4160:32;4157:58;;;4195:18;;:::i;:::-;4233:20;;3453:806;-1:-1:-1;;;3453:806:1:o;4264:140::-;4322:5;4351:47;4392:4;4382:8;4378:19;4372:4;4351:47;:::i;4409:168::-;4482:9;;;4513;;4530:15;;;4524:22;;4510:37;4500:71;;4551:18;;:::i;4582:356::-;4784:2;4766:21;;;4803:18;;;4796:30;4862:34;4857:2;4842:18;;4835:62;4929:2;4914:18;;4582:356::o;5346:251::-;5416:6;5469:2;5457:9;5448:7;5444:23;5440:32;5437:52;;;5485:1;5482;5475:12;5437:52;5517:9;5511:16;5536:31;5561:5;5536:31;:::i;6523:306::-;6611:6;6619;6627;6680:2;6668:9;6659:7;6655:23;6651:32;6648:52;;;6696:1;6693;6686:12;6648:52;6725:9;6719:16;6709:26;;6775:2;6764:9;6760:18;6754:25;6744:35;;6819:2;6808:9;6804:18;6798:25;6788:35;;6523:306;;;;;:::o;7113:277::-;7180:6;7233:2;7221:9;7212:7;7208:23;7204:32;7201:52;;;7249:1;7246;7239:12;7201:52;7281:9;7275:16;7334:5;7327:13;7320:21;7313:5;7310:32;7300:60;;7356:1;7353;7346:12;10259:125;10324:9;;;10345:10;;;10342:36;;;10358:18;;:::i;10745:135::-;10784:3;10805:17;;;10802:43;;10825:18;;:::i;:::-;-1:-1:-1;10872:1:1;10861:13;;10745:135::o;10885:128::-;10952:9;;;10973:11;;;10970:37;;;10987:18;;:::i;11150:127::-;11211:10;11206:3;11202:20;11199:1;11192:31;11242:4;11239:1;11232:15;11266:4;11263:1;11256:15;11282:980;11544:4;11592:3;11581:9;11577:19;11623:6;11612:9;11605:25;11649:2;11687:6;11682:2;11671:9;11667:18;11660:34;11730:3;11725:2;11714:9;11710:18;11703:31;11754:6;11789;11783:13;11820:6;11812;11805:22;11858:3;11847:9;11843:19;11836:26;;11897:2;11889:6;11885:15;11871:29;;11918:1;11928:195;11942:6;11939:1;11936:13;11928:195;;;12007:13;;-1:-1:-1;;;;;12003:39:1;11991:52;;12098:15;;;;12063:12;;;;12039:1;11957:9;11928:195;;;-1:-1:-1;;;;;;;12179:32:1;;;;12174:2;12159:18;;12152:60;-1:-1:-1;;;12243:3:1;12228:19;12221:35;12140:3;11282:980;-1:-1:-1;;;11282:980:1:o;12267:217::-;12307:1;12333;12323:132;;12377:10;12372:3;12368:20;12365:1;12358:31;12412:4;12409:1;12402:15;12440:4;12437:1;12430:15;12323:132;-1:-1:-1;12469:9:1;;12267:217::o

Swarm Source

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