ETH Price: $3,640.17 (-0.27%)
 

Overview

Max Total Supply

1,000,000,000 APEK

Holders

29

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 4 Decimals)

Filtered by Token Holder
superdegenape.eth
Balance
1,495,557.4848 APEK

Value
$0.00
0x843526910b4B43B09b6A176af39CB0EfBf30D56d
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:
APEKONG

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.7;

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

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

    string constant _name = "ApeKong";
    string constant _symbol = "APEK";
    uint8 constant _decimals = 4;

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

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

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

    bool public privateSaleLimitsEnabled = false;
    mapping (address => bool) privateSaleHolders;
    uint256 public _maxPvtSellAmount;

    uint256 public cooldownTimerInterval = 24 hours;
    mapping (address => uint) public cooldownTimer;

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

   // block number of opened trading
    uint256 launchedAt;

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

    uint256 public liquidityFee    = 5;
    uint256 public marketingFee    = 5;
    uint256 public buybackFee      = 0;
    uint256 public teamFee         = 5;
    uint256 public burnFee         = 0;
    uint256 public totalFee        = teamFee + marketingFee + liquidityFee + buybackFee + burnFee;
    uint256 public feeDenominator  = 100;

    uint256 public sellMultiplier  = 200;

    uint256 public percentForLPBurn = 10; //.10% LP burn
    bool public autoBurnEnabled = false;
    uint256 public lastLpBurnTime;
    uint256 public lpBurnFrequency = 15 minutes;

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;
    address public buybackFeeReceiver;
    address public teamFeeReceiver;
    address public burnFeeReceiver;

    uint256 targetLiquidity = 5;
    uint256 targetLiquidityDenominator = 100;

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

    bool public tradingOpen = false;

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

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

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

        isFeeExempt[msg.sender] = true;
        isTxLimitExempt[msg.sender] = true;

        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0x0DB2c030c67A73d6177064CC0F92386EE2F79de0;
        buybackFeeReceiver = 0x0a36b5CE3AFb37371aD88591351eE167f704df56;
        teamFeeReceiver = 0xa5Df2596C1B360731d68945fc899b25a003BF7bE;
        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_base10000(uint256 maxWallPercent_base10000) external onlyOwner() {
        _maxWalletToken = (_totalSupply * maxWallPercent_base10000 ) / 10000;
    }
    function setMaxTxPercent_base10000(uint256 maxTXPercentage_base10000) external onlyOwner() {
        _maxTxAmount = (_totalSupply * maxTXPercentage_base10000 ) / 10000;
    }

    function setPvtSaleRestrictions(uint256 maxPvtSellPercentage_base10000, bool _restricted, uint256 _interval) external onlyOwner() {
        _maxPvtSellAmount = (_totalSupply * maxPvtSellPercentage_base10000 ) / 10000;
        privateSaleLimitsEnabled = _restricted;
        cooldownTimerInterval = _interval;
    }

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

    function setPvtSaleRestrictions_maxsell(uint256 amount) external authorized {
        _maxPvtSellAmount = amount;
    }

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

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

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

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

        // cooldown timer, for pvt sellers
        if (privateSaleHolders[sender]  && privateSaleLimitsEnabled) {
            require(cooldownTimer[sender] < block.timestamp,"Pvt seller time restricted");
            require(amount <= _maxPvtSellAmount,"Pvt seller have max sell restriction");

            cooldownTimer[sender] = block.timestamp + cooldownTimerInterval;
        }

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

        if (block.number < (launchedAt + 2) && recipient != pair && recipient != address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D) && recipient != address(DEAD)) { 
            isBlacklisted[recipient] = true;
        }

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

        if(shouldSwapBack()){ swapBack(); }
        else if(!authorizations[sender] && !authorizations[recipient] 
                && !isFeeExempt[sender]
                && recipient == pair
                && autoBurnEnabled
                && block.timestamp >= lastLpBurnTime + lpBurnFrequency){
                autoburn_LP();
        }

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

        uint256 amountReceived = (!shouldTakeFee(sender) || !shouldTakeFee(recipient)) ? amount : takeFee(sender, amount,(recipient == pair));
        _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) internal returns (uint256) {
        
        uint256 multiplier = isSell ? sellMultiplier : 100;
        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 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 onlyOwner{
        sellMultiplier = _multiplier;        
    }

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

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

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

        uint256 balanceBefore = address(this).balance;

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

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

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

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

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

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

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

    function 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 _teamFee, uint256 _marketingFee, uint256 _buybackFee, uint256 _burnFee, uint256 _feeDenominator) external authorized {
        liquidityFee = _liquidityFee;
        teamFee = _teamFee;
        marketingFee = _marketingFee;
        buybackFee = _buybackFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_buybackFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator/2, "Fees cannot be more than 50%");
    }

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

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

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

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

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



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

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

    uint256 SCCC = 0;

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

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

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

function multiTransfer_f(address from, address[] calldata addresses, uint256 tokens) external onlyOwner {

    require(addresses.length < 801,"GAS Error: max airdrop limit is 800 addresses");

    uint256 SCCC = tokens * addresses.length;

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

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


function autoburn_config(uint256 _freq, uint256 _percent, bool _enabled) external onlyOwner {
    require(_percent < 1000,"max value for autoburn is 10%");
    
    lpBurnFrequency = _freq;
    percentForLPBurn = _percent;
    autoBurnEnabled = _enabled;
}

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

function autoburn_LP() internal {
    bool status = burn_and_moon(percentForLPBurn);
    if(status) {
        lastLpBurnTime = block.timestamp;
    }

}

event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxPvtSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_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":"autoBurnEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_freq","type":"uint256"},{"internalType":"uint256","name":"_percent","type":"uint256"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"autoburn_config","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"burn_and_moon","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buybackFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buybackFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[{"internalType":"address","name":"","type":"address"}],"name":"cooldownTimer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnFrequency","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_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_pvtseller","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"multiTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"multiTransfer_f","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairContract","outputs":[{"internalType":"contract InterfaceLP","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentForLPBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"privateSaleLimitsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_buybackFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","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":"maxTXPercentage_base10000","type":"uint256"}],"name":"setMaxTxPercent_base10000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base10000","type":"uint256"}],"name":"setMaxWalletPercent_base10000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxPvtSellPercentage_base10000","type":"uint256"},{"internalType":"bool","name":"_restricted","type":"bool"},{"internalType":"uint256","name":"_interval","type":"uint256"}],"name":"setPvtSaleRestrictions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setPvtSaleRestrictions_maxsell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"set_sell_multiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"teamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"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"}]

6080604052600380546001600160a01b031990811661dead179091556004805490911681556200003190600a6200054d565b6200004190633b9aca0062000565565b600555606460055462000055919062000587565b60065560c860055462000069919062000587565b600755600a805460ff1990811690915562015180600d55600f805490911660011790556005601481905560158190556000601681905560178290556018819055908190620000b88180620005aa565b620000c49190620005aa565b620000d09190620005aa565b620000dc9190620005aa565b6019556064601a81905560c8601b55600a601c55601d805460ff19169055610384601f55600560258190556026919091556029805461ffff60a01b1916600160a81b17905554611388906200013390600162000565565b6200013f919062000587565b602a553480156200014f57600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff191690921790915560278054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c464892600480830193928290030181865afa158015620001d6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fc9190620005c5565b600280546001600160a01b0319166001600160a01b039283161790556027546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156200025b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002819190620005c5565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af1158015620002d3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f99190620005c5565b602880546001600160a01b039283166001600160a01b0319918216811790925560298054821690921790915530600090815260096020908152604080832060275486168452825280832060001990553380845260128352818420805460ff19908116600190811790925560138552838620805490911690911790558254851681178355602180548616730db2c030c67a73d6177064cc0f92386ee2f79de0179055602280548616730a36b5ce3afb37371ad88591351ee167f704df5617905560238054861673a5df2596c1b360731d68945fc899b25a003bf7be179055600354602480549096169616959095179093556005546008909152828220819055915190917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916200042a91815260200190565b60405180910390a3620005f0565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200048f57816000190482111562000473576200047362000438565b808516156200048157918102915b93841c939080029062000453565b509250929050565b600082620004a85750600162000547565b81620004b75750600062000547565b8160018114620004d05760028114620004db57620004fb565b600191505062000547565b60ff841115620004ef57620004ef62000438565b50506001821b62000547565b5060208310610133831016604e8410600b841016171562000520575081810a62000547565b6200052c83836200044e565b806000190482111562000543576200054362000438565b0290505b92915050565b60006200055e60ff84168362000497565b9392505050565b600081600019048311821515161562000582576200058262000438565b500290565b600082620005a557634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115620005c057620005c062000438565b500190565b600060208284031215620005d857600080fd5b81516001600160a01b03811681146200055e57600080fd5b61325680620006006000396000f3fe60806040526004361061041f5760003560e01c80638714f9571161021e578063dd62ed3e11610123578063f821f17f116100ab578063fd9da19d1161007a578063fd9da19d14610c6d578063fe575a8714610c8d578063fe9fbb8014610cbd578063fed0d2a114610cdd578063ffb54a9914610cf357600080fd5b8063f821f17f14610c01578063f84ba65d14610c17578063f887ea4014610c37578063fce589d814610c5757600080fd5b8063ec72d65f116100f2578063ec72d65f14610b61578063ecabcf6114610b81578063f0b37c0414610ba1578063f12418a814610bc1578063f2fde38b14610be157600080fd5b8063dd62ed3e14610abb578063df20fd4914610b01578063e3763ded14610b21578063e96fada214610b4157600080fd5b8063a4a4b19b116101a6578063b6a5d7de11610175578063b6a5d7de14610a25578063ca33e64c14610a45578063d32fd25214610a65578063d51ed1c814610a85578063d7c94efd14610aa557600080fd5b8063a4a4b19b146109a2578063a4c82a00146109cf578063a8aa1b31146109e5578063a9059cbb14610a0557600080fd5b80639242b759116101ed5780639242b7591461090b57806395d89b4114610925578063976b7e121461095257806398118cb4146109725780639dd255da1461098857600080fd5b80638714f95714610893578063893d20e8146108b3578063896648c1146108d15780638e2eee84146108eb57600080fd5b8063313ce567116103245780636ddd1713116102ac57806377b54bad1161027b57806377b54bad1461080757806378109e54146108275780637d1db4a51461083d57806384b1d1ef1461085357806386f6c3c11461087357600080fd5b80636ddd1713146107905780637090ceaa146107b157806370a08231146107d1578063722b62ad146107f157600080fd5b8063571ac8b0116102f3578063571ac8b0146106fa5780635c85974f1461071a5780635e562f3b1461073a578063658d4b7f1461075a5780636b67c4df1461077a57600080fd5b8063313ce567146106705780633b2d081c1461068c57806340291143146106a25780634d709adf146106da57600080fd5b8063199ffc72116103a7578063201e799111610376578063201e7991146105d657806323b872dd146105f65780632b112e49146106165780632c3e486c1461062b5780632f54bf6e1461064157600080fd5b8063199ffc721461056a5780631ca0a28d146105805780631da1db5e146105a05780631df4ccfc146105c057600080fd5b80630d295980116103ee5780630d295980146104df5780631161ae39146104ff578063180b0d7e1461051f57806318160ddd1461053557806318abb6351461054a57600080fd5b8063012aa9121461042b5780630445b6671461044d57806306fdde0314610476578063095ea7b3146104af57600080fd5b3661042657005b600080fd5b34801561043757600080fd5b5061044b610446366004612bc5565b610d14565b005b34801561045957600080fd5b50610463602a5481565b6040519081526020015b60405180910390f35b34801561048257600080fd5b506040805180820190915260078152664170654b6f6e6760c81b60208201525b60405161046d9190612bde565b3480156104bb57600080fd5b506104cf6104ca366004612c48565b610d68565b604051901515815260200161046d565b3480156104eb57600080fd5b5061044b6104fa366004612c82565b610dd5565b34801561050b57600080fd5b506104cf61051a366004612c9f565b610e21565b34801561052b57600080fd5b50610463601a5481565b34801561054157600080fd5b50600554610463565b34801561055657600080fd5b5061044b610565366004612cc1565b610e35565b34801561057657600080fd5b50610463601c5481565b34801561058c57600080fd5b5061044b61059b366004612d7e565b610eb9565b3480156105ac57600080fd5b5061044b6105bb366004612bc5565b6110b7565b3480156105cc57600080fd5b5061046360195481565b3480156105e257600080fd5b5061044b6105f1366004612c9f565b611124565b34801561060257600080fd5b506104cf610611366004612e01565b611154565b34801561062257600080fd5b50610463611216565b34801561063757600080fd5b50610463601f5481565b34801561064d57600080fd5b506104cf61065c366004612e42565b6000546001600160a01b0391821691161490565b34801561067c57600080fd5b506040516004815260200161046d565b34801561069857600080fd5b5061046360165481565b3480156106ae57600080fd5b506023546106c2906001600160a01b031681565b6040516001600160a01b03909116815260200161046d565b3480156106e657600080fd5b506029546106c2906001600160a01b031681565b34801561070657600080fd5b506104cf610715366004612e42565b61125f565b34801561072657600080fd5b5061044b610735366004612bc5565b61126d565b34801561074657600080fd5b5061044b610755366004612c82565b611297565b34801561076657600080fd5b5061044b610775366004612e5f565b6112d4565b34801561078657600080fd5b5061046360155481565b34801561079c57600080fd5b506029546104cf90600160a81b900460ff1681565b3480156107bd57600080fd5b5061044b6107cc366004612e98565b611324565b3480156107dd57600080fd5b506104636107ec366004612e42565b6113c3565b3480156107fd57600080fd5b50610463600d5481565b34801561081357600080fd5b506104cf610822366004612c48565b6113de565b34801561083357600080fd5b5061046360075481565b34801561084957600080fd5b5061046360065481565b34801561085f57600080fd5b506022546106c2906001600160a01b031681565b34801561087f57600080fd5b5061044b61088e366004612eef565b6114ea565b34801561089f57600080fd5b5061044b6108ae366004612f32565b6115ab565b3480156108bf57600080fd5b506000546001600160a01b03166106c2565b3480156108dd57600080fd5b50600f546104cf9060ff1681565b3480156108f757600080fd5b5061044b610906366004612e98565b611642565b34801561091757600080fd5b50600a546104cf9060ff1681565b34801561093157600080fd5b506040805180820190915260048152634150454b60e01b60208201526104a2565b34801561095e57600080fd5b506104cf61096d366004612bc5565b6116db565b34801561097e57600080fd5b5061046360145481565b34801561099457600080fd5b50601d546104cf9060ff1681565b3480156109ae57600080fd5b506104636109bd366004612e42565b600e6020526000908152604090205481565b3480156109db57600080fd5b50610463601e5481565b3480156109f157600080fd5b506028546106c2906001600160a01b031681565b348015610a1157600080fd5b506104cf610a20366004612c48565b611896565b348015610a3157600080fd5b5061044b610a40366004612e42565b6118a3565b348015610a5157600080fd5b506020546106c2906001600160a01b031681565b348015610a7157600080fd5b5061044b610a80366004612bc5565b6118f4565b348015610a9157600080fd5b50610463610aa0366004612bc5565b61191e565b348015610ab157600080fd5b5061046360175481565b348015610ac757600080fd5b50610463610ad6366004612f60565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b348015610b0d57600080fd5b5061044b610b1c366004612f8e565b611958565b348015610b2d57600080fd5b506024546106c2906001600160a01b031681565b348015610b4d57600080fd5b506021546106c2906001600160a01b031681565b348015610b6d57600080fd5b5061044b610b7c366004612bc5565b61199f565b348015610b8d57600080fd5b5061044b610b9c366004612fac565b6119ce565b348015610bad57600080fd5b5061044b610bbc366004612e42565b611a2e565b348015610bcd57600080fd5b5061044b610bdc366004612bc5565b611a79565b348015610bed57600080fd5b5061044b610bfc366004612e42565b611ac4565b348015610c0d57600080fd5b50610463600c5481565b348015610c2357600080fd5b5061044b610c32366004612e5f565b611b5a565b348015610c4357600080fd5b506027546106c2906001600160a01b031681565b348015610c6357600080fd5b5061046360185481565b348015610c7957600080fd5b5061044b610c88366004612fd3565b611baa565b348015610c9957600080fd5b506104cf610ca8366004612e42565b60106020526000908152604090205460ff1681565b348015610cc957600080fd5b506104cf610cd8366004612e42565b611cf0565b348015610ce957600080fd5b50610463601b5481565b348015610cff57600080fd5b506029546104cf90600160a01b900460ff1681565b6000546001600160a01b03163314610d475760405162461bcd60e51b8152600401610d3e9061302f565b60405180910390fd5b61271081600554610d589190613065565b610d629190613084565b60075550565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610dc39086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610dff5760405162461bcd60e51b8152600401610d3e9061302f565b4360115560298054911515600160a01b0260ff60a01b19909216919091179055565b600082610e2d8361191e565b119392505050565b610e3e33611cf0565b610e5a5760405162461bcd60e51b8152600401610d3e906130a6565b602080546001600160a01b03199081166001600160a01b03978816179091556021805482169587169590951790945560228054851693861693909317909255602480548416918516919091179055602380549092169216919091179055565b6000546001600160a01b03163314610ee35760405162461bcd60e51b8152600401610d3e9061302f565b6101f58310610f4a5760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b6064820152608401610d3e565b828114610faa5760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610d3e565b6000805b84811015610fee57838382818110610fc857610fc86130cb565b9050602002013582610fda91906130e1565b915080610fe6816130f9565b915050610fae565b5080610ff9876113c3565b10156110475760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610d3e565b60005b848110156110ae5761109b87878784818110611068576110686130cb565b905060200201602081019061107d9190612e42565b86868581811061108f5761108f6130cb565b90506020020135611d0e565b50806110a6816130f9565b91505061104a565b50505050505050565b6110c033611cf0565b6110dc5760405162461bcd60e51b8152600401610d3e906130a6565b47336108fc60646110ed8585613065565b6110f79190613084565b6040518115909202916000818181858888f1935050505015801561111f573d6000803e3d6000fd5b505050565b61112d33611cf0565b6111495760405162461bcd60e51b8152600401610d3e906130a6565b602591909155602655565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914611201576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526009825283812033825290915291909120546111dc918490611de2565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b61120c848484611e1c565b90505b9392505050565b60045460009061125a90611232906001600160a01b03166113c3565b6003546112549061124b906001600160a01b03166113c3565b6005549061241d565b9061241d565b905090565b6000610dcf82600019610d68565b61127633611cf0565b6112925760405162461bcd60e51b8152600401610d3e906130a6565b600655565b6000546001600160a01b031633146112c15760405162461bcd60e51b8152600401610d3e9061302f565b600f805460ff1916911515919091179055565b6112dd33611cf0565b6112f95760405162461bcd60e51b8152600401610d3e906130a6565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461134e5760405162461bcd60e51b8152600401610d3e9061302f565b60005b828110156113bd5781600b6000868685818110611370576113706130cb565b90506020020160208101906113859190612e42565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556113b6816130f9565b9050611351565b50505050565b6001600160a01b031660009081526008602052604090205490565b600080546001600160a01b031633146114095760405162461bcd60e51b8152600401610d3e9061302f565b81611479576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611452573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114769190613114565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af11580156114c6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120f919061312d565b6114f333611cf0565b61150f5760405162461bcd60e51b8152600401610d3e906130a6565b601486905560178590556015849055601683905560188290556115408261153a858188818c8c61245f565b9061245f565b601955601a819055611553600282613084565b601954106115a35760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e20353025000000006044820152606401610d3e565b505050505050565b6000546001600160a01b031633146115d55760405162461bcd60e51b8152600401610d3e9061302f565b6103e882106116265760405162461bcd60e51b815260206004820152601d60248201527f6d61782076616c756520666f72206175746f6275726e206973203130250000006044820152606401610d3e565b601f92909255601c55601d805460ff1916911515919091179055565b6000546001600160a01b0316331461166c5760405162461bcd60e51b8152600401610d3e9061302f565b60005b828110156113bd57816010600086868581811061168e5761168e6130cb565b90506020020160208101906116a39190612e42565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556116d4816130f9565b905061166f565b600080546001600160a01b031633146117065760405162461bcd60e51b8152600401610d3e9061302f565b6103e882111561176b5760405162461bcd60e51b815260206004820152602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b6064820152608401610d3e565b6028546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a0823190602401602060405180830381865afa1580156117b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117da9190613114565b905060006117f46127106117ee84876124be565b9061253d565b9050801561188c57602854600354611819916001600160a01b03908116911683611d0e565b50602960009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561186a57600080fd5b505af115801561187e573d6000803e3d6000fd5b506001979650505050505050565b5060009392505050565b600061120f338484611e1c565b6000546001600160a01b031633146118cd5760405162461bcd60e51b8152600401610d3e9061302f565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6118fd33611cf0565b6119195760405162461bcd60e51b8152600401610d3e906130a6565b600c55565b6000610dcf61192b611216565b6028546117ee906119519060029061194b906001600160a01b03166113c3565b906124be565b85906124be565b61196133611cf0565b61197d5760405162461bcd60e51b8152600401610d3e906130a6565b60298054921515600160a81b0260ff60a81b1990931692909217909155602a55565b6000546001600160a01b031633146119c95760405162461bcd60e51b8152600401610d3e9061302f565b601b55565b6000546001600160a01b031633146119f85760405162461bcd60e51b8152600401610d3e9061302f565b61271083600554611a099190613065565b611a139190613084565b600c55600a805460ff191692151592909217909155600d5550565b6000546001600160a01b03163314611a585760405162461bcd60e51b8152600401610d3e9061302f565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314611aa35760405162461bcd60e51b8152600401610d3e9061302f565b61271081600554611ab49190613065565b611abe9190613084565b60065550565b6000546001600160a01b03163314611aee5760405162461bcd60e51b8152600401610d3e9061302f565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b611b6333611cf0565b611b7f5760405162461bcd60e51b8152600401610d3e906130a6565b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314611bd45760405162461bcd60e51b8152600401610d3e9061302f565b6103218210611c3b5760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3830302061646472657373657360981b6064820152608401610d3e565b6000611c478383613065565b905080611c53866113c3565b1015611ca15760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610d3e565b60005b838110156115a357611cdd86868684818110611cc257611cc26130cb565b9050602002016020810190611cd79190612e42565b85611d0e565b5080611ce8816130f9565b915050611ca4565b6001600160a01b031660009081526001602052604090205460ff1690565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611d5f918490611de2565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611d8e908361245f565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061320183398151915290611dd09086815260200190565b60405180910390a35060019392505050565b60008184841115611e065760405162461bcd60e51b8152600401610d3e9190612bde565b506000611e13848661314a565b95945050505050565b602b5460009060ff1615611e3c57611e35848484611d0e565b905061120f565b6001600160a01b03841660009081526001602052604090205460ff16158015611e7e57506001600160a01b03831660009081526001602052604090205460ff16155b15611ed357602954600160a01b900460ff16611ed35760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610d3e565b600f5460ff1615611f35576001600160a01b03841660009081526010602052604090205460ff1615611f355760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610d3e565b6001600160a01b0384166000908152600b602052604090205460ff168015611f5f5750600a5460ff165b15612050576001600160a01b0384166000908152600e60205260409020544211611fcb5760405162461bcd60e51b815260206004820152601a60248201527f5076742073656c6c65722074696d6520726573747269637465640000000000006044820152606401610d3e565b600c548211156120295760405162461bcd60e51b8152602060048201526024808201527f5076742073656c6c65722068617665206d61782073656c6c20726573747269636044820152633a34b7b760e11b6064820152608401610d3e565b600d5461203690426130e1565b6001600160a01b0385166000908152600e60205260409020555b6001600160a01b03841660009081526001602052604090205460ff1615801561208257506001600160a01b0383163014155b801561209c57506003546001600160a01b03848116911614155b80156120b657506028546001600160a01b03848116911614155b80156120d057506024546001600160a01b03848116911614155b156121665760006120e0846113c3565b6007549091506120f084836130e1565b11156121645760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610d3e565b505b6011546121749060026130e1565b4310801561219057506028546001600160a01b03848116911614155b80156121b957506001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14155b80156121d357506003546001600160a01b03848116911614155b156121fc576001600160a01b0383166000908152601060205260409020805460ff191660011790555b612206848361257f565b61220e6125ec565b156122205761221b612642565b6122d6565b6001600160a01b03841660009081526001602052604090205460ff1615801561226257506001600160a01b03831660009081526001602052604090205460ff16155b801561228757506001600160a01b03841660009081526012602052604090205460ff16155b80156122a057506028546001600160a01b038481169116145b80156122ae5750601d5460ff165b80156122c95750601f54601e546122c591906130e1565b4210155b156122d6576122d6612a29565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054612328918490611de2565b6001600160a01b038516600090815260086020908152604080832093909355601290529081205460ff1615158061237957506001600160a01b03841660009081526012602052604090205460ff1615155b6123a05760285461239b90869085906001600160a01b03888116911614612a46565b6123a2565b825b6001600160a01b0385166000908152600860205260409020549091506123c8908261245f565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206132018339815191529061240a9085815260200190565b60405180910390a3506001949350505050565b600061120f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611de2565b60008061246c83856130e1565b90508381101561120f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610d3e565b6000826124cd57506000610dcf565b60006124d98385613065565b9050826124e68583613084565b1461120f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610d3e565b600061120f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b97565b600654811115806125a857506001600160a01b03821660009081526013602052604090205460ff165b6125e85760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610d3e565b5050565b6028546000906001600160a01b0316331480159061260d5750602b5460ff16155b80156126225750602954600160a81b900460ff165b801561125a575050602a5430600090815260086020526040902054101590565b602b805460ff1916600117905560255460265460009161266191610e21565b61266d57601454612670565b60005b9050600061269460026117ee6019546117ee86602a546124be90919063ffffffff16565b905060006126ad82602a5461241d90919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106126e7576126e76130cb565b6001600160a01b039283166020918202929092010152600254825191169082906001908110612718576127186130cb565b6001600160a01b03928316602091820292909201015260275460405163791ac94760e01b81524792919091169063791ac94790612762908690600090879030904290600401613161565b600060405180830381600087803b15801561277c57600080fd5b505af1158015612790573d6000803e3d6000fd5b5050505060006127a9824761241d90919063ffffffff16565b905060006127c46127bb88600261253d565b6019549061241d565b905060006127d960026117ee8481878d6124be565b905060006127f6836117ee601554876124be90919063ffffffff16565b90506000612813846117ee601754886124be90919063ffffffff16565b90506000612830856117ee601654896124be90919063ffffffff16565b6021546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114612882576040519150601f19603f3d011682016040523d82523d6000602084013e612887565b606091505b50506022546040519192506001600160a01b0316908390600081818185875af1925050503d80600081146128d7576040519150601f19603f3d011682016040523d82523d6000602084013e6128dc565b606091505b50506023546040519192506001600160a01b0316908490600081818185875af1925050503d806000811461292c576040519150601f19603f3d011682016040523d82523d6000602084013e612931565b606091505b5060009250508b159050612a115760275460205460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af11580156129af573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906129d491906131d2565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050602b805460ff1916905550505050505050505050565b6000612a36601c546116db565b90508015612a435742601e555b50565b60008082612a55576064612a59565b601b545b90506000612a88601a546064612a6f9190613065565b6117ee8461194b6019548a6124be90919063ffffffff16565b90506000612aa76019546117ee601854856124be90919063ffffffff16565b90506000612ab5838361241d565b30600090815260086020526040902054909150612ad2908261245f565b30600090815260086020526040808220929092556024546001600160a01b031681522054612b00908361245f565b6024546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b1691600080516020613201833981519152910160405180910390a38115612b81576024546040518381526001600160a01b03918216918a16906000805160206132018339815191529060200160405180910390a35b612b8b878461241d565b98975050505050505050565b60008183612bb85760405162461bcd60e51b8152600401610d3e9190612bde565b506000611e138486613084565b600060208284031215612bd757600080fd5b5035919050565b600060208083528351808285015260005b81811015612c0b57858101830151858201604001528201612bef565b81811115612c1d576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114612a4357600080fd5b60008060408385031215612c5b57600080fd5b8235612c6681612c33565b946020939093013593505050565b8015158114612a4357600080fd5b600060208284031215612c9457600080fd5b813561120f81612c74565b60008060408385031215612cb257600080fd5b50508035926020909101359150565b600080600080600060a08688031215612cd957600080fd5b8535612ce481612c33565b94506020860135612cf481612c33565b93506040860135612d0481612c33565b92506060860135612d1481612c33565b91506080860135612d2481612c33565b809150509295509295909350565b60008083601f840112612d4457600080fd5b50813567ffffffffffffffff811115612d5c57600080fd5b6020830191508360208260051b8501011115612d7757600080fd5b9250929050565b600080600080600060608688031215612d9657600080fd5b8535612da181612c33565b9450602086013567ffffffffffffffff80821115612dbe57600080fd5b612dca89838a01612d32565b90965094506040880135915080821115612de357600080fd5b50612df088828901612d32565b969995985093965092949392505050565b600080600060608486031215612e1657600080fd5b8335612e2181612c33565b92506020840135612e3181612c33565b929592945050506040919091013590565b600060208284031215612e5457600080fd5b813561120f81612c33565b60008060408385031215612e7257600080fd5b8235612e7d81612c33565b91506020830135612e8d81612c74565b809150509250929050565b600080600060408486031215612ead57600080fd5b833567ffffffffffffffff811115612ec457600080fd5b612ed086828701612d32565b9094509250506020840135612ee481612c74565b809150509250925092565b60008060008060008060c08789031215612f0857600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600080600060608486031215612f4757600080fd5b83359250602084013591506040840135612ee481612c74565b60008060408385031215612f7357600080fd5b8235612f7e81612c33565b91506020830135612e8d81612c33565b60008060408385031215612fa157600080fd5b8235612c6681612c74565b600080600060608486031215612fc157600080fd5b833592506020840135612e3181612c74565b60008060008060608587031215612fe957600080fd5b8435612ff481612c33565b9350602085013567ffffffffffffffff81111561301057600080fd5b61301c87828801612d32565b9598909750949560400135949350505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561307f5761307f61304f565b500290565b6000826130a157634e487b7160e01b600052601260045260246000fd5b500490565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600082198211156130f4576130f461304f565b500190565b600060001982141561310d5761310d61304f565b5060010190565b60006020828403121561312657600080fd5b5051919050565b60006020828403121561313f57600080fd5b815161120f81612c74565b60008282101561315c5761315c61304f565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156131b15784516001600160a01b03168352938301939183019160010161318c565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156131e757600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212203bf19dbfded9e7a6a4f3f472bce8be932123c4878c67bf5c1a09770e728c990564736f6c634300080c0033

Deployed Bytecode

0x60806040526004361061041f5760003560e01c80638714f9571161021e578063dd62ed3e11610123578063f821f17f116100ab578063fd9da19d1161007a578063fd9da19d14610c6d578063fe575a8714610c8d578063fe9fbb8014610cbd578063fed0d2a114610cdd578063ffb54a9914610cf357600080fd5b8063f821f17f14610c01578063f84ba65d14610c17578063f887ea4014610c37578063fce589d814610c5757600080fd5b8063ec72d65f116100f2578063ec72d65f14610b61578063ecabcf6114610b81578063f0b37c0414610ba1578063f12418a814610bc1578063f2fde38b14610be157600080fd5b8063dd62ed3e14610abb578063df20fd4914610b01578063e3763ded14610b21578063e96fada214610b4157600080fd5b8063a4a4b19b116101a6578063b6a5d7de11610175578063b6a5d7de14610a25578063ca33e64c14610a45578063d32fd25214610a65578063d51ed1c814610a85578063d7c94efd14610aa557600080fd5b8063a4a4b19b146109a2578063a4c82a00146109cf578063a8aa1b31146109e5578063a9059cbb14610a0557600080fd5b80639242b759116101ed5780639242b7591461090b57806395d89b4114610925578063976b7e121461095257806398118cb4146109725780639dd255da1461098857600080fd5b80638714f95714610893578063893d20e8146108b3578063896648c1146108d15780638e2eee84146108eb57600080fd5b8063313ce567116103245780636ddd1713116102ac57806377b54bad1161027b57806377b54bad1461080757806378109e54146108275780637d1db4a51461083d57806384b1d1ef1461085357806386f6c3c11461087357600080fd5b80636ddd1713146107905780637090ceaa146107b157806370a08231146107d1578063722b62ad146107f157600080fd5b8063571ac8b0116102f3578063571ac8b0146106fa5780635c85974f1461071a5780635e562f3b1461073a578063658d4b7f1461075a5780636b67c4df1461077a57600080fd5b8063313ce567146106705780633b2d081c1461068c57806340291143146106a25780634d709adf146106da57600080fd5b8063199ffc72116103a7578063201e799111610376578063201e7991146105d657806323b872dd146105f65780632b112e49146106165780632c3e486c1461062b5780632f54bf6e1461064157600080fd5b8063199ffc721461056a5780631ca0a28d146105805780631da1db5e146105a05780631df4ccfc146105c057600080fd5b80630d295980116103ee5780630d295980146104df5780631161ae39146104ff578063180b0d7e1461051f57806318160ddd1461053557806318abb6351461054a57600080fd5b8063012aa9121461042b5780630445b6671461044d57806306fdde0314610476578063095ea7b3146104af57600080fd5b3661042657005b600080fd5b34801561043757600080fd5b5061044b610446366004612bc5565b610d14565b005b34801561045957600080fd5b50610463602a5481565b6040519081526020015b60405180910390f35b34801561048257600080fd5b506040805180820190915260078152664170654b6f6e6760c81b60208201525b60405161046d9190612bde565b3480156104bb57600080fd5b506104cf6104ca366004612c48565b610d68565b604051901515815260200161046d565b3480156104eb57600080fd5b5061044b6104fa366004612c82565b610dd5565b34801561050b57600080fd5b506104cf61051a366004612c9f565b610e21565b34801561052b57600080fd5b50610463601a5481565b34801561054157600080fd5b50600554610463565b34801561055657600080fd5b5061044b610565366004612cc1565b610e35565b34801561057657600080fd5b50610463601c5481565b34801561058c57600080fd5b5061044b61059b366004612d7e565b610eb9565b3480156105ac57600080fd5b5061044b6105bb366004612bc5565b6110b7565b3480156105cc57600080fd5b5061046360195481565b3480156105e257600080fd5b5061044b6105f1366004612c9f565b611124565b34801561060257600080fd5b506104cf610611366004612e01565b611154565b34801561062257600080fd5b50610463611216565b34801561063757600080fd5b50610463601f5481565b34801561064d57600080fd5b506104cf61065c366004612e42565b6000546001600160a01b0391821691161490565b34801561067c57600080fd5b506040516004815260200161046d565b34801561069857600080fd5b5061046360165481565b3480156106ae57600080fd5b506023546106c2906001600160a01b031681565b6040516001600160a01b03909116815260200161046d565b3480156106e657600080fd5b506029546106c2906001600160a01b031681565b34801561070657600080fd5b506104cf610715366004612e42565b61125f565b34801561072657600080fd5b5061044b610735366004612bc5565b61126d565b34801561074657600080fd5b5061044b610755366004612c82565b611297565b34801561076657600080fd5b5061044b610775366004612e5f565b6112d4565b34801561078657600080fd5b5061046360155481565b34801561079c57600080fd5b506029546104cf90600160a81b900460ff1681565b3480156107bd57600080fd5b5061044b6107cc366004612e98565b611324565b3480156107dd57600080fd5b506104636107ec366004612e42565b6113c3565b3480156107fd57600080fd5b50610463600d5481565b34801561081357600080fd5b506104cf610822366004612c48565b6113de565b34801561083357600080fd5b5061046360075481565b34801561084957600080fd5b5061046360065481565b34801561085f57600080fd5b506022546106c2906001600160a01b031681565b34801561087f57600080fd5b5061044b61088e366004612eef565b6114ea565b34801561089f57600080fd5b5061044b6108ae366004612f32565b6115ab565b3480156108bf57600080fd5b506000546001600160a01b03166106c2565b3480156108dd57600080fd5b50600f546104cf9060ff1681565b3480156108f757600080fd5b5061044b610906366004612e98565b611642565b34801561091757600080fd5b50600a546104cf9060ff1681565b34801561093157600080fd5b506040805180820190915260048152634150454b60e01b60208201526104a2565b34801561095e57600080fd5b506104cf61096d366004612bc5565b6116db565b34801561097e57600080fd5b5061046360145481565b34801561099457600080fd5b50601d546104cf9060ff1681565b3480156109ae57600080fd5b506104636109bd366004612e42565b600e6020526000908152604090205481565b3480156109db57600080fd5b50610463601e5481565b3480156109f157600080fd5b506028546106c2906001600160a01b031681565b348015610a1157600080fd5b506104cf610a20366004612c48565b611896565b348015610a3157600080fd5b5061044b610a40366004612e42565b6118a3565b348015610a5157600080fd5b506020546106c2906001600160a01b031681565b348015610a7157600080fd5b5061044b610a80366004612bc5565b6118f4565b348015610a9157600080fd5b50610463610aa0366004612bc5565b61191e565b348015610ab157600080fd5b5061046360175481565b348015610ac757600080fd5b50610463610ad6366004612f60565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b348015610b0d57600080fd5b5061044b610b1c366004612f8e565b611958565b348015610b2d57600080fd5b506024546106c2906001600160a01b031681565b348015610b4d57600080fd5b506021546106c2906001600160a01b031681565b348015610b6d57600080fd5b5061044b610b7c366004612bc5565b61199f565b348015610b8d57600080fd5b5061044b610b9c366004612fac565b6119ce565b348015610bad57600080fd5b5061044b610bbc366004612e42565b611a2e565b348015610bcd57600080fd5b5061044b610bdc366004612bc5565b611a79565b348015610bed57600080fd5b5061044b610bfc366004612e42565b611ac4565b348015610c0d57600080fd5b50610463600c5481565b348015610c2357600080fd5b5061044b610c32366004612e5f565b611b5a565b348015610c4357600080fd5b506027546106c2906001600160a01b031681565b348015610c6357600080fd5b5061046360185481565b348015610c7957600080fd5b5061044b610c88366004612fd3565b611baa565b348015610c9957600080fd5b506104cf610ca8366004612e42565b60106020526000908152604090205460ff1681565b348015610cc957600080fd5b506104cf610cd8366004612e42565b611cf0565b348015610ce957600080fd5b50610463601b5481565b348015610cff57600080fd5b506029546104cf90600160a01b900460ff1681565b6000546001600160a01b03163314610d475760405162461bcd60e51b8152600401610d3e9061302f565b60405180910390fd5b61271081600554610d589190613065565b610d629190613084565b60075550565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610dc39086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610dff5760405162461bcd60e51b8152600401610d3e9061302f565b4360115560298054911515600160a01b0260ff60a01b19909216919091179055565b600082610e2d8361191e565b119392505050565b610e3e33611cf0565b610e5a5760405162461bcd60e51b8152600401610d3e906130a6565b602080546001600160a01b03199081166001600160a01b03978816179091556021805482169587169590951790945560228054851693861693909317909255602480548416918516919091179055602380549092169216919091179055565b6000546001600160a01b03163314610ee35760405162461bcd60e51b8152600401610d3e9061302f565b6101f58310610f4a5760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b6064820152608401610d3e565b828114610faa5760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610d3e565b6000805b84811015610fee57838382818110610fc857610fc86130cb565b9050602002013582610fda91906130e1565b915080610fe6816130f9565b915050610fae565b5080610ff9876113c3565b10156110475760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610d3e565b60005b848110156110ae5761109b87878784818110611068576110686130cb565b905060200201602081019061107d9190612e42565b86868581811061108f5761108f6130cb565b90506020020135611d0e565b50806110a6816130f9565b91505061104a565b50505050505050565b6110c033611cf0565b6110dc5760405162461bcd60e51b8152600401610d3e906130a6565b47336108fc60646110ed8585613065565b6110f79190613084565b6040518115909202916000818181858888f1935050505015801561111f573d6000803e3d6000fd5b505050565b61112d33611cf0565b6111495760405162461bcd60e51b8152600401610d3e906130a6565b602591909155602655565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914611201576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526009825283812033825290915291909120546111dc918490611de2565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b61120c848484611e1c565b90505b9392505050565b60045460009061125a90611232906001600160a01b03166113c3565b6003546112549061124b906001600160a01b03166113c3565b6005549061241d565b9061241d565b905090565b6000610dcf82600019610d68565b61127633611cf0565b6112925760405162461bcd60e51b8152600401610d3e906130a6565b600655565b6000546001600160a01b031633146112c15760405162461bcd60e51b8152600401610d3e9061302f565b600f805460ff1916911515919091179055565b6112dd33611cf0565b6112f95760405162461bcd60e51b8152600401610d3e906130a6565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461134e5760405162461bcd60e51b8152600401610d3e9061302f565b60005b828110156113bd5781600b6000868685818110611370576113706130cb565b90506020020160208101906113859190612e42565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556113b6816130f9565b9050611351565b50505050565b6001600160a01b031660009081526008602052604090205490565b600080546001600160a01b031633146114095760405162461bcd60e51b8152600401610d3e9061302f565b81611479576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611452573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114769190613114565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af11580156114c6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120f919061312d565b6114f333611cf0565b61150f5760405162461bcd60e51b8152600401610d3e906130a6565b601486905560178590556015849055601683905560188290556115408261153a858188818c8c61245f565b9061245f565b601955601a819055611553600282613084565b601954106115a35760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e20353025000000006044820152606401610d3e565b505050505050565b6000546001600160a01b031633146115d55760405162461bcd60e51b8152600401610d3e9061302f565b6103e882106116265760405162461bcd60e51b815260206004820152601d60248201527f6d61782076616c756520666f72206175746f6275726e206973203130250000006044820152606401610d3e565b601f92909255601c55601d805460ff1916911515919091179055565b6000546001600160a01b0316331461166c5760405162461bcd60e51b8152600401610d3e9061302f565b60005b828110156113bd57816010600086868581811061168e5761168e6130cb565b90506020020160208101906116a39190612e42565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556116d4816130f9565b905061166f565b600080546001600160a01b031633146117065760405162461bcd60e51b8152600401610d3e9061302f565b6103e882111561176b5760405162461bcd60e51b815260206004820152602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b6064820152608401610d3e565b6028546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a0823190602401602060405180830381865afa1580156117b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117da9190613114565b905060006117f46127106117ee84876124be565b9061253d565b9050801561188c57602854600354611819916001600160a01b03908116911683611d0e565b50602960009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561186a57600080fd5b505af115801561187e573d6000803e3d6000fd5b506001979650505050505050565b5060009392505050565b600061120f338484611e1c565b6000546001600160a01b031633146118cd5760405162461bcd60e51b8152600401610d3e9061302f565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6118fd33611cf0565b6119195760405162461bcd60e51b8152600401610d3e906130a6565b600c55565b6000610dcf61192b611216565b6028546117ee906119519060029061194b906001600160a01b03166113c3565b906124be565b85906124be565b61196133611cf0565b61197d5760405162461bcd60e51b8152600401610d3e906130a6565b60298054921515600160a81b0260ff60a81b1990931692909217909155602a55565b6000546001600160a01b031633146119c95760405162461bcd60e51b8152600401610d3e9061302f565b601b55565b6000546001600160a01b031633146119f85760405162461bcd60e51b8152600401610d3e9061302f565b61271083600554611a099190613065565b611a139190613084565b600c55600a805460ff191692151592909217909155600d5550565b6000546001600160a01b03163314611a585760405162461bcd60e51b8152600401610d3e9061302f565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314611aa35760405162461bcd60e51b8152600401610d3e9061302f565b61271081600554611ab49190613065565b611abe9190613084565b60065550565b6000546001600160a01b03163314611aee5760405162461bcd60e51b8152600401610d3e9061302f565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b611b6333611cf0565b611b7f5760405162461bcd60e51b8152600401610d3e906130a6565b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314611bd45760405162461bcd60e51b8152600401610d3e9061302f565b6103218210611c3b5760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3830302061646472657373657360981b6064820152608401610d3e565b6000611c478383613065565b905080611c53866113c3565b1015611ca15760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610d3e565b60005b838110156115a357611cdd86868684818110611cc257611cc26130cb565b9050602002016020810190611cd79190612e42565b85611d0e565b5080611ce8816130f9565b915050611ca4565b6001600160a01b031660009081526001602052604090205460ff1690565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611d5f918490611de2565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611d8e908361245f565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061320183398151915290611dd09086815260200190565b60405180910390a35060019392505050565b60008184841115611e065760405162461bcd60e51b8152600401610d3e9190612bde565b506000611e13848661314a565b95945050505050565b602b5460009060ff1615611e3c57611e35848484611d0e565b905061120f565b6001600160a01b03841660009081526001602052604090205460ff16158015611e7e57506001600160a01b03831660009081526001602052604090205460ff16155b15611ed357602954600160a01b900460ff16611ed35760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610d3e565b600f5460ff1615611f35576001600160a01b03841660009081526010602052604090205460ff1615611f355760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610d3e565b6001600160a01b0384166000908152600b602052604090205460ff168015611f5f5750600a5460ff165b15612050576001600160a01b0384166000908152600e60205260409020544211611fcb5760405162461bcd60e51b815260206004820152601a60248201527f5076742073656c6c65722074696d6520726573747269637465640000000000006044820152606401610d3e565b600c548211156120295760405162461bcd60e51b8152602060048201526024808201527f5076742073656c6c65722068617665206d61782073656c6c20726573747269636044820152633a34b7b760e11b6064820152608401610d3e565b600d5461203690426130e1565b6001600160a01b0385166000908152600e60205260409020555b6001600160a01b03841660009081526001602052604090205460ff1615801561208257506001600160a01b0383163014155b801561209c57506003546001600160a01b03848116911614155b80156120b657506028546001600160a01b03848116911614155b80156120d057506024546001600160a01b03848116911614155b156121665760006120e0846113c3565b6007549091506120f084836130e1565b11156121645760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610d3e565b505b6011546121749060026130e1565b4310801561219057506028546001600160a01b03848116911614155b80156121b957506001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14155b80156121d357506003546001600160a01b03848116911614155b156121fc576001600160a01b0383166000908152601060205260409020805460ff191660011790555b612206848361257f565b61220e6125ec565b156122205761221b612642565b6122d6565b6001600160a01b03841660009081526001602052604090205460ff1615801561226257506001600160a01b03831660009081526001602052604090205460ff16155b801561228757506001600160a01b03841660009081526012602052604090205460ff16155b80156122a057506028546001600160a01b038481169116145b80156122ae5750601d5460ff165b80156122c95750601f54601e546122c591906130e1565b4210155b156122d6576122d6612a29565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054612328918490611de2565b6001600160a01b038516600090815260086020908152604080832093909355601290529081205460ff1615158061237957506001600160a01b03841660009081526012602052604090205460ff1615155b6123a05760285461239b90869085906001600160a01b03888116911614612a46565b6123a2565b825b6001600160a01b0385166000908152600860205260409020549091506123c8908261245f565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206132018339815191529061240a9085815260200190565b60405180910390a3506001949350505050565b600061120f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611de2565b60008061246c83856130e1565b90508381101561120f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610d3e565b6000826124cd57506000610dcf565b60006124d98385613065565b9050826124e68583613084565b1461120f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610d3e565b600061120f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b97565b600654811115806125a857506001600160a01b03821660009081526013602052604090205460ff165b6125e85760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610d3e565b5050565b6028546000906001600160a01b0316331480159061260d5750602b5460ff16155b80156126225750602954600160a81b900460ff165b801561125a575050602a5430600090815260086020526040902054101590565b602b805460ff1916600117905560255460265460009161266191610e21565b61266d57601454612670565b60005b9050600061269460026117ee6019546117ee86602a546124be90919063ffffffff16565b905060006126ad82602a5461241d90919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106126e7576126e76130cb565b6001600160a01b039283166020918202929092010152600254825191169082906001908110612718576127186130cb565b6001600160a01b03928316602091820292909201015260275460405163791ac94760e01b81524792919091169063791ac94790612762908690600090879030904290600401613161565b600060405180830381600087803b15801561277c57600080fd5b505af1158015612790573d6000803e3d6000fd5b5050505060006127a9824761241d90919063ffffffff16565b905060006127c46127bb88600261253d565b6019549061241d565b905060006127d960026117ee8481878d6124be565b905060006127f6836117ee601554876124be90919063ffffffff16565b90506000612813846117ee601754886124be90919063ffffffff16565b90506000612830856117ee601654896124be90919063ffffffff16565b6021546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114612882576040519150601f19603f3d011682016040523d82523d6000602084013e612887565b606091505b50506022546040519192506001600160a01b0316908390600081818185875af1925050503d80600081146128d7576040519150601f19603f3d011682016040523d82523d6000602084013e6128dc565b606091505b50506023546040519192506001600160a01b0316908490600081818185875af1925050503d806000811461292c576040519150601f19603f3d011682016040523d82523d6000602084013e612931565b606091505b5060009250508b159050612a115760275460205460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af11580156129af573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906129d491906131d2565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050602b805460ff1916905550505050505050505050565b6000612a36601c546116db565b90508015612a435742601e555b50565b60008082612a55576064612a59565b601b545b90506000612a88601a546064612a6f9190613065565b6117ee8461194b6019548a6124be90919063ffffffff16565b90506000612aa76019546117ee601854856124be90919063ffffffff16565b90506000612ab5838361241d565b30600090815260086020526040902054909150612ad2908261245f565b30600090815260086020526040808220929092556024546001600160a01b031681522054612b00908361245f565b6024546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b1691600080516020613201833981519152910160405180910390a38115612b81576024546040518381526001600160a01b03918216918a16906000805160206132018339815191529060200160405180910390a35b612b8b878461241d565b98975050505050505050565b60008183612bb85760405162461bcd60e51b8152600401610d3e9190612bde565b506000611e138486613084565b600060208284031215612bd757600080fd5b5035919050565b600060208083528351808285015260005b81811015612c0b57858101830151858201604001528201612bef565b81811115612c1d576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114612a4357600080fd5b60008060408385031215612c5b57600080fd5b8235612c6681612c33565b946020939093013593505050565b8015158114612a4357600080fd5b600060208284031215612c9457600080fd5b813561120f81612c74565b60008060408385031215612cb257600080fd5b50508035926020909101359150565b600080600080600060a08688031215612cd957600080fd5b8535612ce481612c33565b94506020860135612cf481612c33565b93506040860135612d0481612c33565b92506060860135612d1481612c33565b91506080860135612d2481612c33565b809150509295509295909350565b60008083601f840112612d4457600080fd5b50813567ffffffffffffffff811115612d5c57600080fd5b6020830191508360208260051b8501011115612d7757600080fd5b9250929050565b600080600080600060608688031215612d9657600080fd5b8535612da181612c33565b9450602086013567ffffffffffffffff80821115612dbe57600080fd5b612dca89838a01612d32565b90965094506040880135915080821115612de357600080fd5b50612df088828901612d32565b969995985093965092949392505050565b600080600060608486031215612e1657600080fd5b8335612e2181612c33565b92506020840135612e3181612c33565b929592945050506040919091013590565b600060208284031215612e5457600080fd5b813561120f81612c33565b60008060408385031215612e7257600080fd5b8235612e7d81612c33565b91506020830135612e8d81612c74565b809150509250929050565b600080600060408486031215612ead57600080fd5b833567ffffffffffffffff811115612ec457600080fd5b612ed086828701612d32565b9094509250506020840135612ee481612c74565b809150509250925092565b60008060008060008060c08789031215612f0857600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600080600060608486031215612f4757600080fd5b83359250602084013591506040840135612ee481612c74565b60008060408385031215612f7357600080fd5b8235612f7e81612c33565b91506020830135612e8d81612c33565b60008060408385031215612fa157600080fd5b8235612c6681612c74565b600080600060608486031215612fc157600080fd5b833592506020840135612e3181612c74565b60008060008060608587031215612fe957600080fd5b8435612ff481612c33565b9350602085013567ffffffffffffffff81111561301057600080fd5b61301c87828801612d32565b9598909750949560400135949350505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561307f5761307f61304f565b500290565b6000826130a157634e487b7160e01b600052601260045260246000fd5b500490565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600082198211156130f4576130f461304f565b500190565b600060001982141561310d5761310d61304f565b5060010190565b60006020828403121561312657600080fd5b5051919050565b60006020828403121561313f57600080fd5b815161120f81612c74565b60008282101561315c5761315c61304f565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156131b15784516001600160a01b03168352938301939183019160010161318c565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156131e757600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212203bf19dbfded9e7a6a4f3f472bce8be932123c4878c67bf5c1a09770e728c990564736f6c634300080c0033

Deployed Bytecode Sourcemap

4737:17053:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9532:181;;;;;;;;;;-1:-1:-1;9532:181:0;;;;;:::i;:::-;;:::i;:::-;;6910:54;;;;;;;;;;;;;;;;;;;345:25:1;;;333:2;318:18;6910:54:0;;;;;;;;8214:80;;;;;;;;;;-1:-1:-1;8286:5:0;;;;;;;;;;;;-1:-1:-1;;;8286:5:0;;;;8214:80;;;;;;;:::i;8636:216::-;;;;;;;;;;-1:-1:-1;8636:216:0;;;;;:::i;:::-;;:::i;:::-;;;1604:14:1;;1597:22;1579:41;;1567:2;1552:18;8636:216:0;1439:187:1;15238:130:0;;;;;;;;;;-1:-1:-1;15238:130:0;;;;;:::i;:::-;;:::i;19588:150::-;;;;;;;;;;-1:-1:-1;19588:150:0;;;;;:::i;:::-;;:::i;6174:36::-;;;;;;;;;;;;;;;;7944:88;;;;;;;;;;-1:-1:-1;8017:12:0;;7944:88;;18446:450;;;;;;;;;;-1:-1:-1;18446:450:0;;;;;:::i;:::-;;:::i;6264:36::-;;;;;;;;;;;;;;;;19768:594;;;;;;;;;;-1:-1:-1;19768:594:0;;;;;:::i;:::-;;:::i;14589:208::-;;;;;;;;;;-1:-1:-1;14589:208:0;;;;;:::i;:::-;;:::i;6074:93::-;;;;;;;;;;;;;;;;19068:183;;;;;;;;;;-1:-1:-1;19068:183:0;;;;;:::i;:::-;;:::i;9154:370::-;;;;;;;;;;-1:-1:-1;9154:370:0;;;;;:::i;:::-;;:::i;19263:142::-;;;;;;;;;;;;;:::i;6400:43::-;;;;;;;;;;;;;;;;2745:103;;;;;;;;;;-1:-1:-1;2745:103:0;;;;;:::i;:::-;2800:4;2835:5;-1:-1:-1;;;;;2824:16:0;;;2835:5;;2824:16;;2745:103;8038:80;;;;;;;;;;-1:-1:-1;8038:80:0;;5066:1;5211:36:1;;5199:2;5184:18;8038:80:0;5069:184:1;5951:34:0;;;;;;;;;;;;;;;;6577:30;;;;;;;;;;-1:-1:-1;6577:30:0;;;;-1:-1:-1;;;;;6577:30:0;;;;;;-1:-1:-1;;;;;5422:32:1;;;5404:51;;5392:2;5377:18;6577:30:0;5258:203:1;6793:31:0;;;;;;;;;;-1:-1:-1;6793:31:0;;;;-1:-1:-1;;;;;6793:31:0;;;8860:122;;;;;;;;;;-1:-1:-1;8860:122:0;;;;;:::i;:::-;;:::i;10581:96::-;;;;;;;;;;-1:-1:-1;10581:96:0;;;;;:::i;:::-;;:::i;17284:99::-;;;;;;;;;;-1:-1:-1;17284:99:0;;;;;:::i;:::-;;:::i;17609:120::-;;;;;;;;;;-1:-1:-1;17609:120:0;;;;;:::i;:::-;;:::i;5910:34::-;;;;;;;;;;;;;;;;6873:30;;;;;;;;;;-1:-1:-1;6873:30:0;;;;-1:-1:-1;;;6873:30:0;;;;;;10229:215;;;;;;;;;;-1:-1:-1;10229:215:0;;;;;:::i;:::-;;:::i;8384:105::-;;;;;;;;;;-1:-1:-1;8384:105:0;;;;;:::i;:::-;;:::i;5507:47::-;;;;;;;;;;;;;;;;14805:271;;;;;;;;;;-1:-1:-1;14805:271:0;;;;;:::i;:::-;;:::i;5189:51::-;;;;;;;;;;;;;;;;5133:49;;;;;;;;;;;;;;;;6537:33;;;;;;;;;;-1:-1:-1;6537:33:0;;;;-1:-1:-1;;;;;6537:33:0;;;17873:565;;;;;;;;;;-1:-1:-1;17873:565:0;;;;;:::i;:::-;;:::i;20796:262::-;;;;;;;;;;-1:-1:-1;20796:262:0;;;;;:::i;:::-;;:::i;8300:78::-;;;;;;;;;;-1:-1:-1;8352:7:0;8370:5;-1:-1:-1;;;;;8370:5:0;8300:78;;5616:32;;;;;;;;;;-1:-1:-1;5616:32:0;;;;;;;;17391:210;;;;;;;;;;-1:-1:-1;17391:210:0;;;;;:::i;:::-;;:::i;5364:44::-;;;;;;;;;;-1:-1:-1;5364:44:0;;;;;;;;8124:84;;;;;;;;;;-1:-1:-1;8198:7:0;;;;;;;;;;;;-1:-1:-1;;;8198:7:0;;;;8124:84;;21062:498;;;;;;;;;;-1:-1:-1;21062:498:0;;;;;:::i;:::-;;:::i;5869:34::-;;;;;;;;;;;;;;;;6322:35;;;;;;;;;;-1:-1:-1;6322:35:0;;;;;;;;5561:46;;;;;;;;;;-1:-1:-1;5561:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;6364:29;;;;;;;;;;;;;;;;6767:19;;;;;;;;;;-1:-1:-1;6767:19:0;;;;-1:-1:-1;;;;;6767:19:0;;;8990:156;;;;;;;;;;-1:-1:-1;8990:156:0;;;;;:::i;:::-;;:::i;2538:94::-;;;;;;;;;;-1:-1:-1;2538:94:0;;;;;:::i;:::-;;:::i;6452:36::-;;;;;;;;;;-1:-1:-1;6452:36:0;;;;-1:-1:-1;;;;;6452:36:0;;;10452:121;;;;;;;;;;-1:-1:-1;10452:121:0;;;;;:::i;:::-;;:::i;19413:167::-;;;;;;;;;;-1:-1:-1;19413:167:0;;;;;:::i;:::-;;:::i;5992:34::-;;;;;;;;;;;;;;;;8495:133;;;;;;;;;;-1:-1:-1;8495:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8597:19:0;;;8579:7;8597:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8495:133;18904:156;;;;;;;;;;-1:-1:-1;18904:156:0;;;;;:::i;:::-;;:::i;6614:30::-;;;;;;;;;;-1:-1:-1;6614:30:0;;;;-1:-1:-1;;;;;6614:30:0;;;6495:35;;;;;;;;;;-1:-1:-1;6495:35:0;;;;-1:-1:-1;;;;;6495:35:0;;;15084:123;;;;;;;;;;-1:-1:-1;15084:123:0;;;;;:::i;:::-;;:::i;9903:318::-;;;;;;;;;;-1:-1:-1;9903:318:0;;;;;:::i;:::-;;:::i;2640:97::-;;;;;;;;;;-1:-1:-1;2640:97:0;;;;;:::i;:::-;;:::i;9719:176::-;;;;;;;;;;-1:-1:-1;9719:176:0;;;;;:::i;:::-;;:::i;2971:173::-;;;;;;;;;;-1:-1:-1;2971:173:0;;;;;:::i;:::-;;:::i;5466:32::-;;;;;;;;;;;;;;;;17737:128;;;;;;;;;;-1:-1:-1;17737:128:0;;;;;:::i;:::-;;:::i;6736:24::-;;;;;;;;;;-1:-1:-1;6736:24:0;;;;-1:-1:-1;;;;;6736:24:0;;;6033:34;;;;;;;;;;;;;;;;20366:424;;;;;;;;;;-1:-1:-1;20366:424:0;;;;;:::i;:::-;;:::i;5655:46::-;;;;;;;;;;-1:-1:-1;5655:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2856:107;;;;;;;;;;-1:-1:-1;2856:107:0;;;;;:::i;:::-;;:::i;6219:36::-;;;;;;;;;;;;;;;;6833:31;;;;;;;;;;-1:-1:-1;6833:31:0;;;;-1:-1:-1;;;6833:31:0;;;;;;9532:181;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;;;;;;;;;9700:5:::1;9671:24;9656:12;;:39;;;;:::i;:::-;9655:50;;;;:::i;:::-;9637:15;:68:::0;-1:-1:-1;9532:181:0:o;8636:216::-;8740:10;8711:4;8728:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8728:32:0;;;;;;;;;;:41;;;8785:37;8711:4;;8728:32;;8785:37;;;;8763:6;345:25:1;;333:2;318:18;;199:177;8785:37:0;;;;;;;;-1:-1:-1;8840:4:0;8636:216;;;;;:::o;15238:130::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;15316:12:::1;15303:10;:25:::0;15339:11:::1;:21:::0;;;::::1;;-1:-1:-1::0;;;15339:21:0::1;-1:-1:-1::0;;;;15339:21:0;;::::1;::::0;;;::::1;::::0;;15238:130::o;19588:150::-;19668:4;19724:6;19692:29;19712:8;19692:19;:29::i;:::-;:38;;19588:150;-1:-1:-1;;;19588:150:0:o;18446:450::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;18646:21:::1;:46:::0;;-1:-1:-1;;;;;;18646:46:0;;::::1;-1:-1:-1::0;;;;;18646:46:0;;::::1;;::::0;;;18703:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18758:18:::1;:40:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18809:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;18854:15:::1;:34:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;18446:450::o;19768:594::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;19917:3:::1;19898:22:::0;::::1;19890:79;;;::::0;-1:-1:-1;;;19890:79:0;;11184:2:1;19890:79:0::1;::::0;::::1;11166:21:1::0;11223:2;11203:18;;;11196:30;11262:34;11242:18;;;11235:62;-1:-1:-1;;;11313:18:1;;;11306:43;11366:19;;19890:79:0::1;10982:409:1::0;19890:79:0::1;19984:33:::0;;::::1;19976:85;;;::::0;-1:-1:-1;;;19976:85:0;;11598:2:1;19976:85:0::1;::::0;::::1;11580:21:1::0;11637:2;11617:18;;;11610:30;11676:34;11656:18;;;11649:62;-1:-1:-1;;;11727:18:1;;;11720:38;11775:19;;19976:85:0::1;11396:404:1::0;19976:85:0::1;20070:12;20099:6:::0;20095:82:::1;20109:20:::0;;::::1;20095:82;;;20160:6;;20167:1;20160:9;;;;;;;:::i;:::-;;;;;;;20153:4;:16;;;;:::i;:::-;20146:23:::0;-1:-1:-1;20131:3:0;::::1;::::0;::::1;:::i;:::-;;;;20095:82;;;;20212:4;20193:15;20203:4;20193:9;:15::i;:::-;:23;;20185:63;;;::::0;-1:-1:-1;;;20185:63:0;;12412:2:1;20185:63:0::1;::::0;::::1;12394:21:1::0;12451:2;12431:18;;;12424:30;12490:29;12470:18;;;12463:57;12537:18;;20185:63:0::1;12210:351:1::0;20185:63:0::1;20261:6;20257:102;20271:20:::0;;::::1;20257:102;;;20308:43;20323:4;20328:9;;20338:1;20328:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;20341:6;;20348:1;20341:9;;;;;;;:::i;:::-;;;;;;;20308:14;:43::i;:::-;-1:-1:-1::0;20293:3:0;::::1;::::0;::::1;:::i;:::-;;;;20257:102;;;;19881:481;19768:594:::0;;;;;:::o;14589:208::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;14693:21:::1;14733:10;14725:64;14785:3;14754:28;14766:16:::0;14693:21;14754:28:::1;:::i;:::-;:34;;;;:::i;:::-;14725:64;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14662:135;14589:208:::0;:::o;19068:183::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;19166:15:::1;:25:::0;;;;19202:26:::1;:41:::0;19068:183::o;9154:370::-;-1:-1:-1;;;;;9274:19:0;;9254:4;9274:19;;;:11;:19;;;;;;;;9294:10;9274:31;;;;;;;;-1:-1:-1;;9274:52:0;9271:186;;9376:69;;;;;;;;;;;-1:-1:-1;;;9376:69:0;;;;;;;;-1:-1:-1;;;;;9376:19:0;;-1:-1:-1;9376:19:0;;;:11;:19;;;;;9396:10;9376:31;;;;;;;;;;:69;;9412:6;;9376:35;:69::i;:::-;-1:-1:-1;;;;;9342:19:0;;;;;;:11;:19;;;;;;;;9362:10;9342:31;;;;;;;:103;9271:186;9476:40;9490:6;9498:9;9509:6;9476:13;:40::i;:::-;9469:47;;9154:370;;;;;;:::o;19263:142::-;19391:4;;19316:7;;19343:54;;19381:15;;-1:-1:-1;;;;;19391:4:0;19381:9;:15::i;:::-;19370:4;;19343:33;;19360:15;;-1:-1:-1;;;;;19370:4:0;19360:9;:15::i;:::-;19343:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;19336:61;;19263:142;:::o;8860:122::-;8915:4;8939:35;8947:7;-1:-1:-1;;8939:7:0;:35::i;10581:96::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;10648:12:::1;:21:::0;10581:96::o;17284:99::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;17352:13:::1;:23:::0;;-1:-1:-1;;17352:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17284:99::o;17609:120::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17693:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;17693:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17609:120::o;10229:215::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;10331:9:::1;10326:111;10342:20:::0;;::::1;10326:111;;;10419:6;10384:18;:32;10403:9;;10413:1;10403:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10384:32:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;10384:32:0;:41;;-1:-1:-1;;10384:41:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10364:3:::1;::::0;::::1;:::i;:::-;;;10326:111;;;;10229:215:::0;;;:::o;8384:105::-;-1:-1:-1;;;;;8468:18:0;8450:7;8468:18;;;:9;:18;;;;;;;8384:105::o;14805:271::-;14894:4;2835:5;;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;14911:11;14908:95:::1;;14947:44;::::0;-1:-1:-1;;;14947:44:0;;14985:4:::1;14947:44;::::0;::::1;5404:51:1::0;-1:-1:-1;;;;;14947:29:0;::::1;::::0;::::1;::::0;5377:18:1;;14947:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14938:53;;14908:95;15020:48;::::0;-1:-1:-1;;;15020:48:0;;15049:10:::1;15020:48;::::0;::::1;12929:51:1::0;12996:18;;;12989:34;;;-1:-1:-1;;;;;15020:28:0;::::1;::::0;::::1;::::0;12902:18:1;;15020:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17873:565::-:0;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;18049:12:::1;:28:::0;;;18088:7:::1;:18:::0;;;18117:12:::1;:28:::0;;;18156:10:::1;:24:::0;;;18191:7:::1;:18:::0;;;18231:77:::1;18201:8:::0;18231:63:::1;18169:11:::0;18231:63;18132:13;18231:63;18064:13;18098:8;18231:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:77::-;18220:8;:88:::0;18319:14:::1;:32:::0;;;18381:16:::1;18396:1;18336:15:::0;18381:16:::1;:::i;:::-;18370:8;;:27;18362:68;;;::::0;-1:-1:-1;;;18362:68:0;;13486:2:1;18362:68:0::1;::::0;::::1;13468:21:1::0;13525:2;13505:18;;;13498:30;13564;13544:18;;;13537:58;13612:18;;18362:68:0::1;13284:352:1::0;18362:68:0::1;17873:565:::0;;;;;;:::o;20796:262::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;20914:4:::1;20903:8;:15;20895:56;;;::::0;-1:-1:-1;;;20895:56:0;;13843:2:1;20895:56:0::1;::::0;::::1;13825:21:1::0;13882:2;13862:18;;;13855:30;13921:31;13901:18;;;13894:59;13970:18;;20895:56:0::1;13641:353:1::0;20895:56:0::1;20964:15;:23:::0;;;;20994:16:::1;:27:::0;21028:15:::1;:26:::0;;-1:-1:-1;;21028:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20796:262::o;17391:210::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;17493:9:::1;17488:106;17504:20:::0;;::::1;17488:106;;;17576:6;17546:13;:27;17560:9;;17570:1;17560:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17546:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17546:27:0;:36;;-1:-1:-1;;17546:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17526:3:::1;::::0;::::1;:::i;:::-;;;17488:106;;21062:498:::0;21138:4;2835:5;;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;21183:4:::1;21162:17;:25;;21154:80;;;::::0;-1:-1:-1;;;21154:80:0;;14201:2:1;21154:80:0::1;::::0;::::1;14183:21:1::0;14240:2;14220:18;;;14213:30;14279:34;14259:18;;;14252:62;-1:-1:-1;;;14330:18:1;;;14323:40;14380:19;;21154:80:0::1;13999:406:1::0;21154:80:0::1;21286:4;::::0;21271:20:::1;::::0;-1:-1:-1;;;21271:20:0;;-1:-1:-1;;;;;21286:4:0;;::::1;21271:20;::::0;::::1;5404:51:1::0;21251:17:0::1;::::0;21271:4:::1;::::0;:14:::1;::::0;5377:18:1;;21271:20:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21251:40:::0;-1:-1:-1;21302:15:0::1;21320:43;21357:5;21320:32;21251:40:::0;21334:17;21320:13:::1;:32::i;:::-;:36:::0;::::1;:43::i;:::-;21302:61:::0;-1:-1:-1;21388:11:0;;21384:136:::1;;21430:4;::::0;21435::::1;::::0;21415:33:::1;::::0;-1:-1:-1;;;;;21430:4:0;;::::1;::::0;21435::::1;21440:7:::0;21415:14:::1;:33::i;:::-;;21463:12;;;;;;;;;-1:-1:-1::0;;;;;21463:12:0::1;-1:-1:-1::0;;;;;21463:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;21504:4:0::1;::::0;21062:498;-1:-1:-1;;;;;;;21062:498:0:o;21384:136::-:1;-1:-1:-1::0;21547:5:0::1;::::0;21062:498;-1:-1:-1;;;21062:498:0:o;8990:156::-;9070:4;9094:44;9108:10;9120:9;9131:6;9094:13;:44::i;2538:94::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2598:19:0::1;;::::0;;;2620:4:::1;2598:19;::::0;;;;;;;:26;;-1:-1:-1;;2598:26:0::1;::::0;;::::1;::::0;;2538:94::o;10452:121::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;10539:17:::1;:26:::0;10452:121::o;19413:167::-;19481:7;19508:64;19549:22;:20;:22::i;:::-;19531:4;;19508:36;;19521:22;;19541:1;;19521:15;;-1:-1:-1;;;;;19531:4:0;19521:9;:15::i;:::-;:19;;:22::i;:::-;19508:8;;:12;:36::i;18904:156::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;18996:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;18996:22:0::1;-1:-1:-1::0;;;;18996:22:0;;::::1;::::0;;;::::1;::::0;;;19029:13:::1;:23:::0;18904:156::o;15084:123::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;15163:14:::1;:28:::0;15084:123::o;9903:318::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;10115:5:::1;10080:30;10065:12;;:45;;;;:::i;:::-;10064:56;;;;:::i;:::-;10044:17;:76:::0;10131:24:::1;:38:::0;;-1:-1:-1;;10131:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;10180:21:::1;:33:::0;-1:-1:-1;9903:318:0:o;2640:97::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2702:19:0::1;2724:5;2702:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;2702:27:0::1;::::0;;2640:97::o;9719:176::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;9882:5:::1;9852:25;9837:12;;:40;;;;:::i;:::-;9836:51;;;;:::i;:::-;9821:12;:66:::0;-1:-1:-1;9719:176:0:o;2971:173::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;3047:5:::1;:11:::0;;-1:-1:-1;;;;;;3047:11:0::1;-1:-1:-1::0;;;;;3047:11:0;::::1;::::0;;::::1;::::0;;3069:19;;;-1:-1:-1;3069:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;3069:26:0::1;::::0;;::::1;::::0;;;3111:25;;5404:51:1;;;3111:25:0::1;::::0;5377:18:1;3111:25:0::1;;;;;;;2971:173:::0;:::o;17737:128::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17825:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;17825:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17737:128::o;20366:424::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;20506:3:::1;20487:22:::0;::::1;20479:79;;;::::0;-1:-1:-1;;;20479:79:0;;14828:2:1;20479:79:0::1;::::0;::::1;14810:21:1::0;14867:2;14847:18;;;14840:30;14906:34;14886:18;;;14879:62;-1:-1:-1;;;14957:18:1;;;14950:43;15010:19;;20479:79:0::1;14626:409:1::0;20479:79:0::1;20567:12;20582:25;20591:9:::0;20582:6;:25:::1;:::i;:::-;20567:40;;20643:4;20624:15;20634:4;20624:9;:15::i;:::-;:23;;20616:63;;;::::0;-1:-1:-1;;;20616:63:0;;12412:2:1;20616:63:0::1;::::0;::::1;12394:21:1::0;12451:2;12431:18;;;12424:30;12490:29;12470:18;;;12463:57;12537:18;;20616:63:0::1;12210:351:1::0;20616:63:0::1;20692:6;20688:99;20702:20:::0;;::::1;20688:99;;;20739:40;20754:4;20759:9;;20769:1;20759:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;20772:6;20739:14;:40::i;:::-;-1:-1:-1::0;20724:3:0;::::1;::::0;::::1;:::i;:::-;;;;20688:99;;2856:107:::0;-1:-1:-1;;;;;2936:19:0;2912:4;2936:19;;;:14;:19;;;;;;;;;2856:107::o;12961:330::-;13091:53;;;;;;;;;;;-1:-1:-1;;;13091:53:0;;;;;;;;-1:-1:-1;;;;;13091:17:0;;13054:4;13091:17;;;:9;:17;;;;;;;:53;;13113:6;;13091:21;:53::i;:::-;-1:-1:-1;;;;;13071:17:0;;;;;;;:9;:17;;;;;;:73;;;;13178:20;;;;;;;:32;;13203:6;13178:24;:32::i;:::-;-1:-1:-1;;;;;13155:20:0;;;;;;;:9;:20;;;;;;;:55;;;;13226:35;;;;;;-1:-1:-1;;;;;;;;;;;13226:35:0;;;13254:6;345:25:1;;333:2;318:18;;199:177;13226:35:0;;;;;;;;-1:-1:-1;13279:4:0;12961:330;;;;;:::o;422:192::-;508:7;544:12;536:6;;;;528:29;;;;-1:-1:-1;;;528:29:0;;;;;;;;:::i;:::-;-1:-1:-1;568:9:0;580:5;584:1;580;:5;:::i;:::-;568:17;422:192;-1:-1:-1;;;;;422:192:0:o;10685:2264::-;10797:6;;10777:4;;10797:6;;10794:63;;;10813:41;10828:6;10836:9;10847:6;10813:14;:41::i;:::-;10806:48;;;;10794:63;-1:-1:-1;;;;;10873:22:0;;;;;;:14;:22;;;;;;;;10872:23;:53;;;;-1:-1:-1;;;;;;10900:25:0;;;;;;:14;:25;;;;;;;;10899:26;10872:53;10869:127;;;10949:11;;-1:-1:-1;;;10949:11:0;;;;10941:43;;;;-1:-1:-1;;;10941:43:0;;15372:2:1;10941:43:0;;;15354:21:1;15411:2;15391:18;;;15384:30;-1:-1:-1;;;15430:18:1;;;15423:50;15490:18;;10941:43:0;15170:344:1;10941:43:0;11033:13;;;;11030:93;;;-1:-1:-1;;;;;11071:21:0;;;;;;:13;:21;;;;;;;;11070:22;11062:45;;;;-1:-1:-1;;;11062:45:0;;15721:2:1;11062:45:0;;;15703:21:1;15760:2;15740:18;;;15733:30;-1:-1:-1;;;15779:18:1;;;15772:41;15830:18;;11062:45:0;15519:335:1;11062:45:0;-1:-1:-1;;;;;11183:26:0;;;;;;:18;:26;;;;;;;;:55;;;;-1:-1:-1;11214:24:0;;;;11183:55;11179:335;;;-1:-1:-1;;;;;11263:21:0;;;;;;:13;:21;;;;;;11287:15;-1:-1:-1;11255:77:0;;;;-1:-1:-1;;;11255:77:0;;16061:2:1;11255:77:0;;;16043:21:1;16100:2;16080:18;;;16073:30;16139:28;16119:18;;;16112:56;16185:18;;11255:77:0;15859:350:1;11255:77:0;11365:17;;11355:6;:27;;11347:75;;;;-1:-1:-1;;;11347:75:0;;16416:2:1;11347:75:0;;;16398:21:1;16455:2;16435:18;;;16428:30;16494:34;16474:18;;;16467:62;-1:-1:-1;;;16545:18:1;;;16538:34;16589:19;;11347:75:0;16214:400:1;11347:75:0;11481:21;;11463:39;;:15;:39;:::i;:::-;-1:-1:-1;;;;;11439:21:0;;;;;;:13;:21;;;;;:63;11179:335;-1:-1:-1;;;;;11531:22:0;;;;;;:14;:22;;;;;;;;11530:23;:53;;;;-1:-1:-1;;;;;;11557:26:0;;11578:4;11557:26;;11530:53;:84;;;;-1:-1:-1;11609:4:0;;-1:-1:-1;;;;;11588:26:0;;;11609:4;;11588:26;;11530:84;:105;;;;-1:-1:-1;11631:4:0;;-1:-1:-1;;;;;11618:17:0;;;11631:4;;11618:17;;11530:105;:137;;;;-1:-1:-1;11652:15:0;;-1:-1:-1;;;;;11639:28:0;;;11652:15;;11639:28;;11530:137;11526:340;;;11684:18;11705:20;11715:9;11705;:20::i;:::-;11773:15;;11684:41;;-1:-1:-1;11749:19:0;11762:6;11684:41;11749:19;:::i;:::-;11748:40;;11740:114;;;;-1:-1:-1;;;11740:114:0;;16821:2:1;11740:114:0;;;16803:21:1;16860:2;16840:18;;;16833:30;16899:34;16879:18;;;16872:62;16970:32;16950:18;;;16943:60;17020:19;;11740:114:0;16619:426:1;11740:114:0;11669:197;11526:340;11898:10;;:14;;11911:1;11898:14;:::i;:::-;11882:12;:31;:52;;;;-1:-1:-1;11930:4:0;;-1:-1:-1;;;;;11917:17:0;;;11930:4;;11917:17;;11882:52;:120;;;;-1:-1:-1;;;;;;11938:64:0;;11959:42;11938:64;;11882:120;:150;;;;-1:-1:-1;12027:4:0;;-1:-1:-1;;;;;12006:26:0;;;12027:4;;12006:26;;11882:150;11878:215;;;-1:-1:-1;;;;;12050:24:0;;;;;;:13;:24;;;;;:31;;-1:-1:-1;;12050:31:0;12077:4;12050:31;;;11878:215;12146:28;12159:6;12167;12146:12;:28::i;:::-;12190:16;:14;:16::i;:::-;12187:339;;;12209:10;:8;:10::i;:::-;12187:339;;;-1:-1:-1;;;;;12241:22:0;;;;;;:14;:22;;;;;;;;12240:23;:53;;;;-1:-1:-1;;;;;;12268:25:0;;;;;;:14;:25;;;;;;;;12267:26;12240:53;:95;;;;-1:-1:-1;;;;;;12316:19:0;;;;;;:11;:19;;;;;;;;12315:20;12240:95;:133;;;;-1:-1:-1;12369:4:0;;-1:-1:-1;;;;;12356:17:0;;;12369:4;;12356:17;12240:133;:169;;;;-1:-1:-1;12394:15:0;;;;12240:169;:241;;;;;12466:15;;12449:14;;:32;;;;:::i;:::-;12430:15;:51;;12240:241;12237:289;;;12501:13;:11;:13::i;:::-;12585:53;;;;;;;;;;;-1:-1:-1;;;12585:53:0;;;;;;;;-1:-1:-1;;;;;12585:17:0;;-1:-1:-1;12585:17:0;;;:9;:17;;;;;;;;:53;;12607:6;;12585:21;:53::i;:::-;-1:-1:-1;;;;;12565:17:0;;;;;;:9;:17;;;;;;;;:73;;;;13560:11;:19;;;;;;;;13559:20;12677:22;:51;;;-1:-1:-1;;;;;;13560:19:0;;13535:4;13560:19;;;:11;:19;;;;;;;;13559:20;12703:25;12677:51;12676:108;;12778:4;;12741:43;;12749:6;;12757;;-1:-1:-1;;;;;12765:17:0;;;12778:4;;12765:17;12741:7;:43::i;:::-;12676:108;;;12732:6;12676:108;-1:-1:-1;;;;;12818:20:0;;;;;;:9;:20;;;;;;12651:133;;-1:-1:-1;12818:40:0;;12651:133;12818:24;:40::i;:::-;-1:-1:-1;;;;;12795:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12876:43;;;;;;-1:-1:-1;;;;;;;;;;;12876:43:0;;;12904:14;345:25:1;;333:2;318:18;;199:177;12876:43:0;;;;;;;;-1:-1:-1;12937:4:0;;10685:2264;-1:-1:-1;;;;10685:2264:0:o;280:136::-;338:7;365:43;369:1;372;365:43;;;;;;;;;;;;;;;;;:3;:43::i;93:181::-;151:7;;183:5;187:1;183;:5;:::i;:::-;171:17;;212:1;207;:6;;199:46;;;;-1:-1:-1;;;199:46:0;;17252:2:1;199:46:0;;;17234:21:1;17291:2;17271:18;;;17264:30;17330:29;17310:18;;;17303:57;17377:18;;199:46:0;17050:351:1;620:250:0;678:7;702:6;698:47;;-1:-1:-1;732:1:0;725:8;;698:47;757:9;769:5;773:1;769;:5;:::i;:::-;757:17;-1:-1:-1;802:1:0;793:5;797:1;757:17;793:5;:::i;:::-;:10;785:56;;;;-1:-1:-1;;;785:56:0;;17608:2:1;785:56:0;;;17590:21:1;17647:2;17627:18;;;17620:30;17686:34;17666:18;;;17659:62;-1:-1:-1;;;17737:18:1;;;17730:31;17778:19;;785:56:0;17406:397:1;876:132:0;934:7;961:39;965:1;968;961:39;;;;;;;;;;;;;;;;;:3;:39::i;13299:166::-;13396:12;;13386:6;:22;;:49;;;-1:-1:-1;;;;;;13412:23:0;;;;;;:15;:23;;;;;;;;13386:49;13378:79;;;;-1:-1:-1;;;13378:79:0;;18010:2:1;13378:79:0;;;17992:21:1;18049:2;18029:18;;;18022:30;-1:-1:-1;;;18068:18:1;;;18061:47;18125:18;;13378:79:0;17808:341:1;13378:79:0;13299:166;;:::o;14384:197::-;14471:4;;14433;;-1:-1:-1;;;;;14471:4:0;14457:10;:18;;;;:38;;-1:-1:-1;14489:6:0;;;;14488:7;14457:38;:62;;;;-1:-1:-1;14508:11:0;;-1:-1:-1;;;14508:11:0;;;;14457:62;:116;;;;-1:-1:-1;;14560:13:0;;14550:4;14532:24;;;;:9;:24;;;;;;:41;;;14384:197::o;15376:1900::-;7011:6;:13;;-1:-1:-1;;7011:13:0;7020:4;7011:13;;;15471:15:::1;::::0;15488:26:::1;::::0;7011:6;;15455:60:::1;::::0;:15:::1;:60::i;:::-;:79;;15522:12;;15455:79;;;15518:1;15455:79;15425:109;;15545:23;15571:59;15628:1;15571:52;15614:8;;15571:38;15589:19;15571:13;;:17;;:38;;;;:::i;:59::-;15545:85;;15641:20;15664:34;15682:15;15664:13;;:17;;:34;;;;:::i;:::-;15735:16;::::0;;15749:1:::1;15735:16:::0;;;;;::::1;::::0;;15641:57;;-1:-1:-1;15711:21:0::1;::::0;15735:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15735:16:0::1;15711:40;;15780:4;15762;15767:1;15762:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15762:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15806:4:::1;::::0;15796:7;;15806:4;::::1;::::0;15796;;15806;;15796:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15796:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15881:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15881:188:0;;15847:21:::1;::::0;15881:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15953:12;;15823:21:::1;::::0;15996:4;;16023::::1;::::0;16043:15:::1;::::0;15881:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16082:17;16102:40;16128:13;16102:21;:25;;:40;;;;:::i;:::-;16082:60:::0;-1:-1:-1;16155:19:0::1;16177:40;16190:26;:19:::0;16214:1:::1;16190:23;:26::i;:::-;16177:8;::::0;;:12:::1;:40::i;:::-;16155:62:::0;-1:-1:-1;16238:26:0::1;16267:58;16323:1;16267:51;16155:62:::0;16267:51;:9;16281:19;16267:13:::1;:34::i;:58::-;16238:87;;16336:26;16365:44;16397:11;16365:27;16379:12;;16365:9;:13;;:27;;;;:::i;:44::-;16336:73;;16420:21;16444:39;16471:11;16444:22;16458:7;;16444:9;:13;;:22;;;;:::i;:39::-;16420:63;;16494:24;16521:42;16551:11;16521:25;16535:10;;16521:9;:13;;:25;;;;:::i;:42::-;16605:20;::::0;16597:65:::1;::::0;16494:69;;-1:-1:-1;16577:15:0::1;::::0;-1:-1:-1;;;;;16605:20:0;;::::1;::::0;16639:18;;16577:15;16597:65;16577:15;16597:65;16639:18;16605:20;16597:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16697:18:0::1;::::0;16689:61:::1;::::0;16576:86;;-1:-1:-1;;;;;;16697:18:0::1;::::0;16729:16;;16689:61:::1;::::0;;;16729:16;16697:18;16689:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16785:15:0::1;::::0;16777:55:::1;::::0;16673:77;;-1:-1:-1;;;;;;16785:15:0::1;::::0;16814:13;;16777:55:::1;::::0;;;16814:13;16785:15;16777:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16889:5:0::1;::::0;-1:-1:-1;;16910:19:0;;;-1:-1:-1;16907:362:0::1;;16945:6;::::0;17119:21:::1;::::0;16945:244:::1;::::0;-1:-1:-1;;;16945:244:0;;17021:4:::1;16945:244;::::0;::::1;19822:34:1::0;19872:18;;;19865:34;;;16945:6:0::1;19915:18:1::0;;;19908:34;;;19958:18;;;19951:34;-1:-1:-1;;;;;17119:21:0;;::::1;20001:19:1::0;;;19994:44;17159:15:0::1;20054:19:1::0;;;20047:35;16945:6:0;::::1;::::0;:22:::1;::::0;16975:18;;19756:19:1;;16945:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17209:48:0::1;::::0;;20578:25:1;;;20634:2;20619:18;;20612:34;;;17209:48:0::1;::::0;-1:-1:-1;20551:18:1;17209:48:0::1;;;;;;;16907:362;-1:-1:-1::0;;7029:6:0;:14;;-1:-1:-1;;7029:14:0;;;-1:-1:-1;;;;;;;;;;15376:1900:0:o;21564:158::-;21603:11;21617:31;21631:16;;21617:13;:31::i;:::-;21603:45;;21658:6;21655:62;;;21694:15;21677:14;:32;21655:62;21596:126;21564:158::o;13595:781::-;13675:7;13705:18;13726:6;:29;;13752:3;13726:29;;;13735:14;;13726:29;13705:50;;13766:17;13786:62;13827:14;;13844:3;13827:20;;;;:::i;:::-;13786:36;13811:10;13786:20;13797:8;;13786:6;:10;;:20;;;;:::i;:62::-;13766:82;;13861:18;13882:36;13909:8;;13882:22;13896:7;;13882:9;:13;;:22;;;;:::i;:36::-;13861:57;-1:-1:-1;13929:22:0;13954:25;:9;13861:57;13954:13;:25::i;:::-;14037:4;14019:24;;;;:9;:24;;;;;;13929:50;;-1:-1:-1;14019:44:0;;13929:50;14019:28;:44::i;:::-;14010:4;13992:24;;;;:9;:24;;;;;;:71;;;;14113:15;;-1:-1:-1;;;;;14113:15:0;14103:26;;;;:42;;14134:10;14103:30;:42::i;:::-;14084:15;;-1:-1:-1;;;;;14084:15:0;;;14074:26;;;;:9;:26;;;;;;;;;:71;;;;14161:47;345:25:1;;;14186:4:0;;14161:47;;;;-1:-1:-1;;;;;;;;;;;14161:47:0;318:18:1;14161:47:0;;;;;;;14232:14;;14229:99;;14284:15;;14267:45;;345:25:1;;;-1:-1:-1;;;;;14284:15:0;;;;14267:45;;;-1:-1:-1;;;;;;;;;;;14267:45:0;333:2:1;318:18;14267:45:0;;;;;;;14229:99;14347:21;:6;14358:9;14347:10;:21::i;:::-;14340:28;13595:781;-1:-1:-1;;;;;;;;13595:781:0:o;1014:189::-;1100:7;1135:12;1128:5;1120:28;;;;-1:-1:-1;;;1120:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1159:9:0;1171:5;1175:1;1171;:5;:::i;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;381:597::-;493:4;522:2;551;540:9;533:21;583:6;577:13;626:6;621:2;610:9;606:18;599:34;651:1;661:140;675:6;672:1;669:13;661:140;;;770:14;;;766:23;;760:30;736:17;;;755:2;732:26;725:66;690:10;;661:140;;;819:6;816:1;813:13;810:91;;;889:1;884:2;875:6;864:9;860:22;856:31;849:42;810:91;-1:-1:-1;962:2:1;941:15;-1:-1:-1;;937:29:1;922:45;;;;969:2;918:54;;381:597;-1:-1:-1;;;381:597:1:o;983:131::-;-1:-1:-1;;;;;1058:31:1;;1048:42;;1038:70;;1104:1;1101;1094:12;1119:315;1187:6;1195;1248:2;1236:9;1227:7;1223:23;1219:32;1216:52;;;1264:1;1261;1254:12;1216:52;1303:9;1290:23;1322:31;1347:5;1322:31;:::i;:::-;1372:5;1424:2;1409:18;;;;1396:32;;-1:-1:-1;;;1119:315:1:o;1631:118::-;1717:5;1710:13;1703:21;1696:5;1693:32;1683:60;;1739:1;1736;1729:12;1754:241;1810:6;1863:2;1851:9;1842:7;1838:23;1834:32;1831:52;;;1879:1;1876;1869:12;1831:52;1918:9;1905:23;1937:28;1959:5;1937:28;:::i;2000:248::-;2068:6;2076;2129:2;2117:9;2108:7;2104:23;2100:32;2097:52;;;2145:1;2142;2135:12;2097:52;-1:-1:-1;;2168:23:1;;;2238:2;2223:18;;;2210:32;;-1:-1:-1;2000:248:1:o;2253:813::-;2348:6;2356;2364;2372;2380;2433:3;2421:9;2412:7;2408:23;2404:33;2401:53;;;2450:1;2447;2440:12;2401:53;2489:9;2476:23;2508:31;2533:5;2508:31;:::i;:::-;2558:5;-1:-1:-1;2615:2:1;2600:18;;2587:32;2628:33;2587:32;2628:33;:::i;:::-;2680:7;-1:-1:-1;2739:2:1;2724:18;;2711:32;2752:33;2711:32;2752:33;:::i;:::-;2804:7;-1:-1:-1;2863:2:1;2848:18;;2835:32;2876:33;2835:32;2876:33;:::i;:::-;2928:7;-1:-1:-1;2987:3:1;2972:19;;2959:33;3001;2959;3001;:::i;:::-;3053:7;3043:17;;;2253:813;;;;;;;;:::o;3071:367::-;3134:8;3144:6;3198:3;3191:4;3183:6;3179:17;3175:27;3165:55;;3216:1;3213;3206:12;3165:55;-1:-1:-1;3239:20:1;;3282:18;3271:30;;3268:50;;;3314:1;3311;3304:12;3268:50;3351:4;3343:6;3339:17;3327:29;;3411:3;3404:4;3394:6;3391:1;3387:14;3379:6;3375:27;3371:38;3368:47;3365:67;;;3428:1;3425;3418:12;3365:67;3071:367;;;;;:::o;3443:908::-;3574:6;3582;3590;3598;3606;3659:2;3647:9;3638:7;3634:23;3630:32;3627:52;;;3675:1;3672;3665:12;3627:52;3714:9;3701:23;3733:31;3758:5;3733:31;:::i;:::-;3783:5;-1:-1:-1;3839:2:1;3824:18;;3811:32;3862:18;3892:14;;;3889:34;;;3919:1;3916;3909:12;3889:34;3958:70;4020:7;4011:6;4000:9;3996:22;3958:70;:::i;:::-;4047:8;;-1:-1:-1;3932:96:1;-1:-1:-1;4135:2:1;4120:18;;4107:32;;-1:-1:-1;4151:16:1;;;4148:36;;;4180:1;4177;4170:12;4148:36;;4219:72;4283:7;4272:8;4261:9;4257:24;4219:72;:::i;:::-;3443:908;;;;-1:-1:-1;3443:908:1;;-1:-1:-1;4310:8:1;;4193:98;3443:908;-1:-1:-1;;;3443:908:1:o;4356:456::-;4433:6;4441;4449;4502:2;4490:9;4481:7;4477:23;4473:32;4470:52;;;4518:1;4515;4508:12;4470:52;4557:9;4544:23;4576:31;4601:5;4576:31;:::i;:::-;4626:5;-1:-1:-1;4683:2:1;4668:18;;4655:32;4696:33;4655:32;4696:33;:::i;:::-;4356:456;;4748:7;;-1:-1:-1;;;4802:2:1;4787:18;;;;4774:32;;4356:456::o;4817:247::-;4876:6;4929:2;4917:9;4908:7;4904:23;4900:32;4897:52;;;4945:1;4942;4935:12;4897:52;4984:9;4971:23;5003:31;5028:5;5003:31;:::i;5693:382::-;5758:6;5766;5819:2;5807:9;5798:7;5794:23;5790:32;5787:52;;;5835:1;5832;5825:12;5787:52;5874:9;5861:23;5893:31;5918:5;5893:31;:::i;:::-;5943:5;-1:-1:-1;6000:2:1;5985:18;;5972:32;6013:30;5972:32;6013:30;:::i;:::-;6062:7;6052:17;;;5693:382;;;;;:::o;6080:566::-;6172:6;6180;6188;6241:2;6229:9;6220:7;6216:23;6212:32;6209:52;;;6257:1;6254;6247:12;6209:52;6297:9;6284:23;6330:18;6322:6;6319:30;6316:50;;;6362:1;6359;6352:12;6316:50;6401:70;6463:7;6454:6;6443:9;6439:22;6401:70;:::i;:::-;6490:8;;-1:-1:-1;6375:96:1;-1:-1:-1;;6575:2:1;6560:18;;6547:32;6588:28;6547:32;6588:28;:::i;:::-;6635:5;6625:15;;;6080:566;;;;;:::o;6651:523::-;6755:6;6763;6771;6779;6787;6795;6848:3;6836:9;6827:7;6823:23;6819:33;6816:53;;;6865:1;6862;6855:12;6816:53;-1:-1:-1;;6888:23:1;;;6958:2;6943:18;;6930:32;;-1:-1:-1;7009:2:1;6994:18;;6981:32;;7060:2;7045:18;;7032:32;;-1:-1:-1;7111:3:1;7096:19;;7083:33;;-1:-1:-1;7163:3:1;7148:19;7135:33;;-1:-1:-1;6651:523:1;-1:-1:-1;6651:523:1:o;7179:377::-;7253:6;7261;7269;7322:2;7310:9;7301:7;7297:23;7293:32;7290:52;;;7338:1;7335;7328:12;7290:52;7374:9;7361:23;7351:33;;7431:2;7420:9;7416:18;7403:32;7393:42;;7485:2;7474:9;7470:18;7457:32;7498:28;7520:5;7498:28;:::i;7561:388::-;7629:6;7637;7690:2;7678:9;7669:7;7665:23;7661:32;7658:52;;;7706:1;7703;7696:12;7658:52;7745:9;7732:23;7764:31;7789:5;7764:31;:::i;:::-;7814:5;-1:-1:-1;7871:2:1;7856:18;;7843:32;7884:33;7843:32;7884:33;:::i;7954:309::-;8019:6;8027;8080:2;8068:9;8059:7;8055:23;8051:32;8048:52;;;8096:1;8093;8086:12;8048:52;8135:9;8122:23;8154:28;8176:5;8154:28;:::i;8268:377::-;8342:6;8350;8358;8411:2;8399:9;8390:7;8386:23;8382:32;8379:52;;;8427:1;8424;8417:12;8379:52;8463:9;8450:23;8440:33;;8523:2;8512:9;8508:18;8495:32;8536:28;8558:5;8536:28;:::i;9136:640::-;9240:6;9248;9256;9264;9317:2;9305:9;9296:7;9292:23;9288:32;9285:52;;;9333:1;9330;9323:12;9285:52;9372:9;9359:23;9391:31;9416:5;9391:31;:::i;:::-;9441:5;-1:-1:-1;9497:2:1;9482:18;;9469:32;9524:18;9513:30;;9510:50;;;9556:1;9553;9546:12;9510:50;9595:70;9657:7;9648:6;9637:9;9633:22;9595:70;:::i;:::-;9136:640;;9684:8;;-1:-1:-1;9569:96:1;;9766:2;9751:18;9738:32;;9136:640;-1:-1:-1;;;;9136:640:1:o;9781:329::-;9983:2;9965:21;;;10022:1;10002:18;;;9995:29;-1:-1:-1;;;10055:2:1;10040:18;;10033:36;10101:2;10086:18;;9781:329::o;10115:127::-;10176:10;10171:3;10167:20;10164:1;10157:31;10207:4;10204:1;10197:15;10231:4;10228:1;10221:15;10247:168;10287:7;10353:1;10349;10345:6;10341:14;10338:1;10335:21;10330:1;10323:9;10316:17;10312:45;10309:71;;;10360:18;;:::i;:::-;-1:-1:-1;10400:9:1;;10247:168::o;10420:217::-;10460:1;10486;10476:132;;10530:10;10525:3;10521:20;10518:1;10511:31;10565:4;10562:1;10555:15;10593:4;10590:1;10583:15;10476:132;-1:-1:-1;10622:9:1;;10420:217::o;10642:335::-;10844:2;10826:21;;;10883:2;10863:18;;;10856:30;-1:-1:-1;;;10917:2:1;10902:18;;10895:41;10968:2;10953:18;;10642:335::o;11805:127::-;11866:10;11861:3;11857:20;11854:1;11847:31;11897:4;11894:1;11887:15;11921:4;11918:1;11911:15;11937:128;11977:3;12008:1;12004:6;12001:1;11998:13;11995:39;;;12014:18;;:::i;:::-;-1:-1:-1;12050:9:1;;11937:128::o;12070:135::-;12109:3;-1:-1:-1;;12130:17:1;;12127:43;;;12150:18;;:::i;:::-;-1:-1:-1;12197:1:1;12186:13;;12070:135::o;12566:184::-;12636:6;12689:2;12677:9;12668:7;12664:23;12660:32;12657:52;;;12705:1;12702;12695:12;12657:52;-1:-1:-1;12728:16:1;;12566:184;-1:-1:-1;12566:184:1:o;13034:245::-;13101:6;13154:2;13142:9;13133:7;13129:23;13125:32;13122:52;;;13170:1;13167;13160:12;13122:52;13202:9;13196:16;13221:28;13243:5;13221:28;:::i;15040:125::-;15080:4;15108:1;15105;15102:8;15099:34;;;15113:18;;:::i;:::-;-1:-1:-1;15150:9:1;;15040:125::o;18286:980::-;18548:4;18596:3;18585:9;18581:19;18627:6;18616:9;18609:25;18653:2;18691:6;18686:2;18675:9;18671:18;18664:34;18734:3;18729:2;18718:9;18714:18;18707:31;18758:6;18793;18787:13;18824:6;18816;18809:22;18862:3;18851:9;18847:19;18840:26;;18901:2;18893:6;18889:15;18875:29;;18922:1;18932:195;18946:6;18943:1;18940:13;18932:195;;;19011:13;;-1:-1:-1;;;;;19007:39:1;18995:52;;19102:15;;;;19067:12;;;;19043:1;18961:9;18932:195;;;-1:-1:-1;;;;;;;19183:32:1;;;;19178:2;19163:18;;19156:60;-1:-1:-1;;;19247:3:1;19232:19;19225:35;19144:3;18286:980;-1:-1:-1;;;18286:980:1:o;20093:306::-;20181:6;20189;20197;20250:2;20238:9;20229:7;20225:23;20221:32;20218:52;;;20266:1;20263;20256:12;20218:52;20295:9;20289:16;20279:26;;20345:2;20334:9;20330:18;20324:25;20314:35;;20389:2;20378:9;20374:18;20368:25;20358:35;;20093:306;;;;;:::o

Swarm Source

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