ETH Price: $3,245.28 (-0.45%)
Gas: 2 Gwei

Token

FoxLab.AI (FOXAI)
 

Overview

Max Total Supply

100,000,000 FOXAI

Holders

59

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
534,109.046058892 FOXAI

Value
$0.00
0xef7a993146f083def38b81b1aa8dea0d098c421c
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:
FoxLabAI

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-18
*/

/** 
 (               (                            (     
 )\ )            )\ )           )      (      )\ )  
(()/(         ) (()/(     )  ( /(      )\    (()/(  
 /(_)) (   ( /(  /(_)) ( /(  )\())  ((((_)(   /(_)) 
(_))_| )\  )\())(_))   )(_))((_)\    )\ _ )\ (_))   
| |_  ((_)((_)\ | |   ((_)_ | |(_)   (_)_\(_)|_ _|  
| __|/ _ \\ \ / | |__ / _` || '_ \ _  / _ \   | |   
|_|  \___//_\_\ |____|\__,_||_.__/(_)/_/ \_\ |___|  

Web: https://foxlabai.solutions

TG: https://t.me/FoxLabAi_Portal

Twitter (X): https://twitter.com/FoxLabAi

Launch 18/03 18:00 UTC
**/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

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

contract Ownable {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == msg.sender, "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 FoxLabAI is IERC20, Ownable {
    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;
    address payable private _taxWallet;

    uint8 private constant _sniperTax1 = 30;
    uint8 private constant _sniperTax2 = 20;
    uint8 private constant _sniperTax3 = 10;
    uint8 private constant _finalTax = 5;
    uint8 private constant _clog = 70;
    
    uint8 private constant _preventSwapBefore = 10;
    uint256 private _transferCount = 0;
    uint256 private _initBlockTimestamp = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100 * 10**6 * 10**_decimals;
    string private constant _name = unicode"FoxLab.AI";
    string private constant _symbol = unicode"FOXAI";
    uint256 public constant _taxSwapThreshold = 100 * 10**3 * 10**_decimals;
    uint256 public constant _maxTaxSwap = 500 * 10**3 * 10**_decimals;
    uint256 public _maxTxAmount = 1 * 10**6 * 10**_decimals;
    uint256 public _maxWalletSize = 2 * 10**6 * 10**_decimals;

    address private constant uniswapRouterAddr = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private addedLiquidity;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TradingActive (bool _tradingOpen,bool _swapEnabled);

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

    constructor () {
        _taxWallet = payable(msg.sender);
        _balances[msg.sender] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), msg.sender, _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(msg.sender, 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(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        uint256 currentAllowance = allowance(sender, msg.sender);
        
        require(currentAllowance >= amount, "ERC20: insufficient allowance");
        unchecked {
            _approve(sender, msg.sender, currentAllowance - amount);
        }

        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");
        if(!tradingOpen){
                require(_isExcludedFromFee[to] || _isExcludedFromFee[from],"trading not yet open");
        }

        uint256 taxAmount = 0;
        if (from != owner() && to != owner()) {
            taxAmount = getTax(amount);

            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.");
                _transferCount++;
            }

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

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)] + taxAmount;
          emit Transfer(from, address(this),taxAmount);
        }

        _balances[from] = _balances[from] - amount;
        _balances[to] = _balances[to] + (amount - taxAmount);
        emit Transfer(from, to, amount - taxAmount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
    }

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

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

    function addLiquidity() external onlyOwner() {
        require(!addedLiquidity, "Liquidity already added");
        uniswapV2Router = IUniswapV2Router02(uniswapRouterAddr);

        _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)) * _clog/100, 0, 0, owner(), block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        addedLiquidity = true;
    }

    function openTrading() external onlyOwner() {
        require(addedLiquidity, "Liquidity must be added");
        require(!tradingOpen, "Trading is already open");

        _initBlockTimestamp = block.timestamp;

        swapEnabled = true;
        tradingOpen = true;

        emit TradingActive (tradingOpen,swapEnabled);
    }

    function LeavingsWithdraw() external {
        require(msg.sender == _taxWallet);

        sendETHToFee(address(this).balance);
    }

  function getTax(uint256 amount) private view returns (uint256){
        uint256 sniperTime1 = 600;
        uint256 sniperTime2 = 1200;
        uint256 sniperTime3 = 1800;
        uint256 passedSeconds = block.timestamp - _initBlockTimestamp;


        if(passedSeconds <= sniperTime1)
            return amount * _sniperTax1 / 100;
        else if(passedSeconds > sniperTime1 && passedSeconds <= sniperTime2)
            return amount * _sniperTax2/ 100;
        else if(passedSeconds > sniperTime2 && passedSeconds <= sniperTime3)
            return amount * _sniperTax3 / 100;
        
        return amount * _finalTax / 100;
    }

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

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_tradingOpen","type":"bool"},{"indexed":false,"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"TradingActive","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":"LeavingsWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":[],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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"}]

60806040526005805460ff1916600117905560006006819055600755620000296009600a620002e1565b6200003890620f4240620002f9565b600855620000496009600a620002e1565b6200005890621e8480620002f9565b600955600b805461ffff60b01b191690553480156200007657600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360058054610100600160a81b0319163361010002179055620000db6009600a620002e1565b620000eb906305f5e100620002f9565b336000908152600160208190526040822092909255600390620001166000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005546101009004909116835290822080549093161790915533907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001a56009600a620002e1565b620001b5906305f5e100620002f9565b60405190815260200160405180910390a362000313565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000223578160001904821115620002075762000207620001cc565b808516156200021557918102915b93841c9390800290620001e7565b509250929050565b6000826200023c57506001620002db565b816200024b57506000620002db565b81600181146200026457600281146200026f576200028f565b6001915050620002db565b60ff841115620002835762000283620001cc565b50506001821b620002db565b5060208310610133831016604e8410600b8410161715620002b4575081810a620002db565b620002c08383620001e2565b8060001904821115620002d757620002d7620001cc565b0290505b92915050565b6000620002f260ff8416836200022b565b9392505050565b8082028115828204841417620002db57620002db620001cc565b61191d80620003236000396000f3fe6080604052600436106101235760003560e01c80637d1db4a5116100a0578063bf474bed11610064578063bf474bed14610330578063c876d0b914610345578063c9567bf91461035f578063dd62ed3e14610374578063e8078d94146103ba57600080fd5b80637d1db4a51461028e5780638da5cb5b146102a45780638f9a55c0146102cc57806395d89b41146102e2578063a9059cbb1461031057600080fd5b80632ab37a84116100e75780632ab37a84146101fb578063313ce5671461021257806370a082311461022e578063715018a614610264578063751039fc1461027957600080fd5b806306fdde031461012f578063095ea7b3146101735780630faee56f146101a357806318160ddd146101c657806323b872dd146101db57600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b50604080518082019091526009815268466f784c61622e414960b81b60208201525b60405161016a9190611514565b60405180910390f35b34801561017f57600080fd5b5061019361018e36600461157a565b6103cf565b604051901515815260200161016a565b3480156101af57600080fd5b506101b86103e6565b60405190815260200161016a565b3480156101d257600080fd5b506101b8610402565b3480156101e757600080fd5b506101936101f63660046115a6565b610423565b34801561020757600080fd5b506102106104c1565b005b34801561021e57600080fd5b506040516009815260200161016a565b34801561023a57600080fd5b506101b86102493660046115e7565b6001600160a01b031660009081526001602052604090205490565b34801561027057600080fd5b506102106104e8565b34801561028557600080fd5b5061021061055c565b34801561029a57600080fd5b506101b860085481565b3480156102b057600080fd5b506000546040516001600160a01b03909116815260200161016a565b3480156102d857600080fd5b506101b860095481565b3480156102ee57600080fd5b50604080518082019091526005815264464f58414960d81b602082015261015d565b34801561031c57600080fd5b5061019361032b36600461157a565b61061b565b34801561033c57600080fd5b506101b8610628565b34801561035157600080fd5b506005546101939060ff1681565b34801561036b57600080fd5b50610210610641565b34801561038057600080fd5b506101b861038f366004611604565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156103c657600080fd5b50610210610788565b60006103dc338484610b5d565b5060015b92915050565b6103f26009600a611737565b6103ff906207a120611746565b81565b60006104106009600a611737565b61041e906305f5e100611746565b905090565b6000610430848484610c81565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156104a95760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064015b60405180910390fd5b6104b68533858403610b5d565b506001949350505050565b60055461010090046001600160a01b031633146104dd57600080fd5b6104e6476112a9565b565b6000546001600160a01b031633146105125760405162461bcd60e51b81526004016104a09061175d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105865760405162461bcd60e51b81526004016104a09061175d565b6105926009600a611737565b6105a0906305f5e100611746565b6008556105af6009600a611737565b6105bd906305f5e100611746565b60099081556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf906105f990600a611737565b610607906305f5e100611746565b6040519081526020015b60405180910390a1565b60006103dc338484610c81565b6106346009600a611737565b6103ff90620186a0611746565b6000546001600160a01b0316331461066b5760405162461bcd60e51b81526004016104a09061175d565b600b54600160a01b900460ff166106c45760405162461bcd60e51b815260206004820152601760248201527f4c6971756964697479206d75737420626520616464656400000000000000000060448201526064016104a0565b600b54600160a81b900460ff161561071e5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104a0565b42600755600b805462ff00ff60a81b19166201000160a81b17908190556040805160ff600160a81b8404811615158252600160b81b909304909216151560208301527f41a09f17206aad1ccd4bae176b5c5e0b2154e569947545c9019e6bb0cb4ef59c9101610611565b6000546001600160a01b031633146107b25760405162461bcd60e51b81526004016104a09061175d565b600b54600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c697175696469747920616c726561647920616464656400000000000000000060448201526064016104a0565b600a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117825561085a9130919061084790600990611737565b610855906305f5e100611746565b610b5d565b600a60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d19190611792565b6001600160a01b031663c9c6539630600a60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610933573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109579190611792565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156109a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c89190611792565b600b80546001600160a01b039283166001600160a01b0319909116179055600a541663f305d719473060646046610a14836001600160a01b031660009081526001602052604090205490565b610a1e9190611746565b610a2891906117af565b600080610a3d6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610aa5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610aca91906117d1565b5050600b54600a5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610b23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4791906117ff565b50600b805460ff60a01b1916600160a01b179055565b6001600160a01b038316610bbf5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104a0565b6001600160a01b038216610c205760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104a0565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ce55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104a0565b6001600160a01b038216610d475760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104a0565b60008111610da95760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104a0565b600b54600160a81b900460ff16610e3c576001600160a01b03821660009081526003602052604090205460ff1680610df957506001600160a01b03831660009081526003602052604090205460ff165b610e3c5760405162461bcd60e51b81526020600482015260146024820152733a3930b234b733903737ba103cb2ba1037b832b760611b60448201526064016104a0565b600080546001600160a01b03858116911614801590610e6957506000546001600160a01b03848116911614155b1561116357610e77826112eb565b60055490915060ff1615610f5e57600a546001600160a01b03848116911614801590610eb15750600b546001600160a01b03848116911614155b15610f5e57326000908152600460205260409020544311610f4b5760405162461bcd60e51b815260206004820152604860248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e204f6e6c79206f6e652070757263686173652070657220626c6f636b2060648201526730b63637bbb2b21760c11b608482015260a4016104a0565b3260009081526004602052604090204390555b600b546001600160a01b038581169116148015610f895750600a546001600160a01b03848116911614155b8015610fae57506001600160a01b03831660009081526003602052604090205460ff16155b15611096576008548211156110055760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104a0565b60095482611028856001600160a01b031660009081526001602052604090205490565b6110329190611821565b11156110805760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104a0565b6006805490600061109083611834565b91905055505b30600090815260016020526040902054600b54600160b01b900460ff161580156110cd5750600b546001600160a01b038581169116145b80156110e25750600b54600160b81b900460ff165b801561110557506110f56009600a611737565b61110290620186a0611746565b81115b80156111135750600654600a105b15611161576111466111418461113c8461112f6009600a611737565b61113c906207a120611746565b611382565b61139a565b4766b1a2bc2ec5000081111561115f5761115f476112a9565b505b505b80156111de5730600090815260016020526040902054611184908290611821565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111d59085815260200190565b60405180910390a35b6001600160a01b03841660009081526001602052604090205461120290839061184d565b6001600160a01b038516600090815260016020526040902055611225818361184d565b6001600160a01b0384166000908152600160205260409020546112489190611821565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611292848661184d565b60405190815260200160405180910390a350505050565b6005546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f193505050501580156112e7573d6000803e3d6000fd5b5050565b600754600090610258906104b090610708908490611309904261184d565b905083811161133357606461131f601e88611746565b61132991906117af565b9695505050505050565b83811180156113425750828111155b1561135457606461131f601488611746565b82811180156113635750818111155b1561137557606461131f600a88611746565b606461131f600588611746565b60008183116113915782611393565b815b9392505050565b600b805460ff60b01b1916600160b01b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106113e2576113e2611860565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561143b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145f9190611792565b8160018151811061147257611472611860565b6001600160a01b039283166020918202929092010152600a546114989130911684610b5d565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac947906114d1908590600090869030904290600401611876565b600060405180830381600087803b1580156114eb57600080fd5b505af11580156114ff573d6000803e3d6000fd5b5050600b805460ff60b01b1916905550505050565b600060208083528351808285015260005b8181101561154157858101830151858201604001528201611525565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461157757600080fd5b50565b6000806040838503121561158d57600080fd5b823561159881611562565b946020939093013593505050565b6000806000606084860312156115bb57600080fd5b83356115c681611562565b925060208401356115d681611562565b929592945050506040919091013590565b6000602082840312156115f957600080fd5b813561139381611562565b6000806040838503121561161757600080fd5b823561162281611562565b9150602083013561163281611562565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561168e5781600019048211156116745761167461163d565b8085161561168157918102915b93841c9390800290611658565b509250929050565b6000826116a5575060016103e0565b816116b2575060006103e0565b81600181146116c857600281146116d2576116ee565b60019150506103e0565b60ff8411156116e3576116e361163d565b50506001821b6103e0565b5060208310610133831016604e8410600b8410161715611711575081810a6103e0565b61171b8383611653565b806000190482111561172f5761172f61163d565b029392505050565b600061139360ff841683611696565b80820281158282048414176103e0576103e061163d565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156117a457600080fd5b815161139381611562565b6000826117cc57634e487b7160e01b600052601260045260246000fd5b500490565b6000806000606084860312156117e657600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561181157600080fd5b8151801515811461139357600080fd5b808201808211156103e0576103e061163d565b6000600182016118465761184661163d565b5060010190565b818103818111156103e0576103e061163d565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118c65784516001600160a01b0316835293830193918301916001016118a1565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220bfd0eb706d74bb64420e0a853136f73827f8ac0555d565c410f8043f37be3d4864736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101235760003560e01c80637d1db4a5116100a0578063bf474bed11610064578063bf474bed14610330578063c876d0b914610345578063c9567bf91461035f578063dd62ed3e14610374578063e8078d94146103ba57600080fd5b80637d1db4a51461028e5780638da5cb5b146102a45780638f9a55c0146102cc57806395d89b41146102e2578063a9059cbb1461031057600080fd5b80632ab37a84116100e75780632ab37a84146101fb578063313ce5671461021257806370a082311461022e578063715018a614610264578063751039fc1461027957600080fd5b806306fdde031461012f578063095ea7b3146101735780630faee56f146101a357806318160ddd146101c657806323b872dd146101db57600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b50604080518082019091526009815268466f784c61622e414960b81b60208201525b60405161016a9190611514565b60405180910390f35b34801561017f57600080fd5b5061019361018e36600461157a565b6103cf565b604051901515815260200161016a565b3480156101af57600080fd5b506101b86103e6565b60405190815260200161016a565b3480156101d257600080fd5b506101b8610402565b3480156101e757600080fd5b506101936101f63660046115a6565b610423565b34801561020757600080fd5b506102106104c1565b005b34801561021e57600080fd5b506040516009815260200161016a565b34801561023a57600080fd5b506101b86102493660046115e7565b6001600160a01b031660009081526001602052604090205490565b34801561027057600080fd5b506102106104e8565b34801561028557600080fd5b5061021061055c565b34801561029a57600080fd5b506101b860085481565b3480156102b057600080fd5b506000546040516001600160a01b03909116815260200161016a565b3480156102d857600080fd5b506101b860095481565b3480156102ee57600080fd5b50604080518082019091526005815264464f58414960d81b602082015261015d565b34801561031c57600080fd5b5061019361032b36600461157a565b61061b565b34801561033c57600080fd5b506101b8610628565b34801561035157600080fd5b506005546101939060ff1681565b34801561036b57600080fd5b50610210610641565b34801561038057600080fd5b506101b861038f366004611604565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156103c657600080fd5b50610210610788565b60006103dc338484610b5d565b5060015b92915050565b6103f26009600a611737565b6103ff906207a120611746565b81565b60006104106009600a611737565b61041e906305f5e100611746565b905090565b6000610430848484610c81565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156104a95760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064015b60405180910390fd5b6104b68533858403610b5d565b506001949350505050565b60055461010090046001600160a01b031633146104dd57600080fd5b6104e6476112a9565b565b6000546001600160a01b031633146105125760405162461bcd60e51b81526004016104a09061175d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105865760405162461bcd60e51b81526004016104a09061175d565b6105926009600a611737565b6105a0906305f5e100611746565b6008556105af6009600a611737565b6105bd906305f5e100611746565b60099081556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf906105f990600a611737565b610607906305f5e100611746565b6040519081526020015b60405180910390a1565b60006103dc338484610c81565b6106346009600a611737565b6103ff90620186a0611746565b6000546001600160a01b0316331461066b5760405162461bcd60e51b81526004016104a09061175d565b600b54600160a01b900460ff166106c45760405162461bcd60e51b815260206004820152601760248201527f4c6971756964697479206d75737420626520616464656400000000000000000060448201526064016104a0565b600b54600160a81b900460ff161561071e5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104a0565b42600755600b805462ff00ff60a81b19166201000160a81b17908190556040805160ff600160a81b8404811615158252600160b81b909304909216151560208301527f41a09f17206aad1ccd4bae176b5c5e0b2154e569947545c9019e6bb0cb4ef59c9101610611565b6000546001600160a01b031633146107b25760405162461bcd60e51b81526004016104a09061175d565b600b54600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c697175696469747920616c726561647920616464656400000000000000000060448201526064016104a0565b600a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117825561085a9130919061084790600990611737565b610855906305f5e100611746565b610b5d565b600a60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d19190611792565b6001600160a01b031663c9c6539630600a60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610933573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109579190611792565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156109a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c89190611792565b600b80546001600160a01b039283166001600160a01b0319909116179055600a541663f305d719473060646046610a14836001600160a01b031660009081526001602052604090205490565b610a1e9190611746565b610a2891906117af565b600080610a3d6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610aa5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610aca91906117d1565b5050600b54600a5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610b23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4791906117ff565b50600b805460ff60a01b1916600160a01b179055565b6001600160a01b038316610bbf5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104a0565b6001600160a01b038216610c205760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104a0565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ce55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104a0565b6001600160a01b038216610d475760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104a0565b60008111610da95760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104a0565b600b54600160a81b900460ff16610e3c576001600160a01b03821660009081526003602052604090205460ff1680610df957506001600160a01b03831660009081526003602052604090205460ff165b610e3c5760405162461bcd60e51b81526020600482015260146024820152733a3930b234b733903737ba103cb2ba1037b832b760611b60448201526064016104a0565b600080546001600160a01b03858116911614801590610e6957506000546001600160a01b03848116911614155b1561116357610e77826112eb565b60055490915060ff1615610f5e57600a546001600160a01b03848116911614801590610eb15750600b546001600160a01b03848116911614155b15610f5e57326000908152600460205260409020544311610f4b5760405162461bcd60e51b815260206004820152604860248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e204f6e6c79206f6e652070757263686173652070657220626c6f636b2060648201526730b63637bbb2b21760c11b608482015260a4016104a0565b3260009081526004602052604090204390555b600b546001600160a01b038581169116148015610f895750600a546001600160a01b03848116911614155b8015610fae57506001600160a01b03831660009081526003602052604090205460ff16155b15611096576008548211156110055760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104a0565b60095482611028856001600160a01b031660009081526001602052604090205490565b6110329190611821565b11156110805760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104a0565b6006805490600061109083611834565b91905055505b30600090815260016020526040902054600b54600160b01b900460ff161580156110cd5750600b546001600160a01b038581169116145b80156110e25750600b54600160b81b900460ff165b801561110557506110f56009600a611737565b61110290620186a0611746565b81115b80156111135750600654600a105b15611161576111466111418461113c8461112f6009600a611737565b61113c906207a120611746565b611382565b61139a565b4766b1a2bc2ec5000081111561115f5761115f476112a9565b505b505b80156111de5730600090815260016020526040902054611184908290611821565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111d59085815260200190565b60405180910390a35b6001600160a01b03841660009081526001602052604090205461120290839061184d565b6001600160a01b038516600090815260016020526040902055611225818361184d565b6001600160a01b0384166000908152600160205260409020546112489190611821565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611292848661184d565b60405190815260200160405180910390a350505050565b6005546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f193505050501580156112e7573d6000803e3d6000fd5b5050565b600754600090610258906104b090610708908490611309904261184d565b905083811161133357606461131f601e88611746565b61132991906117af565b9695505050505050565b83811180156113425750828111155b1561135457606461131f601488611746565b82811180156113635750818111155b1561137557606461131f600a88611746565b606461131f600588611746565b60008183116113915782611393565b815b9392505050565b600b805460ff60b01b1916600160b01b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106113e2576113e2611860565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561143b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145f9190611792565b8160018151811061147257611472611860565b6001600160a01b039283166020918202929092010152600a546114989130911684610b5d565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac947906114d1908590600090869030904290600401611876565b600060405180830381600087803b1580156114eb57600080fd5b505af11580156114ff573d6000803e3d6000fd5b5050600b805460ff60b01b1916905550505050565b600060208083528351808285015260005b8181101561154157858101830151858201604001528201611525565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461157757600080fd5b50565b6000806040838503121561158d57600080fd5b823561159881611562565b946020939093013593505050565b6000806000606084860312156115bb57600080fd5b83356115c681611562565b925060208401356115d681611562565b929592945050506040919091013590565b6000602082840312156115f957600080fd5b813561139381611562565b6000806040838503121561161757600080fd5b823561162281611562565b9150602083013561163281611562565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561168e5781600019048211156116745761167461163d565b8085161561168157918102915b93841c9390800290611658565b509250929050565b6000826116a5575060016103e0565b816116b2575060006103e0565b81600181146116c857600281146116d2576116ee565b60019150506103e0565b60ff8411156116e3576116e361163d565b50506001821b6103e0565b5060208310610133831016604e8410600b8410161715611711575081810a6103e0565b61171b8383611653565b806000190482111561172f5761172f61163d565b029392505050565b600061139360ff841683611696565b80820281158282048414176103e0576103e061163d565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156117a457600080fd5b815161139381611562565b6000826117cc57634e487b7160e01b600052601260045260246000fd5b500490565b6000806000606084860312156117e657600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561181157600080fd5b8151801515811461139357600080fd5b808201808211156103e0576103e061163d565b6000600182016118465761184661163d565b5060010190565b818103818111156103e0576103e061163d565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118c65784516001600160a01b0316835293830193918301916001016118a1565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220bfd0eb706d74bb64420e0a853136f73827f8ac0555d565c410f8043f37be3d4864736f6c63430008130033

Deployed Bytecode Sourcemap

2604:8793:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4719:83;;;;;;;;;;-1:-1:-1;4789:5:0;;;;;;;;;;;;-1:-1:-1;;;4789:5:0;;;;4719:83;;;;;;;:::i;:::-;;;;;;;;5550:159;;;;;;;;;;-1:-1:-1;5550:159:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;5550:159:0;1023:187:1;3667:65:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;3667:65:0;1215:177:1;4996:95:0;;;;;;;;;;;;;:::i;5717:441::-;;;;;;;;;;-1:-1:-1;5717:441:0;;;;;:::i;:::-;;:::i;10453:137::-;;;;;;;;;;;;;:::i;:::-;;4905:83;;;;;;;;;;-1:-1:-1;4905:83:0;;3400:1;2000:36:1;;1988:2;1973:18;4905:83:0;1858:184:1;5099:119:0;;;;;;;;;;-1:-1:-1;5099:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5192:18:0;5165:7;5192:18;;;:9;:18;;;;;;;5099:119;1798:148;;;;;;;;;;;;;:::i;9144:200::-;;;;;;;;;;;;;:::i;3739:55::-;;;;;;;;;;;;;;;;1586:79;;;;;;;;;;-1:-1:-1;1624:7:0;1651:6;1586:79;;-1:-1:-1;;;;;1651:6:0;;;2445:51:1;;2433:2;2418:18;1586:79:0;2299:203:1;3801:57:0;;;;;;;;;;;;;;;;4810:87;;;;;;;;;;-1:-1:-1;4882:7:0;;;;;;;;;;;;-1:-1:-1;;;4882:7:0;;;;4810:87;;5226:165;;;;;;;;;;-1:-1:-1;5226:165:0;;;;;:::i;:::-;;:::i;3589:71::-;;;;;;;;;;;;;:::i;2907:39::-;;;;;;;;;;-1:-1:-1;2907:39:0;;;;;;;;10106:339;;;;;;;;;;;;;:::i;5399:143::-;;;;;;;;;;-1:-1:-1;5399:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;5507:18:0;;;5480:7;5507:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5399:143;9452:646;;;;;;;;;;;;;:::i;5550:159::-;5625:4;5642:37;5651:10;5663:7;5672:6;5642:8;:37::i;:::-;-1:-1:-1;5697:4:0;5550:159;;;;;:::o;3667:65::-;3719:13;3400:1;3719:2;:13;:::i;:::-;3705:27;;:11;:27;:::i;:::-;3667:65;:::o;4996:95::-;5049:7;3457:13;3400:1;3457:2;:13;:::i;:::-;3443:27;;:11;:27;:::i;:::-;5069:14;;4996:95;:::o;5717:441::-;5815:4;5832:36;5842:6;5850:9;5861:6;5832:9;:36::i;:::-;-1:-1:-1;;;;;5507:18:0;;5879:24;5507:18;;;:11;:18;;;;;;;;5924:10;5507:27;;;;;;;;5964:26;;;;5956:68;;;;-1:-1:-1;;;5956:68:0;;4790:2:1;5956:68:0;;;4772:21:1;4829:2;4809:18;;;4802:30;4868:31;4848:18;;;4841:59;4917:18;;5956:68:0;;;;;;;;;6060:55;6069:6;6077:10;6108:6;6089:16;:25;6060:8;:55::i;:::-;-1:-1:-1;6146:4:0;;5717:441;-1:-1:-1;;;;5717:441:0:o;10453:137::-;10523:10;;;;;-1:-1:-1;;;;;10523:10:0;10509;:24;10501:33;;;;;;10547:35;10560:21;10547:12;:35::i;:::-;10453:137::o;1798:148::-;1713:6;;-1:-1:-1;;;;;1713:6:0;1723:10;1713:20;1705:65;;;;-1:-1:-1;;;1705:65:0;;;;;;;:::i;:::-;1905:1:::1;1889:6:::0;;1868:40:::1;::::0;-1:-1:-1;;;;;1889:6:0;;::::1;::::0;1868:40:::1;::::0;1905:1;;1868:40:::1;1936:1;1919:19:::0;;-1:-1:-1;;;;;;1919:19:0::1;::::0;;1798:148::o;9144:200::-;1713:6;;-1:-1:-1;;;;;1713:6:0;1723:10;1713:20;1705:65;;;;-1:-1:-1;;;1705:65:0;;;;;;;:::i;:::-;3457:13:::1;3400:1;3457:2;:13;:::i;:::-;3443:27;::::0;:11:::1;:27;:::i;:::-;9197:12;:22:::0;3457:13:::1;3400:1;3457:2;:13;:::i;:::-;3443:27;::::0;:11:::1;:27;:::i;:::-;9230:14;:24:::0;;;9265:20:::1;:28:::0;;-1:-1:-1;;9265:28:0::1;::::0;;9309:27:::1;::::0;3457:13:::1;::::0;:2:::1;:13;:::i;:::-;3443:27;::::0;:11:::1;:27;:::i;:::-;9309;::::0;1361:25:1;;;1349:2;1334:18;9309:27:0::1;;;;;;;;9144:200::o:0;5226:165::-;5304:4;5321:40;5331:10;5343:9;5354:6;5321:9;:40::i;3589:71::-;3647:13;3400:1;3647:2;:13;:::i;:::-;3633:27;;:11;:27;:::i;10106:339::-;1713:6;;-1:-1:-1;;;;;1713:6:0;1723:10;1713:20;1705:65;;;;-1:-1:-1;;;1705:65:0;;;;;;;:::i;:::-;10169:14:::1;::::0;-1:-1:-1;;;10169:14:0;::::1;;;10161:50;;;::::0;-1:-1:-1;;;10161:50:0;;5509:2:1;10161:50:0::1;::::0;::::1;5491:21:1::0;5548:2;5528:18;;;5521:30;5587:25;5567:18;;;5560:53;5630:18;;10161:50:0::1;5307:347:1::0;10161:50:0::1;10231:11;::::0;-1:-1:-1;;;10231:11:0;::::1;;;10230:12;10222:48;;;::::0;-1:-1:-1;;;10222:48:0;;5861:2:1;10222:48:0::1;::::0;::::1;5843:21:1::0;5900:2;5880:18;;;5873:30;5939:25;5919:18;;;5912:53;5982:18;;10222:48:0::1;5659:347:1::0;10222:48:0::1;10305:15;10283:19;:37:::0;10333:11:::1;:18:::0;;-1:-1:-1;;;;10362:18:0;-1:-1:-1;;;10362:18:0;;;;;10398:39:::1;::::0;;10333:18:::1;-1:-1:-1::0;;;10413:11:0;::::1;::::0;::::1;6198:14:1::0;6191:22;6173:41;;-1:-1:-1;;;10425:11:0;;::::1;::::0;;::::1;6257:14:1::0;6250:22;6245:2;6230:18;;6223:50;10398:39:0::1;::::0;6146:18:1;10398:39:0::1;6011:268:1::0;9452:646:0;1713:6;;-1:-1:-1;;;;;1713:6:0;1723:10;1713:20;1705:65;;;;-1:-1:-1;;;1705:65:0;;;;;;;:::i;:::-;9517:14:::1;::::0;-1:-1:-1;;;9517:14:0;::::1;;;9516:15;9508:51;;;::::0;-1:-1:-1;;;9508:51:0;;6486:2:1;9508:51:0::1;::::0;::::1;6468:21:1::0;6525:2;6505:18;;;6498:30;6564:25;6544:18;;;6537:53;6607:18;;9508:51:0::1;6284:347:1::0;9508:51:0::1;9570:15;:55:::0;;-1:-1:-1;;;;;;9570:55:0::1;3912:42;9570:55:::0;;::::1;::::0;;9638:58:::1;::::0;9655:4:::1;::::0;3912:42;3457:13:::1;::::0;3400:1:::1;::::0;3457:13:::1;:::i;:::-;3443:27;::::0;:11:::1;:27;:::i;:::-;9638:8;:58::i;:::-;9743:15;;;;;;;;;-1:-1:-1::0;;;;;9743:15:0::1;-1:-1:-1::0;;;;;9743:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9725:55:0::1;;9789:4;9796:15;;;;;;;;;-1:-1:-1::0;;;;;9796:15:0::1;-1:-1:-1::0;;;;;9796:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9725:94;::::0;-1:-1:-1;;;;;;9725:94:0::1;::::0;;;;;;-1:-1:-1;;;;;7122:15:1;;;9725:94:0::1;::::0;::::1;7104:34:1::0;7174:15;;7154:18;;;7147:43;7039:18;;9725:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9709:13;:110:::0;;-1:-1:-1;;;;;9709:110:0;;::::1;-1:-1:-1::0;;;;;;9709:110:0;;::::1;;::::0;;9830:15:::1;::::0;::::1;:31;9869:21;9900:4;9940:3;3208:2;9907:24;9900:4:::0;-1:-1:-1;;;;;5192:18:0;5165:7;5192:18;;;:9;:18;;;;;;;5099:119;9907:24:::1;:32;;;;:::i;:::-;:36;;;;:::i;:::-;9945:1;9948::::0;9951:7:::1;1624::::0;1651:6;-1:-1:-1;;;;;1651:6:0;;1586:79;9951:7:::1;9830:146;::::0;::::1;::::0;;;-1:-1:-1;;;;;;9830:146:0;;;-1:-1:-1;;;;;7782:15:1;;;9830:146:0::1;::::0;::::1;7764:34:1::0;7814:18;;;7807:34;;;;7857:18;;;7850:34;;;;7900:18;;;7893:34;7964:15;;;7943:19;;;7936:44;9960:15:0::1;7996:19:1::0;;;7989:35;7698:19;;9830:146:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;9994:13:0::1;::::0;10025:15:::1;::::0;9987:71:::1;::::0;-1:-1:-1;;;9987:71:0;;-1:-1:-1;;;;;10025:15:0;;::::1;9987:71;::::0;::::1;8520:51:1::0;-1:-1:-1;;8587:18:1;;;8580:34;9994:13:0;::::1;::::0;-1:-1:-1;9987:29:0::1;::::0;8493:18:1;;9987:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;10069:14:0::1;:21:::0;;-1:-1:-1;;;;10069:21:0::1;-1:-1:-1::0;;;10069:21:0::1;::::0;;9452:646::o;6166:335::-;-1:-1:-1;;;;;6259:19:0;;6251:68;;;;-1:-1:-1;;;6251:68:0;;9109:2:1;6251:68:0;;;9091:21:1;9148:2;9128:18;;;9121:30;9187:34;9167:18;;;9160:62;-1:-1:-1;;;9238:18:1;;;9231:34;9282:19;;6251:68:0;8907:400:1;6251:68:0;-1:-1:-1;;;;;6338:21:0;;6330:68;;;;-1:-1:-1;;;6330:68:0;;9514:2:1;6330:68:0;;;9496:21:1;9553:2;9533:18;;;9526:30;9592:34;9572:18;;;9565:62;-1:-1:-1;;;9643:18:1;;;9636:32;9685:19;;6330:68:0;9312:398:1;6330:68:0;-1:-1:-1;;;;;6409:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6461:32;;1361:25:1;;;6461:32:0;;1334:18:1;6461:32:0;;;;;;;6166:335;;;:::o;6509:2212::-;-1:-1:-1;;;;;6597:18:0;;6589:68;;;;-1:-1:-1;;;6589:68:0;;9917:2:1;6589:68:0;;;9899:21:1;9956:2;9936:18;;;9929:30;9995:34;9975:18;;;9968:62;-1:-1:-1;;;10046:18:1;;;10039:35;10091:19;;6589:68:0;9715:401:1;6589:68:0;-1:-1:-1;;;;;6676:16:0;;6668:64;;;;-1:-1:-1;;;6668:64:0;;10323:2:1;6668:64:0;;;10305:21:1;10362:2;10342:18;;;10335:30;10401:34;10381:18;;;10374:62;-1:-1:-1;;;10452:18:1;;;10445:33;10495:19;;6668:64:0;10121:399:1;6668:64:0;6760:1;6751:6;:10;6743:64;;;;-1:-1:-1;;;6743:64:0;;10727:2:1;6743:64:0;;;10709:21:1;10766:2;10746:18;;;10739:30;10805:34;10785:18;;;10778:62;-1:-1:-1;;;10856:18:1;;;10849:39;10905:19;;6743:64:0;10525:405:1;6743:64:0;6822:11;;-1:-1:-1;;;6822:11:0;;;;6818:129;;-1:-1:-1;;;;;6861:22:0;;;;;;:18;:22;;;;;;;;;:50;;-1:-1:-1;;;;;;6887:24:0;;;;;;:18;:24;;;;;;;;6861:50;6853:82;;;;-1:-1:-1;;;6853:82:0;;11137:2:1;6853:82:0;;;11119:21:1;11176:2;11156:18;;;11149:30;-1:-1:-1;;;11195:18:1;;;11188:50;11255:18;;6853:82:0;10935:344:1;6853:82:0;6959:17;1651:6;;-1:-1:-1;;;;;6995:15:0;;;1651:6;;6995:15;;;;:32;;-1:-1:-1;1624:7:0;1651:6;-1:-1:-1;;;;;7014:13:0;;;1651:6;;7014:13;;6995:32;6991:1381;;;7056:14;7063:6;7056;:14::i;:::-;7091:20;;7044:26;;-1:-1:-1;7091:20:0;;7087:397;;;7152:15;;-1:-1:-1;;;;;7138:30:0;;;7152:15;;7138:30;;;;:62;;-1:-1:-1;7186:13:0;;-1:-1:-1;;;;;7172:28:0;;;7186:13;;7172:28;;7138:62;7134:333;;;7264:9;7235:39;;;;:28;:39;;;;;;7277:12;-1:-1:-1;7227:139:0;;;;-1:-1:-1;;;7227:139:0;;11486:2:1;7227:139:0;;;11468:21:1;11525:2;11505:18;;;11498:30;11564:34;11544:18;;;11537:62;11635:34;11615:18;;;11608:62;-1:-1:-1;;;11686:19:1;;;11679:39;11735:19;;7227:139:0;11284:476:1;7227:139:0;7420:9;7391:39;;;;:28;:39;;;;;7433:12;7391:54;;7134:333;7512:13;;-1:-1:-1;;;;;7504:21:0;;;7512:13;;7504:21;:55;;;;-1:-1:-1;7543:15:0;;-1:-1:-1;;;;;7529:30:0;;;7543:15;;7529:30;;7504:55;:83;;;;-1:-1:-1;;;;;;7565:22:0;;;;;;:18;:22;;;;;;;;7563:24;7504:83;7500:318;;;7627:12;;7617:6;:22;;7609:60;;;;-1:-1:-1;;;7609:60:0;;11967:2:1;7609:60:0;;;11949:21:1;12006:2;11986:18;;;11979:30;12045:27;12025:18;;;12018:55;12090:18;;7609:60:0;11765:349:1;7609:60:0;7722:14;;7712:6;7696:13;7706:2;-1:-1:-1;;;;;5192:18:0;5165:7;5192:18;;;:9;:18;;;;;;;5099:119;7696:13;:22;;;;:::i;:::-;:40;;7688:79;;;;-1:-1:-1;;;7688:79:0;;12451:2:1;7688:79:0;;;12433:21:1;12490:2;12470:18;;;12463:30;12529:28;12509:18;;;12502:56;12575:18;;7688:79:0;12249:350:1;7688:79:0;7786:14;:16;;;:14;:16;;;:::i;:::-;;;;;;7500:318;7883:4;7834:28;5192:18;;;:9;:18;;;;;;7909:6;;-1:-1:-1;;;7909:6:0;;;;7908:7;:30;;;;-1:-1:-1;7925:13:0;;-1:-1:-1;;;;;7919:19:0;;;7925:13;;7919:19;7908:30;:45;;;;-1:-1:-1;7942:11:0;;-1:-1:-1;;;7942:11:0;;;;7908:45;:89;;;;-1:-1:-1;3647:13:0;3400:1;3647:2;:13;:::i;:::-;3633:27;;:11;:27;:::i;:::-;7957:20;:40;7908:89;:128;;;;-1:-1:-1;8001:14:0;;3267:2;-1:-1:-1;7908:128:0;7904:457;;;8057:69;8074:51;8078:6;8086:38;8090:20;3719:13;3400:1;3719:2;:13;:::i;:::-;3705:27;;:11;:27;:::i;:::-;8086:3;:38::i;8074:51::-;8057:16;:69::i;:::-;8174:21;8256:10;8235:31;;8232:114;;;8291:35;8304:21;8291:12;:35::i;:::-;8038:323;7904:457;7029:1343;6991:1381;8387:11;;8384:158;;8455:4;8437:24;;;;:9;:24;;;;;;:36;;8464:9;;8437:36;:::i;:::-;8430:4;8412:24;;;;:9;:24;;;;;;;:61;;;;8491:39;;-1:-1:-1;;;;;8491:39:0;;;;;;;8520:9;1361:25:1;;1349:2;1334:18;;1215:177;8491:39:0;;;;;;;;8384:158;-1:-1:-1;;;;;8572:15:0;;;;;;:9;:15;;;;;;:24;;8590:6;;8572:24;:::i;:::-;-1:-1:-1;;;;;8554:15:0;;;;;;:9;:15;;;;;:42;8640:18;8649:9;8640:6;:18;:::i;:::-;-1:-1:-1;;;;;8623:13:0;;;;;;:9;:13;;;;;;:36;;;;:::i;:::-;-1:-1:-1;;;;;8607:13:0;;;;;;;:9;:13;;;;;:52;;;;8675:38;;;8694:18;8703:9;8694:6;:18;:::i;:::-;8675:38;;1361:25:1;;;1349:2;1334:18;8675:38:0;;;;;;;6578:2143;6509:2212;;;:::o;9352:92::-;9409:10;;:27;;:10;;;;-1:-1:-1;;;;;9409:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;;;9352:92;:::o;10596:649::-;10821:19;;10650:7;;10691:3;;10727:4;;10764;;10650:7;;10803:37;;:15;:37;:::i;:::-;10779:61;;10875:11;10858:13;:28;10855:330;;10931:3;10908:20;3033:2;10908:6;:20;:::i;:::-;:26;;;;:::i;:::-;10901:33;10596:649;-1:-1:-1;;;;;;10596:649:0:o;10855:330::-;10969:11;10953:13;:27;:59;;;;;11001:11;10984:13;:28;;10953:59;10950:235;;;11056:3;11034:20;3079:2;11034:6;:20;:::i;10950:235::-;11094:11;11078:13;:27;:59;;;;;11126:11;11109:13;:28;;11078:59;11075:110;;;11182:3;11159:20;3125:2;11159:6;:20;:::i;11075:110::-;11234:3;11213:18;3169:1;11213:6;:18;:::i;11253:104::-;11310:7;11340:1;11336;:5;:13;;11348:1;11336:13;;;11344:1;11336:13;11329:20;11253:104;-1:-1:-1;;;11253:104:0:o;8729:407::-;4334:6;:13;;-1:-1:-1;;;;4334:13:0;-1:-1:-1;;;4334:13:0;;;8831:16:::1;::::0;;8845:1:::1;8831:16:::0;;;;;::::1;::::0;;-1:-1:-1;;8831:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8831:16:0::1;8807:40;;8876:4;8858;8863:1;8858:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8858:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;8902:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;8902:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;8858:7;;8902:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8892:4;8897:1;8892:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8892:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;8967:15:::1;::::0;8935:62:::1;::::0;8952:4:::1;::::0;8967:15:::1;8985:11:::0;8935:8:::1;:62::i;:::-;9008:15;::::0;:120:::1;::::0;-1:-1:-1;;;9008:120:0;;-1:-1:-1;;;;;9008:15:0;;::::1;::::0;:66:::1;::::0;:120:::1;::::0;9075:11;;9008:15:::1;::::0;9091:4;;9105::::1;::::0;9112:15:::1;::::0;9008:120:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4370:6:0;:14;;-1:-1:-1;;;;4370:14:0;;;-1:-1:-1;;;;8729:407:0:o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;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;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:422;3121:1;3164:5;3121:1;3178:270;3199:7;3189:8;3186:21;3178:270;;;3258:4;3254:1;3250:6;3246:17;3240:4;3237:27;3234:53;;;3267:18;;:::i;:::-;3317:7;3307:8;3303:22;3300:55;;;3337:16;;;;3300:55;3416:22;;;;3376:15;;;;3178:270;;;3182:3;3032:422;;;;;:::o;3459:806::-;3508:5;3538:8;3528:80;;-1:-1:-1;3579:1:1;3593:5;;3528:80;3627:4;3617:76;;-1:-1:-1;3664:1:1;3678:5;;3617:76;3709:4;3727:1;3722:59;;;;3795:1;3790:130;;;;3702:218;;3722:59;3752:1;3743:10;;3766:5;;;3790:130;3827:3;3817:8;3814:17;3811:43;;;3834:18;;:::i;:::-;-1:-1:-1;;3890:1:1;3876:16;;3905:5;;3702:218;;4004:2;3994:8;3991:16;3985:3;3979:4;3976:13;3972:36;3966:2;3956:8;3953:16;3948:2;3942:4;3939:12;3935:35;3932:77;3929:159;;;-1:-1:-1;4041:19:1;;;4073:5;;3929:159;4120:34;4145:8;4139:4;4120:34;:::i;:::-;4190:6;4186:1;4182:6;4178:19;4169:7;4166:32;4163:58;;;4201:18;;:::i;:::-;4239:20;;3459:806;-1:-1:-1;;;3459:806:1:o;4270:140::-;4328:5;4357:47;4398:4;4388:8;4384:19;4378:4;4357:47;:::i;4415:168::-;4488:9;;;4519;;4536:15;;;4530:22;;4516:37;4506:71;;4557:18;;:::i;4946:356::-;5148:2;5130:21;;;5167:18;;;5160:30;5226:34;5221:2;5206:18;;5199:62;5293:2;5278:18;;4946:356::o;6636:251::-;6706:6;6759:2;6747:9;6738:7;6734:23;6730:32;6727:52;;;6775:1;6772;6765:12;6727:52;6807:9;6801:16;6826:31;6851:5;6826:31;:::i;7201:217::-;7241:1;7267;7257:132;;7311:10;7306:3;7302:20;7299:1;7292:31;7346:4;7343:1;7336:15;7374:4;7371:1;7364:15;7257:132;-1:-1:-1;7403:9:1;;7201:217::o;8035:306::-;8123:6;8131;8139;8192:2;8180:9;8171:7;8167:23;8163:32;8160:52;;;8208:1;8205;8198:12;8160:52;8237:9;8231:16;8221:26;;8287:2;8276:9;8272:18;8266:25;8256:35;;8331:2;8320:9;8316:18;8310:25;8300:35;;8035:306;;;;;:::o;8625:277::-;8692:6;8745:2;8733:9;8724:7;8720:23;8716:32;8713:52;;;8761:1;8758;8751:12;8713:52;8793:9;8787:16;8846:5;8839:13;8832:21;8825:5;8822:32;8812:60;;8868:1;8865;8858:12;12119:125;12184:9;;;12205:10;;;12202:36;;;12218:18;;:::i;12604:135::-;12643:3;12664:17;;;12661:43;;12684:18;;:::i;:::-;-1:-1:-1;12731:1:1;12720:13;;12604:135::o;12744:128::-;12811:9;;;12832:11;;;12829:37;;;12846:18;;:::i;13009:127::-;13070:10;13065:3;13061:20;13058:1;13051:31;13101:4;13098:1;13091:15;13125:4;13122:1;13115:15;13141:980;13403:4;13451:3;13440:9;13436:19;13482:6;13471:9;13464:25;13508:2;13546:6;13541:2;13530:9;13526:18;13519:34;13589:3;13584:2;13573:9;13569:18;13562:31;13613:6;13648;13642:13;13679:6;13671;13664:22;13717:3;13706:9;13702:19;13695:26;;13756:2;13748:6;13744:15;13730:29;;13777:1;13787:195;13801:6;13798:1;13795:13;13787:195;;;13866:13;;-1:-1:-1;;;;;13862:39:1;13850:52;;13957:15;;;;13922:12;;;;13898:1;13816:9;13787:195;;;-1:-1:-1;;;;;;;14038:32:1;;;;14033:2;14018:18;;14011:60;-1:-1:-1;;;14102:3:1;14087:19;14080:35;13999:3;13141:980;-1:-1:-1;;;13141:980:1:o

Swarm Source

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