ETH Price: $3,501.39 (+2.98%)
Gas: 12 Gwei

Token

Shibionics Inu (SHBNCS)
 

Overview

Max Total Supply

100,000,000 SHBNCS

Holders

119

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 2 Decimals)

Balance
250,000 SHBNCS

Value
$0.00
0x2f7ff99c07693ccbb699155db36f3f62ef013654
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:
SHIBIONICSINU

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-03-14
*/

// SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.9;

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

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);
}

abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

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

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

interface InterfaceLP {
    function sync() external;
}

contract SHIBIONICSINU is ERC20, Auth {
    using SafeMath for uint256;

    address WETH;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "Shibionics Inu";
    string constant _symbol = "SHBNCS";
    uint8 constant _decimals = 2;

    uint256 _totalSupply = 100 * 10**6 * 10**_decimals;

    uint256 public _maxTxAmount = _totalSupply / 100;
    uint256 public _maxWalletToken = _totalSupply / 50;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;

    bool public blacklistMode = true;
    mapping (address => bool) public isBlacklisted;

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping (address => bool) isWalletLimitExempt;

    uint256 public liquidityFee    = 4;
    uint256 public marketingFee    = 5;
    uint256 public devFee          = 1;
    uint256 public teamFee         = 0;
    uint256 public totalFee        = teamFee + marketingFee + liquidityFee + devFee;
    uint256 public feeDenominator  = 100;

    uint256 public sellMultiplier = 200;
    uint256 public buyMultiplier = 100;
    uint256 public transferMultiplier = 100;

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;
    address public devFeeReceiver;
    address public teamFeeReceiver;

    uint256 targetLiquidity = 10;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    address public pair;
    InterfaceLP public pairContract;

    bool public tradingOpen = false;
    bool public antibot = true;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 2 / 10000;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);

        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[DEAD] = true;
        isTxLimitExempt[ZERO] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[DEAD] = true;

        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0x8dEaD10b7Bf2CaDCDEF5D2E2aCA7743A178a373f;
        devFeeReceiver = 0x277BdadF7A82Ab1a9C5Cac664abfdF748aFF3486;
        teamFeeReceiver = msg.sender;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function setMaxWalletPercent_base10000(uint256 maxWallPercent_base10000) external onlyOwner() {
        _maxWalletToken = (_totalSupply * maxWallPercent_base10000 ) / 10000;
    }
    function setMaxTxPercent_base10000(uint256 maxTXPercentage_base10000) external onlyOwner() {
        _maxTxAmount = (_totalSupply * maxTXPercentage_base10000 ) / 10000;
    }

    function setTxLimit(uint256 amount) external authorized {
        _maxTxAmount = amount;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen,"Trading not open yet");
            if(antibot && sender == pair && recipient != pair){
                isBlacklisted[recipient] = true;
            }
        }

        // Blacklist
        if(blacklistMode){
            require(!isBlacklisted[sender],"Blacklisted");    
        }


        if (!authorizations[sender] && !isWalletLimitExempt[sender] && !isWalletLimitExempt[recipient] && recipient != pair) {
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"max wallet limit reached");
        }


        // Checks max transaction limit
        checkTxLimit(sender, amount);

        if(shouldSwapBack()){ swapBack(); }

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

        uint256 amountReceived = (!shouldTakeFee(sender) || !shouldTakeFee(recipient)) ? amount : takeFee(sender, amount, recipient);

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

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    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 checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 multiplier = transferMultiplier;
        if(recipient == pair){
            multiplier = sellMultiplier;
        } else if(sender == pair){
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);

        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function clearStuckBalance(uint256 amountPercentage) external authorized {
        uint256 amountETH = address(this).balance;
        payable(msg.sender).transfer(amountETH * amountPercentage / 100);
    }

    function clearStuckToken(address tokenAddress, uint256 tokens) public onlyOwner returns (bool) {
     if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external authorized {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;
    }

    // switch Trading
    function tradingStatus(bool _status) public onlyOwner {
        tradingOpen = _status;
    }

    function tradingStatus_antibot(bool _status) public onlyOwner {
         antibot = _status;
    }

    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance.sub(balanceBefore);

        uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHteam = amountETH.mul(teamFee).div(totalETHFee);
        uint256 amountETHDev = amountETH.mul(devFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHDev}("");
        (tmpSuccess,) = payable(teamFeeReceiver).call{value: amountETHteam}("");
        
        // life sucks
        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function enable_blacklist(bool _status) public onlyOwner {
        blacklistMode = _status;
    }

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

    function manage_FeeExempt(address[] calldata addresses, bool status) external authorized {
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        for (uint256 i; i < addresses.length; ++i) {
            isFeeExempt[addresses[i]] = status;
        }
    }

    function manage_TxLimitExempt(address[] calldata addresses, bool status) external authorized {
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        for (uint256 i; i < addresses.length; ++i) {
            isTxLimitExempt[addresses[i]] = status;
        }
    }

    function manage_WalletLimitExempt(address[] calldata addresses, bool status) external authorized {
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        for (uint256 i; i < addresses.length; ++i) {
            isWalletLimitExempt[addresses[i]] = status;
        }
    }


    function setIsFeeExempt(address holder, bool exempt) external authorized {
        isFeeExempt[holder] = exempt;
    }

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

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

    function setFees(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _devFee,  uint256 _feeDenominator) external authorized {
        liquidityFee = _liquidityFee;
        teamFee = _teamFee;
        marketingFee = _marketingFee;
        devFee = _devFee;
        totalFee = _liquidityFee + _teamFee + _marketingFee + _devFee;
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator/2, "Fees cannot be more than 50%");
    }

    function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _teamFeeReceiver) external authorized {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setTargetLiquidity(uint256 _target, uint256 _denominator) external authorized {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }



/* Airdrop Begins */
function multiTransfer(address from, address[] calldata addresses, uint256[] calldata tokens) external onlyOwner {

    require(addresses.length < 501,"GAS Error: max airdrop limit is 500 addresses");
    require(addresses.length == tokens.length,"Mismatch between Address and token count");

    uint256 SCCC = 0;

    for(uint i=0; i < addresses.length; i++){
        SCCC = SCCC + tokens[i];
    }

    require(balanceOf(from) >= SCCC, "Not enough tokens in wallet");

    for(uint i=0; i < addresses.length; i++){
        _basicTransfer(from,addresses[i],tokens[i]);
    }
}

function burn_and_moon(uint256 percent_base10000) public onlyOwner returns (bool){
        require(percent_base10000 <= 1000, "May not nuke more than 10% of tokens in LP");
    
        uint256 lp_tokens = this.balanceOf(pair);
        uint256 lp_burn = lp_tokens.mul(percent_base10000).div(10000);
        
        if (lp_burn > 0){
            _basicTransfer(pair,DEAD,lp_burn);
            pairContract.sync();
            return true;
        }
        
        return false;
    }


event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antibot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent_base10000","type":"uint256"}],"name":"burn_and_moon","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_FeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_TxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_WalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"multiTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairContract","outputs":[{"internalType":"contract InterfaceLP","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercentage_base10000","type":"uint256"}],"name":"setMaxTxPercent_base10000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base10000","type":"uint256"}],"name":"setMaxWalletPercent_base10000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"teamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"tradingStatus_antibot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326002600a62000583565b62000042906305f5e1006200059b565b6005556064600554620000569190620005bd565b60065560326005546200006a9190620005bd565b600755600a805460ff191660019081179091556004600f81905560056010819055601183905560006012819055620000a39190620005e0565b620000af9190620005e0565b620000bb9190620005e0565b6013556064601481905560c860155560168190556017819055600a601c55601d556020805462ffffff60a01b191661010160a81b17905560055461271090620001069060026200059b565b620001129190620005bd565b6021553480156200012257600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff1916909217909155601e8054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c46489260048083019392829003018186803b158015620001a457600080fd5b505afa158015620001b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001df9190620005fb565b600280546001600160a01b0319166001600160a01b03928316179055601e546040805163c45a015560e01b81529051919092169163c45a0155916004808301926020929190829003018186803b1580156200023957600080fd5b505afa1580156200024e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002749190620005fb565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c6539690604401602060405180830381600087803b158015620002c157600080fd5b505af1158015620002d6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002fc9190620005fb565b601f80546001600160a01b039283166001600160a01b031991821681179092556020805482169092178255306000818152600984526040808220601e54871683528552808220600019905533808352600c8652818320805460ff199081166001908117909255600d88528385208054821683179055600380548a16865284862080548316841790556004548a1686528486208054831684179055838652600e89528486208054831684179055958552838520805482168317905594549097168352818320805490941690961790925560188054841686179055601980548416738dead10b7bf2cadcdef5d2e2aca7743a178a373f179055601a8054841673277bdadf7a82ab1a9c5cac664abfdf748aff3486179055601b8054909316851790925560055484835260089093528082208390555190917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916200046091815260200190565b60405180910390a362000626565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004c5578160001904821115620004a957620004a96200046e565b80851615620004b757918102915b93841c939080029062000489565b509250929050565b600082620004de575060016200057d565b81620004ed575060006200057d565b8160018114620005065760028114620005115762000531565b60019150506200057d565b60ff8411156200052557620005256200046e565b50506001821b6200057d565b5060208310610133831016604e8410600b841016171562000556575081810a6200057d565b62000562838362000484565b80600019048211156200057957620005796200046e565b0290505b92915050565b60006200059460ff841683620004cd565b9392505050565b6000816000190483118215151615620005b857620005b86200046e565b500290565b600082620005db57634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115620005f657620005f66200046e565b500190565b6000602082840312156200060e57600080fd5b81516001600160a01b03811681146200059457600080fd5b612e6680620006366000396000f3fe6080604052600436106103d05760003560e01c80636b67c4df116101fd578063bf9c5f1311610118578063f0b37c04116100ab578063f887ea401161007a578063f887ea4014610b85578063fe575a8714610ba5578063fe9fbb8014610bd5578063fed0d2a114610bf5578063ffb54a9914610c0b57600080fd5b8063f0b37c0414610b05578063f12418a814610b25578063f2fde38b14610b45578063f84ba65d14610b6557600080fd5b8063dab84ee7116100e7578063dab84ee714610a5f578063dd62ed3e14610a7f578063df20fd4914610ac5578063e96fada214610ae557600080fd5b8063bf9c5f13146109e9578063ca33e64c14610a09578063d51ed1c814610a29578063d7c94efd14610a4957600080fd5b8063896648c11161019057806398118cb41161015f57806398118cb414610973578063a8aa1b3114610989578063a9059cbb146109a9578063b6a5d7de146109c957600080fd5b8063896648c1146108ea5780638e2eee841461090457806395d89b4114610924578063976b7e121461095357600080fd5b806377b54bad116101cc57806377b54bad1461088057806378109e54146108a05780637d1db4a5146108b6578063893d20e8146108cc57600080fd5b80636b67c4df146107f35780636ce46bc3146108095780636ddd17131461082957806370a082311461084a57600080fd5b806323b872dd116102ed5780634be9d869116102805780635c85974f1161024f5780635c85974f1461077d5780635e562f3b1461079d578063658d4b7f146107bd5780636827e764146107dd57600080fd5b80634be9d869146107075780634d709adf14610727578063571ac8b0146107475780635921652f1461076757600080fd5b80633121c7c0116102bc5780633121c7c01461067d578063313ce567146106935780633c8e556d146106af57806340291143146106cf57600080fd5b806323b872dd146105f85780632b112e49146106185780632f54bf6e1461062d578063305c4c801461065c57600080fd5b80631161ae39116103655780631da1db5e116103345780631da1db5e146105825780631df4ccfc146105a2578063201e7991146105b85780632198cf6c146105d857600080fd5b80631161ae3914610517578063180b0d7e1461053757806318160ddd1461054d5780631ca0a28d1461056257600080fd5b806304a66b48116103a157806304a66b481461046757806306fdde0314610487578063095ea7b3146104c75780630d295980146104f757600080fd5b8062108683146103dc578062bff446146103fe578063012aa9121461041e5780630445b6671461043e57600080fd5b366103d757005b600080fd5b3480156103e857600080fd5b506103fc6103f73660046128ac565b610c2c565b005b34801561040a57600080fd5b506103fc6104193660046128ac565b610cf0565b34801561042a57600080fd5b506103fc610439366004612903565b610da5565b34801561044a57600080fd5b5061045460215481565b6040519081526020015b60405180910390f35b34801561047357600080fd5b506103fc61048236600461291c565b610df0565b34801561049357600080fd5b5060408051808201909152600e81526d53686962696f6e69637320496e7560901b60208201525b60405161045e9190612957565b3480156104d357600080fd5b506104e76104e23660046129c1565b610eb3565b604051901515815260200161045e565b34801561050357600080fd5b506103fc6105123660046129ed565b610f20565b34801561052357600080fd5b506104e7610532366004612a0a565b610f68565b34801561054357600080fd5b5061045460145481565b34801561055957600080fd5b50600554610454565b34801561056e57600080fd5b506103fc61057d366004612a2c565b610f7c565b34801561058e57600080fd5b506103fc61059d366004612903565b611190565b3480156105ae57600080fd5b5061045460135481565b3480156105c457600080fd5b506103fc6105d3366004612a0a565b6111fd565b3480156105e457600080fd5b506103fc6105f3366004612aaf565b61122d565b34801561060457600080fd5b506104e7610613366004612ae8565b61127d565b34801561062457600080fd5b5061045461133f565b34801561063957600080fd5b506104e7610648366004612b29565b6000546001600160a01b0391821691161490565b34801561066857600080fd5b506020546104e790600160a81b900460ff1681565b34801561068957600080fd5b5061045460165481565b34801561069f57600080fd5b506040516002815260200161045e565b3480156106bb57600080fd5b506103fc6106ca366004612b46565b611391565b3480156106db57600080fd5b50601b546106ef906001600160a01b031681565b6040516001600160a01b03909116815260200161045e565b34801561071357600080fd5b506103fc6107223660046128ac565b611406565b34801561073357600080fd5b506020546106ef906001600160a01b031681565b34801561075357600080fd5b506104e7610762366004612b29565b6114bb565b34801561077357600080fd5b5061045460175481565b34801561078957600080fd5b506103fc610798366004612903565b6114c9565b3480156107a957600080fd5b506103fc6107b83660046129ed565b6114f3565b3480156107c957600080fd5b506103fc6107d8366004612aaf565b611530565b3480156107e957600080fd5b5061045460115481565b3480156107ff57600080fd5b5061045460105481565b34801561081557600080fd5b506103fc610824366004612ba2565b611580565b34801561083557600080fd5b506020546104e790600160b01b900460ff1681565b34801561085657600080fd5b50610454610865366004612b29565b6001600160a01b031660009081526008602052604090205490565b34801561088c57600080fd5b506104e761089b3660046129c1565b6115b6565b3480156108ac57600080fd5b5061045460075481565b3480156108c257600080fd5b5061045460065481565b3480156108d857600080fd5b506000546001600160a01b03166106ef565b3480156108f657600080fd5b50600a546104e79060ff1681565b34801561091057600080fd5b506103fc61091f3660046128ac565b6116e0565b34801561093057600080fd5b506040805180820190915260068152655348424e435360d01b60208201526104ba565b34801561095f57600080fd5b506104e761096e366004612903565b611779565b34801561097f57600080fd5b50610454600f5481565b34801561099557600080fd5b50601f546106ef906001600160a01b031681565b3480156109b557600080fd5b506104e76109c43660046129c1565b611943565b3480156109d557600080fd5b506103fc6109e4366004612b29565b611950565b3480156109f557600080fd5b506103fc610a043660046129ed565b6119a1565b348015610a1557600080fd5b506018546106ef906001600160a01b031681565b348015610a3557600080fd5b50610454610a44366004612903565b6119e9565b348015610a5557600080fd5b5061045460125481565b348015610a6b57600080fd5b50601a546106ef906001600160a01b031681565b348015610a8b57600080fd5b50610454610a9a366004612bce565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b348015610ad157600080fd5b506103fc610ae0366004612bfc565b611a2a565b348015610af157600080fd5b506019546106ef906001600160a01b031681565b348015610b1157600080fd5b506103fc610b20366004612b29565b611a71565b348015610b3157600080fd5b506103fc610b40366004612903565b611abc565b348015610b5157600080fd5b506103fc610b60366004612b29565b611b07565b348015610b7157600080fd5b506103fc610b80366004612aaf565b611b9d565b348015610b9157600080fd5b50601e546106ef906001600160a01b031681565b348015610bb157600080fd5b506104e7610bc0366004612b29565b600b6020526000908152604090205460ff1681565b348015610be157600080fd5b506104e7610bf0366004612b29565b611bed565b348015610c0157600080fd5b5061045460155481565b348015610c1757600080fd5b506020546104e790600160a01b900460ff1681565b610c3533611bed565b610c5a5760405162461bcd60e51b8152600401610c5190612c1a565b60405180910390fd5b6101f58210610c7b5760405162461bcd60e51b8152600401610c5190612c3f565b60005b82811015610cea5781600e6000868685818110610c9d57610c9d612c84565b9050602002016020810190610cb29190612b29565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610ce381612cb0565b9050610c7e565b50505050565b610cf933611bed565b610d155760405162461bcd60e51b8152600401610c5190612c1a565b6101f58210610d365760405162461bcd60e51b8152600401610c5190612c3f565b60005b82811015610cea5781600c6000868685818110610d5857610d58612c84565b9050602002016020810190610d6d9190612b29565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610d9e81612cb0565b9050610d39565b6000546001600160a01b03163314610dcf5760405162461bcd60e51b8152600401610c5190612ccb565b61271081600554610de09190612ceb565b610dea9190612d0a565b60075550565b610df933611bed565b610e155760405162461bcd60e51b8152600401610c5190612c1a565b600f8590556012849055601083905560118290558183610e358688612d2c565b610e3f9190612d2c565b610e499190612d2c565b6013556014819055610e5c600282612d0a565b60135410610eac5760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e20353025000000006044820152606401610c51565b5050505050565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610f0e9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610f4a5760405162461bcd60e51b8152600401610c5190612ccb565b60208054911515600160a01b0260ff60a01b19909216919091179055565b600082610f74836119e9565b119392505050565b6000546001600160a01b03163314610fa65760405162461bcd60e51b8152600401610c5190612ccb565b6101f5831061100d5760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b6064820152608401610c51565b82811461106d5760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610c51565b6000805b848110156110b15783838281811061108b5761108b612c84565b905060200201358261109d9190612d2c565b9150806110a981612cb0565b915050611071565b50806110d2876001600160a01b031660009081526008602052604090205490565b10156111205760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610c51565b60005b84811015611187576111748787878481811061114157611141612c84565b90506020020160208101906111569190612b29565b86868581811061116857611168612c84565b90506020020135611c0b565b508061117f81612cb0565b915050611123565b50505050505050565b61119933611bed565b6111b55760405162461bcd60e51b8152600401610c5190612c1a565b47336108fc60646111c68585612ceb565b6111d09190612d0a565b6040518115909202916000818181858888f193505050501580156111f8573d6000803e3d6000fd5b505050565b61120633611bed565b6112225760405162461bcd60e51b8152600401610c5190612c1a565b601c91909155601d55565b61123633611bed565b6112525760405162461bcd60e51b8152600401610c5190612c1a565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6001600160a01b03831660009081526009602090815260408083203384529091528120546000191461132a576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054611305918490611cf1565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b611335848484611d2b565b90505b9392505050565b6004546001600160a01b031660009081526008602052604081205461138c906003546001600160a01b0316600090815260086020526040902054611386906005549061210e565b9061210e565b905090565b61139a33611bed565b6113b65760405162461bcd60e51b8152600401610c5190612c1a565b601880546001600160a01b039586166001600160a01b0319918216179091556019805494861694821694909417909355601a805492851692841692909217909155601b8054919093169116179055565b61140f33611bed565b61142b5760405162461bcd60e51b8152600401610c5190612c1a565b6101f5821061144c5760405162461bcd60e51b8152600401610c5190612c3f565b60005b82811015610cea5781600d600086868581811061146e5761146e612c84565b90506020020160208101906114839190612b29565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556114b481612cb0565b905061144f565b6000610f1a82600019610eb3565b6114d233611bed565b6114ee5760405162461bcd60e51b8152600401610c5190612c1a565b600655565b6000546001600160a01b0316331461151d5760405162461bcd60e51b8152600401610c5190612ccb565b600a805460ff1916911515919091179055565b61153933611bed565b6115555760405162461bcd60e51b8152600401610c5190612c1a565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b61158933611bed565b6115a55760405162461bcd60e51b8152600401610c5190612c1a565b601591909155601691909155601755565b600080546001600160a01b031633146115e15760405162461bcd60e51b8152600401610c5190612ccb565b81611660576040516370a0823160e01b81523060048201526001600160a01b038416906370a082319060240160206040518083038186803b15801561162557600080fd5b505afa158015611639573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165d9190612d44565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb90604401602060405180830381600087803b1580156116a857600080fd5b505af11580156116bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113389190612d5d565b6000546001600160a01b0316331461170a5760405162461bcd60e51b8152600401610c5190612ccb565b60005b82811015610cea5781600b600086868581811061172c5761172c612c84565b90506020020160208101906117419190612b29565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561177281612cb0565b905061170d565b600080546001600160a01b031633146117a45760405162461bcd60e51b8152600401610c5190612ccb565b6103e88211156118095760405162461bcd60e51b815260206004820152602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b6064820152608401610c51565b601f546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a082319060240160206040518083038186803b15801561184f57600080fd5b505afa158015611863573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118879190612d44565b905060006118a161271061189b8487612150565b906121cf565b9050801561193957601f546003546118c6916001600160a01b03908116911683611c0b565b50602060009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561191757600080fd5b505af115801561192b573d6000803e3d6000fd5b506001979650505050505050565b5060009392505050565b6000611338338484611d2b565b6000546001600160a01b0316331461197a5760405162461bcd60e51b8152600401610c5190612ccb565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b031633146119cb5760405162461bcd60e51b8152600401610c5190612ccb565b60208054911515600160a81b0260ff60a81b19909216919091179055565b6000610f1a6119f661133f565b601f546001600160a01b031660009081526008602052604090205461189b90611a23906002905b90612150565b8590612150565b611a3333611bed565b611a4f5760405162461bcd60e51b8152600401610c5190612c1a565b60208054921515600160b01b0260ff60b01b1990931692909217909155602155565b6000546001600160a01b03163314611a9b5760405162461bcd60e51b8152600401610c5190612ccb565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314611ae65760405162461bcd60e51b8152600401610c5190612ccb565b61271081600554611af79190612ceb565b611b019190612d0a565b60065550565b6000546001600160a01b03163314611b315760405162461bcd60e51b8152600401610c5190612ccb565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b611ba633611bed565b611bc25760405162461bcd60e51b8152600401610c5190612c1a565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611c5c918490611cf1565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611c8b9083612211565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cdf9086815260200190565b60405180910390a35060019392505050565b60008184841115611d155760405162461bcd60e51b8152600401610c519190612957565b506000611d228486612d7a565b95945050505050565b60225460009060ff1615611d4b57611d44848484611c0b565b9050611338565b6001600160a01b03841660009081526001602052604090205460ff16158015611d8d57506001600160a01b03831660009081526001602052604090205460ff16155b15611e4b57602054600160a01b900460ff16611de25760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610c51565b602054600160a81b900460ff168015611e085750601f546001600160a01b038581169116145b8015611e225750601f546001600160a01b03848116911614155b15611e4b576001600160a01b0383166000908152600b60205260409020805460ff191660011790555b600a5460ff1615611ead576001600160a01b0384166000908152600b602052604090205460ff1615611ead5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610c51565b6001600160a01b03841660009081526001602052604090205460ff16158015611eef57506001600160a01b0384166000908152600e602052604090205460ff16155b8015611f1457506001600160a01b0383166000908152600e602052604090205460ff16155b8015611f2e5750601f546001600160a01b03848116911614155b15611fa9576001600160a01b038316600090815260086020526040902054600754611f598483612d2c565b1115611fa75760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610c51565b505b611fb38483612270565b611fbb6122dd565b15611fc857611fc8612333565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461201a918490611cf1565b6001600160a01b038516600090815260086020908152604080832093909355600c90529081205460ff1615158061206b57506001600160a01b0384166000908152600c602052604090205460ff1615155b61207f5761207a858486612729565b612081565b825b6001600160a01b0385166000908152600860205260409020549091506120a79082612211565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906120fb9085815260200190565b60405180910390a3506001949350505050565b600061133883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cf1565b60008261215f57506000610f1a565b600061216b8385612ceb565b9050826121788583612d0a565b146113385760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c51565b600061133883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612821565b60008061221e8385612d2c565b9050838110156113385760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c51565b6006548111158061229957506001600160a01b0382166000908152600d602052604090205460ff165b6122d95760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610c51565b5050565b601f546000906001600160a01b031633148015906122fe575060225460ff16155b80156123135750602054600160b01b900460ff165b801561138c57505060215430600090815260086020526040902054101590565b6022805460ff19166001179055601c54601d5460009161235291610f68565b61235e57600f54612361565b60005b90506000612385600261189b60135461189b8660215461215090919063ffffffff16565b9050600061239e8260215461210e90919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106123d8576123d8612c84565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061240957612409612c84565b6001600160a01b039283166020918202929092010152601e5460405163791ac94760e01b81524792919091169063791ac94790612453908690600090879030904290600401612d91565b600060405180830381600087803b15801561246d57600080fd5b505af1158015612481573d6000803e3d6000fd5b50505050600061249a824761210e90919063ffffffff16565b905060006124b56124ac8860026121cf565b6013549061210e565b905060006124ca600261189b8481878d612150565b905060006124e78361189b6010548761215090919063ffffffff16565b905060006125048461189b6012548861215090919063ffffffff16565b905060006125218561189b6011548961215090919063ffffffff16565b6019546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114612573576040519150601f19603f3d011682016040523d82523d6000602084013e612578565b606091505b5050601a546040519192506001600160a01b0316908390600081818185875af1925050503d80600081146125c8576040519150601f19603f3d011682016040523d82523d6000602084013e6125cd565b606091505b5050601b546040519192506001600160a01b0316908490600081818185875af1925050503d806000811461261d576040519150601f19603f3d011682016040523d82523d6000602084013e612622565b606091505b5060009250508b15905061271157601e5460185460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c4016060604051808303818588803b15801561269b57600080fd5b505af11580156126af573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906126d49190612e02565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506022805460ff1916905550505050505050505050565b601754601f54600091906001600160a01b038481169116141561274f575060155461276a565b601f546001600160a01b038681169116141561276a57506016545b6000612797601454606461277e9190612ceb565b61189b84611a1d6013548a61215090919063ffffffff16565b306000908152600860205260409020549091506127b49082612211565b30600081815260086020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906128059085815260200190565b60405180910390a3612817858261210e565b9695505050505050565b600081836128425760405162461bcd60e51b8152600401610c519190612957565b506000611d228486612d0a565b60008083601f84011261286157600080fd5b50813567ffffffffffffffff81111561287957600080fd5b6020830191508360208260051b850101111561289457600080fd5b9250929050565b80151581146128a957600080fd5b50565b6000806000604084860312156128c157600080fd5b833567ffffffffffffffff8111156128d857600080fd5b6128e48682870161284f565b90945092505060208401356128f88161289b565b809150509250925092565b60006020828403121561291557600080fd5b5035919050565b600080600080600060a0868803121561293457600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208083528351808285015260005b8181101561298457858101830151858201604001528201612968565b81811115612996576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146128a957600080fd5b600080604083850312156129d457600080fd5b82356129df816129ac565b946020939093013593505050565b6000602082840312156129ff57600080fd5b81356113388161289b565b60008060408385031215612a1d57600080fd5b50508035926020909101359150565b600080600080600060608688031215612a4457600080fd5b8535612a4f816129ac565b9450602086013567ffffffffffffffff80821115612a6c57600080fd5b612a7889838a0161284f565b90965094506040880135915080821115612a9157600080fd5b50612a9e8882890161284f565b969995985093965092949392505050565b60008060408385031215612ac257600080fd5b8235612acd816129ac565b91506020830135612add8161289b565b809150509250929050565b600080600060608486031215612afd57600080fd5b8335612b08816129ac565b92506020840135612b18816129ac565b929592945050506040919091013590565b600060208284031215612b3b57600080fd5b8135611338816129ac565b60008060008060808587031215612b5c57600080fd5b8435612b67816129ac565b93506020850135612b77816129ac565b92506040850135612b87816129ac565b91506060850135612b97816129ac565b939692955090935050565b600080600060608486031215612bb757600080fd5b505081359360208301359350604090920135919050565b60008060408385031215612be157600080fd5b8235612bec816129ac565b91506020830135612add816129ac565b60008060408385031215612c0f57600080fd5b82356129df8161289b565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526025908201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604082015264657373657360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415612cc457612cc4612c9a565b5060010190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6000816000190483118215151615612d0557612d05612c9a565b500290565b600082612d2757634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115612d3f57612d3f612c9a565b500190565b600060208284031215612d5657600080fd5b5051919050565b600060208284031215612d6f57600080fd5b81516113388161289b565b600082821015612d8c57612d8c612c9a565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612de15784516001600160a01b031683529383019391830191600101612dbc565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612e1757600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212207d6a808c894214bd3b60fdc4f33ac41b86798a73a94577a8aaed6a0143a4da9e64736f6c63430008090033

Deployed Bytecode

0x6080604052600436106103d05760003560e01c80636b67c4df116101fd578063bf9c5f1311610118578063f0b37c04116100ab578063f887ea401161007a578063f887ea4014610b85578063fe575a8714610ba5578063fe9fbb8014610bd5578063fed0d2a114610bf5578063ffb54a9914610c0b57600080fd5b8063f0b37c0414610b05578063f12418a814610b25578063f2fde38b14610b45578063f84ba65d14610b6557600080fd5b8063dab84ee7116100e7578063dab84ee714610a5f578063dd62ed3e14610a7f578063df20fd4914610ac5578063e96fada214610ae557600080fd5b8063bf9c5f13146109e9578063ca33e64c14610a09578063d51ed1c814610a29578063d7c94efd14610a4957600080fd5b8063896648c11161019057806398118cb41161015f57806398118cb414610973578063a8aa1b3114610989578063a9059cbb146109a9578063b6a5d7de146109c957600080fd5b8063896648c1146108ea5780638e2eee841461090457806395d89b4114610924578063976b7e121461095357600080fd5b806377b54bad116101cc57806377b54bad1461088057806378109e54146108a05780637d1db4a5146108b6578063893d20e8146108cc57600080fd5b80636b67c4df146107f35780636ce46bc3146108095780636ddd17131461082957806370a082311461084a57600080fd5b806323b872dd116102ed5780634be9d869116102805780635c85974f1161024f5780635c85974f1461077d5780635e562f3b1461079d578063658d4b7f146107bd5780636827e764146107dd57600080fd5b80634be9d869146107075780634d709adf14610727578063571ac8b0146107475780635921652f1461076757600080fd5b80633121c7c0116102bc5780633121c7c01461067d578063313ce567146106935780633c8e556d146106af57806340291143146106cf57600080fd5b806323b872dd146105f85780632b112e49146106185780632f54bf6e1461062d578063305c4c801461065c57600080fd5b80631161ae39116103655780631da1db5e116103345780631da1db5e146105825780631df4ccfc146105a2578063201e7991146105b85780632198cf6c146105d857600080fd5b80631161ae3914610517578063180b0d7e1461053757806318160ddd1461054d5780631ca0a28d1461056257600080fd5b806304a66b48116103a157806304a66b481461046757806306fdde0314610487578063095ea7b3146104c75780630d295980146104f757600080fd5b8062108683146103dc578062bff446146103fe578063012aa9121461041e5780630445b6671461043e57600080fd5b366103d757005b600080fd5b3480156103e857600080fd5b506103fc6103f73660046128ac565b610c2c565b005b34801561040a57600080fd5b506103fc6104193660046128ac565b610cf0565b34801561042a57600080fd5b506103fc610439366004612903565b610da5565b34801561044a57600080fd5b5061045460215481565b6040519081526020015b60405180910390f35b34801561047357600080fd5b506103fc61048236600461291c565b610df0565b34801561049357600080fd5b5060408051808201909152600e81526d53686962696f6e69637320496e7560901b60208201525b60405161045e9190612957565b3480156104d357600080fd5b506104e76104e23660046129c1565b610eb3565b604051901515815260200161045e565b34801561050357600080fd5b506103fc6105123660046129ed565b610f20565b34801561052357600080fd5b506104e7610532366004612a0a565b610f68565b34801561054357600080fd5b5061045460145481565b34801561055957600080fd5b50600554610454565b34801561056e57600080fd5b506103fc61057d366004612a2c565b610f7c565b34801561058e57600080fd5b506103fc61059d366004612903565b611190565b3480156105ae57600080fd5b5061045460135481565b3480156105c457600080fd5b506103fc6105d3366004612a0a565b6111fd565b3480156105e457600080fd5b506103fc6105f3366004612aaf565b61122d565b34801561060457600080fd5b506104e7610613366004612ae8565b61127d565b34801561062457600080fd5b5061045461133f565b34801561063957600080fd5b506104e7610648366004612b29565b6000546001600160a01b0391821691161490565b34801561066857600080fd5b506020546104e790600160a81b900460ff1681565b34801561068957600080fd5b5061045460165481565b34801561069f57600080fd5b506040516002815260200161045e565b3480156106bb57600080fd5b506103fc6106ca366004612b46565b611391565b3480156106db57600080fd5b50601b546106ef906001600160a01b031681565b6040516001600160a01b03909116815260200161045e565b34801561071357600080fd5b506103fc6107223660046128ac565b611406565b34801561073357600080fd5b506020546106ef906001600160a01b031681565b34801561075357600080fd5b506104e7610762366004612b29565b6114bb565b34801561077357600080fd5b5061045460175481565b34801561078957600080fd5b506103fc610798366004612903565b6114c9565b3480156107a957600080fd5b506103fc6107b83660046129ed565b6114f3565b3480156107c957600080fd5b506103fc6107d8366004612aaf565b611530565b3480156107e957600080fd5b5061045460115481565b3480156107ff57600080fd5b5061045460105481565b34801561081557600080fd5b506103fc610824366004612ba2565b611580565b34801561083557600080fd5b506020546104e790600160b01b900460ff1681565b34801561085657600080fd5b50610454610865366004612b29565b6001600160a01b031660009081526008602052604090205490565b34801561088c57600080fd5b506104e761089b3660046129c1565b6115b6565b3480156108ac57600080fd5b5061045460075481565b3480156108c257600080fd5b5061045460065481565b3480156108d857600080fd5b506000546001600160a01b03166106ef565b3480156108f657600080fd5b50600a546104e79060ff1681565b34801561091057600080fd5b506103fc61091f3660046128ac565b6116e0565b34801561093057600080fd5b506040805180820190915260068152655348424e435360d01b60208201526104ba565b34801561095f57600080fd5b506104e761096e366004612903565b611779565b34801561097f57600080fd5b50610454600f5481565b34801561099557600080fd5b50601f546106ef906001600160a01b031681565b3480156109b557600080fd5b506104e76109c43660046129c1565b611943565b3480156109d557600080fd5b506103fc6109e4366004612b29565b611950565b3480156109f557600080fd5b506103fc610a043660046129ed565b6119a1565b348015610a1557600080fd5b506018546106ef906001600160a01b031681565b348015610a3557600080fd5b50610454610a44366004612903565b6119e9565b348015610a5557600080fd5b5061045460125481565b348015610a6b57600080fd5b50601a546106ef906001600160a01b031681565b348015610a8b57600080fd5b50610454610a9a366004612bce565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b348015610ad157600080fd5b506103fc610ae0366004612bfc565b611a2a565b348015610af157600080fd5b506019546106ef906001600160a01b031681565b348015610b1157600080fd5b506103fc610b20366004612b29565b611a71565b348015610b3157600080fd5b506103fc610b40366004612903565b611abc565b348015610b5157600080fd5b506103fc610b60366004612b29565b611b07565b348015610b7157600080fd5b506103fc610b80366004612aaf565b611b9d565b348015610b9157600080fd5b50601e546106ef906001600160a01b031681565b348015610bb157600080fd5b506104e7610bc0366004612b29565b600b6020526000908152604090205460ff1681565b348015610be157600080fd5b506104e7610bf0366004612b29565b611bed565b348015610c0157600080fd5b5061045460155481565b348015610c1757600080fd5b506020546104e790600160a01b900460ff1681565b610c3533611bed565b610c5a5760405162461bcd60e51b8152600401610c5190612c1a565b60405180910390fd5b6101f58210610c7b5760405162461bcd60e51b8152600401610c5190612c3f565b60005b82811015610cea5781600e6000868685818110610c9d57610c9d612c84565b9050602002016020810190610cb29190612b29565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610ce381612cb0565b9050610c7e565b50505050565b610cf933611bed565b610d155760405162461bcd60e51b8152600401610c5190612c1a565b6101f58210610d365760405162461bcd60e51b8152600401610c5190612c3f565b60005b82811015610cea5781600c6000868685818110610d5857610d58612c84565b9050602002016020810190610d6d9190612b29565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610d9e81612cb0565b9050610d39565b6000546001600160a01b03163314610dcf5760405162461bcd60e51b8152600401610c5190612ccb565b61271081600554610de09190612ceb565b610dea9190612d0a565b60075550565b610df933611bed565b610e155760405162461bcd60e51b8152600401610c5190612c1a565b600f8590556012849055601083905560118290558183610e358688612d2c565b610e3f9190612d2c565b610e499190612d2c565b6013556014819055610e5c600282612d0a565b60135410610eac5760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e20353025000000006044820152606401610c51565b5050505050565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610f0e9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610f4a5760405162461bcd60e51b8152600401610c5190612ccb565b60208054911515600160a01b0260ff60a01b19909216919091179055565b600082610f74836119e9565b119392505050565b6000546001600160a01b03163314610fa65760405162461bcd60e51b8152600401610c5190612ccb565b6101f5831061100d5760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b6064820152608401610c51565b82811461106d5760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610c51565b6000805b848110156110b15783838281811061108b5761108b612c84565b905060200201358261109d9190612d2c565b9150806110a981612cb0565b915050611071565b50806110d2876001600160a01b031660009081526008602052604090205490565b10156111205760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610c51565b60005b84811015611187576111748787878481811061114157611141612c84565b90506020020160208101906111569190612b29565b86868581811061116857611168612c84565b90506020020135611c0b565b508061117f81612cb0565b915050611123565b50505050505050565b61119933611bed565b6111b55760405162461bcd60e51b8152600401610c5190612c1a565b47336108fc60646111c68585612ceb565b6111d09190612d0a565b6040518115909202916000818181858888f193505050501580156111f8573d6000803e3d6000fd5b505050565b61120633611bed565b6112225760405162461bcd60e51b8152600401610c5190612c1a565b601c91909155601d55565b61123633611bed565b6112525760405162461bcd60e51b8152600401610c5190612c1a565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6001600160a01b03831660009081526009602090815260408083203384529091528120546000191461132a576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054611305918490611cf1565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b611335848484611d2b565b90505b9392505050565b6004546001600160a01b031660009081526008602052604081205461138c906003546001600160a01b0316600090815260086020526040902054611386906005549061210e565b9061210e565b905090565b61139a33611bed565b6113b65760405162461bcd60e51b8152600401610c5190612c1a565b601880546001600160a01b039586166001600160a01b0319918216179091556019805494861694821694909417909355601a805492851692841692909217909155601b8054919093169116179055565b61140f33611bed565b61142b5760405162461bcd60e51b8152600401610c5190612c1a565b6101f5821061144c5760405162461bcd60e51b8152600401610c5190612c3f565b60005b82811015610cea5781600d600086868581811061146e5761146e612c84565b90506020020160208101906114839190612b29565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556114b481612cb0565b905061144f565b6000610f1a82600019610eb3565b6114d233611bed565b6114ee5760405162461bcd60e51b8152600401610c5190612c1a565b600655565b6000546001600160a01b0316331461151d5760405162461bcd60e51b8152600401610c5190612ccb565b600a805460ff1916911515919091179055565b61153933611bed565b6115555760405162461bcd60e51b8152600401610c5190612c1a565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b61158933611bed565b6115a55760405162461bcd60e51b8152600401610c5190612c1a565b601591909155601691909155601755565b600080546001600160a01b031633146115e15760405162461bcd60e51b8152600401610c5190612ccb565b81611660576040516370a0823160e01b81523060048201526001600160a01b038416906370a082319060240160206040518083038186803b15801561162557600080fd5b505afa158015611639573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165d9190612d44565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb90604401602060405180830381600087803b1580156116a857600080fd5b505af11580156116bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113389190612d5d565b6000546001600160a01b0316331461170a5760405162461bcd60e51b8152600401610c5190612ccb565b60005b82811015610cea5781600b600086868581811061172c5761172c612c84565b90506020020160208101906117419190612b29565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561177281612cb0565b905061170d565b600080546001600160a01b031633146117a45760405162461bcd60e51b8152600401610c5190612ccb565b6103e88211156118095760405162461bcd60e51b815260206004820152602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b6064820152608401610c51565b601f546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a082319060240160206040518083038186803b15801561184f57600080fd5b505afa158015611863573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118879190612d44565b905060006118a161271061189b8487612150565b906121cf565b9050801561193957601f546003546118c6916001600160a01b03908116911683611c0b565b50602060009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561191757600080fd5b505af115801561192b573d6000803e3d6000fd5b506001979650505050505050565b5060009392505050565b6000611338338484611d2b565b6000546001600160a01b0316331461197a5760405162461bcd60e51b8152600401610c5190612ccb565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b031633146119cb5760405162461bcd60e51b8152600401610c5190612ccb565b60208054911515600160a81b0260ff60a81b19909216919091179055565b6000610f1a6119f661133f565b601f546001600160a01b031660009081526008602052604090205461189b90611a23906002905b90612150565b8590612150565b611a3333611bed565b611a4f5760405162461bcd60e51b8152600401610c5190612c1a565b60208054921515600160b01b0260ff60b01b1990931692909217909155602155565b6000546001600160a01b03163314611a9b5760405162461bcd60e51b8152600401610c5190612ccb565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314611ae65760405162461bcd60e51b8152600401610c5190612ccb565b61271081600554611af79190612ceb565b611b019190612d0a565b60065550565b6000546001600160a01b03163314611b315760405162461bcd60e51b8152600401610c5190612ccb565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b611ba633611bed565b611bc25760405162461bcd60e51b8152600401610c5190612c1a565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611c5c918490611cf1565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611c8b9083612211565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cdf9086815260200190565b60405180910390a35060019392505050565b60008184841115611d155760405162461bcd60e51b8152600401610c519190612957565b506000611d228486612d7a565b95945050505050565b60225460009060ff1615611d4b57611d44848484611c0b565b9050611338565b6001600160a01b03841660009081526001602052604090205460ff16158015611d8d57506001600160a01b03831660009081526001602052604090205460ff16155b15611e4b57602054600160a01b900460ff16611de25760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610c51565b602054600160a81b900460ff168015611e085750601f546001600160a01b038581169116145b8015611e225750601f546001600160a01b03848116911614155b15611e4b576001600160a01b0383166000908152600b60205260409020805460ff191660011790555b600a5460ff1615611ead576001600160a01b0384166000908152600b602052604090205460ff1615611ead5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610c51565b6001600160a01b03841660009081526001602052604090205460ff16158015611eef57506001600160a01b0384166000908152600e602052604090205460ff16155b8015611f1457506001600160a01b0383166000908152600e602052604090205460ff16155b8015611f2e5750601f546001600160a01b03848116911614155b15611fa9576001600160a01b038316600090815260086020526040902054600754611f598483612d2c565b1115611fa75760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610c51565b505b611fb38483612270565b611fbb6122dd565b15611fc857611fc8612333565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461201a918490611cf1565b6001600160a01b038516600090815260086020908152604080832093909355600c90529081205460ff1615158061206b57506001600160a01b0384166000908152600c602052604090205460ff1615155b61207f5761207a858486612729565b612081565b825b6001600160a01b0385166000908152600860205260409020549091506120a79082612211565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906120fb9085815260200190565b60405180910390a3506001949350505050565b600061133883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cf1565b60008261215f57506000610f1a565b600061216b8385612ceb565b9050826121788583612d0a565b146113385760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c51565b600061133883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612821565b60008061221e8385612d2c565b9050838110156113385760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c51565b6006548111158061229957506001600160a01b0382166000908152600d602052604090205460ff165b6122d95760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610c51565b5050565b601f546000906001600160a01b031633148015906122fe575060225460ff16155b80156123135750602054600160b01b900460ff165b801561138c57505060215430600090815260086020526040902054101590565b6022805460ff19166001179055601c54601d5460009161235291610f68565b61235e57600f54612361565b60005b90506000612385600261189b60135461189b8660215461215090919063ffffffff16565b9050600061239e8260215461210e90919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106123d8576123d8612c84565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061240957612409612c84565b6001600160a01b039283166020918202929092010152601e5460405163791ac94760e01b81524792919091169063791ac94790612453908690600090879030904290600401612d91565b600060405180830381600087803b15801561246d57600080fd5b505af1158015612481573d6000803e3d6000fd5b50505050600061249a824761210e90919063ffffffff16565b905060006124b56124ac8860026121cf565b6013549061210e565b905060006124ca600261189b8481878d612150565b905060006124e78361189b6010548761215090919063ffffffff16565b905060006125048461189b6012548861215090919063ffffffff16565b905060006125218561189b6011548961215090919063ffffffff16565b6019546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114612573576040519150601f19603f3d011682016040523d82523d6000602084013e612578565b606091505b5050601a546040519192506001600160a01b0316908390600081818185875af1925050503d80600081146125c8576040519150601f19603f3d011682016040523d82523d6000602084013e6125cd565b606091505b5050601b546040519192506001600160a01b0316908490600081818185875af1925050503d806000811461261d576040519150601f19603f3d011682016040523d82523d6000602084013e612622565b606091505b5060009250508b15905061271157601e5460185460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c4016060604051808303818588803b15801561269b57600080fd5b505af11580156126af573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906126d49190612e02565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506022805460ff1916905550505050505050505050565b601754601f54600091906001600160a01b038481169116141561274f575060155461276a565b601f546001600160a01b038681169116141561276a57506016545b6000612797601454606461277e9190612ceb565b61189b84611a1d6013548a61215090919063ffffffff16565b306000908152600860205260409020549091506127b49082612211565b30600081815260086020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906128059085815260200190565b60405180910390a3612817858261210e565b9695505050505050565b600081836128425760405162461bcd60e51b8152600401610c519190612957565b506000611d228486612d0a565b60008083601f84011261286157600080fd5b50813567ffffffffffffffff81111561287957600080fd5b6020830191508360208260051b850101111561289457600080fd5b9250929050565b80151581146128a957600080fd5b50565b6000806000604084860312156128c157600080fd5b833567ffffffffffffffff8111156128d857600080fd5b6128e48682870161284f565b90945092505060208401356128f88161289b565b809150509250925092565b60006020828403121561291557600080fd5b5035919050565b600080600080600060a0868803121561293457600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208083528351808285015260005b8181101561298457858101830151858201604001528201612968565b81811115612996576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146128a957600080fd5b600080604083850312156129d457600080fd5b82356129df816129ac565b946020939093013593505050565b6000602082840312156129ff57600080fd5b81356113388161289b565b60008060408385031215612a1d57600080fd5b50508035926020909101359150565b600080600080600060608688031215612a4457600080fd5b8535612a4f816129ac565b9450602086013567ffffffffffffffff80821115612a6c57600080fd5b612a7889838a0161284f565b90965094506040880135915080821115612a9157600080fd5b50612a9e8882890161284f565b969995985093965092949392505050565b60008060408385031215612ac257600080fd5b8235612acd816129ac565b91506020830135612add8161289b565b809150509250929050565b600080600060608486031215612afd57600080fd5b8335612b08816129ac565b92506020840135612b18816129ac565b929592945050506040919091013590565b600060208284031215612b3b57600080fd5b8135611338816129ac565b60008060008060808587031215612b5c57600080fd5b8435612b67816129ac565b93506020850135612b77816129ac565b92506040850135612b87816129ac565b91506060850135612b97816129ac565b939692955090935050565b600080600060608486031215612bb757600080fd5b505081359360208301359350604090920135919050565b60008060408385031215612be157600080fd5b8235612bec816129ac565b91506020830135612add816129ac565b60008060408385031215612c0f57600080fd5b82356129df8161289b565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526025908201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604082015264657373657360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415612cc457612cc4612c9a565b5060010190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6000816000190483118215151615612d0557612d05612c9a565b500290565b600082612d2757634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115612d3f57612d3f612c9a565b500190565b600060208284031215612d5657600080fd5b5051919050565b600060208284031215612d6f57600080fd5b81516113388161289b565b600082821015612d8c57612d8c612c9a565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612de15784516001600160a01b031683529383019391830191600101612dbc565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612e1757600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212207d6a808c894214bd3b60fdc4f33ac41b86798a73a94577a8aaed6a0143a4da9e64736f6c63430008090033

Deployed Bytecode Sourcemap

4737:15256:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16373:309;;;;;;;;;;-1:-1:-1;16373:309:0;;;;;:::i;:::-;;:::i;:::-;;15763:293;;;;;;;;;;-1:-1:-1;15763:293:0;;;;;:::i;:::-;;:::i;9275:181::-;;;;;;;;;;-1:-1:-1;9275:181:0;;;;;:::i;:::-;;:::i;6496:55::-;;;;;;;;;;;;;;;;;;;1411:25:1;;;1399:2;1384:18;6496:55:0;;;;;;;;17100:480;;;;;;;;;;-1:-1:-1;17100:480:0;;;;;:::i;:::-;;:::i;7957:80::-;;;;;;;;;;-1:-1:-1;8029:5:0;;;;;;;;;;;;-1:-1:-1;;;8029:5:0;;;;7957:80;;;;;;;:::i;8379:216::-;;;;;;;;;;-1:-1:-1;8379:216:0;;;;;:::i;:::-;;:::i;:::-;;;3129:14:1;;3122:22;3104:41;;3092:2;3077:18;8379:216:0;2964:187:1;13337:94:0;;;;;;;;;;-1:-1:-1;13337:94:0;;;;;:::i;:::-;;:::i;18647:150::-;;;;;;;;;;-1:-1:-1;18647:150:0;;;;;:::i;:::-;;:::i;5869:36::-;;;;;;;;;;;;;;;;7687:88;;;;;;;;;;-1:-1:-1;7760:12:0;;7687:88;;18827:594;;;;;;;;;;-1:-1:-1;18827:594:0;;;;;:::i;:::-;;:::i;12612:208::-;;;;;;;;;;-1:-1:-1;12612:208:0;;;;;:::i;:::-;;:::i;5783:79::-;;;;;;;;;;;;;;;;18127:183;;;;;;;;;;-1:-1:-1;18127:183:0;;;;;:::i;:::-;;:::i;16956:136::-;;;;;;;;;;-1:-1:-1;16956:136:0;;;;;:::i;:::-;;:::i;8897:370::-;;;;;;;;;;-1:-1:-1;8897:370:0;;;;;:::i;:::-;;:::i;18322:142::-;;;;;;;;;;;;;:::i;2745:103::-;;;;;;;;;;-1:-1:-1;2745:103:0;;;;;:::i;:::-;2800:4;2835:5;-1:-1:-1;;;;;2824:16:0;;;2835:5;;2824:16;;2745:103;6424:26;;;;;;;;;;-1:-1:-1;6424:26:0;;;;-1:-1:-1;;;6424:26:0;;;;;;5956:34;;;;;;;;;;;;;;;;7781:80;;;;;;;;;;-1:-1:-1;7781:80:0;;5081:1;5810:36:1;;5798:2;5783:18;7781:80:0;5668:184:1;17588:367:0;;;;;;;;;;-1:-1:-1;17588:367:0;;;;;:::i;:::-;;:::i;6166:30::-;;;;;;;;;;-1:-1:-1;6166:30:0;;;;-1:-1:-1;;;;;6166:30:0;;;;;;-1:-1:-1;;;;;6697:32:1;;;6679:51;;6667:2;6652:18;6166:30:0;6533:203:1;16064:301:0;;;;;;;;;;-1:-1:-1;16064:301:0;;;;;:::i;:::-;;:::i;6346:31::-;;;;;;;;;;-1:-1:-1;6346:31:0;;;;-1:-1:-1;;;;;6346:31:0;;;8603:122;;;;;;;;;;-1:-1:-1;8603:122:0;;;;;:::i;:::-;;:::i;5997:39::-;;;;;;;;;;;;;;;;9646:96;;;;;;;;;;-1:-1:-1;9646:96:0;;;;;:::i;:::-;;:::i;15438:99::-;;;;;;;;;;-1:-1:-1;15438:99:0;;;;;:::i;:::-;;:::i;16692:120::-;;;;;;;;;;-1:-1:-1;16692:120:0;;;;;:::i;:::-;;:::i;5701:34::-;;;;;;;;;;;;;;;;5660;;;;;;;;;;;;;;;;13107:199;;;;;;;;;;-1:-1:-1;13107:199:0;;;;;:::i;:::-;;:::i;6459:30::-;;;;;;;;;;-1:-1:-1;6459:30:0;;;;-1:-1:-1;;;6459:30:0;;;;;;8127:105;;;;;;;;;;-1:-1:-1;8127:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8211:18:0;8193:7;8211:18;;;:9;:18;;;;;;;8127:105;12828:271;;;;;;;;;;-1:-1:-1;12828:271:0;;;;;:::i;:::-;;:::i;5205:50::-;;;;;;;;;;;;;;;;5150:48;;;;;;;;;;;;;;;;8043:78;;;;;;;;;;-1:-1:-1;8095:7:0;8113:5;-1:-1:-1;;;;;8113:5:0;8043:78;;5379:32;;;;;;;;;;-1:-1:-1;5379:32:0;;;;;;;;15545:210;;;;;;;;;;-1:-1:-1;15545:210:0;;;;;:::i;:::-;;:::i;7867:84::-;;;;;;;;;;-1:-1:-1;7941:7:0;;;;;;;;;;;;-1:-1:-1;;;7941:7:0;;;;7867:84;;19425:498;;;;;;;;;;-1:-1:-1;19425:498:0;;;;;:::i;:::-;;:::i;5619:34::-;;;;;;;;;;;;;;;;6320:19;;;;;;;;;;-1:-1:-1;6320:19:0;;;;-1:-1:-1;;;;;6320:19:0;;;8733:156;;;;;;;;;;-1:-1:-1;8733:156:0;;;;;:::i;:::-;;:::i;2538:94::-;;;;;;;;;;-1:-1:-1;2538:94:0;;;;;:::i;:::-;;:::i;13439:99::-;;;;;;;;;;-1:-1:-1;13439:99:0;;;;;:::i;:::-;;:::i;6045:36::-;;;;;;;;;;-1:-1:-1;6045:36:0;;;;-1:-1:-1;;;;;6045:36:0;;;18472:167;;;;;;;;;;-1:-1:-1;18472:167:0;;;;;:::i;:::-;;:::i;5742:34::-;;;;;;;;;;;;;;;;6130:29;;;;;;;;;;-1:-1:-1;6130:29:0;;;;-1:-1:-1;;;;;6130:29:0;;;8238:133;;;;;;;;;;-1:-1:-1;8238:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8340:19:0;;;8322:7;8340:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8238:133;17963:156;;;;;;;;;;-1:-1:-1;17963:156:0;;;;;:::i;:::-;;:::i;6088:35::-;;;;;;;;;;-1:-1:-1;6088:35:0;;;;-1:-1:-1;;;;;6088:35:0;;;2640:97;;;;;;;;;;-1:-1:-1;2640:97:0;;;;;:::i;:::-;;:::i;9462:176::-;;;;;;;;;;-1:-1:-1;9462:176:0;;;;;:::i;:::-;;:::i;2971:173::-;;;;;;;;;;-1:-1:-1;2971:173:0;;;;;:::i;:::-;;:::i;16820:128::-;;;;;;;;;;-1:-1:-1;16820:128:0;;;;;:::i;:::-;;:::i;6289:24::-;;;;;;;;;;-1:-1:-1;6289:24:0;;;;-1:-1:-1;;;;;6289:24:0;;;5418:46;;;;;;;;;;-1:-1:-1;5418:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2856:107;;;;;;;;;;-1:-1:-1;2856:107:0;;;;;:::i;:::-;;:::i;5914:35::-;;;;;;;;;;;;;;;;6386:31;;;;;;;;;;-1:-1:-1;6386:31:0;;;;-1:-1:-1;;;6386:31:0;;;;;;16373:309;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;;;;;;;;;16508:3:::1;16489:22:::0;::::1;16481:71;;;;-1:-1:-1::0;;;16481:71:0::1;;;;;;;:::i;:::-;16568:9;16563:112;16579:20:::0;;::::1;16563:112;;;16657:6;16621:19;:33;16641:9;;16651:1;16641:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16621:33:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16621:33:0;:42;;-1:-1:-1;;16621:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16601:3:::1;::::0;::::1;:::i;:::-;;;16563:112;;;;16373:309:::0;;;:::o;15763:293::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;15890:3:::1;15871:22:::0;::::1;15863:71;;;;-1:-1:-1::0;;;15863:71:0::1;;;;;;;:::i;:::-;15950:9;15945:104;15961:20:::0;;::::1;15945:104;;;16031:6;16003:11;:25;16015:9;;16025:1;16015:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16003:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16003:25:0;:34;;-1:-1:-1;;16003:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15983:3:::1;::::0;::::1;:::i;:::-;;;15945:104;;9275:181:::0;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;9443:5:::1;9414:24;9399:12;;:39;;;;:::i;:::-;9398:50;;;;:::i;:::-;9380:15;:68:::0;-1:-1:-1;9275:181:0:o;17100:480::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;17255:12:::1;:28:::0;;;17294:7:::1;:18:::0;;;17323:12:::1;:28:::0;;;17362:6:::1;:16:::0;;;17371:7;17338:13;17400:24:::1;17304:8:::0;17270:13;17400:24:::1;:::i;:::-;:40;;;;:::i;:::-;:50;;;;:::i;:::-;17389:8;:61:::0;17461:14:::1;:32:::0;;;17523:16:::1;17538:1;17478:15:::0;17523:16:::1;:::i;:::-;17512:8;;:27;17504:68;;;::::0;-1:-1:-1;;;17504:68:0;;10696:2:1;17504:68:0::1;::::0;::::1;10678:21:1::0;10735:2;10715:18;;;10708:30;10774;10754:18;;;10747:58;10822:18;;17504:68:0::1;10494:352:1::0;17504:68:0::1;17100:480:::0;;;;;:::o;8379:216::-;8483:10;8454:4;8471:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8471:32:0;;;;;;;;;;:41;;;8528:37;8454:4;;8471:32;;8528:37;;;;8506:6;1411:25:1;;1399:2;1384:18;;1265:177;8528:37:0;;;;;;;;-1:-1:-1;8583:4:0;8379:216;;;;;:::o;13337:94::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;13402:11:::1;:21:::0;;;::::1;;-1:-1:-1::0;;;13402:21:0::1;-1:-1:-1::0;;;;13402:21:0;;::::1;::::0;;;::::1;::::0;;13337:94::o;18647:150::-;18727:4;18783:6;18751:29;18771:8;18751:19;:29::i;:::-;:38;;18647:150;-1:-1:-1;;;18647:150:0:o;18827:594::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;18976:3:::1;18957:22:::0;::::1;18949:79;;;::::0;-1:-1:-1;;;18949:79:0;;11053:2:1;18949:79:0::1;::::0;::::1;11035:21:1::0;11092:2;11072:18;;;11065:30;11131:34;11111:18;;;11104:62;-1:-1:-1;;;11182:18:1;;;11175:43;11235:19;;18949:79:0::1;10851:409:1::0;18949:79:0::1;19043:33:::0;;::::1;19035:85;;;::::0;-1:-1:-1;;;19035:85:0;;11467:2:1;19035:85:0::1;::::0;::::1;11449:21:1::0;11506:2;11486:18;;;11479:30;11545:34;11525:18;;;11518:62;-1:-1:-1;;;11596:18:1;;;11589:38;11644:19;;19035:85:0::1;11265:404:1::0;19035:85:0::1;19129:12;19158:6:::0;19154:82:::1;19168:20:::0;;::::1;19154:82;;;19219:6;;19226:1;19219:9;;;;;;;:::i;:::-;;;;;;;19212:4;:16;;;;:::i;:::-;19205:23:::0;-1:-1:-1;19190:3:0;::::1;::::0;::::1;:::i;:::-;;;;19154:82;;;;19271:4;19252:15;19262:4;-1:-1:-1::0;;;;;8211:18:0;8193:7;8211:18;;;:9;:18;;;;;;;8127:105;19252:15:::1;:23;;19244:63;;;::::0;-1:-1:-1;;;19244:63:0;;11876:2:1;19244:63:0::1;::::0;::::1;11858:21:1::0;11915:2;11895:18;;;11888:30;11954:29;11934:18;;;11927:57;12001:18;;19244:63:0::1;11674:351:1::0;19244:63:0::1;19320:6;19316:102;19330:20:::0;;::::1;19316:102;;;19367:43;19382:4;19387:9;;19397:1;19387:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;19400:6;;19407:1;19400:9;;;;;;;:::i;:::-;;;;;;;19367:14;:43::i;:::-;-1:-1:-1::0;19352:3:0;::::1;::::0;::::1;:::i;:::-;;;;19316:102;;;;18940:481;18827:594:::0;;;;;:::o;12612:208::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;12716:21:::1;12756:10;12748:64;12808:3;12777:28;12789:16:::0;12716:21;12777:28:::1;:::i;:::-;:34;;;;:::i;:::-;12748:64;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12685:135;12612:208:::0;:::o;18127:183::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;18225:15:::1;:25:::0;;;;18261:26:::1;:41:::0;18127:183::o;16956:136::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17048:27:0;;;::::1;;::::0;;;:19:::1;:27;::::0;;;;:36;;-1:-1:-1;;17048:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16956:136::o;8897:370::-;-1:-1:-1;;;;;9017:19:0;;8997:4;9017:19;;;:11;:19;;;;;;;;9037:10;9017:31;;;;;;;;-1:-1:-1;;9017:52:0;9014:186;;9119:69;;;;;;;;;;;-1:-1:-1;;;9119:69:0;;;;;;;;-1:-1:-1;;;;;9119:19:0;;-1:-1:-1;9119:19:0;;;:11;:19;;;;;9139:10;9119:31;;;;;;;;;;:69;;9155:6;;9119:35;:69::i;:::-;-1:-1:-1;;;;;9085:19:0;;;;;;:11;:19;;;;;;;;9105:10;9085:31;;;;;;;:103;9014:186;9219:40;9233:6;9241:9;9252:6;9219:13;:40::i;:::-;9212:47;;8897:370;;;;;;:::o;18322:142::-;18450:4;;-1:-1:-1;;;;;18450:4:0;18375:7;8211:18;;;:9;:18;;;;;;18402:54;;18429:4;;-1:-1:-1;;;;;18429:4:0;8193:7;8211:18;;;:9;:18;;;;;;18402:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;18395:61;;18322:142;:::o;17588:367::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;17758:21:::1;:46:::0;;-1:-1:-1;;;;;17758:46:0;;::::1;-1:-1:-1::0;;;;;;17758:46:0;;::::1;;::::0;;;17815:20:::1;:44:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17870:14:::1;:32:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17913:15:::1;:34:::0;;;;;::::1;::::0;::::1;;::::0;;17588:367::o;16064:301::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;16195:3:::1;16176:22:::0;::::1;16168:71;;;;-1:-1:-1::0;;;16168:71:0::1;;;;;;;:::i;:::-;16255:9;16250:108;16266:20:::0;;::::1;16250:108;;;16340:6;16308:15;:29;16324:9;;16334:1;16324:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16308:29:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16308:29:0;:38;;-1:-1:-1;;16308:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16288:3:::1;::::0;::::1;:::i;:::-;;;16250:108;;8603:122:::0;8658:4;8682:35;8690:7;-1:-1:-1;;8682:7:0;:35::i;9646:96::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;9713:12:::1;:21:::0;9646:96::o;15438:99::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;15506:13:::1;:23:::0;;-1:-1:-1;;15506:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15438:99::o;16692:120::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16776:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;16776:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16692:120::o;13107:199::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;13207:14:::1;:22:::0;;;;13240:13:::1;:20:::0;;;;13271:18:::1;:27:::0;13107:199::o;12828:271::-;12917:4;2835:5;;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;12934:11;12931:95:::1;;12970:44;::::0;-1:-1:-1;;;12970:44:0;;13008:4:::1;12970:44;::::0;::::1;6679:51:1::0;-1:-1:-1;;;;;12970:29:0;::::1;::::0;::::1;::::0;6652:18:1;;12970:44:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12961:53;;12931:95;13043:48;::::0;-1:-1:-1;;;13043:48:0;;13072:10:::1;13043:48;::::0;::::1;12393:51:1::0;12460:18;;;12453:34;;;-1:-1:-1;;;;;13043:28:0;::::1;::::0;::::1;::::0;12366:18:1;;13043:48:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15545:210::-:0;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;15647:9:::1;15642:106;15658:20:::0;;::::1;15642:106;;;15730:6;15700:13;:27;15714:9;;15724:1;15714:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15700:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;15700:27:0;:36;;-1:-1:-1;;15700:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15680:3:::1;::::0;::::1;:::i;:::-;;;15642:106;;19425:498:::0;19501:4;2835:5;;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;19546:4:::1;19525:17;:25;;19517:80;;;::::0;-1:-1:-1;;;19517:80:0;;12950:2:1;19517:80:0::1;::::0;::::1;12932:21:1::0;12989:2;12969:18;;;12962:30;13028:34;13008:18;;;13001:62;-1:-1:-1;;;13079:18:1;;;13072:40;13129:19;;19517:80:0::1;12748:406:1::0;19517:80:0::1;19649:4;::::0;19634:20:::1;::::0;-1:-1:-1;;;19634:20:0;;-1:-1:-1;;;;;19649:4:0;;::::1;19634:20;::::0;::::1;6679:51:1::0;19614:17:0::1;::::0;19634:4:::1;::::0;:14:::1;::::0;6652:18:1;;19634:20:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19614:40:::0;-1:-1:-1;19665:15:0::1;19683:43;19720:5;19683:32;19614:40:::0;19697:17;19683:13:::1;:32::i;:::-;:36:::0;::::1;:43::i;:::-;19665:61:::0;-1:-1:-1;19751:11:0;;19747:136:::1;;19793:4;::::0;19798::::1;::::0;19778:33:::1;::::0;-1:-1:-1;;;;;19793:4:0;;::::1;::::0;19798::::1;19803:7:::0;19778:14:::1;:33::i;:::-;;19826:12;;;;;;;;;-1:-1:-1::0;;;;;19826:12:0::1;-1:-1:-1::0;;;;;19826:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;19867:4:0::1;::::0;19425:498;-1:-1:-1;;;;;;;19425:498:0:o;19747:136::-:1;-1:-1:-1::0;19910:5:0::1;::::0;19425:498;-1:-1:-1;;;19425:498:0:o;8733:156::-;8813:4;8837:44;8851:10;8863:9;8874:6;8837:13;:44::i;2538:94::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2598:19:0::1;;::::0;;;2620:4:::1;2598:19;::::0;;;;;;;:26;;-1:-1:-1;;2598:26:0::1;::::0;;::::1;::::0;;2538:94::o;13439:99::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;13513:7:::1;:17:::0;;;::::1;;-1:-1:-1::0;;;13513:17:0::1;-1:-1:-1::0;;;;13513:17:0;;::::1;::::0;;;::::1;::::0;;13439:99::o;18472:167::-;18540:7;18567:64;18608:22;:20;:22::i;:::-;18590:4;;-1:-1:-1;;;;;18590:4:0;8193:7;8211:18;;;:9;:18;;;;;;18567:36;;18580:22;;18600:1;;18580:15;:19;;:22::i;:::-;18567:8;;:12;:36::i;17963:156::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;18055:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;18055:22:0::1;-1:-1:-1::0;;;;18055:22:0;;::::1;::::0;;;::::1;::::0;;;18088:13:::1;:23:::0;17963:156::o;2640:97::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2702:19:0::1;2724:5;2702:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;2702:27:0::1;::::0;;2640:97::o;9462:176::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;9625:5:::1;9595:25;9580:12;;:40;;;;:::i;:::-;9579:51;;;;:::i;:::-;9564:12;:66:::0;-1:-1:-1;9462:176:0:o;2971:173::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;3047:5:::1;:11:::0;;-1:-1:-1;;;;;;3047:11:0::1;-1:-1:-1::0;;;;;3047:11:0;::::1;::::0;;::::1;::::0;;3069:19;;;-1:-1:-1;3069:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;3069:26:0::1;::::0;;::::1;::::0;;;3111:25;;6679:51:1;;;3111:25:0::1;::::0;6652:18:1;3111:25:0::1;;;;;;;2971:173:::0;:::o;16820:128::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16908:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;16908:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16820:128::o;2856:107::-;-1:-1:-1;;;;;2936:19:0;2912:4;2936:19;;;:14;:19;;;;;;;;;2856:107::o;11167:330::-;11297:53;;;;;;;;;;;-1:-1:-1;;;11297:53:0;;;;;;;;-1:-1:-1;;;;;11297:17:0;;11260:4;11297:17;;;:9;:17;;;;;;;:53;;11319:6;;11297:21;:53::i;:::-;-1:-1:-1;;;;;11277:17:0;;;;;;;:9;:17;;;;;;:73;;;;11384:20;;;;;;;:32;;11409:6;11384:24;:32::i;:::-;-1:-1:-1;;;;;11361:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11432:35;;;;;;;;;;11460:6;1411:25:1;;1399:2;1384:18;;1265:177;11432:35:0;;;;;;;;-1:-1:-1;11485:4:0;11167:330;;;;;:::o;422:192::-;508:7;544:12;536:6;;;;528:29;;;;-1:-1:-1;;;528:29:0;;;;;;;;:::i;:::-;-1:-1:-1;568:9:0;580:5;584:1;580;:5;:::i;:::-;568:17;422:192;-1:-1:-1;;;;;422:192:0:o;9750:1405::-;9862:6;;9842:4;;9862:6;;9859:63;;;9878:41;9893:6;9901:9;9912:6;9878:14;:41::i;:::-;9871:48;;;;9859:63;-1:-1:-1;;;;;9938:22:0;;;;;;:14;:22;;;;;;;;9937:23;:53;;;;-1:-1:-1;;;;;;9965:25:0;;;;;;:14;:25;;;;;;;;9964:26;9937:53;9934:257;;;10014:11;;-1:-1:-1;;;10014:11:0;;;;10006:43;;;;-1:-1:-1;;;10006:43:0;;13707:2:1;10006:43:0;;;13689:21:1;13746:2;13726:18;;;13719:30;-1:-1:-1;;;13765:18:1;;;13758:50;13825:18;;10006:43:0;13505:344:1;10006:43:0;10067:7;;-1:-1:-1;;;10067:7:0;;;;:25;;;;-1:-1:-1;10088:4:0;;-1:-1:-1;;;;;10078:14:0;;;10088:4;;10078:14;10067:25;:46;;;;-1:-1:-1;10109:4:0;;-1:-1:-1;;;;;10096:17:0;;;10109:4;;10096:17;;10067:46;10064:116;;;-1:-1:-1;;;;;10133:24:0;;;;;;:13;:24;;;;;:31;;-1:-1:-1;;10133:31:0;10160:4;10133:31;;;10064:116;10228:13;;;;10225:93;;;-1:-1:-1;;;;;10266:21:0;;;;;;:13;:21;;;;;;;;10265:22;10257:45;;;;-1:-1:-1;;;10257:45:0;;14056:2:1;10257:45:0;;;14038:21:1;14095:2;14075:18;;;14068:30;-1:-1:-1;;;14114:18:1;;;14107:41;14165:18;;10257:45:0;13854:335:1;10257:45:0;-1:-1:-1;;;;;10337:22:0;;;;;;:14;:22;;;;;;;;10336:23;:55;;;;-1:-1:-1;;;;;;10364:27:0;;;;;;:19;:27;;;;;;;;10363:28;10336:55;:90;;;;-1:-1:-1;;;;;;10396:30:0;;;;;;:19;:30;;;;;;;;10395:31;10336:90;:111;;;;-1:-1:-1;10443:4:0;;-1:-1:-1;;;;;10430:17:0;;;10443:4;;10430:17;;10336:111;10332:276;;;-1:-1:-1;;;;;8211:18:0;;10464;8211;;;:9;:18;;;;;;10553:15;;10529:19;10542:6;8211:18;10529:19;:::i;:::-;10528:40;;10520:76;;;;-1:-1:-1;;;10520:76:0;;14396:2:1;10520:76:0;;;14378:21:1;14435:2;14415:18;;;14408:30;14474:26;14454:18;;;14447:54;14518:18;;10520:76:0;14194:348:1;10520:76:0;10449:159;10332:276;10663:28;10676:6;10684;10663:12;:28::i;:::-;10707:16;:14;:16::i;:::-;10704:35;;;10726:10;:8;:10::i;:::-;10798:53;;;;;;;;;;;-1:-1:-1;;;10798:53:0;;;;;;;;-1:-1:-1;;;;;10798:17:0;;-1:-1:-1;10798:17:0;;;:9;:17;;;;;;;;:53;;10820:6;;10798:21;:53::i;:::-;-1:-1:-1;;;;;10778:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11766:11;:19;;;;;;;;11765:20;10890:22;:51;;;-1:-1:-1;;;;;;11766:19:0;;11741:4;11766:19;;;:11;:19;;;;;;;;11765:20;10916:25;10890:51;10889:99;;10954:34;10962:6;10970;10978:9;10954:7;:34::i;:::-;10889:99;;;10945:6;10889:99;-1:-1:-1;;;;;11024:20:0;;;;;;:9;:20;;;;;;10864:124;;-1:-1:-1;11024:40:0;;10864:124;11024:24;:40::i;:::-;-1:-1:-1;;;;;11001:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11082:43;;;;;;;;;;11110:14;1411:25:1;;1399:2;1384:18;;1265:177;11082:43:0;;;;;;;;-1:-1:-1;11143:4:0;;9750:1405;-1:-1:-1;;;;9750:1405:0:o;280:136::-;338:7;365:43;369:1;372;365:43;;;;;;;;;;;;;;;;;:3;:43::i;620:250::-;678:7;702:6;698:47;;-1:-1:-1;732:1:0;725:8;;698:47;757:9;769:5;773:1;769;:5;:::i;:::-;757:17;-1:-1:-1;802:1:0;793:5;797:1;757:17;793:5;:::i;:::-;:10;785:56;;;;-1:-1:-1;;;785:56:0;;14749:2:1;785:56:0;;;14731:21:1;14788:2;14768:18;;;14761:30;14827:34;14807:18;;;14800:62;-1:-1:-1;;;14878:18:1;;;14871:31;14919:19;;785:56:0;14547:397:1;876:132:0;934:7;961:39;965:1;968;961:39;;;;;;;;;;;;;;;;;:3;:39::i;93:181::-;151:7;;183:5;187:1;183;:5;:::i;:::-;171:17;;212:1;207;:6;;199:46;;;;-1:-1:-1;;;199:46:0;;15151:2:1;199:46:0;;;15133:21:1;15190:2;15170:18;;;15163:30;15229:29;15209:18;;;15202:57;15276:18;;199:46:0;14949:351:1;11505:166:0;11602:12;;11592:6;:22;;:49;;;-1:-1:-1;;;;;;11618:23:0;;;;;;:15;:23;;;;;;;;11592:49;11584:79;;;;-1:-1:-1;;;11584:79:0;;15507:2:1;11584:79:0;;;15489:21:1;15546:2;15526:18;;;15519:30;-1:-1:-1;;;15565:18:1;;;15558:47;15622:18;;11584:79:0;15305:341:1;11584:79:0;11505:166;;:::o;12407:197::-;12494:4;;12456;;-1:-1:-1;;;;;12494:4:0;12480:10;:18;;;;:38;;-1:-1:-1;12512:6:0;;;;12511:7;12480:38;:62;;;;-1:-1:-1;12531:11:0;;-1:-1:-1;;;12531:11:0;;;;12480:62;:116;;;;-1:-1:-1;;12583:13:0;;12573:4;12555:24;;;;:9;:24;;;;;;:41;;;12407:197::o;13546:1884::-;6598:6;:13;;-1:-1:-1;;6598:13:0;6607:4;6598:13;;;13641:15:::1;::::0;13658:26:::1;::::0;6598:6;;13625:60:::1;::::0;:15:::1;:60::i;:::-;:79;;13692:12;;13625:79;;;13688:1;13625:79;13595:109;;13715:23;13741:59;13798:1;13741:52;13784:8;;13741:38;13759:19;13741:13;;:17;;:38;;;;:::i;:59::-;13715:85;;13811:20;13834:34;13852:15;13834:13;;:17;;:34;;;;:::i;:::-;13905:16;::::0;;13919:1:::1;13905:16:::0;;;;;::::1;::::0;;13811:57;;-1:-1:-1;13881:21:0::1;::::0;13905:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13905:16:0::1;13881:40;;13950:4;13932;13937:1;13932:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13932:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;13976:4:::1;::::0;13966:7;;13976:4;::::1;::::0;13966;;13976;;13966:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;13966:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;14051:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;14051:188:0;;14017:21:::1;::::0;14051:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;14123:12;;13993:21:::1;::::0;14166:4;;14193::::1;::::0;14213:15:::1;::::0;14051:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14252:17;14272:40;14298:13;14272:21;:25;;:40;;;;:::i;:::-;14252:60:::0;-1:-1:-1;14325:19:0::1;14347:40;14360:26;:19:::0;14384:1:::1;14360:23;:26::i;:::-;14347:8;::::0;;:12:::1;:40::i;:::-;14325:62:::0;-1:-1:-1;14408:26:0::1;14437:58;14493:1;14437:51;14325:62:::0;14437:51;:9;14451:19;14437:13:::1;:34::i;:58::-;14408:87;;14506:26;14535:44;14567:11;14535:27;14549:12;;14535:9;:13;;:27;;;;:::i;:44::-;14506:73;;14590:21;14614:39;14641:11;14614:22;14628:7;;14614:9;:13;;:22;;;;:::i;:39::-;14590:63;;14664:20;14687:38;14713:11;14687:21;14701:6;;14687:9;:13;;:21;;;;:::i;:38::-;14767:20;::::0;14759:65:::1;::::0;14664:61;;-1:-1:-1;14739:15:0::1;::::0;-1:-1:-1;;;;;14767:20:0;;::::1;::::0;14801:18;;14739:15;14759:65;14739:15;14759:65;14801:18;14767:20;14759:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;14859:14:0::1;::::0;14851:53:::1;::::0;14738:86;;-1:-1:-1;;;;;;14859:14:0::1;::::0;14887:12;;14851:53:::1;::::0;;;14887:12;14859:14;14851:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;14939:15:0::1;::::0;14931:55:::1;::::0;14835:69;;-1:-1:-1;;;;;;14939:15:0::1;::::0;14968:13;;14931:55:::1;::::0;;;14968:13;14939:15;14931:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;15043:5:0::1;::::0;-1:-1:-1;;15064:19:0;;;-1:-1:-1;15061:362:0::1;;15099:6;::::0;15273:21:::1;::::0;15099:244:::1;::::0;-1:-1:-1;;;15099:244:0;;15175:4:::1;15099:244;::::0;::::1;17319:34:1::0;17369:18;;;17362:34;;;15099:6:0::1;17412:18:1::0;;;17405:34;;;17455:18;;;17448:34;-1:-1:-1;;;;;15273:21:0;;::::1;17498:19:1::0;;;17491:44;15313:15:0::1;17551:19:1::0;;;17544:35;15099:6:0;::::1;::::0;:22:::1;::::0;15129:18;;17253:19:1;;15099:244:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;15363:48:0::1;::::0;;18075:25:1;;;18131:2;18116:18;;18109:34;;;15363:48:0::1;::::0;-1:-1:-1;18048:18:1;15363:48:0::1;;;;;;;15061:362;-1:-1:-1::0;;6616:6:0;:14;;-1:-1:-1;;6616:14:0;;;-1:-1:-1;;;;;;;;;;13546:1884:0:o;11801:598::-;11938:18;;11983:4;;11887:7;;11938:18;-1:-1:-1;;;;;11970:17:0;;;11983:4;;11970:17;11967:152;;;-1:-1:-1;12016:14:0;;11967:152;;;12061:4;;-1:-1:-1;;;;;12051:14:0;;;12061:4;;12051:14;12048:71;;;-1:-1:-1;12094:13:0;;12048:71;12131:17;12151:62;12192:14;;12209:3;12192:20;;;;:::i;:::-;12151:36;12176:10;12151:20;12162:8;;12151:6;:10;;:20;;;;:::i;:62::-;12269:4;12251:24;;;;:9;:24;;;;;;12131:82;;-1:-1:-1;12251:39:0;;12131:82;12251:28;:39::i;:::-;12242:4;12224:24;;;;:9;:24;;;;;;;:66;;;;12308:42;;-1:-1:-1;;;;;12308:42:0;;;;;;;12340:9;1411:25:1;;1399:2;1384:18;;1265:177;12308:42:0;;;;;;;;12370:21;:6;12381:9;12370:10;:21::i;:::-;12363:28;11801:598;-1:-1:-1;;;;;;11801:598:0:o;1014:189::-;1100:7;1135:12;1128:5;1120:28;;;;-1:-1:-1;;;1120:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1159:9:0;1171:5;1175:1;1171;:5;:::i;14:367:1:-;77:8;87:6;141:3;134:4;126:6;122:17;118:27;108:55;;159:1;156;149:12;108:55;-1:-1:-1;182:20:1;;225:18;214:30;;211:50;;;257:1;254;247:12;211:50;294:4;286:6;282:17;270:29;;354:3;347:4;337:6;334:1;330:14;322:6;318:27;314:38;311:47;308:67;;;371:1;368;361:12;308:67;14:367;;;;;:::o;386:118::-;472:5;465:13;458:21;451:5;448:32;438:60;;494:1;491;484:12;438:60;386:118;:::o;509:566::-;601:6;609;617;670:2;658:9;649:7;645:23;641:32;638:52;;;686:1;683;676:12;638:52;726:9;713:23;759:18;751:6;748:30;745:50;;;791:1;788;781:12;745:50;830:70;892:7;883:6;872:9;868:22;830:70;:::i;:::-;919:8;;-1:-1:-1;804:96:1;-1:-1:-1;;1004:2:1;989:18;;976:32;1017:28;976:32;1017:28;:::i;:::-;1064:5;1054:15;;;509:566;;;;;:::o;1080:180::-;1139:6;1192:2;1180:9;1171:7;1167:23;1163:32;1160:52;;;1208:1;1205;1198:12;1160:52;-1:-1:-1;1231:23:1;;1080:180;-1:-1:-1;1080:180:1:o;1447:454::-;1542:6;1550;1558;1566;1574;1627:3;1615:9;1606:7;1602:23;1598:33;1595:53;;;1644:1;1641;1634:12;1595:53;-1:-1:-1;;1667:23:1;;;1737:2;1722:18;;1709:32;;-1:-1:-1;1788:2:1;1773:18;;1760:32;;1839:2;1824:18;;1811:32;;-1:-1:-1;1890:3:1;1875:19;1862:33;;-1:-1:-1;1447:454:1;-1:-1:-1;1447:454:1:o;1906:597::-;2018:4;2047:2;2076;2065:9;2058:21;2108:6;2102:13;2151:6;2146:2;2135:9;2131:18;2124:34;2176:1;2186:140;2200:6;2197:1;2194:13;2186:140;;;2295:14;;;2291:23;;2285:30;2261:17;;;2280:2;2257:26;2250:66;2215:10;;2186:140;;;2344:6;2341:1;2338:13;2335:91;;;2414:1;2409:2;2400:6;2389:9;2385:22;2381:31;2374:42;2335:91;-1:-1:-1;2487:2:1;2466:15;-1:-1:-1;;2462:29:1;2447:45;;;;2494:2;2443:54;;1906:597;-1:-1:-1;;;1906:597:1:o;2508:131::-;-1:-1:-1;;;;;2583:31:1;;2573:42;;2563:70;;2629:1;2626;2619:12;2644:315;2712:6;2720;2773:2;2761:9;2752:7;2748:23;2744:32;2741:52;;;2789:1;2786;2779:12;2741:52;2828:9;2815:23;2847:31;2872:5;2847:31;:::i;:::-;2897:5;2949:2;2934:18;;;;2921:32;;-1:-1:-1;;;2644:315:1:o;3156:241::-;3212:6;3265:2;3253:9;3244:7;3240:23;3236:32;3233:52;;;3281:1;3278;3271:12;3233:52;3320:9;3307:23;3339:28;3361:5;3339:28;:::i;3402:248::-;3470:6;3478;3531:2;3519:9;3510:7;3506:23;3502:32;3499:52;;;3547:1;3544;3537:12;3499:52;-1:-1:-1;;3570:23:1;;;3640:2;3625:18;;;3612:32;;-1:-1:-1;3402:248:1:o;3655:908::-;3786:6;3794;3802;3810;3818;3871:2;3859:9;3850:7;3846:23;3842:32;3839:52;;;3887:1;3884;3877:12;3839:52;3926:9;3913:23;3945:31;3970:5;3945:31;:::i;:::-;3995:5;-1:-1:-1;4051:2:1;4036:18;;4023:32;4074:18;4104:14;;;4101:34;;;4131:1;4128;4121:12;4101:34;4170:70;4232:7;4223:6;4212:9;4208:22;4170:70;:::i;:::-;4259:8;;-1:-1:-1;4144:96:1;-1:-1:-1;4347:2:1;4332:18;;4319:32;;-1:-1:-1;4363:16:1;;;4360:36;;;4392:1;4389;4382:12;4360:36;;4431:72;4495:7;4484:8;4473:9;4469:24;4431:72;:::i;:::-;3655:908;;;;-1:-1:-1;3655:908:1;;-1:-1:-1;4522:8:1;;4405:98;3655:908;-1:-1:-1;;;3655:908:1:o;4568:382::-;4633:6;4641;4694:2;4682:9;4673:7;4669:23;4665:32;4662:52;;;4710:1;4707;4700:12;4662:52;4749:9;4736:23;4768:31;4793:5;4768:31;:::i;:::-;4818:5;-1:-1:-1;4875:2:1;4860:18;;4847:32;4888:30;4847:32;4888:30;:::i;:::-;4937:7;4927:17;;;4568:382;;;;;:::o;4955:456::-;5032:6;5040;5048;5101:2;5089:9;5080:7;5076:23;5072:32;5069:52;;;5117:1;5114;5107:12;5069:52;5156:9;5143:23;5175:31;5200:5;5175:31;:::i;:::-;5225:5;-1:-1:-1;5282:2:1;5267:18;;5254:32;5295:33;5254:32;5295:33;:::i;:::-;4955:456;;5347:7;;-1:-1:-1;;;5401:2:1;5386:18;;;;5373:32;;4955:456::o;5416:247::-;5475:6;5528:2;5516:9;5507:7;5503:23;5499:32;5496:52;;;5544:1;5541;5534:12;5496:52;5583:9;5570:23;5602:31;5627:5;5602:31;:::i;5857:671::-;5943:6;5951;5959;5967;6020:3;6008:9;5999:7;5995:23;5991:33;5988:53;;;6037:1;6034;6027:12;5988:53;6076:9;6063:23;6095:31;6120:5;6095:31;:::i;:::-;6145:5;-1:-1:-1;6202:2:1;6187:18;;6174:32;6215:33;6174:32;6215:33;:::i;:::-;6267:7;-1:-1:-1;6326:2:1;6311:18;;6298:32;6339:33;6298:32;6339:33;:::i;:::-;6391:7;-1:-1:-1;6450:2:1;6435:18;;6422:32;6463:33;6422:32;6463:33;:::i;:::-;5857:671;;;;-1:-1:-1;5857:671:1;;-1:-1:-1;;5857:671:1:o;6968:316::-;7045:6;7053;7061;7114:2;7102:9;7093:7;7089:23;7085:32;7082:52;;;7130:1;7127;7120:12;7082:52;-1:-1:-1;;7153:23:1;;;7223:2;7208:18;;7195:32;;-1:-1:-1;7274:2:1;7259:18;;;7246:32;;6968:316;-1:-1:-1;6968:316:1:o;7289:388::-;7357:6;7365;7418:2;7406:9;7397:7;7393:23;7389:32;7386:52;;;7434:1;7431;7424:12;7386:52;7473:9;7460:23;7492:31;7517:5;7492:31;:::i;:::-;7542:5;-1:-1:-1;7599:2:1;7584:18;;7571:32;7612:33;7571:32;7612:33;:::i;7682:309::-;7747:6;7755;7808:2;7796:9;7787:7;7783:23;7779:32;7776:52;;;7824:1;7821;7814:12;7776:52;7863:9;7850:23;7882:28;7904:5;7882:28;:::i;8482:335::-;8684:2;8666:21;;;8723:2;8703:18;;;8696:30;-1:-1:-1;;;8757:2:1;8742:18;;8735:41;8808:2;8793:18;;8482:335::o;8822:401::-;9024:2;9006:21;;;9063:2;9043:18;;;9036:30;9102:34;9097:2;9082:18;;9075:62;-1:-1:-1;;;9168:2:1;9153:18;;9146:35;9213:3;9198:19;;8822:401::o;9228:127::-;9289:10;9284:3;9280:20;9277:1;9270:31;9320:4;9317:1;9310:15;9344:4;9341:1;9334:15;9360:127;9421:10;9416:3;9412:20;9409:1;9402:31;9452:4;9449:1;9442:15;9476:4;9473:1;9466:15;9492:135;9531:3;-1:-1:-1;;9552:17:1;;9549:43;;;9572:18;;:::i;:::-;-1:-1:-1;9619:1:1;9608:13;;9492:135::o;9632:329::-;9834:2;9816:21;;;9873:1;9853:18;;;9846:29;-1:-1:-1;;;9906:2:1;9891:18;;9884:36;9952:2;9937:18;;9632:329::o;9966:168::-;10006:7;10072:1;10068;10064:6;10060:14;10057:1;10054:21;10049:1;10042:9;10035:17;10031:45;10028:71;;;10079:18;;:::i;:::-;-1:-1:-1;10119:9:1;;9966:168::o;10139:217::-;10179:1;10205;10195:132;;10249:10;10244:3;10240:20;10237:1;10230:31;10284:4;10281:1;10274:15;10312:4;10309:1;10302:15;10195:132;-1:-1:-1;10341:9:1;;10139:217::o;10361:128::-;10401:3;10432:1;10428:6;10425:1;10422:13;10419:39;;;10438:18;;:::i;:::-;-1:-1:-1;10474:9:1;;10361:128::o;12030:184::-;12100:6;12153:2;12141:9;12132:7;12128:23;12124:32;12121:52;;;12169:1;12166;12159:12;12121:52;-1:-1:-1;12192:16:1;;12030:184;-1:-1:-1;12030:184:1:o;12498:245::-;12565:6;12618:2;12606:9;12597:7;12593:23;12589:32;12586:52;;;12634:1;12631;12624:12;12586:52;12666:9;12660:16;12685:28;12707:5;12685:28;:::i;13375:125::-;13415:4;13443:1;13440;13437:8;13434:34;;;13448:18;;:::i;:::-;-1:-1:-1;13485:9:1;;13375:125::o;15783:980::-;16045:4;16093:3;16082:9;16078:19;16124:6;16113:9;16106:25;16150:2;16188:6;16183:2;16172:9;16168:18;16161:34;16231:3;16226:2;16215:9;16211:18;16204:31;16255:6;16290;16284:13;16321:6;16313;16306:22;16359:3;16348:9;16344:19;16337:26;;16398:2;16390:6;16386:15;16372:29;;16419:1;16429:195;16443:6;16440:1;16437:13;16429:195;;;16508:13;;-1:-1:-1;;;;;16504:39:1;16492:52;;16599:15;;;;16564:12;;;;16540:1;16458:9;16429:195;;;-1:-1:-1;;;;;;;16680:32:1;;;;16675:2;16660:18;;16653:60;-1:-1:-1;;;16744:3:1;16729:19;16722:35;16641:3;15783:980;-1:-1:-1;;;15783:980:1:o;17590:306::-;17678:6;17686;17694;17747:2;17735:9;17726:7;17722:23;17718:32;17715:52;;;17763:1;17760;17753:12;17715:52;17792:9;17786:16;17776:26;;17842:2;17831:9;17827:18;17821:25;17811:35;;17886:2;17875:9;17871:18;17865:25;17855:35;;17590:306;;;;;:::o

Swarm Source

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