ETH Price: $3,483.49 (+2.03%)
Gas: 3 Gwei

Token

Decentralized Intelligence Agency (DIA)
 

Overview

Max Total Supply

1,000,000 DIA

Holders

252

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1.149887845597684139 DIA

Value
$0.00
0xec455e4f3a1b6471efcf75b02d76807f03e2988b
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:
DIA

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-03-15
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

abstract contract Context {

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

    function _msgData() internal view virtual returns (bytes memory) {
      
        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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

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(0x000000000000000000000000000000000000dEaD));
        _owner = address(0x000000000000000000000000000000000000dEaD);
    }

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

}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract DIA is Context, IERC20, Ownable {
    
    using SafeMath for uint256;
    
    string private _name = "Decentralized Intelligence Agency";
    string private _symbol = "DIA";
    uint8 private _decimals = 18;

    address payable public marketingWallet = payable(0x06BB26f64FEA72bf0C6DE157546fB2015eD598F7);
    address payable public DeveloperWallet = payable(0x06BB26f64FEA72bf0C6DE157546fB2015eD598F7);
    
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public immutable zeroAddress = 0x0000000000000000000000000000000000000000;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    
    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) public blacklist;
    mapping (address => bool) public isWalletLimitExempt;
    mapping (address => bool) public isTxLimitExempt;

    uint256 public _buyLiquidityFee = 0;
    uint256 public _buyMarketingFee = 25;
    uint256 public _buyDeveloperFee = 0;
    
    uint256 public _sellLiquidityFee = 0;
    uint256 public _sellMarketingFee = 35;
    uint256 public _sellDeveloperFee = 0;

    uint256 public _totalTaxIfBuying;
    uint256 public _totalTaxIfSelling;

    uint256 private _totalSupply = 1000000 * 10**_decimals;

    uint256 public minimumTokensBeforeSwap = _totalSupply.mul(1).div(100);

    uint256 public _maxTxAmount =  _totalSupply.mul(1).div(100);
    uint256 public _walletMax =   _totalSupply.mul(1).div(100);  

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    bool public checkWalletLimit = true;
    bool public EnableTransactionLimit = true;

    event SwapAndLiquifyEnabledUpdated(bool enabled);

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        
        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        
        _allowances[address(this)][address(uniswapV2Router)] = ~uint256(0);

        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[marketingWallet] = true;
        isExcludedFromFee[DeveloperWallet] = true;
        isExcludedFromFee[address(this)] = true;

        isWalletLimitExempt[owner()] = true;
        isWalletLimitExempt[marketingWallet] = true;
        isWalletLimitExempt[DeveloperWallet] = true;
        isWalletLimitExempt[address(uniswapPair)] = true;
        isWalletLimitExempt[address(this)] = true;
        
        isTxLimitExempt[owner()] = true;
        isTxLimitExempt[marketingWallet] = true;
        isTxLimitExempt[DeveloperWallet] = true;
        isTxLimitExempt[address(this)] = true;
        
        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyDeveloperFee);
        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellDeveloperFee);

        isMarketPair[address(uniswapPair)] = true;

        _balances[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

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

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

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

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

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

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, 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 setMarketPairStatus(address account, bool newValue) public onlyOwner {
        isMarketPair[account] = newValue;
    }

    function setIsExcludedFromFee(address account, bool newValue) public onlyOwner {
        isExcludedFromFee[account] = newValue;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }
    
    function setIsWalletLimitExempt(address holder, bool exempt) external onlyOwner {
        isWalletLimitExempt[holder] = exempt;
    }

    function enableTxLimit(bool _status) external onlyOwner {
        EnableTransactionLimit = _status;
    }

    function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() {
        _maxTxAmount = maxTxAmount;
    }

    function enableDisableWalletLimit(bool newValue) external onlyOwner {
       checkWalletLimit = newValue;
    }

    function setWalletLimit(uint256 newLimit) external onlyOwner {
        _walletMax  = newLimit;
    }

    function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() {
        minimumTokensBeforeSwap = newLimit;
    }

    function setMarketingWalletAddress(address newAddress) external onlyOwner() {
        marketingWallet = payable(newAddress);
    }

    function setDeveloperWalletAddress(address newAddress) external onlyOwner() {
        DeveloperWallet = payable(newAddress);
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner {
        swapAndLiquifyByLimitOnly = newValue;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress));
    }

    function setBlacklist(address _adr, bool _status) external onlyOwner {
        blacklist[_adr] = _status;
    }

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }
    
    function changeRouterVersion(address newRouterAddress) public onlyOwner returns(address newPairAddress) {

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress); 

        newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());

        if(newPairAddress == address(0)) 
        {
            newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory())
                .createPair(address(this), _uniswapV2Router.WETH());
        }

        uniswapPair = newPairAddress; 
        uniswapV2Router = _uniswapV2Router; 

        isMarketPair[address(uniswapPair)] = true;
    }

    function setBuyTaxes(uint _Liquidity, uint _Marketing , uint _Developer) public onlyOwner {
        _buyLiquidityFee = _Liquidity;
        _buyMarketingFee = _Marketing;
        _buyDeveloperFee = _Developer;
        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyDeveloperFee);
    }

    function setSellTaxes(uint _Liquidity, uint _Marketing , uint _Developer) public onlyOwner {
        _sellLiquidityFee = _Liquidity;
        _sellMarketingFee = _Marketing;
        _sellDeveloperFee = _Developer;
        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellDeveloperFee);
    }

     //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, 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 _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(!blacklist[sender] && !blacklist[recipient], "Bot Enemy address Restricted!");

        if(inSwapAndLiquify)
        { 
            return _basicTransfer(sender, recipient, amount); 
        }
        else
        {

            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTransactionLimit) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
            
            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) 
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = minimumTokensBeforeSwap;
                swapAndLiquify(contractTokenBalance);    
            }

            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? 
                                         amount : takeFee(sender, recipient, amount);

            if(checkWalletLimit && !isWalletLimitExempt[recipient]) {
                require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Amount Exceed From Max Wallet Limit!!");
            }

            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            return true;
        }
        
    }

    function rescueStuckedToken(address _token, uint _amount) external onlyOwner {
        IERC20(_token).transfer(msg.sender,_amount);
    }

    function rescueFunds() external onlyOwner {
        (bool os,) = payable(msg.sender).call{value: address(this).balance}("");
        require(os);
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function swapAndLiquify(uint256 tAmount) private lockTheSwap {

        uint256 totalShares = _totalTaxIfBuying.add(_totalTaxIfSelling);

        uint256 liquidityShare = _buyLiquidityFee.add(_sellLiquidityFee);
        uint256 MarketingShare = _buyMarketingFee.add(_sellMarketingFee);
        // uint256 DeveloperShare = _buyDeveloperFee.add(_sellDeveloperFee);
        
        uint256 tokenForLp = tAmount.mul(liquidityShare).div(totalShares).div(2);
        uint256 tokenForSwap = tAmount.sub(tokenForLp);

        uint256 initialBalance =  address(this).balance;
        swapTokensForEth(tokenForSwap);
        uint256 recievedBalance =  address(this).balance.sub(initialBalance);

        uint256 totalETHFee = totalShares.sub(liquidityShare.div(2));

        uint256 amountETHLiquidity = recievedBalance.mul(liquidityShare).div(totalETHFee).div(2);
        uint256 amountETHMarketing = recievedBalance.mul(MarketingShare).div(totalETHFee);
        uint256 amountETHDeveloper = recievedBalance.sub(amountETHLiquidity).sub(amountETHMarketing);

        if(amountETHMarketing > 0) {
            payable(marketingWallet).transfer(amountETHMarketing);
        }

        if(amountETHDeveloper > 0) {
            payable(DeveloperWallet).transfer(amountETHDeveloper);
        }         

        if(amountETHLiquidity > 0 && tokenForLp > 0) {
            addLiquidity(tokenForLp, amountETHLiquidity);
        }
    }
    
    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            owner(),
            block.timestamp
        );
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 feeAmount = 0;
        
        if(isMarketPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
        }
        else if(isMarketPair[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling).div(100);
        }
        
        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }

    /* AirDrop Function*/

    function airdrop(address[] calldata _address,uint[] calldata _tokens) external onlyOwner {
        address account = msg.sender;
        require(_address.length == _tokens.length,"Error: Mismatch Length");
        uint tokenCount;
        for(uint i = 0; i < _tokens.length; i++) {
            tokenCount += _tokens[i];
        }
        require(balanceOf(account) >= tokenCount,"Error: Insufficient Error!!");
        _balances[account] = _balances[account].sub(tokenCount); 
        for(uint j = 0; j < _address.length; j++) {
            _balances[_address[j]] = _balances[_address[j]].add(_tokens[j]);
            emit Transfer(account, _address[j], _tokens[j]);
        }

    }

    
}

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":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":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"DeveloperWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EnableTransactionLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyDeveloperFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","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":"_sellDeveloperFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"uint256[]","name":"_tokens","type":"uint256[]"}],"name":"airdrop","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":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableDisableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueStuckedToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_Liquidity","type":"uint256"},{"internalType":"uint256","name":"_Marketing","type":"uint256"},{"internalType":"uint256","name":"_Developer","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setDeveloperWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setIsExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_Liquidity","type":"uint256"},{"internalType":"uint256","name":"_Marketing","type":"uint256"},{"internalType":"uint256","name":"_Developer","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

610120604052602160c081815290620039d560e03980516200002a91600191602090910190620007ff565b506040805180820190915260038082526244494160e81b60209092019182526200005791600291620007ff565b50600380547406bb26f64fea72bf0c6de157546fb2015ed598f7126001600160a81b0319909116179055600480546001600160a01b0319167306bb26f64fea72bf0c6de157546fb2015ed598f71790556ddead000000000000000000000000608052600060a0819052600c8190556019600d55600e819055600f8190556023601055601155620000ea6012600a620009a9565b620000f990620f424062000a68565b6014556200013360646200011f60016014546200068260201b62001bd71790919060201c565b6200071660201b62001c561790919060201c565b6015556200015960646200011f60016014546200068260201b62001bd71790919060201c565b6016556200017f60646200011f60016014546200068260201b62001bd71790919060201c565b6017556019805463ffffffff60a81b1916630101000160a81b179055348015620001a857600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200023d57600080fd5b505afa15801562000252573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002789190620008a5565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002c157600080fd5b505afa158015620002d6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002fc9190620008a5565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200034557600080fd5b505af11580156200035a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003809190620008a5565b601980546001600160a01b039283166001600160a01b0319918216179091556018805492841692909116821790553060009081526006602090815260408083209383529290529081206000199055600190600790620003e76000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560035461010090048216815260079093528183208054851660019081179091556004549091168352818320805485168217905530835290822080549093168117909255600a906200046e6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600354610100900482168152600a9093528183208054851660019081179091556004548216845282842080548616821790556019549091168352818320805485168217905530835290822080549093168117909255600b90620005076000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600354610100900482168152600b84528281208054861660019081179091556004549092168152828120805486168317905530815291909120805490931617909155600e54600d54600c54620005ae936200059a929062001c9862000760821b17901c565b6200076060201b62001c981790919060201c565b601281905550620005d96011546200059a601054600f546200076060201b62001c981790919060201c565b6013556019546001600160a01b03166000908152600860205260408120805460ff1916600117905560145490600590620006103390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6014546040516200067391815260200190565b60405180910390a35062000add565b600082620006935750600062000710565b6000620006a1838562000a68565b905082620006b085836200093f565b146200070d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200070d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620007c360201b60201c565b6000806200076f838562000924565b9050838110156200070d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640162000704565b60008183620007e75760405162461bcd60e51b8152600401620007049190620008ce565b506000620007f684866200093f565b95945050505050565b8280546200080d9062000a8a565b90600052602060002090601f0160209004810192826200083157600085556200087c565b82601f106200084c57805160ff19168380011785556200087c565b828001600101855582156200087c579182015b828111156200087c5782518255916020019190600101906200085f565b506200088a9291506200088e565b5090565b5b808211156200088a57600081556001016200088f565b600060208284031215620008b7578081fd5b81516001600160a01b03811681146200070d578182fd5b6000602080835283518082850152825b81811015620008fc57858101830151858201604001528201620008de565b818111156200090e5783604083870101525b50601f01601f1916929092016040019392505050565b600082198211156200093a576200093a62000ac7565b500190565b6000826200095b57634e487b7160e01b81526012600452602481fd5b500490565b600181815b80851115620009a157816000190482111562000985576200098562000ac7565b808516156200099357918102915b93841c939080029062000965565b509250929050565b60006200070d60ff841683600082620009c55750600162000710565b81620009d45750600062000710565b8160018114620009ed5760028114620009f85762000a18565b600191505062000710565b60ff84111562000a0c5762000a0c62000ac7565b50506001821b62000710565b5060208310610133831016604e8410600b841016171562000a3d575081810a62000710565b62000a49838362000960565b806000190482111562000a605762000a6062000ac7565b029392505050565b600081600019048311821515161562000a855762000a8562000ac7565b500290565b600181811c9082168062000a9f57607f821691505b6020821081141562000ac157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60805160601c60a05160601c612ebe62000b17600039600081816104110152610e660152600081816105820152610ea10152612ebe6000f3fe6080604052600436106103a65760003560e01c8063844d591c116101e7578063da00097d1161010d578063f1d5f517116100a0578063f872858a1161006f578063f872858a14610b18578063f8f6329014610b39578063f9f92be414610b59578063fb4b8e6c14610b8957600080fd5b8063f1d5f51714610a98578063f2fde38b14610ab8578063f455444614610ad8578063f84ba65d14610af857600080fd5b8063ec28438a116100dc578063ec28438a14610a22578063ee828db314610a42578063ef422a1814610a62578063f0cd1dac14610a8257600080fd5b8063da00097d14610990578063dc44b6a0146109b1578063dd62ed3e146109c7578063e6b2603b14610a0d57600080fd5b8063a5d69d1f11610185578063c816841b11610154578063c816841b14610914578063c860795214610934578063c867d60b1461094a578063d2d7ad831461097a57600080fd5b8063a5d69d1f1461089e578063a9059cbb146108be578063c49b9a80146108de578063c5d24189146108fe57600080fd5b80638b42507f116101c15780638b42507f1461081b5780638da5cb5b1461084b57806395d89b4114610869578063a457c2d71461087e57600080fd5b8063844d591c146107c457806385261485146107e457806388790a681461080557600080fd5b806339509351116102cc5780635881f3ef1161026a57806375f0a8741161023957806375f0a8741461075d5780637d1db4a514610782578063807c2d9c1461079857806382eefb43146107ae57600080fd5b80635881f3ef146106d257806367243482146106f257806370a0823114610712578063715018a61461074857600080fd5b80634a74bb02116102a65780634a74bb021461064b5780634cb80fd51461066c5780635194f9bf1461068c5780635342acb4146106a257600080fd5b806339509351146105db5780633b97084a146105fb5780633ecad2711461061b57600080fd5b80631870517a116103445780632563ae83116103135780632563ae831461055057806327c8f835146105705780632b112e49146105a4578063313ce567146105b957600080fd5b80631870517a146104da5780632198cf6c146104fa57806323555d571461051a57806323b872dd1461053057600080fd5b8063095ea7b311610380578063095ea7b31461044b578063153b0d1e1461047b5780631694505e1461049b57806318160ddd146104bb57600080fd5b806306fdde03146103b257806308733214146103dd5780630930907b146103ff57600080fd5b366103ad57005b600080fd5b3480156103be57600080fd5b506103c7610ba9565b6040516103d49190612c39565b60405180910390f35b3480156103e957600080fd5b506103fd6103f8366004612b9e565b610c3b565b005b34801561040b57600080fd5b506104337f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016103d4565b34801561045757600080fd5b5061046b610466366004612aba565b610c99565b60405190151581526020016103d4565b34801561048757600080fd5b506103fd610496366004612a8d565b610cb0565b3480156104a757600080fd5b50601854610433906001600160a01b031681565b3480156104c757600080fd5b506014545b6040519081526020016103d4565b3480156104e657600080fd5b506103fd6104f5366004612b9e565b610d05565b34801561050657600080fd5b506103fd610515366004612a8d565b610d54565b34801561052657600080fd5b506104cc600e5481565b34801561053c57600080fd5b5061046b61054b366004612a4d565b610da9565b34801561055c57600080fd5b506103fd61056b366004612b4e565b610e14565b34801561057c57600080fd5b506104337f000000000000000000000000000000000000000000000000000000000000000081565b3480156105b057600080fd5b506104cc610e5c565b3480156105c557600080fd5b5060035460405160ff90911681526020016103d4565b3480156105e757600080fd5b5061046b6105f6366004612aba565b610eef565b34801561060757600080fd5b506103fd610616366004612b86565b610f25565b34801561062757600080fd5b5061046b6106363660046129dd565b60086020526000908152604090205460ff1681565b34801561065757600080fd5b5060195461046b90600160a81b900460ff1681565b34801561067857600080fd5b506103fd6106873660046129dd565b610f54565b34801561069857600080fd5b506104cc60115481565b3480156106ae57600080fd5b5061046b6106bd3660046129dd565b60076020526000908152604090205460ff1681565b3480156106de57600080fd5b506104336106ed3660046129dd565b610fa6565b3480156106fe57600080fd5b506103fd61070d366004612ae5565b61131a565b34801561071e57600080fd5b506104cc61072d3660046129dd565b6001600160a01b031660009081526005602052604090205490565b34801561075457600080fd5b506103fd61161c565b34801561076957600080fd5b506003546104339061010090046001600160a01b031681565b34801561078e57600080fd5b506104cc60165481565b3480156107a457600080fd5b506104cc60175481565b3480156107ba57600080fd5b506104cc60135481565b3480156107d057600080fd5b506103fd6107df366004612a8d565b611696565b3480156107f057600080fd5b5060195461046b90600160c01b900460ff1681565b34801561081157600080fd5b506104cc600f5481565b34801561082757600080fd5b5061046b6108363660046129dd565b600b6020526000908152604090205460ff1681565b34801561085757600080fd5b506000546001600160a01b0316610433565b34801561087557600080fd5b506103c76116eb565b34801561088a57600080fd5b5061046b610899366004612aba565b6116fa565b3480156108aa57600080fd5b506103fd6108b9366004612b4e565b611749565b3480156108ca57600080fd5b5061046b6108d9366004612aba565b611791565b3480156108ea57600080fd5b506103fd6108f9366004612b4e565b61179e565b34801561090a57600080fd5b506104cc600d5481565b34801561092057600080fd5b50601954610433906001600160a01b031681565b34801561094057600080fd5b506104cc60105481565b34801561095657600080fd5b5061046b6109653660046129dd565b600a6020526000908152604090205460ff1681565b34801561098657600080fd5b506104cc60155481565b34801561099c57600080fd5b5060195461046b90600160b01b900460ff1681565b3480156109bd57600080fd5b506104cc600c5481565b3480156109d357600080fd5b506104cc6109e2366004612a15565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b348015610a1957600080fd5b506103fd611820565b348015610a2e57600080fd5b506103fd610a3d366004612b86565b6118a2565b348015610a4e57600080fd5b506103fd610a5d366004612b4e565b6118d1565b348015610a6e57600080fd5b506103fd610a7d366004612a8d565b611919565b348015610a8e57600080fd5b506104cc60125481565b348015610aa457600080fd5b506103fd610ab3366004612b86565b61196e565b348015610ac457600080fd5b506103fd610ad33660046129dd565b61199d565b348015610ae457600080fd5b506103fd610af3366004612aba565b611a87565b348015610b0457600080fd5b506103fd610b13366004612a8d565b611b36565b348015610b2457600080fd5b5060195461046b90600160b81b900460ff1681565b348015610b4557600080fd5b50600454610433906001600160a01b031681565b348015610b6557600080fd5b5061046b610b743660046129dd565b60096020526000908152604090205460ff1681565b348015610b9557600080fd5b506103fd610ba43660046129dd565b611b8b565b606060018054610bb890612d8c565b80601f0160208091040260200160405190810160405280929190818152602001828054610be490612d8c565b8015610c315780601f10610c0657610100808354040283529160200191610c31565b820191906000526020600020905b815481529060010190602001808311610c1457829003601f168201915b5050505050905090565b6000546001600160a01b03163314610c6e5760405162461bcd60e51b8152600401610c6590612c8c565b60405180910390fd5b600f83905560108290556011819055610c9181610c8b8585611c98565b90611c98565b601355505050565b6000610ca6338484611cf7565b5060015b92915050565b6000546001600160a01b03163314610cda5760405162461bcd60e51b8152600401610c6590612c8c565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d2f5760405162461bcd60e51b8152600401610c6590612c8c565b600c839055600d829055600e819055610d4c81610c8b8585611c98565b601255505050565b6000546001600160a01b03163314610d7e5760405162461bcd60e51b8152600401610c6590612c8c565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000610db6848484611e1b565b50610e098433610e0485604051806060016040528060288152602001612e1c602891396001600160a01b038a16600090815260066020908152604080832033845290915290205491906122cc565b611cf7565b5060015b9392505050565b6000546001600160a01b03163314610e3e5760405162461bcd60e51b8152600401610c6590612c8c565b60198054911515600160b81b0260ff60b81b19909216919091179055565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600090815260056020526040812054610eea90610ee4610edb7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660009081526005602052604090205490565b60145490612306565b90612306565b905090565b3360008181526006602090815260408083206001600160a01b03871684529091528120549091610ca6918590610e049086611c98565b6000546001600160a01b03163314610f4f5760405162461bcd60e51b8152600401610c6590612c8c565b601555565b6000546001600160a01b03163314610f7e5760405162461bcd60e51b8152600401610c6590612c8c565b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600080546001600160a01b03163314610fd15760405162461bcd60e51b8152600401610c6590612c8c565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561100f57600080fd5b505afa158015611023573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104791906129f9565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561108f57600080fd5b505afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c791906129f9565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b15801561110d57600080fd5b505afa158015611121573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114591906129f9565b91506001600160a01b0382166112c957806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561118e57600080fd5b505afa1580156111a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c691906129f9565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561120e57600080fd5b505afa158015611222573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124691906129f9565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561128e57600080fd5b505af11580156112a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c691906129f9565b91505b601980546001600160a01b038085166001600160a01b03199283168117909355601880549490911693909116929092179091556000908152600860205260409020805460ff19166001179055919050565b6000546001600160a01b031633146113445760405162461bcd60e51b8152600401610c6590612c8c565b3383821461138d5760405162461bcd60e51b815260206004820152601660248201527508ae4e4dee474409ad2e6dac2e8c6d04098cadccee8d60531b6044820152606401610c65565b6000805b838110156113df578484828181106113b957634e487b7160e01b600052603260045260246000fd5b90506020020135826113cb9190612d1e565b9150806113d781612dc7565b915050611391565b5080611400836001600160a01b031660009081526005602052604090205490565b101561144e5760405162461bcd60e51b815260206004820152601b60248201527f4572726f723a20496e73756666696369656e74204572726f72212100000000006044820152606401610c65565b6001600160a01b0382166000908152600560205260409020546114719082612306565b6001600160a01b0383166000908152600560205260408120919091555b85811015611613576115198585838181106114b957634e487b7160e01b600052603260045260246000fd5b90506020020135600560008a8a868181106114e457634e487b7160e01b600052603260045260246000fd5b90506020020160208101906114f991906129dd565b6001600160a01b0316815260208101919091526040016000205490611c98565b6005600089898581811061153d57634e487b7160e01b600052603260045260246000fd5b905060200201602081019061155291906129dd565b6001600160a01b0316815260208101919091526040016000205586868281811061158c57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906115a191906129dd565b6001600160a01b0316836001600160a01b0316600080516020612e448339815191528787858181106115e357634e487b7160e01b600052603260045260246000fd5b905060200201356040516115f991815260200190565b60405180910390a38061160b81612dc7565b91505061148e565b50505050505050565b6000546001600160a01b031633146116465760405162461bcd60e51b8152600401610c6590612c8c565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b031633146116c05760405162461bcd60e51b8152600401610c6590612c8c565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b606060028054610bb890612d8c565b6000610ca63384610e0485604051806060016040528060258152602001612e64602591393360009081526006602090815260408083206001600160a01b038d16845290915290205491906122cc565b6000546001600160a01b031633146117735760405162461bcd60e51b8152600401610c6590612c8c565b60198054911515600160b01b0260ff60b01b19909216919091179055565b6000610e09338484611e1b565b6000546001600160a01b031633146117c85760405162461bcd60e51b8152600401610c6590612c8c565b60198054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061181590831515815260200190565b60405180910390a150565b6000546001600160a01b0316331461184a5760405162461bcd60e51b8152600401610c6590612c8c565b604051600090339047908381818185875af1925050503d806000811461188c576040519150601f19603f3d011682016040523d82523d6000602084013e611891565b606091505b505090508061189f57600080fd5b50565b6000546001600160a01b031633146118cc5760405162461bcd60e51b8152600401610c6590612c8c565b601655565b6000546001600160a01b031633146118fb5760405162461bcd60e51b8152600401610c6590612c8c565b60198054911515600160c01b0260ff60c01b19909216919091179055565b6000546001600160a01b031633146119435760405162461bcd60e51b8152600401610c6590612c8c565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146119985760405162461bcd60e51b8152600401610c6590612c8c565b601755565b6000546001600160a01b031633146119c75760405162461bcd60e51b8152600401610c6590612c8c565b6001600160a01b038116611a2c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c65565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611ab15760405162461bcd60e51b8152600401610c6590612c8c565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb90604401602060405180830381600087803b158015611af957600080fd5b505af1158015611b0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b319190612b6a565b505050565b6000546001600160a01b03163314611b605760405162461bcd60e51b8152600401610c6590612c8c565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314611bb55760405162461bcd60e51b8152600401610c6590612c8c565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b600082611be657506000610caa565b6000611bf28385612d56565b905082611bff8583612d36565b14610e0d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c65565b6000610e0d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612348565b600080611ca58385612d1e565b905083811015610e0d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c65565b6001600160a01b038316611d595760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c65565b6001600160a01b038216611dba5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c65565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416611e815760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c65565b6001600160a01b038316611ee35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c65565b6001600160a01b03841660009081526009602052604090205460ff16158015611f2557506001600160a01b03831660009081526009602052604090205460ff16155b611f715760405162461bcd60e51b815260206004820152601d60248201527f426f7420456e656d7920616464726573732052657374726963746564210000006044820152606401610c65565b601954600160a01b900460ff1615611f9557611f8e848484612376565b9050610e0d565b6001600160a01b0384166000908152600b602052604090205460ff16158015611fd757506001600160a01b0383166000908152600b602052604090205460ff16155b8015611fec5750601954600160c01b900460ff165b15612054576016548211156120545760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610c65565b30600090815260056020526040902054601554811080159081906120825750601954600160a01b900460ff16155b80156120a757506001600160a01b03861660009081526008602052604090205460ff16155b80156120bc5750601954600160a81b900460ff165b156120e257601954600160b01b900460ff16156120d95760155491505b6120e28261244a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600590915291909120546121349186906122cc565b6001600160a01b038716600090815260056020908152604080832093909355600790529081205460ff168061218157506001600160a01b03861660009081526007602052604090205460ff165b612195576121908787876125fd565b612197565b845b601954909150600160b81b900460ff1680156121cc57506001600160a01b0386166000908152600a602052604090205460ff16155b15612253576017546121f782610c8b896001600160a01b031660009081526005602052604090205490565b11156122535760405162461bcd60e51b815260206004820152602560248201527f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c696044820152646d6974212160d81b6064820152608401610c65565b6001600160a01b0386166000908152600560205260409020546122769082611c98565b6001600160a01b038088166000818152600560205260409081902093909355915190891690600080516020612e44833981519152906122b89085815260200190565b60405180910390a360019350505050610e0d565b600081848411156122f05760405162461bcd60e51b8152600401610c659190612c39565b5060006122fd8486612d75565b95945050505050565b6000610e0d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122cc565b600081836123695760405162461bcd60e51b8152600401610c659190612c39565b5060006122fd8486612d36565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526005909152918220546123c79184906122cc565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546123f69083611c98565b6001600160a01b038085166000818152600560205260409081902093909355915190861690600080516020612e44833981519152906124389086815260200190565b60405180910390a35060019392505050565b6019805460ff60a01b1916600160a01b1790556013546012546000916124709190611c98565b9050600061248b600f54600c54611c9890919063ffffffff16565b905060006124a6601054600d54611c9890919063ffffffff16565b905060006124c160026124bb86818988611bd7565b90611c56565b905060006124cf8683612306565b9050476124db826126f1565b60006124e74783612306565b905060006125006124f9886002611c56565b8990612306565b9050600061251560026124bb8481878d611bd7565b90506000612527836124bb868b611bd7565b9050600061253982610ee48786612306565b90508115612581576003546040516101009091046001600160a01b0316906108fc8415029084906000818181858888f1935050505015801561257f573d6000803e3d6000fd5b505b80156125c3576004546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156125c1573d6000803e3d6000fd5b505b6000831180156125d35750600088115b156125e2576125e288846128af565b50506019805460ff60a01b1916905550505050505050505050565b6001600160a01b038316600090815260086020526040812054819060ff16156126415761263a60646124bb60125486611bd790919063ffffffff16565b905061267f565b6001600160a01b03841660009081526008602052604090205460ff161561267f5761267c60646124bb60135486611bd790919063ffffffff16565b90505b80156126e7573060009081526005602052604090205461269f9082611c98565b30600081815260056020526040908190209290925590516001600160a01b03871690600080516020612e44833981519152906126de9085815260200190565b60405180910390a35b6122fd8382612306565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061273457634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561278857600080fd5b505afa15801561279c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127c091906129f9565b816001815181106127e157634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526018546128079130911684611cf7565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac94790612840908590600090869030904290600401612ce2565b600060405180830381600087803b15801561285a57600080fd5b505af115801561286e573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516128a3929190612cc1565b60405180910390a15050565b6018546128c79030906001600160a01b031684611cf7565b6018546001600160a01b031663f305d7198230856000806128f06000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561295357600080fd5b505af1158015612967573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061298c9190612bc9565b5050505050565b60008083601f8401126129a4578182fd5b50813567ffffffffffffffff8111156129bb578182fd5b6020830191508360208260051b85010111156129d657600080fd5b9250929050565b6000602082840312156129ee578081fd5b8135610e0d81612df8565b600060208284031215612a0a578081fd5b8151610e0d81612df8565b60008060408385031215612a27578081fd5b8235612a3281612df8565b91506020830135612a4281612df8565b809150509250929050565b600080600060608486031215612a61578081fd5b8335612a6c81612df8565b92506020840135612a7c81612df8565b929592945050506040919091013590565b60008060408385031215612a9f578182fd5b8235612aaa81612df8565b91506020830135612a4281612e0d565b60008060408385031215612acc578182fd5b8235612ad781612df8565b946020939093013593505050565b60008060008060408587031215612afa578081fd5b843567ffffffffffffffff80821115612b11578283fd5b612b1d88838901612993565b90965094506020870135915080821115612b35578283fd5b50612b4287828801612993565b95989497509550505050565b600060208284031215612b5f578081fd5b8135610e0d81612e0d565b600060208284031215612b7b578081fd5b8151610e0d81612e0d565b600060208284031215612b97578081fd5b5035919050565b600080600060608486031215612bb2578283fd5b505081359360208301359350604090920135919050565b600080600060608486031215612bdd578283fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b83811015612c2e5781516001600160a01b031687529582019590820190600101612c09565b509495945050505050565b6000602080835283518082850152825b81811015612c6557858101830151858201604001528201612c49565b81811115612c765783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b828152604060208201526000612cda6040830184612bf6565b949350505050565b85815284602082015260a060408201526000612d0160a0830186612bf6565b6001600160a01b0394909416606083015250608001529392505050565b60008219821115612d3157612d31612de2565b500190565b600082612d5157634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612d7057612d70612de2565b500290565b600082821015612d8757612d87612de2565b500390565b600181811c90821680612da057607f821691505b60208210811415612dc157634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612ddb57612ddb612de2565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461189f57600080fd5b801515811461189f57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ba34ca59c908ce1b1c1472caa28cc64351afa8953ef4d84ef4567d3f12243a2d64736f6c63430008040033446563656e7472616c697a656420496e74656c6c6967656e6365204167656e6379

Deployed Bytecode

0x6080604052600436106103a65760003560e01c8063844d591c116101e7578063da00097d1161010d578063f1d5f517116100a0578063f872858a1161006f578063f872858a14610b18578063f8f6329014610b39578063f9f92be414610b59578063fb4b8e6c14610b8957600080fd5b8063f1d5f51714610a98578063f2fde38b14610ab8578063f455444614610ad8578063f84ba65d14610af857600080fd5b8063ec28438a116100dc578063ec28438a14610a22578063ee828db314610a42578063ef422a1814610a62578063f0cd1dac14610a8257600080fd5b8063da00097d14610990578063dc44b6a0146109b1578063dd62ed3e146109c7578063e6b2603b14610a0d57600080fd5b8063a5d69d1f11610185578063c816841b11610154578063c816841b14610914578063c860795214610934578063c867d60b1461094a578063d2d7ad831461097a57600080fd5b8063a5d69d1f1461089e578063a9059cbb146108be578063c49b9a80146108de578063c5d24189146108fe57600080fd5b80638b42507f116101c15780638b42507f1461081b5780638da5cb5b1461084b57806395d89b4114610869578063a457c2d71461087e57600080fd5b8063844d591c146107c457806385261485146107e457806388790a681461080557600080fd5b806339509351116102cc5780635881f3ef1161026a57806375f0a8741161023957806375f0a8741461075d5780637d1db4a514610782578063807c2d9c1461079857806382eefb43146107ae57600080fd5b80635881f3ef146106d257806367243482146106f257806370a0823114610712578063715018a61461074857600080fd5b80634a74bb02116102a65780634a74bb021461064b5780634cb80fd51461066c5780635194f9bf1461068c5780635342acb4146106a257600080fd5b806339509351146105db5780633b97084a146105fb5780633ecad2711461061b57600080fd5b80631870517a116103445780632563ae83116103135780632563ae831461055057806327c8f835146105705780632b112e49146105a4578063313ce567146105b957600080fd5b80631870517a146104da5780632198cf6c146104fa57806323555d571461051a57806323b872dd1461053057600080fd5b8063095ea7b311610380578063095ea7b31461044b578063153b0d1e1461047b5780631694505e1461049b57806318160ddd146104bb57600080fd5b806306fdde03146103b257806308733214146103dd5780630930907b146103ff57600080fd5b366103ad57005b600080fd5b3480156103be57600080fd5b506103c7610ba9565b6040516103d49190612c39565b60405180910390f35b3480156103e957600080fd5b506103fd6103f8366004612b9e565b610c3b565b005b34801561040b57600080fd5b506104337f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016103d4565b34801561045757600080fd5b5061046b610466366004612aba565b610c99565b60405190151581526020016103d4565b34801561048757600080fd5b506103fd610496366004612a8d565b610cb0565b3480156104a757600080fd5b50601854610433906001600160a01b031681565b3480156104c757600080fd5b506014545b6040519081526020016103d4565b3480156104e657600080fd5b506103fd6104f5366004612b9e565b610d05565b34801561050657600080fd5b506103fd610515366004612a8d565b610d54565b34801561052657600080fd5b506104cc600e5481565b34801561053c57600080fd5b5061046b61054b366004612a4d565b610da9565b34801561055c57600080fd5b506103fd61056b366004612b4e565b610e14565b34801561057c57600080fd5b506104337f000000000000000000000000000000000000000000000000000000000000dead81565b3480156105b057600080fd5b506104cc610e5c565b3480156105c557600080fd5b5060035460405160ff90911681526020016103d4565b3480156105e757600080fd5b5061046b6105f6366004612aba565b610eef565b34801561060757600080fd5b506103fd610616366004612b86565b610f25565b34801561062757600080fd5b5061046b6106363660046129dd565b60086020526000908152604090205460ff1681565b34801561065757600080fd5b5060195461046b90600160a81b900460ff1681565b34801561067857600080fd5b506103fd6106873660046129dd565b610f54565b34801561069857600080fd5b506104cc60115481565b3480156106ae57600080fd5b5061046b6106bd3660046129dd565b60076020526000908152604090205460ff1681565b3480156106de57600080fd5b506104336106ed3660046129dd565b610fa6565b3480156106fe57600080fd5b506103fd61070d366004612ae5565b61131a565b34801561071e57600080fd5b506104cc61072d3660046129dd565b6001600160a01b031660009081526005602052604090205490565b34801561075457600080fd5b506103fd61161c565b34801561076957600080fd5b506003546104339061010090046001600160a01b031681565b34801561078e57600080fd5b506104cc60165481565b3480156107a457600080fd5b506104cc60175481565b3480156107ba57600080fd5b506104cc60135481565b3480156107d057600080fd5b506103fd6107df366004612a8d565b611696565b3480156107f057600080fd5b5060195461046b90600160c01b900460ff1681565b34801561081157600080fd5b506104cc600f5481565b34801561082757600080fd5b5061046b6108363660046129dd565b600b6020526000908152604090205460ff1681565b34801561085757600080fd5b506000546001600160a01b0316610433565b34801561087557600080fd5b506103c76116eb565b34801561088a57600080fd5b5061046b610899366004612aba565b6116fa565b3480156108aa57600080fd5b506103fd6108b9366004612b4e565b611749565b3480156108ca57600080fd5b5061046b6108d9366004612aba565b611791565b3480156108ea57600080fd5b506103fd6108f9366004612b4e565b61179e565b34801561090a57600080fd5b506104cc600d5481565b34801561092057600080fd5b50601954610433906001600160a01b031681565b34801561094057600080fd5b506104cc60105481565b34801561095657600080fd5b5061046b6109653660046129dd565b600a6020526000908152604090205460ff1681565b34801561098657600080fd5b506104cc60155481565b34801561099c57600080fd5b5060195461046b90600160b01b900460ff1681565b3480156109bd57600080fd5b506104cc600c5481565b3480156109d357600080fd5b506104cc6109e2366004612a15565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b348015610a1957600080fd5b506103fd611820565b348015610a2e57600080fd5b506103fd610a3d366004612b86565b6118a2565b348015610a4e57600080fd5b506103fd610a5d366004612b4e565b6118d1565b348015610a6e57600080fd5b506103fd610a7d366004612a8d565b611919565b348015610a8e57600080fd5b506104cc60125481565b348015610aa457600080fd5b506103fd610ab3366004612b86565b61196e565b348015610ac457600080fd5b506103fd610ad33660046129dd565b61199d565b348015610ae457600080fd5b506103fd610af3366004612aba565b611a87565b348015610b0457600080fd5b506103fd610b13366004612a8d565b611b36565b348015610b2457600080fd5b5060195461046b90600160b81b900460ff1681565b348015610b4557600080fd5b50600454610433906001600160a01b031681565b348015610b6557600080fd5b5061046b610b743660046129dd565b60096020526000908152604090205460ff1681565b348015610b9557600080fd5b506103fd610ba43660046129dd565b611b8b565b606060018054610bb890612d8c565b80601f0160208091040260200160405190810160405280929190818152602001828054610be490612d8c565b8015610c315780601f10610c0657610100808354040283529160200191610c31565b820191906000526020600020905b815481529060010190602001808311610c1457829003601f168201915b5050505050905090565b6000546001600160a01b03163314610c6e5760405162461bcd60e51b8152600401610c6590612c8c565b60405180910390fd5b600f83905560108290556011819055610c9181610c8b8585611c98565b90611c98565b601355505050565b6000610ca6338484611cf7565b5060015b92915050565b6000546001600160a01b03163314610cda5760405162461bcd60e51b8152600401610c6590612c8c565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d2f5760405162461bcd60e51b8152600401610c6590612c8c565b600c839055600d829055600e819055610d4c81610c8b8585611c98565b601255505050565b6000546001600160a01b03163314610d7e5760405162461bcd60e51b8152600401610c6590612c8c565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000610db6848484611e1b565b50610e098433610e0485604051806060016040528060288152602001612e1c602891396001600160a01b038a16600090815260066020908152604080832033845290915290205491906122cc565b611cf7565b5060015b9392505050565b6000546001600160a01b03163314610e3e5760405162461bcd60e51b8152600401610c6590612c8c565b60198054911515600160b81b0260ff60b81b19909216919091179055565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600090815260056020526040812054610eea90610ee4610edb7f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b031660009081526005602052604090205490565b60145490612306565b90612306565b905090565b3360008181526006602090815260408083206001600160a01b03871684529091528120549091610ca6918590610e049086611c98565b6000546001600160a01b03163314610f4f5760405162461bcd60e51b8152600401610c6590612c8c565b601555565b6000546001600160a01b03163314610f7e5760405162461bcd60e51b8152600401610c6590612c8c565b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600080546001600160a01b03163314610fd15760405162461bcd60e51b8152600401610c6590612c8c565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561100f57600080fd5b505afa158015611023573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104791906129f9565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561108f57600080fd5b505afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c791906129f9565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b15801561110d57600080fd5b505afa158015611121573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114591906129f9565b91506001600160a01b0382166112c957806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561118e57600080fd5b505afa1580156111a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c691906129f9565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561120e57600080fd5b505afa158015611222573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124691906129f9565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561128e57600080fd5b505af11580156112a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c691906129f9565b91505b601980546001600160a01b038085166001600160a01b03199283168117909355601880549490911693909116929092179091556000908152600860205260409020805460ff19166001179055919050565b6000546001600160a01b031633146113445760405162461bcd60e51b8152600401610c6590612c8c565b3383821461138d5760405162461bcd60e51b815260206004820152601660248201527508ae4e4dee474409ad2e6dac2e8c6d04098cadccee8d60531b6044820152606401610c65565b6000805b838110156113df578484828181106113b957634e487b7160e01b600052603260045260246000fd5b90506020020135826113cb9190612d1e565b9150806113d781612dc7565b915050611391565b5080611400836001600160a01b031660009081526005602052604090205490565b101561144e5760405162461bcd60e51b815260206004820152601b60248201527f4572726f723a20496e73756666696369656e74204572726f72212100000000006044820152606401610c65565b6001600160a01b0382166000908152600560205260409020546114719082612306565b6001600160a01b0383166000908152600560205260408120919091555b85811015611613576115198585838181106114b957634e487b7160e01b600052603260045260246000fd5b90506020020135600560008a8a868181106114e457634e487b7160e01b600052603260045260246000fd5b90506020020160208101906114f991906129dd565b6001600160a01b0316815260208101919091526040016000205490611c98565b6005600089898581811061153d57634e487b7160e01b600052603260045260246000fd5b905060200201602081019061155291906129dd565b6001600160a01b0316815260208101919091526040016000205586868281811061158c57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906115a191906129dd565b6001600160a01b0316836001600160a01b0316600080516020612e448339815191528787858181106115e357634e487b7160e01b600052603260045260246000fd5b905060200201356040516115f991815260200190565b60405180910390a38061160b81612dc7565b91505061148e565b50505050505050565b6000546001600160a01b031633146116465760405162461bcd60e51b8152600401610c6590612c8c565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b031633146116c05760405162461bcd60e51b8152600401610c6590612c8c565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b606060028054610bb890612d8c565b6000610ca63384610e0485604051806060016040528060258152602001612e64602591393360009081526006602090815260408083206001600160a01b038d16845290915290205491906122cc565b6000546001600160a01b031633146117735760405162461bcd60e51b8152600401610c6590612c8c565b60198054911515600160b01b0260ff60b01b19909216919091179055565b6000610e09338484611e1b565b6000546001600160a01b031633146117c85760405162461bcd60e51b8152600401610c6590612c8c565b60198054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061181590831515815260200190565b60405180910390a150565b6000546001600160a01b0316331461184a5760405162461bcd60e51b8152600401610c6590612c8c565b604051600090339047908381818185875af1925050503d806000811461188c576040519150601f19603f3d011682016040523d82523d6000602084013e611891565b606091505b505090508061189f57600080fd5b50565b6000546001600160a01b031633146118cc5760405162461bcd60e51b8152600401610c6590612c8c565b601655565b6000546001600160a01b031633146118fb5760405162461bcd60e51b8152600401610c6590612c8c565b60198054911515600160c01b0260ff60c01b19909216919091179055565b6000546001600160a01b031633146119435760405162461bcd60e51b8152600401610c6590612c8c565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146119985760405162461bcd60e51b8152600401610c6590612c8c565b601755565b6000546001600160a01b031633146119c75760405162461bcd60e51b8152600401610c6590612c8c565b6001600160a01b038116611a2c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c65565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611ab15760405162461bcd60e51b8152600401610c6590612c8c565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb90604401602060405180830381600087803b158015611af957600080fd5b505af1158015611b0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b319190612b6a565b505050565b6000546001600160a01b03163314611b605760405162461bcd60e51b8152600401610c6590612c8c565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314611bb55760405162461bcd60e51b8152600401610c6590612c8c565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b600082611be657506000610caa565b6000611bf28385612d56565b905082611bff8583612d36565b14610e0d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c65565b6000610e0d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612348565b600080611ca58385612d1e565b905083811015610e0d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c65565b6001600160a01b038316611d595760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c65565b6001600160a01b038216611dba5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c65565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416611e815760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c65565b6001600160a01b038316611ee35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c65565b6001600160a01b03841660009081526009602052604090205460ff16158015611f2557506001600160a01b03831660009081526009602052604090205460ff16155b611f715760405162461bcd60e51b815260206004820152601d60248201527f426f7420456e656d7920616464726573732052657374726963746564210000006044820152606401610c65565b601954600160a01b900460ff1615611f9557611f8e848484612376565b9050610e0d565b6001600160a01b0384166000908152600b602052604090205460ff16158015611fd757506001600160a01b0383166000908152600b602052604090205460ff16155b8015611fec5750601954600160c01b900460ff165b15612054576016548211156120545760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610c65565b30600090815260056020526040902054601554811080159081906120825750601954600160a01b900460ff16155b80156120a757506001600160a01b03861660009081526008602052604090205460ff16155b80156120bc5750601954600160a81b900460ff165b156120e257601954600160b01b900460ff16156120d95760155491505b6120e28261244a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600590915291909120546121349186906122cc565b6001600160a01b038716600090815260056020908152604080832093909355600790529081205460ff168061218157506001600160a01b03861660009081526007602052604090205460ff165b612195576121908787876125fd565b612197565b845b601954909150600160b81b900460ff1680156121cc57506001600160a01b0386166000908152600a602052604090205460ff16155b15612253576017546121f782610c8b896001600160a01b031660009081526005602052604090205490565b11156122535760405162461bcd60e51b815260206004820152602560248201527f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c696044820152646d6974212160d81b6064820152608401610c65565b6001600160a01b0386166000908152600560205260409020546122769082611c98565b6001600160a01b038088166000818152600560205260409081902093909355915190891690600080516020612e44833981519152906122b89085815260200190565b60405180910390a360019350505050610e0d565b600081848411156122f05760405162461bcd60e51b8152600401610c659190612c39565b5060006122fd8486612d75565b95945050505050565b6000610e0d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122cc565b600081836123695760405162461bcd60e51b8152600401610c659190612c39565b5060006122fd8486612d36565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526005909152918220546123c79184906122cc565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546123f69083611c98565b6001600160a01b038085166000818152600560205260409081902093909355915190861690600080516020612e44833981519152906124389086815260200190565b60405180910390a35060019392505050565b6019805460ff60a01b1916600160a01b1790556013546012546000916124709190611c98565b9050600061248b600f54600c54611c9890919063ffffffff16565b905060006124a6601054600d54611c9890919063ffffffff16565b905060006124c160026124bb86818988611bd7565b90611c56565b905060006124cf8683612306565b9050476124db826126f1565b60006124e74783612306565b905060006125006124f9886002611c56565b8990612306565b9050600061251560026124bb8481878d611bd7565b90506000612527836124bb868b611bd7565b9050600061253982610ee48786612306565b90508115612581576003546040516101009091046001600160a01b0316906108fc8415029084906000818181858888f1935050505015801561257f573d6000803e3d6000fd5b505b80156125c3576004546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156125c1573d6000803e3d6000fd5b505b6000831180156125d35750600088115b156125e2576125e288846128af565b50506019805460ff60a01b1916905550505050505050505050565b6001600160a01b038316600090815260086020526040812054819060ff16156126415761263a60646124bb60125486611bd790919063ffffffff16565b905061267f565b6001600160a01b03841660009081526008602052604090205460ff161561267f5761267c60646124bb60135486611bd790919063ffffffff16565b90505b80156126e7573060009081526005602052604090205461269f9082611c98565b30600081815260056020526040908190209290925590516001600160a01b03871690600080516020612e44833981519152906126de9085815260200190565b60405180910390a35b6122fd8382612306565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061273457634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561278857600080fd5b505afa15801561279c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127c091906129f9565b816001815181106127e157634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526018546128079130911684611cf7565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac94790612840908590600090869030904290600401612ce2565b600060405180830381600087803b15801561285a57600080fd5b505af115801561286e573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516128a3929190612cc1565b60405180910390a15050565b6018546128c79030906001600160a01b031684611cf7565b6018546001600160a01b031663f305d7198230856000806128f06000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561295357600080fd5b505af1158015612967573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061298c9190612bc9565b5050505050565b60008083601f8401126129a4578182fd5b50813567ffffffffffffffff8111156129bb578182fd5b6020830191508360208260051b85010111156129d657600080fd5b9250929050565b6000602082840312156129ee578081fd5b8135610e0d81612df8565b600060208284031215612a0a578081fd5b8151610e0d81612df8565b60008060408385031215612a27578081fd5b8235612a3281612df8565b91506020830135612a4281612df8565b809150509250929050565b600080600060608486031215612a61578081fd5b8335612a6c81612df8565b92506020840135612a7c81612df8565b929592945050506040919091013590565b60008060408385031215612a9f578182fd5b8235612aaa81612df8565b91506020830135612a4281612e0d565b60008060408385031215612acc578182fd5b8235612ad781612df8565b946020939093013593505050565b60008060008060408587031215612afa578081fd5b843567ffffffffffffffff80821115612b11578283fd5b612b1d88838901612993565b90965094506020870135915080821115612b35578283fd5b50612b4287828801612993565b95989497509550505050565b600060208284031215612b5f578081fd5b8135610e0d81612e0d565b600060208284031215612b7b578081fd5b8151610e0d81612e0d565b600060208284031215612b97578081fd5b5035919050565b600080600060608486031215612bb2578283fd5b505081359360208301359350604090920135919050565b600080600060608486031215612bdd578283fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b83811015612c2e5781516001600160a01b031687529582019590820190600101612c09565b509495945050505050565b6000602080835283518082850152825b81811015612c6557858101830151858201604001528201612c49565b81811115612c765783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b828152604060208201526000612cda6040830184612bf6565b949350505050565b85815284602082015260a060408201526000612d0160a0830186612bf6565b6001600160a01b0394909416606083015250608001529392505050565b60008219821115612d3157612d31612de2565b500190565b600082612d5157634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612d7057612d70612de2565b500290565b600082821015612d8757612d87612de2565b500390565b600181811c90821680612da057607f821691505b60208210811415612dc157634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612ddb57612ddb612de2565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461189f57600080fd5b801515811461189f57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ba34ca59c908ce1b1c1472caa28cc64351afa8953ef4d84ef4567d3f12243a2d64736f6c63430008040033

Deployed Bytecode Sourcemap

11433:16255:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15348:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20209:317;;;;;;;;;;-1:-1:-1;20209:317:0;;;;;:::i;:::-;;:::i;:::-;;11957:81;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5556:32:1;;;5538:51;;5526:2;5511:18;11957:81:0;5493:102:1;16514:161:0;;;;;;;;;;-1:-1:-1;16514:161:0;;;;;:::i;:::-;;:::i;:::-;;;7189:14:1;;7182:22;7164:41;;7152:2;7137:18;16514:161:0;7119:92:1;18947:113:0;;;;;;;;;;-1:-1:-1;18947:113:0;;;;;:::i;:::-;;:::i;13070:41::-;;;;;;;;;;-1:-1:-1;13070:41:0;;;;-1:-1:-1;;;;;13070:41:0;;;15625:100;;;;;;;;;;-1:-1:-1;15705:12:0;;15625:100;;;13229:25:1;;;13217:2;13202:18;15625:100:0;13184:76:1;19892:309:0;;;;;;;;;;-1:-1:-1;19892:309:0;;;;;:::i;:::-;;:::i;17447:135::-;;;;;;;;;;-1:-1:-1;17447:135:0;;;;;:::i;:::-;;:::i;12533:35::-;;;;;;;;;;;;;;;;20803:313;;;;;;;;;;-1:-1:-1;20803:313:0;;;;;:::i;:::-;;:::i;17824:113::-;;;;;;;;;;-1:-1:-1;17824:113:0;;;;;:::i;:::-;;:::i;11869:81::-;;;;;;;;;;;;;;;18783:156;;;;;;;;;;;;;:::i;15534:83::-;;;;;;;;;;-1:-1:-1;15600:9:0;;15534:83;;15600:9;;;;14331:36:1;;14319:2;14304:18;15534:83:0;14286:87:1;16011:218:0;;;;;;;;;;-1:-1:-1;16011:218:0;;;;;:::i;:::-;;:::i;18055:124::-;;;;;;;;;;-1:-1:-1;18055:124:0;;;;;:::i;:::-;;:::i;12231:45::-;;;;;;;;;;-1:-1:-1;12231:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13185:40;;;;;;;;;;-1:-1:-1;13185:40:0;;;;-1:-1:-1;;;13185:40:0;;;;;;18187:132;;;;;;;;;;-1:-1:-1;18187:132:0;;;;;:::i;:::-;;:::i;12668:36::-;;;;;;;;;;;;;;;;12174:50;;;;;;;;;;-1:-1:-1;12174:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19206:678;;;;;;;;;;-1:-1:-1;19206:678:0;;;;;:::i;:::-;;:::i;26980:697::-;;;;;;;;;;-1:-1:-1;26980:697:0;;;;;:::i;:::-;;:::i;15733:119::-;;;;;;;;;;-1:-1:-1;15733:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;15826:18:0;15799:7;15826:18;;;:9;:18;;;;;;;15733:119;3110:230;;;;;;;;;;;;;:::i;11665:92::-;;;;;;;;;;-1:-1:-1;11665:92:0;;;;;;;-1:-1:-1;;;;;11665:92:0;;;12935:59;;;;;;;;;;;;;;;;13001:58;;;;;;;;;;;;;;;;12752:33;;;;;;;;;;;;;;;;17028:129;;;;;;;;;;-1:-1:-1;17028:129:0;;;;;:::i;:::-;;:::i;13328:41::-;;;;;;;;;;-1:-1:-1;13328:41:0;;;;-1:-1:-1;;;13328:41:0;;;;;;12581:36;;;;;;;;;;;;;;;;12391:48;;;;;;;;;;-1:-1:-1;12391:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2885:79;;;;;;;;;;-1:-1:-1;2923:7:0;2950:6;-1:-1:-1;;;;;2950:6:0;2885:79;;15439:87;;;;;;;;;;;;;:::i;16237:269::-;;;;;;;;;;-1:-1:-1;16237:269:0;;;;;:::i;:::-;;:::i;18646:125::-;;;;;;;;;;-1:-1:-1;18646:125:0;;;;;:::i;:::-;;:::i;20628:167::-;;;;;;;;;;-1:-1:-1;20628:167:0;;;;;:::i;:::-;;:::i;18467:171::-;;;;;;;;;;-1:-1:-1;18467:171:0;;;;;:::i;:::-;;:::i;12490:36::-;;;;;;;;;;;;;;;;13118:26;;;;;;;;;;-1:-1:-1;13118:26:0;;;;-1:-1:-1;;;;;13118:26:0;;;12624:37;;;;;;;;;;;;;;;;12332:52;;;;;;;;;;-1:-1:-1;12332:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12857:69;;;;;;;;;;;;;;;;13232:45;;;;;;;;;;-1:-1:-1;13232:45:0;;;;-1:-1:-1;;;13232:45:0;;;;;;12448:35;;;;;;;;;;;;;;;;15860:143;;;;;;;;;;-1:-1:-1;15860:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;15968:18:0;;;15941:7;15968:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;15860:143;23165:154;;;;;;;;;;;;;:::i;17705:111::-;;;;;;;;;;-1:-1:-1;17705:111:0;;;;;:::i;:::-;;:::i;17590:107::-;;;;;;;;;;-1:-1:-1;17590:107:0;;;;;:::i;:::-;;:::i;17165:135::-;;;;;;;;;;-1:-1:-1;17165:135:0;;;;;:::i;:::-;;:::i;12713:32::-;;;;;;;;;;;;;;;;17945:102;;;;;;;;;;-1:-1:-1;17945:102:0;;;;;:::i;:::-;;:::i;3348:244::-;;;;;;;;;;-1:-1:-1;3348:244:0;;;;;:::i;:::-;;:::i;23018:139::-;;;;;;;;;;-1:-1:-1;23018:139:0;;;;;:::i;:::-;;:::i;17308:127::-;;;;;;;;;;-1:-1:-1;17308:127:0;;;;;:::i;:::-;;:::i;13286:35::-;;;;;;;;;;-1:-1:-1;13286:35:0;;;;-1:-1:-1;;;13286:35:0;;;;;;11764:92;;;;;;;;;;-1:-1:-1;11764:92:0;;;;-1:-1:-1;;;;;11764:92:0;;;12283:42;;;;;;;;;;-1:-1:-1;12283:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18327:132;;;;;;;;;;-1:-1:-1;18327:132:0;;;;;:::i;:::-;;:::i;15348:83::-;15385:13;15418:5;15411:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15348:83;:::o;20209:317::-;3019:6;;-1:-1:-1;;;;;3019:6:0;191:10;3019:22;3011:67;;;;-1:-1:-1;;;3011:67:0;;;;;;;:::i;:::-;;;;;;;;;20311:17:::1;:30:::0;;;20352:17:::1;:30:::0;;;20393:17:::1;:30:::0;;;20455:63:::1;20413:10:::0;20455:40:::1;20331:10:::0;20372;20455:21:::1;:40::i;:::-;:44:::0;::::1;:63::i;:::-;20434:18;:84:::0;-1:-1:-1;;;20209:317:0:o;16514:161::-;16589:4;16606:39;191:10;16629:7;16638:6;16606:8;:39::i;:::-;-1:-1:-1;16663:4:0;16514:161;;;;;:::o;18947:113::-;3019:6;;-1:-1:-1;;;;;3019:6:0;191:10;3019:22;3011:67;;;;-1:-1:-1;;;3011:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19027:15:0;;;::::1;;::::0;;;:9:::1;:15;::::0;;;;:25;;-1:-1:-1;;19027:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18947:113::o;19892:309::-;3019:6;;-1:-1:-1;;;;;3019:6:0;191:10;3019:22;3011:67;;;;-1:-1:-1;;;3011:67:0;;;;;;;:::i;:::-;19993:16:::1;:29:::0;;;20033:16:::1;:29:::0;;;20073:16:::1;:29:::0;;;20133:60:::1;20092:10:::0;20133:38:::1;20012:10:::0;20052;20133:20:::1;:38::i;:60::-;20113:17;:80:::0;-1:-1:-1;;;19892:309:0:o;17447:135::-;3019:6;;-1:-1:-1;;;;;3019:6:0;191:10;3019:22;3011:67;;;;-1:-1:-1;;;3011:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17538:27:0;;;::::1;;::::0;;;:19:::1;:27;::::0;;;;:36;;-1:-1:-1;;17538:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17447:135::o;20803:313::-;20901:4;20918:36;20928:6;20936:9;20947:6;20918:9;:36::i;:::-;-1:-1:-1;20965:121:0;20974:6;191:10;20996:89;21034:6;20996:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20996:19:0;;;;;;:11;:19;;;;;;;;191:10;20996:33;;;;;;;;;;:37;:89::i;:::-;20965:8;:121::i;:::-;-1:-1:-1;21104:4:0;20803:313;;;;;;:::o;17824:113::-;3019:6;;-1:-1:-1;;;;;3019:6:0;191:10;3019:22;3011:67;;;;-1:-1:-1;;;3011:67:0;;;;;;;:::i;:::-;17902:16:::1;:27:::0;;;::::1;;-1:-1:-1::0;;;17902:27:0::1;-1:-1:-1::0;;;;17902:27:0;;::::1;::::0;;;::::1;::::0;;17824:113::o;18783:156::-;-1:-1:-1;;;;;18918:11:0;15826:18;18836:7;15826:18;;;:9;:18;;;;;;18863:68;;:40;18880:22;18890:11;-1:-1:-1;;;;;15826:18:0;15799:7;15826:18;;;:9;:18;;;;;;;15733:119;18880:22;18863:12;;;:16;:40::i;:::-;:44;;:68::i;:::-;18856:75;;18783:156;:::o;16011:218::-;191:10;16099:4;16148:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;16148:34:0;;;;;;;;;;16099:4;;16116:83;;16139:7;;16148:50;;16187:10;16148:38;:50::i;18055:124::-;3019:6;;-1:-1:-1;;;;;3019:6:0;191:10;3019:22;3011:67;;;;-1:-1:-1;;;3011:67:0;;;;;;;:::i;:::-;18137:23:::1;:34:::0;18055:124::o;18187:132::-;3019:6;;-1:-1:-1;;;;;3019:6:0;191:10;3019:22;3011:67;;;;-1:-1:-1;;;3011:67:0;;;;;;;:::i;:::-;18274:15:::1;:37:::0;;-1:-1:-1;;;;;18274:37:0;;::::1;;;-1:-1:-1::0;;;;;;18274:37:0;;::::1;::::0;;;::::1;::::0;;18187:132::o;19206:678::-;19286:22;3019:6;;-1:-1:-1;;;;;3019:6:0;191:10;3019:22;3011:67;;;;-1:-1:-1;;;3011:67:0;;;;;;;:::i;:::-;19323:35:::1;19380:16;19323:74;;19446:16;-1:-1:-1::0;;;;;19446:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19428:53:0::1;;19490:4;19497:16;-1:-1:-1::0;;;;;19497:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19428:93;::::0;-1:-1:-1;;;;;;19428:93:0::1;::::0;;;;;;-1:-1:-1;;;;;6054:15:1;;;19428:93:0::1;::::0;::::1;6036:34:1::0;6106:15;;6086:18;;;6079:43;5971:18;;19428:93:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19411:110:::0;-1:-1:-1;;;;;;19537:28:0;::::1;19534:201;;19627:16;-1:-1:-1::0;;;;;19627:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19609:74:0::1;;19692:4;19699:16;-1:-1:-1::0;;;;;19699:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19609:114;::::0;-1:-1:-1;;;;;;19609:114:0::1;::::0;;;;;;-1:-1:-1;;;;;6054:15:1;;;19609:114:0::1;::::0;::::1;6036:34:1::0;6106:15;;6086:18;;;6079:43;5971:18;;19609:114:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19592:131;;19534:201;19747:11;:28:::0;;-1:-1:-1;;;;;19747:28:0;;::::1;-1:-1:-1::0;;;;;;19747:28:0;;::::1;::::0;::::1;::::0;;;19787:15:::1;:34:::0;;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;19747:11:::1;19835:34:::0;;;:12:::1;:34;::::0;;;;:41;;-1:-1:-1;;19835:41:0::1;19747:28:::0;19835:41:::1;::::0;;19761:14;19206:678;-1:-1:-1;19206:678:0:o;26980:697::-;3019:6;;-1:-1:-1;;;;;3019:6:0;191:10;3019:22;3011:67;;;;-1:-1:-1;;;3011:67:0;;;;;;;:::i;:::-;27098:10:::1;27127:33:::0;;::::1;27119:67;;;::::0;-1:-1:-1;;;27119:67:0;;11762:2:1;27119:67:0::1;::::0;::::1;11744:21:1::0;11801:2;11781:18;;;11774:30;-1:-1:-1;;;11820:18:1;;;11813:52;11882:18;;27119:67:0::1;11734:172:1::0;27119:67:0::1;27197:15;::::0;27223:92:::1;27239:18:::0;;::::1;27223:92;;;27293:7;;27301:1;27293:10;;;;;-1:-1:-1::0;;;27293:10:0::1;;;;;;;;;;;;;;;27279:24;;;;;:::i;:::-;::::0;-1:-1:-1;27259:3:0;::::1;::::0;::::1;:::i;:::-;;;;27223:92;;;;27355:10;27333:18;27343:7;-1:-1:-1::0;;;;;15826:18:0;15799:7;15826:18;;;:9;:18;;;;;;;15733:119;27333:18:::1;:32;;27325:71;;;::::0;-1:-1:-1;;;27325:71:0;;8665:2:1;27325:71:0::1;::::0;::::1;8647:21:1::0;8704:2;8684:18;;;8677:30;8743:29;8723:18;;;8716:57;8790:18;;27325:71:0::1;8637:177:1::0;27325:71:0::1;-1:-1:-1::0;;;;;27428:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;;:34:::1;::::0;27451:10;27428:22:::1;:34::i;:::-;-1:-1:-1::0;;;;;27407:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;:55;;;;27474:194:::1;27490:19:::0;;::::1;27474:194;;;27556:38;27583:7;;27591:1;27583:10;;;;;-1:-1:-1::0;;;27583:10:0::1;;;;;;;;;;;;;;;27556:9;:22;27566:8;;27575:1;27566:11;;;;;-1:-1:-1::0;;;27566:11:0::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;27556:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;27556:22:0;;;:26:::1;:38::i;:::-;27531:9;:22;27541:8;;27550:1;27541:11;;;;;-1:-1:-1::0;;;27541:11:0::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;27531:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;27531:22:0;:63;27632:8;;27641:1;27632:11;;::::1;;;-1:-1:-1::0;;;27632:11:0::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;27614:42:0::1;27623:7;-1:-1:-1::0;;;;;27614:42:0::1;-1:-1:-1::0;;;;;;;;;;;27645:7:0::1;;27653:1;27645:10;;;;;-1:-1:-1::0;;;27645:10:0::1;;;;;;;;;;;;;;;27614:42;;;;13229:25:1::0;;13217:2;13202:18;;13184:76;27614:42:0::1;;;;;;;;27511:3:::0;::::1;::::0;::::1;:::i;:::-;;;;27474:194;;;;3089:1;;26980:697:::0;;;;:::o;3110:230::-;3019:6;;-1:-1:-1;;;;;3019:6:0;191:10;3019:22;3011:67;;;;-1:-1:-1;;;3011:67:0;;;;;;;:::i;:::-;3201:6:::1;::::0;;3180:81:::1;::::0;3217:42:::1;::::0;-1:-1:-1;;;;;3201:6:0;;::::1;::::0;3180:81:::1;::::0;::::1;3272:6;:60:::0;;-1:-1:-1;;;;;;3272:60:0::1;3289:42;3272:60;::::0;;3110:230::o;17028:129::-;3019:6;;-1:-1:-1;;;;;3019:6:0;191:10;3019:22;3011:67;;;;-1:-1:-1;;;3011:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17117:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:32;;-1:-1:-1;;17117:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17028:129::o;15439:87::-;15478:13;15511:7;15504:14;;;;;:::i;16237:269::-;16330:4;16347:129;191:10;16370:7;16379:96;16418:15;16379:96;;;;;;;;;;;;;;;;;191:10;16379:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;16379:34:0;;;;;;;;;;;;:38;:96::i;18646:125::-;3019:6;;-1:-1:-1;;;;;3019:6:0;191:10;3019:22;3011:67;;;;-1:-1:-1;;;3011:67:0;;;;;;;:::i;:::-;18727:25:::1;:36:::0;;;::::1;;-1:-1:-1::0;;;18727:36:0::1;-1:-1:-1::0;;;;18727:36:0;;::::1;::::0;;;::::1;::::0;;18646:125::o;20628:167::-;20706:4;20723:42;191:10;20747:9;20758:6;20723:9;:42::i;18467:171::-;3019:6;;-1:-1:-1;;;;;3019:6:0;191:10;3019:22;3011:67;;;;-1:-1:-1;;;3011:67:0;;;;;;;:::i;:::-;18544:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;18544:32:0::1;-1:-1:-1::0;;;;18544:32:0;;::::1;;::::0;;18592:38:::1;::::0;::::1;::::0;::::1;::::0;18568:8;7189:14:1;7182:22;7164:41;;7152:2;7137:18;;7119:92;18592:38:0::1;;;;;;;;18467:171:::0;:::o;23165:154::-;3019:6;;-1:-1:-1;;;;;3019:6:0;191:10;3019:22;3011:67;;;;-1:-1:-1;;;3011:67:0;;;;;;;:::i;:::-;23231:58:::1;::::0;23219:7:::1;::::0;23239:10:::1;::::0;23263:21:::1;::::0;23219:7;23231:58;23219:7;23231:58;23263:21;23239:10;23231:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23218:71;;;23308:2;23300:11;;;::::0;::::1;;3089:1;23165:154::o:0;17705:111::-;3019:6;;-1:-1:-1;;;;;3019:6:0;191:10;3019:22;3011:67;;;;-1:-1:-1;;;3011:67:0;;;;;;;:::i;:::-;17782:12:::1;:26:::0;17705:111::o;17590:107::-;3019:6;;-1:-1:-1;;;;;3019:6:0;191:10;3019:22;3011:67;;;;-1:-1:-1;;;3011:67:0;;;;;;;:::i;:::-;17657:22:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;17657:32:0::1;-1:-1:-1::0;;;;17657:32:0;;::::1;::::0;;;::::1;::::0;;17590:107::o;17165:135::-;3019:6;;-1:-1:-1;;;;;3019:6:0;191:10;3019:22;3011:67;;;;-1:-1:-1;;;3011:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17255:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:37;;-1:-1:-1;;17255:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17165:135::o;17945:102::-;3019:6;;-1:-1:-1;;;;;3019:6:0;191:10;3019:22;3011:67;;;;-1:-1:-1;;;3011:67:0;;;;;;;:::i;:::-;18017:10:::1;:22:::0;17945:102::o;3348:244::-;3019:6;;-1:-1:-1;;;;;3019:6:0;191:10;3019:22;3011:67;;;;-1:-1:-1;;;3011:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3437:22:0;::::1;3429:73;;;::::0;-1:-1:-1;;;3429:73:0;;9021:2:1;3429:73:0::1;::::0;::::1;9003:21:1::0;9060:2;9040:18;;;9033:30;9099:34;9079:18;;;9072:62;-1:-1:-1;;;9150:18:1;;;9143:36;9196:19;;3429:73:0::1;8993:228:1::0;3429:73:0::1;3539:6;::::0;;3518:38:::1;::::0;-1:-1:-1;;;;;3518:38:0;;::::1;::::0;3539:6;::::1;::::0;3518:38:::1;::::0;::::1;3567:6;:17:::0;;-1:-1:-1;;;;;;3567:17:0::1;-1:-1:-1::0;;;;;3567:17:0;;;::::1;::::0;;;::::1;::::0;;3348:244::o;23018:139::-;3019:6;;-1:-1:-1;;;;;3019:6:0;191:10;3019:22;3011:67;;;;-1:-1:-1;;;3011:67:0;;;;;;;:::i;:::-;23106:43:::1;::::0;-1:-1:-1;;;23106:43:0;;23130:10:::1;23106:43;::::0;::::1;6307:51:1::0;6374:18;;;6367:34;;;-1:-1:-1;;;;;23106:23:0;::::1;::::0;::::1;::::0;6280:18:1;;23106:43:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23018:139:::0;;:::o;17308:127::-;3019:6;;-1:-1:-1;;;;;3019:6:0;191:10;3019:22;3011:67;;;;-1:-1:-1;;;3011:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17395:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;17395:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17308:127::o;18327:132::-;3019:6;;-1:-1:-1;;;;;3019:6:0;191:10;3019:22;3011:67;;;;-1:-1:-1;;;3011:67:0;;;;;;;:::i;:::-;18414:15:::1;:37:::0;;-1:-1:-1;;;;;;18414:37:0::1;-1:-1:-1::0;;;;;18414:37:0;;;::::1;::::0;;;::::1;::::0;;18327:132::o;1570:250::-;1628:7;1652:6;1648:47;;-1:-1:-1;1682:1:0;1675:8;;1648:47;1707:9;1719:5;1723:1;1719;:5;:::i;:::-;1707:17;-1:-1:-1;1752:1:0;1743:5;1747:1;1707:17;1743:5;:::i;:::-;:10;1735:56;;;;-1:-1:-1;;;1735:56:0;;11360:2:1;1735:56:0;;;11342:21:1;11399:2;11379:18;;;11372:30;11438:34;11418:18;;;11411:62;-1:-1:-1;;;11489:18:1;;;11482:31;11530:19;;1735:56:0;11332:223:1;1828:132:0;1886:7;1913:39;1917:1;1920;1913:39;;;;;;;;;;;;;;;;;:3;:39::i;1037:181::-;1095:7;;1127:5;1131:1;1127;:5;:::i;:::-;1115:17;;1156:1;1151;:6;;1143:46;;;;-1:-1:-1;;;1143:46:0;;9831:2:1;1143:46:0;;;9813:21:1;9870:2;9850:18;;;9843:30;9909:29;9889:18;;;9882:57;9956:18;;1143:46:0;9803:177:1;16683:337:0;-1:-1:-1;;;;;16776:19:0;;16768:68;;;;-1:-1:-1;;;16768:68:0;;12880:2:1;16768:68:0;;;12862:21:1;12919:2;12899:18;;;12892:30;12958:34;12938:18;;;12931:62;-1:-1:-1;;;13009:18:1;;;13002:34;13053:19;;16768:68:0;12852:226:1;16768:68:0;-1:-1:-1;;;;;16855:21:0;;16847:68;;;;-1:-1:-1;;;16847:68:0;;9428:2:1;16847:68:0;;;9410:21:1;9467:2;9447:18;;;9440:30;9506:34;9486:18;;;9479:62;-1:-1:-1;;;9557:18:1;;;9550:32;9599:19;;16847:68:0;9400:224:1;16847:68:0;-1:-1:-1;;;;;16928:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16980:32;;13229:25:1;;;16980:32:0;;13202:18:1;16980:32:0;;;;;;;16683:337;;;:::o;21124:1886::-;21211:4;-1:-1:-1;;;;;21238:20:0;;21230:70;;;;-1:-1:-1;;;21230:70:0;;12474:2:1;21230:70:0;;;12456:21:1;12513:2;12493:18;;;12486:30;12552:34;12532:18;;;12525:62;-1:-1:-1;;;12603:18:1;;;12596:35;12648:19;;21230:70:0;12446:227:1;21230:70:0;-1:-1:-1;;;;;21319:23:0;;21311:71;;;;-1:-1:-1;;;21311:71:0;;8261:2:1;21311:71:0;;;8243:21:1;8300:2;8280:18;;;8273:30;8339:34;8319:18;;;8312:62;-1:-1:-1;;;8390:18:1;;;8383:33;8433:19;;21311:71:0;8233:225:1;21311:71:0;-1:-1:-1;;;;;21402:17:0;;;;;;:9;:17;;;;;;;;21401:18;:43;;;;-1:-1:-1;;;;;;21424:20:0;;;;;;:9;:20;;;;;;;;21423:21;21401:43;21393:85;;;;-1:-1:-1;;;21393:85:0;;10593:2:1;21393:85:0;;;10575:21:1;10632:2;10612:18;;;10605:30;10671:31;10651:18;;;10644:59;10720:18;;21393:85:0;10565:179:1;21393:85:0;21494:16;;-1:-1:-1;;;21494:16:0;;;;21491:1502;;;21544:41;21559:6;21567:9;21578:6;21544:14;:41::i;:::-;21537:48;;;;21491:1502;-1:-1:-1;;;;;21643:23:0;;;;;;:15;:23;;;;;;;;21642:24;:55;;;;-1:-1:-1;;;;;;21671:26:0;;;;;;:15;:26;;;;;;;;21670:27;21642:55;:81;;;;-1:-1:-1;21701:22:0;;-1:-1:-1;;;21701:22:0;;;;21642:81;21639:196;;;21762:12;;21752:6;:22;;21744:75;;;;-1:-1:-1;;;21744:75:0;;10951:2:1;21744:75:0;;;10933:21:1;10990:2;10970:18;;;10963:30;11029:34;11009:18;;;11002:62;-1:-1:-1;;;11080:18:1;;;11073:38;11128:19;;21744:75:0;10923:230:1;21744:75:0;21900:4;21851:28;15826:18;;;:9;:18;;;;;;21976:23;;21952:47;;;;;;;22032:44;;-1:-1:-1;22060:16:0;;-1:-1:-1;;;22060:16:0;;;;22059:17;22032:44;:69;;;;-1:-1:-1;;;;;;22081:20:0;;;;;;:12;:20;;;;;;;;22080:21;22032:69;:94;;;;-1:-1:-1;22105:21:0;;-1:-1:-1;;;22105:21:0;;;;22032:94;22028:305;;;22164:25;;-1:-1:-1;;;22164:25:0;;;;22161:97;;;22235:23;;22212:46;;22161:97;22277:36;22292:20;22277:14;:36::i;:::-;22369:53;;;;;;;;;;;-1:-1:-1;;;22369:53:0;;;;;;;;-1:-1:-1;;;;;22369:17:0;;-1:-1:-1;22369:17:0;;;:9;:17;;;;;;;;:53;;22391:6;;22369:21;:53::i;:::-;-1:-1:-1;;;;;22349:17:0;;;;;;:9;:17;;;;;;;;:73;;;;22462:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;22491:28:0;;;;;;:17;:28;;;;;;;;22462:57;22461:148;;22575:34;22583:6;22591:9;22602:6;22575:7;:34::i;:::-;22461:148;;;22566:6;22461:148;22629:16;;22439:170;;-1:-1:-1;;;;22629:16:0;;;;:51;;;;-1:-1:-1;;;;;;22650:30:0;;;;;;:19;:30;;;;;;;;22649:31;22629:51;22626:191;;;22750:10;;22709:37;22734:11;22709:20;22719:9;-1:-1:-1;;;;;15826:18:0;15799:7;15826:18;;;:9;:18;;;;;;;15733:119;22709:37;:51;;22701:100;;;;-1:-1:-1;;;22701:100:0;;10187:2:1;22701:100:0;;;10169:21:1;10226:2;10206:18;;;10199:30;10265:34;10245:18;;;10238:62;-1:-1:-1;;;10316:18:1;;;10309:35;10361:19;;22701:100:0;10159:227:1;22701:100:0;-1:-1:-1;;;;;22856:20:0;;;;;;:9;:20;;;;;;:37;;22881:11;22856:24;:37::i;:::-;-1:-1:-1;;;;;22833:20:0;;;;;;;:9;:20;;;;;;;:60;;;;22915:40;;;;;;-1:-1:-1;;;;;;;;;;;22915:40:0;;;22943:11;13229:25:1;;13217:2;13202:18;;13184:76;22915:40:0;;;;;;;;22977:4;22970:11;;;;;;;1370:192;1456:7;1492:12;1484:6;;;;1476:29;;;;-1:-1:-1;;;1476:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1516:9:0;1528:5;1532:1;1528;:5;:::i;:::-;1516:17;1370:192;-1:-1:-1;;;;;1370:192:0:o;1226:136::-;1284:7;1311:43;1315:1;1318;1311:43;;;;;;;;;;;;;;;;;:3;:43::i;1968:278::-;2054:7;2089:12;2082:5;2074:28;;;;-1:-1:-1;;;2074:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2113:9:0;2125:5;2129:1;2125;:5;:::i;23327:330::-;23457:53;;;;;;;;;;;-1:-1:-1;;;23457:53:0;;;;;;;;-1:-1:-1;;;;;23457:17:0;;23420:4;23457:17;;;:9;:17;;;;;;;:53;;23479:6;;23457:21;:53::i;:::-;-1:-1:-1;;;;;23437:17:0;;;;;;;:9;:17;;;;;;:73;;;;23544:20;;;;;;;:32;;23569:6;23544:24;:32::i;:::-;-1:-1:-1;;;;;23521:20:0;;;;;;;:9;:20;;;;;;;:55;;;;23592:35;;;;;;-1:-1:-1;;;;;;;;;;;23592:35:0;;;23620:6;13229:25:1;;13217:2;13202:18;;13184:76;23592:35:0;;;;;;;;-1:-1:-1;23645:4:0;23327:330;;;;;:::o;23665:1449::-;13794:16;:23;;-1:-1:-1;;;;13794:23:0;-1:-1:-1;;;13794:23:0;;;23783:18:::1;::::0;23761:17:::1;::::0;13794:23;;23761:41:::1;::::0;:17;:21:::1;:41::i;:::-;23739:63;;23815:22;23840:39;23861:17;;23840:16;;:20;;:39;;;;:::i;:::-;23815:64;;23890:22;23915:39;23936:17;;23915:16;;:20;;:39;;;;:::i;:::-;23890:64:::0;-1:-1:-1;24053:18:0::1;24074:51;24123:1;24074:44;24106:11:::0;24074:44;:7;24086:14;24074:11:::1;:27::i;:::-;:31:::0;::::1;:44::i;:51::-;24053:72:::0;-1:-1:-1;24136:20:0::1;24159:23;:7:::0;24053:72;24159:11:::1;:23::i;:::-;24136:46:::0;-1:-1:-1;24221:21:0::1;24253:30;24136:46:::0;24253:16:::1;:30::i;:::-;24294:23;24321:41;:21;24347:14:::0;24321:25:::1;:41::i;:::-;24294:68:::0;-1:-1:-1;24375:19:0::1;24397:38;24413:21;:14:::0;24432:1:::1;24413:18;:21::i;:::-;24397:11:::0;;:15:::1;:38::i;:::-;24375:60:::0;-1:-1:-1;24448:26:0::1;24477:59;24534:1;24477:52;24375:60:::0;24477:52;:15;24497:14;24477:19:::1;:35::i;:59::-;24448:88:::0;-1:-1:-1;24547:26:0::1;24576:52;24616:11:::0;24576:35:::1;:15:::0;24596:14;24576:19:::1;:35::i;:52::-;24547:81:::0;-1:-1:-1;24639:26:0::1;24668:63;24547:81:::0;24668:39:::1;:15:::0;24688:18;24668:19:::1;:39::i;:63::-;24639:92:::0;-1:-1:-1;24747:22:0;;24744:107:::1;;24794:15;::::0;24786:53:::1;::::0;24794:15:::1;::::0;;::::1;-1:-1:-1::0;;;;;24794:15:0::1;::::0;24786:53:::1;::::0;::::1;;::::0;;;::::1;::::0;;;;24794:15;24786:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;24744:107;24866:22:::0;;24863:107:::1;;24913:15;::::0;24905:53:::1;::::0;-1:-1:-1;;;;;24913:15:0;;::::1;::::0;24905:53;::::1;;;::::0;24939:18;;24913:15:::1;24905:53:::0;24913:15;24905:53;24939:18;24913:15;24905:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;24863:107;25015:1;24994:18;:22;:40;;;;;25033:1;25020:10;:14;24994:40;24991:116;;;25051:44;25064:10;25076:18;25051:12;:44::i;:::-;-1:-1:-1::0;;13840:16:0;:24;;-1:-1:-1;;;;13840:24:0;;;-1:-1:-1;;;;;;;;;;23665:1449:0:o;26321:622::-;-1:-1:-1;;;;;26482:20:0;;26407:7;26482:20;;;:12;:20;;;;;;26407:7;;26482:20;;26479:223;;;26531:38;26565:3;26531:29;26542:17;;26531:6;:10;;:29;;;;:::i;:38::-;26519:50;;26479:223;;;-1:-1:-1;;;;;26599:23:0;;;;;;:12;:23;;;;;;;;26596:106;;;26651:39;26686:3;26651:30;26662:18;;26651:6;:10;;:30;;;;:::i;:39::-;26639:51;;26596:106;26725:13;;26722:173;;26800:4;26782:24;;;;:9;:24;;;;;;:39;;26811:9;26782:28;:39::i;:::-;26773:4;26755:24;;;;:9;:24;;;;;;;:66;;;;26841:42;;-1:-1:-1;;;;;26841:42:0;;;-1:-1:-1;;;;;;;;;;;26841:42:0;;;26873:9;13229:25:1;;13217:2;13202:18;;13184:76;26841:42:0;;;;;;;;26722:173;26914:21;:6;26925:9;26914:10;:21::i;25126:666::-;25276:16;;;25290:1;25276:16;;;;;;;;25252:21;;25276:16;;;;;;;;;;-1:-1:-1;25276:16:0;25252:40;;25321:4;25303;25308:1;25303:7;;;;;;-1:-1:-1;;;25303:7:0;;;;;;;;;-1:-1:-1;;;;;25303:23:0;;;:7;;;;;;;;;;:23;;;;25347:15;;:22;;;-1:-1:-1;;;25347:22:0;;;;:15;;;;;:20;;:22;;;;;25303:7;;25347:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25337:4;25342:1;25337:7;;;;;;-1:-1:-1;;;25337:7:0;;;;;;;;;-1:-1:-1;;;;;25337:32:0;;;:7;;;;;;;;;:32;25414:15;;25382:62;;25399:4;;25414:15;25432:11;25382:8;:62::i;:::-;25483:15;;:240;;-1:-1:-1;;;25483:240:0;;-1:-1:-1;;;;;25483:15:0;;;;:66;;:240;;25564:11;;25483:15;;25634:4;;25661;;25697:15;;25483:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25749:35;25766:11;25779:4;25749:35;;;;;;;:::i;:::-;;;;;;;;25126:666;;:::o;25800:513::-;25980:15;;25948:62;;25965:4;;-1:-1:-1;;;;;25980:15:0;25998:11;25948:8;:62::i;:::-;26053:15;;-1:-1:-1;;;;;26053:15:0;:31;26092:9;26125:4;26145:11;26053:15;;26257:7;2923;2950:6;-1:-1:-1;;;;;2950:6:0;;2885:79;26257:7;26053:252;;;;;;-1:-1:-1;;;;;;26053:252:0;;;-1:-1:-1;;;;;6771:15:1;;;26053:252:0;;;6753:34:1;6803:18;;;6796:34;;;;6846:18;;;6839:34;;;;6889:18;;;6882:34;6953:15;;;6932:19;;;6925:44;26279:15:0;6985:19:1;;;6978:35;6687:19;;26053:252:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;25800:513;;:::o;14:395:1:-;77:8;87:6;141:3;134:4;126:6;122:17;118:27;108:2;;166:8;156;149:26;108:2;-1:-1:-1;196:20:1;;239:18;228:30;;225:2;;;278:8;268;261:26;225:2;322:4;314:6;310:17;298:29;;382:3;375:4;365:6;362:1;358:14;350:6;346:27;342:38;339:47;336:2;;;399:1;396;389:12;336:2;98:311;;;;;:::o;414:257::-;473:6;526:2;514:9;505:7;501:23;497:32;494:2;;;547:6;539;532:22;494:2;591:9;578:23;610:31;635:5;610:31;:::i;676:261::-;746:6;799:2;787:9;778:7;774:23;770:32;767:2;;;820:6;812;805:22;767:2;857:9;851:16;876:31;901:5;876:31;:::i;942:398::-;1010:6;1018;1071:2;1059:9;1050:7;1046:23;1042:32;1039:2;;;1092:6;1084;1077:22;1039:2;1136:9;1123:23;1155:31;1180:5;1155:31;:::i;:::-;1205:5;-1:-1:-1;1262:2:1;1247:18;;1234:32;1275:33;1234:32;1275:33;:::i;:::-;1327:7;1317:17;;;1029:311;;;;;:::o;1345:466::-;1422:6;1430;1438;1491:2;1479:9;1470:7;1466:23;1462:32;1459:2;;;1512:6;1504;1497:22;1459:2;1556:9;1543:23;1575:31;1600:5;1575:31;:::i;:::-;1625:5;-1:-1:-1;1682:2:1;1667:18;;1654:32;1695:33;1654:32;1695:33;:::i;:::-;1449:362;;1747:7;;-1:-1:-1;;;1801:2:1;1786:18;;;;1773:32;;1449:362::o;1816:392::-;1881:6;1889;1942:2;1930:9;1921:7;1917:23;1913:32;1910:2;;;1963:6;1955;1948:22;1910:2;2007:9;1994:23;2026:31;2051:5;2026:31;:::i;:::-;2076:5;-1:-1:-1;2133:2:1;2118:18;;2105:32;2146:30;2105:32;2146:30;:::i;2213:325::-;2281:6;2289;2342:2;2330:9;2321:7;2317:23;2313:32;2310:2;;;2363:6;2355;2348:22;2310:2;2407:9;2394:23;2426:31;2451:5;2426:31;:::i;:::-;2476:5;2528:2;2513:18;;;;2500:32;;-1:-1:-1;;;2300:238:1:o;2543:803::-;2665:6;2673;2681;2689;2742:2;2730:9;2721:7;2717:23;2713:32;2710:2;;;2763:6;2755;2748:22;2710:2;2808:9;2795:23;2837:18;2878:2;2870:6;2867:14;2864:2;;;2899:6;2891;2884:22;2864:2;2943:70;3005:7;2996:6;2985:9;2981:22;2943:70;:::i;:::-;3032:8;;-1:-1:-1;2917:96:1;-1:-1:-1;3120:2:1;3105:18;;3092:32;;-1:-1:-1;3136:16:1;;;3133:2;;;3170:6;3162;3155:22;3133:2;;3214:72;3278:7;3267:8;3256:9;3252:24;3214:72;:::i;:::-;2700:646;;;;-1:-1:-1;3305:8:1;-1:-1:-1;;;;2700:646:1:o;3351:251::-;3407:6;3460:2;3448:9;3439:7;3435:23;3431:32;3428:2;;;3481:6;3473;3466:22;3428:2;3525:9;3512:23;3544:28;3566:5;3544:28;:::i;3607:255::-;3674:6;3727:2;3715:9;3706:7;3702:23;3698:32;3695:2;;;3748:6;3740;3733:22;3695:2;3785:9;3779:16;3804:28;3826:5;3804:28;:::i;3867:190::-;3926:6;3979:2;3967:9;3958:7;3954:23;3950:32;3947:2;;;4000:6;3992;3985:22;3947:2;-1:-1:-1;4028:23:1;;3937:120;-1:-1:-1;3937:120:1:o;4062:326::-;4139:6;4147;4155;4208:2;4196:9;4187:7;4183:23;4179:32;4176:2;;;4229:6;4221;4214:22;4176:2;-1:-1:-1;;4257:23:1;;;4327:2;4312:18;;4299:32;;-1:-1:-1;4378:2:1;4363:18;;;4350:32;;4166:222;-1:-1:-1;4166:222:1:o;4393:316::-;4481:6;4489;4497;4550:2;4538:9;4529:7;4525:23;4521:32;4518:2;;;4571:6;4563;4556:22;4518:2;4605:9;4599:16;4589:26;;4655:2;4644:9;4640:18;4634:25;4624:35;;4699:2;4688:9;4684:18;4678:25;4668:35;;4508:201;;;;;:::o;4714:463::-;4767:3;4805:5;4799:12;4832:6;4827:3;4820:19;4858:4;4887:2;4882:3;4878:12;4871:19;;4924:2;4917:5;4913:14;4945:3;4957:195;4971:6;4968:1;4965:13;4957:195;;;5036:13;;-1:-1:-1;;;;;5032:39:1;5020:52;;5092:12;;;;5127:15;;;;5068:1;4986:9;4957:195;;;-1:-1:-1;5168:3:1;;4775:402;-1:-1:-1;;;;;4775:402:1:o;7451:603::-;7563:4;7592:2;7621;7610:9;7603:21;7653:6;7647:13;7696:6;7691:2;7680:9;7676:18;7669:34;7721:4;7734:140;7748:6;7745:1;7742:13;7734:140;;;7843:14;;;7839:23;;7833:30;7809:17;;;7828:2;7805:26;7798:66;7763:10;;7734:140;;;7892:6;7889:1;7886:13;7883:2;;;7962:4;7957:2;7948:6;7937:9;7933:22;7929:31;7922:45;7883:2;-1:-1:-1;8038:2:1;8017:15;-1:-1:-1;;8013:29:1;7998:45;;;;8045:2;7994:54;;7572:482;-1:-1:-1;;;7572:482:1:o;11911:356::-;12113:2;12095:21;;;12132:18;;;12125:30;12191:34;12186:2;12171:18;;12164:62;12258:2;12243:18;;12085:182::o;13265:332::-;13472:6;13461:9;13454:25;13515:2;13510;13499:9;13495:18;13488:30;13435:4;13535:56;13587:2;13576:9;13572:18;13564:6;13535:56;:::i;:::-;13527:64;13444:153;-1:-1:-1;;;;13444:153:1:o;13602:582::-;13901:6;13890:9;13883:25;13944:6;13939:2;13928:9;13924:18;13917:34;13987:3;13982:2;13971:9;13967:18;13960:31;13864:4;14008:57;14060:3;14049:9;14045:19;14037:6;14008:57;:::i;:::-;-1:-1:-1;;;;;14101:32:1;;;;14096:2;14081:18;;14074:60;-1:-1:-1;14165:3:1;14150:19;14143:35;14000:65;13873:311;-1:-1:-1;;;13873:311:1:o;14378:128::-;14418:3;14449:1;14445:6;14442:1;14439:13;14436:2;;;14455:18;;:::i;:::-;-1:-1:-1;14491:9:1;;14426:80::o;14511:217::-;14551:1;14577;14567:2;;-1:-1:-1;;;14602:31:1;;14656:4;14653:1;14646:15;14684:4;14609:1;14674:15;14567:2;-1:-1:-1;14713:9:1;;14557:171::o;14733:168::-;14773:7;14839:1;14835;14831:6;14827:14;14824:1;14821:21;14816:1;14809:9;14802:17;14798:45;14795:2;;;14846:18;;:::i;:::-;-1:-1:-1;14886:9:1;;14785:116::o;14906:125::-;14946:4;14974:1;14971;14968:8;14965:2;;;14979:18;;:::i;:::-;-1:-1:-1;15016:9:1;;14955:76::o;15036:380::-;15115:1;15111:12;;;;15158;;;15179:2;;15233:4;15225:6;15221:17;15211:27;;15179:2;15286;15278:6;15275:14;15255:18;15252:38;15249:2;;;15332:10;15327:3;15323:20;15320:1;15313:31;15367:4;15364:1;15357:15;15395:4;15392:1;15385:15;15249:2;;15091:325;;;:::o;15421:135::-;15460:3;-1:-1:-1;;15481:17:1;;15478:2;;;15501:18;;:::i;:::-;-1:-1:-1;15548:1:1;15537:13;;15468:88::o;15561:127::-;15622:10;15617:3;15613:20;15610:1;15603:31;15653:4;15650:1;15643:15;15677:4;15674:1;15667:15;15693:131;-1:-1:-1;;;;;15768:31:1;;15758:42;;15748:2;;15814:1;15811;15804:12;15829:118;15915:5;15908:13;15901:21;15894:5;15891:32;15881:2;;15937:1;15934;15927:12

Swarm Source

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