ETH Price: $3,376.24 (+0.26%)

Contract

0x86CEf304c773a9142C2CF1E5654b4A17606CF694
 

Overview

ETH Balance

0.001425259114001464 ETH

Eth Value

$4.81 (@ $3,376.24/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer198538992024-05-12 12:19:59231 days ago1715516399IN
0x86CEf304...7606CF694
0 ETH0.000252973.3734593
Approve170102052023-04-09 10:38:47630 days ago1681036727IN
0x86CEf304...7606CF694
0 ETH0.0005296621.35403794
Approve167768282023-03-07 13:49:59663 days ago1678196999IN
0x86CEf304...7606CF694
0 ETH0.0011302124.03287751
Approve167760772023-03-07 11:18:11663 days ago1678187891IN
0x86CEf304...7606CF694
0 ETH0.0013436328.53460823
Approve167744812023-03-07 5:55:35663 days ago1678168535IN
0x86CEf304...7606CF694
0 ETH0.0009544720.27004846
Approve167721192023-03-06 21:57:35663 days ago1678139855IN
0x86CEf304...7606CF694
0 ETH0.0020254843.01497287
Approve167709452023-03-06 17:58:23663 days ago1678125503IN
0x86CEf304...7606CF694
0 ETH0.0012772547.0826705
Approve167709452023-03-06 17:58:23663 days ago1678125503IN
0x86CEf304...7606CF694
0 ETH0.002214247.0826705
Approve167707642023-03-06 17:21:47663 days ago1678123307IN
0x86CEf304...7606CF694
0 ETH0.0024544952.19219741
Approve167705702023-03-06 16:42:47663 days ago1678120967IN
0x86CEf304...7606CF694
0 ETH0.0018183638.61622509
Approve167688642023-03-06 10:58:11664 days ago1678100291IN
0x86CEf304...7606CF694
0 ETH0.0010757222.87420127
Approve167687782023-03-06 10:40:11664 days ago1678099211IN
0x86CEf304...7606CF694
0 ETH0.0010013221.29200424
Approve167659052023-03-06 0:58:59664 days ago1678064339IN
0x86CEf304...7606CF694
0 ETH0.0011271623.968037
Approve167657062023-03-06 0:18:47664 days ago1678061927IN
0x86CEf304...7606CF694
0 ETH0.0015555133.07626308
Approve167654372023-03-05 23:23:47664 days ago1678058627IN
0x86CEf304...7606CF694
0 ETH0.0012006725.53117194
Approve167653812023-03-05 23:12:23664 days ago1678057943IN
0x86CEf304...7606CF694
0 ETH0.0012398826.36480238
Approve167640692023-03-05 18:47:35664 days ago1678042055IN
0x86CEf304...7606CF694
0 ETH0.0008826332.46410491
Approve167640662023-03-05 18:46:59664 days ago1678042019IN
0x86CEf304...7606CF694
0 ETH0.0015228332.34010398
Approve167640182023-03-05 18:37:23664 days ago1678041443IN
0x86CEf304...7606CF694
0 ETH0.0013903729.56482001
Approve167639952023-03-05 18:32:47664 days ago1678041167IN
0x86CEf304...7606CF694
0 ETH0.0013321928.32772146
Approve167636802023-03-05 17:28:35664 days ago1678037315IN
0x86CEf304...7606CF694
0 ETH0.0021966346.70913693
Approve167634092023-03-05 16:33:47664 days ago1678034027IN
0x86CEf304...7606CF694
0 ETH0.0018397939.12136805
Approve167629112023-03-05 14:52:59664 days ago1678027979IN
0x86CEf304...7606CF694
0 ETH0.0011607124.64991731
Approve167625162023-03-05 13:33:11665 days ago1678023191IN
0x86CEf304...7606CF694
0 ETH0.0010318921.91420101
Approve167624932023-03-05 13:28:35665 days ago1678022915IN
0x86CEf304...7606CF694
0 ETH0.0006756924.85268593
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
173184262023-05-23 0:35:11586 days ago1684802111
0x86CEf304...7606CF694
0.0000007 ETH
173184262023-05-23 0:35:11586 days ago1684802111
0x86CEf304...7606CF694
0.00000353 ETH
173184262023-05-23 0:35:11586 days ago1684802111
0x86CEf304...7606CF694
0.00000141 ETH
173184262023-05-23 0:35:11586 days ago1684802111
0x86CEf304...7606CF694
0.00000141 ETH
173184262023-05-23 0:35:11586 days ago1684802111
0x86CEf304...7606CF694
0.00000706 ETH
169405142023-03-30 13:59:59640 days ago1680184799
0x86CEf304...7606CF694
0.00142525 ETH
169405142023-03-30 13:59:59640 days ago1680184799
0x86CEf304...7606CF694
0.0020903 ETH
169405142023-03-30 13:59:59640 days ago1680184799
0x86CEf304...7606CF694
0.01045152 ETH
169405142023-03-30 13:59:59640 days ago1680184799
0x86CEf304...7606CF694
0.00418061 ETH
169405142023-03-30 13:59:59640 days ago1680184799
0x86CEf304...7606CF694
0.00418061 ETH
169405142023-03-30 13:59:59640 days ago1680184799
0x86CEf304...7606CF694
0.02090305 ETH
168242872023-03-14 6:04:11656 days ago1678773851
0x86CEf304...7606CF694
0.00057954 ETH
168242872023-03-14 6:04:11656 days ago1678773851
0x86CEf304...7606CF694
0.00289771 ETH
168242872023-03-14 6:04:11656 days ago1678773851
0x86CEf304...7606CF694
0.00115908 ETH
168242872023-03-14 6:04:11656 days ago1678773851
0x86CEf304...7606CF694
0.00115908 ETH
168242872023-03-14 6:04:11656 days ago1678773851
0x86CEf304...7606CF694
0.00579542 ETH
167768302023-03-07 13:50:23663 days ago1678197023
0x86CEf304...7606CF694
0.00049124 ETH
167768302023-03-07 13:50:23663 days ago1678197023
0x86CEf304...7606CF694
0.00245624 ETH
167768302023-03-07 13:50:23663 days ago1678197023
0x86CEf304...7606CF694
0.00098249 ETH
167768302023-03-07 13:50:23663 days ago1678197023
0x86CEf304...7606CF694
0.00098249 ETH
167768302023-03-07 13:50:23663 days ago1678197023
0x86CEf304...7606CF694
0.00491248 ETH
167736562023-03-07 3:07:47663 days ago1678158467
0x86CEf304...7606CF694
0.0004654 ETH
167736562023-03-07 3:07:47663 days ago1678158467
0x86CEf304...7606CF694
0.00232701 ETH
167736562023-03-07 3:07:47663 days ago1678158467
0x86CEf304...7606CF694
0.0009308 ETH
167736562023-03-07 3:07:47663 days ago1678158467
0x86CEf304...7606CF694
0.0009308 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ZKSpider

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: unlicensed

/*

ZKSpider | ZK Connectivity + Privacy

TG: https://t.me/ZKSpider

Website: zkspider.com

*/

pragma solidity ^0.8.6;

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 Ownable {
    address internal owner;
    address private _previousOwner;
    uint256 private _lockTime;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor(address _owner) {
        owner = _owner;
    }

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

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

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

    function getUnlockTime() public view returns (uint256) {
        return _lockTime;
    }

    function Ownershiplock(uint256 time) public virtual onlyOwner {
        _previousOwner = owner;
        owner = address(0);
        _lockTime = block.timestamp + time;
        emit OwnershipTransferred(owner, address(0));
    }

    function Ownershipunlock() public virtual {
        require(_previousOwner == msg.sender, "You don't have permission to unlock");
        require(block.timestamp > _lockTime , "Contract is locked");
        emit OwnershipTransferred(owner, _previousOwner);
        owner = _previousOwner;
    }
}

/**
 * Router Interfaces
 */

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

/**
 * Contract Code
 */

contract ZKSpider is ERC20, Ownable {

    address WBNB = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "ZKSpider"; // 
    string constant _symbol = "ZKSpider"; // 
    uint8 constant _decimals = 9;
    uint256 _totalSupply = 1 * 10**9 * 10**_decimals;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isTxLimitExempt;
    
    // Detailed Fees
    uint256 public liquidityFee;
    uint256 public devFee;
    uint256 public marketingFee;
    uint256 public buybackFee;
    uint256 public totalFee;

    uint256 public BuyliquidityFee    = 2;
    uint256 public BuydevFee   = 5;
    uint256 public BuymarketingFee    = 5;
    uint256 public BuybuybackFee      = 15;
    uint256 public BuytotalFee        = BuyliquidityFee + BuydevFee + BuymarketingFee + BuybuybackFee;

    uint256 public SellliquidityFee    = 2;
    uint256 public SelldevFee   = 5;
    uint256 public SellmarketingFee    = 5;
    uint256 public SellbuybackFee      = 15;
    uint256 public SelltotalFee        = SellliquidityFee + SelldevFee + SellmarketingFee + SellbuybackFee;

    // Max wallet & Transaction
    uint256 public _maxBuyTxAmount = _totalSupply / (100) * (2); // 2%
    uint256 public _maxSellTxAmount = _totalSupply / (100) * (2); // 2%
    uint256 public _maxWalletToken = _totalSupply / (100) * (2); // 2%

    // Fees receivers
    address public autoLiquidityReceiver = 0x61B84B6CB277Fb363Fb8842A16958c50E79005C1;
    address public marketingFeeReceiver = 0x61B84B6CB277Fb363Fb8842A16958c50E79005C1;
    address public devFeeReceiver = 0x61B84B6CB277Fb363Fb8842A16958c50E79005C1;
    address public buybackFeeReceiver = 0x61B84B6CB277Fb363Fb8842A16958c50E79005C1;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 1000 * 1; // 0.1%
    uint256 public maxSwapSize = _totalSupply / 100 * 2; //2%
    uint256 public tokensToSell;

    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
  
    constructor () Ownable(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        pair = IDEXFactory(router.factory()).createPair(WBNB, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

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

        _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] - amount;
        }

        return _transferFrom(sender, recipient, amount);
    }

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

        if(sender == pair){
            buyFees();
        }

        if(recipient == pair){
            sellFees();
        }

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

        // Checks max transaction limit
        if(sender == pair){
            require(amount <= _maxBuyTxAmount || isTxLimitExempt[recipient], "TX Limit Exceeded");
        }
        
        if(recipient == pair){
            require(amount <= _maxSellTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
        }
        //Exchange tokens
        if(shouldSwapBack()){ swapBack(); }

        _balances[sender] = _balances[sender] - amount;

        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(recipient, amount) : amount;
        _balances[recipient] = _balances[recipient] + amountReceived;

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender] - amount;
        _balances[recipient] = _balances[recipient] + (amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    // Internal Functions
    function buyFees() internal{
        liquidityFee    = BuyliquidityFee;
        devFee   = BuydevFee;
        marketingFee    = BuymarketingFee;
        buybackFee      = BuybuybackFee;
        totalFee        = BuytotalFee;
    }

    function sellFees() internal{
        liquidityFee    = SellliquidityFee;
        devFee   = SelldevFee;
        marketingFee    = SellmarketingFee;
        buybackFee      = SellbuybackFee;
        totalFee        = SelltotalFee;
    }

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

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount / 100 * (totalFee);

        _balances[address(this)] = _balances[address(this)] + (feeAmount);
        emit Transfer(sender, address(this), feeAmount);

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

    function swapBack() internal swapping {
        uint256 contractTokenBalance = balanceOf(address(this));
        if(contractTokenBalance >= maxSwapSize){
            tokensToSell = maxSwapSize;            
        }
        else{
            tokensToSell = contractTokenBalance;
        }

        uint256 amountToLiquify = tokensToSell / (totalFee) * (liquidityFee) / (2);
        uint256 amountToSwap = tokensToSell - (amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

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

        uint256 amountBNB = address(this).balance - (balanceBefore);

        uint256 totalBNBFee = totalFee - (liquidityFee / (2));
        
        uint256 amountBNBLiquidity = amountBNB * (liquidityFee) / (totalBNBFee) / (2);
        uint256 amountBNBbuyback = amountBNB * (buybackFee) / (totalBNBFee);
        uint256 amountBNBMarketing = amountBNB * (marketingFee) / (totalBNBFee);
        uint256 amountBNBDev = amountBNB - amountBNBLiquidity - amountBNBbuyback - amountBNBMarketing;

        (bool MarketingSuccess,) = payable(marketingFeeReceiver).call{value: amountBNBMarketing, gas: 30000}("");
        require(MarketingSuccess, "receiver rejected ETH transfer");
        (bool buybackSuccess,) = payable(buybackFeeReceiver).call{value: amountBNBbuyback, gas: 30000}("");
        require(buybackSuccess, "receiver rejected ETH transfer");
        (bool devSuccess,) = payable(devFeeReceiver).call{value: amountBNBDev, gas: 30000}("");
        require(devSuccess, "receiver rejected ETH transfer");

        addLiquidity(amountToLiquify, amountBNBLiquidity);
    }

    function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private {
    if(tokenAmount > 0){
            router.addLiquidityETH{value: bnbAmount}(
                address(this),
                tokenAmount,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(bnbAmount, tokenAmount);
        }
    }

    // External Functions
    function checkSwapThreshold() external view returns (uint256) {
        return swapThreshold;
    }
    
    function checkMaxWalletToken() external view returns (uint256) {
        return _maxWalletToken;
    }
    
    function checkMaxBuyTxAmount() external view returns (uint256) {
        return _maxBuyTxAmount;
    }
    
    function checkMaxSellTxAmount() external view returns (uint256) {
        return _maxSellTxAmount;
    }

    function isNotInSwap() external view returns (bool) {
        return !inSwap;
    }

    // Only Owner allowed
    function setBuyFees(uint256 _liquidityFee, uint256 _buybackFee, uint256 _marketingFee, uint256 _devFee) external onlyOwner {
        BuyliquidityFee = _liquidityFee;
        BuybuybackFee = _buybackFee;
        BuymarketingFee = _marketingFee;
        BuydevFee = _devFee;
        BuytotalFee = _liquidityFee + (_buybackFee) + (_marketingFee) + (_devFee);
    }

    function setSellFees(uint256 _liquidityFee, uint256 _buybackFee, uint256 _marketingFee, uint256 _devFee) external onlyOwner {
        SellliquidityFee = _liquidityFee;
        SellbuybackFee = _buybackFee;
        SellmarketingFee = _marketingFee;
        SelldevFee = _devFee;
        SelltotalFee = _liquidityFee + (_buybackFee) + (_marketingFee) + (_devFee);
    }
    
    function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _buybackFeeReceiver, address _devFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        buybackFeeReceiver = _buybackFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
    }

    function setSwapBackSettings(bool _enabled, uint256 _percentage_min_base10000, uint256 _percentage_max_base10000) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _totalSupply / (10000) * (_percentage_min_base10000);
        maxSwapSize = _totalSupply / (10000) * (_percentage_max_base10000);
    }

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

    function setMaxWalletPercent_base1000(uint256 maxWallPercent_base1000) external onlyOwner {
        _maxWalletToken = _totalSupply / (1000) * (maxWallPercent_base1000);
    }

    function setMaxBuyTxPercent_base1000(uint256 maxBuyTXPercentage_base1000) external onlyOwner {
        _maxBuyTxAmount = _totalSupply / (1000) * (maxBuyTXPercentage_base1000);
    }

    function setMaxSellTxPercent_base1000(uint256 maxSellTXPercentage_base1000) external onlyOwner {
        _maxSellTxAmount = _totalSupply / (1000) * (maxSellTXPercentage_base1000);
    }

    // Stuck Balances Functions
    function rescueToken(address tokenAddress, uint256 tokens) public onlyOwner returns (bool success) {
        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }

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

event AutoLiquify(uint256 amountBNB, 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":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"BuybuybackFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BuydevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BuyliquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BuymarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BuytotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"Ownershiplock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"Ownershipunlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SellbuybackFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SelldevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellliquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellmarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SelltotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxBuyTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxSellTxAmount","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":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":[],"name":"checkMaxBuyTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkMaxSellTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkMaxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isNotInSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSwapSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"rescueToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"setBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_buybackFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"}],"name":"setFeeReceivers","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":"maxBuyTXPercentage_base1000","type":"uint256"}],"name":"setMaxBuyTxPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxSellTXPercentage_base1000","type":"uint256"}],"name":"setMaxSellTxPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base1000","type":"uint256"}],"name":"setMaxWalletPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"setSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_percentage_min_base10000","type":"uint256"},{"internalType":"uint256","name":"_percentage_max_base10000","type":"uint256"}],"name":"setSwapBackSettings","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":"tokensToSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620000ee9190620009b5565b633b9aca00620000ff919062000af2565b600655600260105560056011556005601255600f6013556013546012546011546010546200012e9190620008c5565b6200013a9190620008c5565b620001469190620008c5565b601455600260155560056016556005601755600f601855601854601754601654601554620001759190620008c5565b620001819190620008c5565b6200018d9190620008c5565b60195560026064600654620001a3919062000922565b620001af919062000af2565b601a5560026064600654620001c5919062000922565b620001d1919062000af2565b601b5560026064600654620001e7919062000922565b620001f3919062000af2565b601c557361b84b6cb277fb363fb8842a16958c50e79005c1601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507361b84b6cb277fb363fb8842a16958c50e79005c1601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507361b84b6cb277fb363fb8842a16958c50e79005c1601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507361b84b6cb277fb363fb8842a16958c50e79005c1602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001602260146101000a81548160ff02191690831515021790555060016103e860065462000379919062000922565b62000385919062000af2565b602355600260646006546200039b919062000922565b620003a7919062000af2565b602455348015620003b757600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620004b857600080fd5b505afa158015620004cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004f3919062000827565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401620005519291906200087b565b602060405180830381600087803b1580156200056c57600080fd5b505af115801562000581573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005a7919062000827565b602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600654600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600654604051620008029190620008a8565b60405180910390a362000c28565b600081519050620008218162000c0e565b92915050565b60006020828403121562000840576200083f62000bfc565b5b6000620008508482850162000810565b91505092915050565b620008648162000b53565b82525050565b620008758162000b87565b82525050565b600060408201905062000892600083018562000859565b620008a1602083018462000859565b9392505050565b6000602082019050620008bf60008301846200086a565b92915050565b6000620008d28262000b87565b9150620008df8362000b87565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000917576200091662000b9e565b5b828201905092915050565b60006200092f8262000b87565b91506200093c8362000b87565b9250826200094f576200094e62000bcd565b5b828204905092915050565b6000808291508390505b6001851115620009ac5780860481111562000984576200098362000b9e565b5b6001851615620009945780820291505b8081029050620009a48562000c01565b945062000964565b94509492505050565b6000620009c28262000b87565b9150620009cf8362000b91565b9250620009fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a06565b905092915050565b60008262000a18576001905062000aeb565b8162000a28576000905062000aeb565b816001811462000a41576002811462000a4c5762000a82565b600191505062000aeb565b60ff84111562000a615762000a6062000b9e565b5b8360020a91508482111562000a7b5762000a7a62000b9e565b5b5062000aeb565b5060208310610133831016604e8410600b841016171562000abc5782820a90508381111562000ab65762000ab562000b9e565b5b62000aeb565b62000acb84848460016200095a565b9250905081840481111562000ae55762000ae462000b9e565b5b81810290505b9392505050565b600062000aff8262000b87565b915062000b0c8362000b87565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b485762000b4762000b9e565b5b828202905092915050565b600062000b608262000b67565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b62000c198162000b53565b811462000c2557600080fd5b50565b6140668062000c386000396000f3fe6080604052600436106103b15760003560e01c80636ddd1713116101e7578063ab00d68d1161010d578063e96fada2116100a0578063f7baf3c51161006f578063f7baf3c514610e19578063f84ba65d14610e30578063f887ea4014610e59578063fc44ed4814610e84576103b8565b8063e96fada214610d6f578063e99090c114610d9a578063ea19e4a814610dc5578063f2fde38b14610df0576103b8565b8063d0889358116100dc578063d088935814610cb3578063dab84ee714610cdc578063dd62ed3e14610d07578063e9563dfd14610d44576103b8565b8063ab00d68d14610c07578063b43b783514610c32578063ca33e64c14610c5d578063cf4be39414610c88576103b8565b8063893d20e81161018557806398118cb41161015457806398118cb414610b4b578063a4e1307114610b76578063a8aa1b3114610b9f578063a9059cbb14610bca576103b8565b8063893d20e814610a8f5780638b42507f14610aba57806395d89b4114610af757806396c99f5b14610b22576103b8565b806378109e54116101c157806378109e54146109e35780637fbcedff14610a0e57806383b4ac6814610a3957806384b1d1ef14610a64576103b8565b80636ddd17131461095057806370a082311461097b5780637724555f146109b8576103b8565b8063391e73a3116102d7578063602bc62b1161026a5780636b67c4df116102395780636b67c4df146108a65780636c5b2855146108d15780636d351d1a146108fa5780636d796e8814610925576103b8565b8063602bc62b146107fc5780636533e39314610827578063658d4b7f146108525780636827e7641461087b576103b8565b80633f4218e0116102a65780633f4218e01461072c5780634f28cac214610769578063541b4de714610794578063571ac8b0146107bf576103b8565b8063391e73a3146106825780633b2d081c146106ad5780633c8e556d146106d85780633d95669114610701576103b8565b80631898cab21161034f5780632f54bf6e1161031e5780632f54bf6e146105b2578063313ce567146105ef578063334773271461061a57806333f3d62814610645576103b8565b80631898cab2146104f65780631da1db5e146105215780631df4ccfc1461054a57806323b872dd14610575576103b8565b8063095ea7b31161038b578063095ea7b31461043c578063154d4abb14610479578063178d9b8e146104a257806318160ddd146104cb576103b8565b80630445b667146103bd57806306fdde03146103e857806309302dc614610413576103b8565b366103b857005b600080fd5b3480156103c957600080fd5b506103d2610eaf565b6040516103df9190613a99565b60405180910390f35b3480156103f457600080fd5b506103fd610eb5565b60405161040a9190613997565b60405180910390f35b34801561041f57600080fd5b5061043a60048036038101906104359190613590565b610ef2565b005b34801561044857600080fd5b50610463600480360381019061045e91906134d0565b610f5e565b6040516104709190613961565b60405180910390f35b34801561048557600080fd5b506104a0600480360381019061049b9190613590565b611050565b005b3480156104ae57600080fd5b506104c960048036038101906104c49190613610565b6110bc565b005b3480156104d757600080fd5b506104e061114e565b6040516104ed9190613a99565b60405180910390f35b34801561050257600080fd5b5061050b611158565b6040516105189190613a99565b60405180910390f35b34801561052d57600080fd5b5061054860048036038101906105439190613590565b611162565b005b34801561055657600080fd5b5061055f611211565b60405161056c9190613a99565b60405180910390f35b34801561058157600080fd5b5061059c6004803603810190610597919061343d565b611217565b6040516105a99190613961565b60405180910390f35b3480156105be57600080fd5b506105d960048036038101906105d49190613369565b6113d9565b6040516105e69190613961565b60405180910390f35b3480156105fb57600080fd5b50610604611432565b6040516106119190613b37565b60405180910390f35b34801561062657600080fd5b5061062f61143b565b60405161063c9190613a99565b60405180910390f35b34801561065157600080fd5b5061066c600480360381019061066791906134d0565b611441565b6040516106799190613961565b60405180910390f35b34801561068e57600080fd5b50610697611520565b6040516106a49190613a99565b60405180910390f35b3480156106b957600080fd5b506106c2611526565b6040516106cf9190613a99565b60405180910390f35b3480156106e457600080fd5b506106ff60048036038101906106fa91906133d6565b61152c565b005b34801561070d57600080fd5b5061071661167e565b6040516107239190613a99565b60405180910390f35b34801561073857600080fd5b50610753600480360381019061074e9190613369565b611684565b6040516107609190613961565b60405180910390f35b34801561077557600080fd5b5061077e6116a4565b60405161078b9190613a99565b60405180910390f35b3480156107a057600080fd5b506107a96116aa565b6040516107b69190613a99565b60405180910390f35b3480156107cb57600080fd5b506107e660048036038101906107e19190613369565b6116b4565b6040516107f39190613961565b60405180910390f35b34801561080857600080fd5b506108116116e7565b60405161081e9190613a99565b60405180910390f35b34801561083357600080fd5b5061083c6116f1565b6040516108499190613a99565b60405180910390f35b34801561085e57600080fd5b5061087960048036038101906108749190613490565b6116f7565b005b34801561088757600080fd5b5061089061179a565b60405161089d9190613a99565b60405180910390f35b3480156108b257600080fd5b506108bb6117a0565b6040516108c89190613a99565b60405180910390f35b3480156108dd57600080fd5b506108f860048036038101906108f39190613610565b6117a6565b005b34801561090657600080fd5b5061090f611838565b60405161091c9190613a99565b60405180910390f35b34801561093157600080fd5b5061093a611842565b6040516109479190613a99565b60405180910390f35b34801561095c57600080fd5b50610965611848565b6040516109729190613961565b60405180910390f35b34801561098757600080fd5b506109a2600480360381019061099d9190613369565b61185b565b6040516109af9190613a99565b60405180910390f35b3480156109c457600080fd5b506109cd6118a4565b6040516109da9190613a99565b60405180910390f35b3480156109ef57600080fd5b506109f86118aa565b604051610a059190613a99565b60405180910390f35b348015610a1a57600080fd5b50610a236118b0565b604051610a309190613a99565b60405180910390f35b348015610a4557600080fd5b50610a4e6118b6565b604051610a5b9190613961565b60405180910390f35b348015610a7057600080fd5b50610a796118ce565b604051610a8691906138bc565b60405180910390f35b348015610a9b57600080fd5b50610aa46118f4565b604051610ab191906138bc565b60405180910390f35b348015610ac657600080fd5b50610ae16004803603810190610adc9190613369565b61191d565b604051610aee9190613961565b60405180910390f35b348015610b0357600080fd5b50610b0c61193d565b604051610b199190613997565b60405180910390f35b348015610b2e57600080fd5b50610b496004803603810190610b449190613590565b61197a565b005b348015610b5757600080fd5b50610b606119e6565b604051610b6d9190613a99565b60405180910390f35b348015610b8257600080fd5b50610b9d6004803603810190610b989190613590565b6119ec565b005b348015610bab57600080fd5b50610bb4611b66565b604051610bc191906138bc565b60405180910390f35b348015610bd657600080fd5b50610bf16004803603810190610bec91906134d0565b611b8c565b604051610bfe9190613961565b60405180910390f35b348015610c1357600080fd5b50610c1c611ba1565b604051610c299190613a99565b60405180910390f35b348015610c3e57600080fd5b50610c47611ba7565b604051610c549190613a99565b60405180910390f35b348015610c6957600080fd5b50610c72611bb1565b604051610c7f91906138bc565b60405180910390f35b348015610c9457600080fd5b50610c9d611bd7565b604051610caa9190613a99565b60405180910390f35b348015610cbf57600080fd5b50610cda6004803603810190610cd5919061353d565b611bdd565b005b348015610ce857600080fd5b50610cf1611c86565b604051610cfe91906138bc565b60405180910390f35b348015610d1357600080fd5b50610d2e6004803603810190610d299190613396565b611cac565b604051610d3b9190613a99565b60405180910390f35b348015610d5057600080fd5b50610d59611d33565b604051610d669190613a99565b60405180910390f35b348015610d7b57600080fd5b50610d84611d39565b604051610d9191906138bc565b60405180910390f35b348015610da657600080fd5b50610daf611d5f565b604051610dbc9190613a99565b60405180910390f35b348015610dd157600080fd5b50610dda611d65565b604051610de79190613a99565b60405180910390f35b348015610dfc57600080fd5b50610e176004803603810190610e129190613369565b611d6b565b005b348015610e2557600080fd5b50610e2e611ee0565b005b348015610e3c57600080fd5b50610e576004803603810190610e529190613490565b6120b4565b005b348015610e6557600080fd5b50610e6e612157565b604051610e7b919061397c565b60405180910390f35b348015610e9057600080fd5b50610e9961217d565b604051610ea69190613a99565b60405180910390f35b60235481565b60606040518060400160405280600881526020017f5a4b537069646572000000000000000000000000000000000000000000000000815250905090565b610efb336113d9565b610f3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3190613a39565b60405180910390fd5b806103e8600654610f4b9190613c08565b610f559190613c39565b601c8190555050565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161103e9190613a99565b60405180910390a36001905092915050565b611059336113d9565b611098576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108f90613a39565b60405180910390fd5b806103e86006546110a99190613c08565b6110b39190613c39565b601a8190555050565b6110c5336113d9565b611104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fb90613a39565b60405180910390fd5b836010819055508260138190555081601281905550806011819055508082848661112e9190613bb2565b6111389190613bb2565b6111429190613bb2565b60148190555050505050565b6000600654905090565b6000601a54905090565b61116b336113d9565b6111aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a190613a39565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc606484846111d79190613c39565b6111e19190613c08565b9081150290604051600060405180830381858888f1935050505015801561120c573d6000803e3d6000fd5b505050565b600f5481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146113c55781600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113449190613c93565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6113d0848484612183565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b601a5481565b600061144c336113d9565b61148b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148290613a39565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016114c69291906138d7565b602060405180830381600087803b1580156114e057600080fd5b505af11580156114f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115189190613510565b905092915050565b60145481565b600e5481565b611535336113d9565b611574576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156b90613a39565b60405180910390fd5b83601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b60255481565b60096020528060005260406000206000915054906101000a900460ff1681565b60245481565b6000601b54905090565b60006116e0827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610f5e565b9050919050565b6000600254905090565b60115481565b611700336113d9565b61173f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173690613a39565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600c5481565b600d5481565b6117af336113d9565b6117ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e590613a39565b60405180910390fd5b83601581905550826018819055508160178190555080601681905550808284866118189190613bb2565b6118229190613bb2565b61182c9190613bb2565b60198190555050505050565b6000602354905090565b60175481565b602260149054906101000a900460ff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60195481565b601c5481565b60125481565b6000602660009054906101000a900460ff1615905090565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600881526020017f5a4b537069646572000000000000000000000000000000000000000000000000815250905090565b611983336113d9565b6119c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b990613a39565b60405180910390fd5b806103e86006546119d39190613c08565b6119dd9190613c39565b601b8190555050565b600b5481565b6119f5336113d9565b611a34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2b90613a39565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508042611ae29190613bb2565b600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611b99338484612183565b905092915050565b60165481565b6000601c54905090565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b5481565b611be6336113d9565b611c25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1c90613a39565b60405180910390fd5b82602260146101000a81548160ff02191690831515021790555081612710600654611c509190613c08565b611c5a9190613c39565b60238190555080612710600654611c719190613c08565b611c7b9190613c39565b602481905550505050565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60135481565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155481565b60105481565b611d74336113d9565b611db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611daa90613a39565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1a906139d9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6790613a79565b60405180910390fd5b6002544211611fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fab90613a59565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6120bd336113d9565b6120fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f390613a39565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60185481565b6000602660009054906101000a900460ff16156121ac576121a5848484612804565b90506127fd565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561220b5761220a612992565b5b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561226a576122696129c1565b5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156122f257503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561234c5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123a65750602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b806123fa5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561245e57600061240a8461185b565b9050601c54838261241b9190613bb2565b111561245c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245390613a19565b60405180910390fd5b505b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561254e57601a548211158061250e5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61254d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612544906139b9565b60405180910390fd5b5b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561263e57601b54821115806125fe5750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61263d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612634906139b9565b60405180910390fd5b5b6126466129f0565b1561265457612653612ac7565b5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461269f9190613c93565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006126ed8561305d565b6126f75782612702565b61270184846130b4565b5b905080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461274f9190613bb2565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127ef9190613a99565b60405180910390a360019150505b9392505050565b600081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128519190613c93565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128df9190613bb2565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161297f9190613a99565b60405180910390a3600190509392505050565b601054600b81905550601154600c81905550601254600d81905550601354600e81905550601454600f81905550565b601554600b81905550601654600c81905550601754600d81905550601854600e81905550601954600f81905550565b6000602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612a5d5750602660009054906101000a900460ff16155b8015612a755750602260149054906101000a900460ff165b8015612ac25750602354600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602660006101000a81548160ff0219169083151502179055506000612aed3061185b565b90506024548110612b0657602454602581905550612b0e565b806025819055505b60006002600b54600f54602554612b259190613c08565b612b2f9190613c39565b612b399190613c08565b9050600081602554612b4b9190613c93565b90506000600267ffffffffffffffff811115612b6a57612b69613e12565b5b604051908082528060200260200182016040528015612b985781602001602082028036833780820191505090505b5090503081600081518110612bb057612baf613de3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612c2157612c20613de3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612cc4959493929190613ab4565b600060405180830381600087803b158015612cde57600080fd5b505af1158015612cf2573d6000803e3d6000fd5b5050505060008147612d049190613c93565b905060006002600b54612d179190613c08565b600f54612d249190613c93565b90506000600282600b5485612d399190613c39565b612d439190613c08565b612d4d9190613c08565b9050600082600e5485612d609190613c39565b612d6a9190613c08565b9050600083600d5486612d7d9190613c39565b612d879190613c08565b9050600081838588612d999190613c93565b612da39190613c93565b612dad9190613c93565b90506000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051612dfb906138a7565b600060405180830381858888f193505050503d8060008114612e39576040519150601f19603f3d011682016040523d82523d6000602084013e612e3e565b606091505b5050905080612e82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e79906139f9565b60405180910390fd5b6000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168561753090604051612ece906138a7565b600060405180830381858888f193505050503d8060008114612f0c576040519150601f19603f3d011682016040523d82523d6000602084013e612f11565b606091505b5050905080612f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f4c906139f9565b60405180910390fd5b6000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168461753090604051612fa1906138a7565b600060405180830381858888f193505050503d8060008114612fdf576040519150601f19603f3d011682016040523d82523d6000602084013e612fe4565b606091505b5050905080613028576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161301f906139f9565b60405180910390fd5b6130328d886131db565b50505050505050505050505050506000602660006101000a81548160ff021916908315150217905550565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080600f546064846130c79190613c08565b6130d19190613c39565b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461311e9190613bb2565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131be9190613a99565b60405180910390a380836131d29190613c93565b91505092915050565b60008211156132fc57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161326d96959493929190613900565b6060604051808303818588803b15801561328657600080fd5b505af115801561329a573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132bf91906135bd565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450681836040516132f3929190613b0e565b60405180910390a15b5050565b60008135905061330f81613feb565b92915050565b60008135905061332481614002565b92915050565b60008151905061333981614002565b92915050565b60008135905061334e81614019565b92915050565b60008151905061336381614019565b92915050565b60006020828403121561337f5761337e613e41565b5b600061338d84828501613300565b91505092915050565b600080604083850312156133ad576133ac613e41565b5b60006133bb85828601613300565b92505060206133cc85828601613300565b9150509250929050565b600080600080608085870312156133f0576133ef613e41565b5b60006133fe87828801613300565b945050602061340f87828801613300565b935050604061342087828801613300565b925050606061343187828801613300565b91505092959194509250565b60008060006060848603121561345657613455613e41565b5b600061346486828701613300565b935050602061347586828701613300565b92505060406134868682870161333f565b9150509250925092565b600080604083850312156134a7576134a6613e41565b5b60006134b585828601613300565b92505060206134c685828601613315565b9150509250929050565b600080604083850312156134e7576134e6613e41565b5b60006134f585828601613300565b92505060206135068582860161333f565b9150509250929050565b60006020828403121561352657613525613e41565b5b60006135348482850161332a565b91505092915050565b60008060006060848603121561355657613555613e41565b5b600061356486828701613315565b93505060206135758682870161333f565b92505060406135868682870161333f565b9150509250925092565b6000602082840312156135a6576135a5613e41565b5b60006135b48482850161333f565b91505092915050565b6000806000606084860312156135d6576135d5613e41565b5b60006135e486828701613354565b93505060206135f586828701613354565b925050604061360686828701613354565b9150509250925092565b6000806000806080858703121561362a57613629613e41565b5b60006136388782880161333f565b94505060206136498782880161333f565b935050604061365a8782880161333f565b925050606061366b8782880161333f565b91505092959194509250565b6000613683838361368f565b60208301905092915050565b61369881613cc7565b82525050565b6136a781613cc7565b82525050565b60006136b882613b62565b6136c28185613b85565b93506136cd83613b52565b8060005b838110156136fe5781516136e58882613677565b97506136f083613b78565b9250506001810190506136d1565b5085935050505092915050565b61371481613cd9565b82525050565b61372381613d1c565b82525050565b61373281613d40565b82525050565b600061374382613b6d565b61374d8185613ba1565b935061375d818560208601613d52565b61376681613e46565b840191505092915050565b600061377e601183613ba1565b915061378982613e57565b602082019050919050565b60006137a1602683613ba1565b91506137ac82613e80565b604082019050919050565b60006137c4601e83613ba1565b91506137cf82613ecf565b602082019050919050565b60006137e7603e83613ba1565b91506137f282613ef8565b604082019050919050565b600061380a600683613ba1565b915061381582613f47565b602082019050919050565b600061382d600083613b96565b915061383882613f70565b600082019050919050565b6000613850601283613ba1565b915061385b82613f73565b602082019050919050565b6000613873602383613ba1565b915061387e82613f9c565b604082019050919050565b61389281613d05565b82525050565b6138a181613d0f565b82525050565b60006138b282613820565b9150819050919050565b60006020820190506138d1600083018461369e565b92915050565b60006040820190506138ec600083018561369e565b6138f96020830184613889565b9392505050565b600060c082019050613915600083018961369e565b6139226020830188613889565b61392f6040830187613729565b61393c6060830186613729565b613949608083018561369e565b61395660a0830184613889565b979650505050505050565b6000602082019050613976600083018461370b565b92915050565b6000602082019050613991600083018461371a565b92915050565b600060208201905081810360008301526139b18184613738565b905092915050565b600060208201905081810360008301526139d281613771565b9050919050565b600060208201905081810360008301526139f281613794565b9050919050565b60006020820190508181036000830152613a12816137b7565b9050919050565b60006020820190508181036000830152613a32816137da565b9050919050565b60006020820190508181036000830152613a52816137fd565b9050919050565b60006020820190508181036000830152613a7281613843565b9050919050565b60006020820190508181036000830152613a9281613866565b9050919050565b6000602082019050613aae6000830184613889565b92915050565b600060a082019050613ac96000830188613889565b613ad66020830187613729565b8181036040830152613ae881866136ad565b9050613af7606083018561369e565b613b046080830184613889565b9695505050505050565b6000604082019050613b236000830185613889565b613b306020830184613889565b9392505050565b6000602082019050613b4c6000830184613898565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000613bbd82613d05565b9150613bc883613d05565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613bfd57613bfc613d85565b5b828201905092915050565b6000613c1382613d05565b9150613c1e83613d05565b925082613c2e57613c2d613db4565b5b828204905092915050565b6000613c4482613d05565b9150613c4f83613d05565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613c8857613c87613d85565b5b828202905092915050565b6000613c9e82613d05565b9150613ca983613d05565b925082821015613cbc57613cbb613d85565b5b828203905092915050565b6000613cd282613ce5565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613d2782613d2e565b9050919050565b6000613d3982613ce5565b9050919050565b6000613d4b82613d05565b9050919050565b60005b83811015613d70578082015181840152602081019050613d55565b83811115613d7f576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b7f436f6e7472616374206973206c6f636b65640000000000000000000000000000600082015250565b7f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c60008201527f6f636b0000000000000000000000000000000000000000000000000000000000602082015250565b613ff481613cc7565b8114613fff57600080fd5b50565b61400b81613cd9565b811461401657600080fd5b50565b61402281613d05565b811461402d57600080fd5b5056fea2646970667358221220157e5820286e894264ba09a9c279dfeb9936ee3cf95306542b00e151bb7611d564736f6c63430008060033

Deployed Bytecode

0x6080604052600436106103b15760003560e01c80636ddd1713116101e7578063ab00d68d1161010d578063e96fada2116100a0578063f7baf3c51161006f578063f7baf3c514610e19578063f84ba65d14610e30578063f887ea4014610e59578063fc44ed4814610e84576103b8565b8063e96fada214610d6f578063e99090c114610d9a578063ea19e4a814610dc5578063f2fde38b14610df0576103b8565b8063d0889358116100dc578063d088935814610cb3578063dab84ee714610cdc578063dd62ed3e14610d07578063e9563dfd14610d44576103b8565b8063ab00d68d14610c07578063b43b783514610c32578063ca33e64c14610c5d578063cf4be39414610c88576103b8565b8063893d20e81161018557806398118cb41161015457806398118cb414610b4b578063a4e1307114610b76578063a8aa1b3114610b9f578063a9059cbb14610bca576103b8565b8063893d20e814610a8f5780638b42507f14610aba57806395d89b4114610af757806396c99f5b14610b22576103b8565b806378109e54116101c157806378109e54146109e35780637fbcedff14610a0e57806383b4ac6814610a3957806384b1d1ef14610a64576103b8565b80636ddd17131461095057806370a082311461097b5780637724555f146109b8576103b8565b8063391e73a3116102d7578063602bc62b1161026a5780636b67c4df116102395780636b67c4df146108a65780636c5b2855146108d15780636d351d1a146108fa5780636d796e8814610925576103b8565b8063602bc62b146107fc5780636533e39314610827578063658d4b7f146108525780636827e7641461087b576103b8565b80633f4218e0116102a65780633f4218e01461072c5780634f28cac214610769578063541b4de714610794578063571ac8b0146107bf576103b8565b8063391e73a3146106825780633b2d081c146106ad5780633c8e556d146106d85780633d95669114610701576103b8565b80631898cab21161034f5780632f54bf6e1161031e5780632f54bf6e146105b2578063313ce567146105ef578063334773271461061a57806333f3d62814610645576103b8565b80631898cab2146104f65780631da1db5e146105215780631df4ccfc1461054a57806323b872dd14610575576103b8565b8063095ea7b31161038b578063095ea7b31461043c578063154d4abb14610479578063178d9b8e146104a257806318160ddd146104cb576103b8565b80630445b667146103bd57806306fdde03146103e857806309302dc614610413576103b8565b366103b857005b600080fd5b3480156103c957600080fd5b506103d2610eaf565b6040516103df9190613a99565b60405180910390f35b3480156103f457600080fd5b506103fd610eb5565b60405161040a9190613997565b60405180910390f35b34801561041f57600080fd5b5061043a60048036038101906104359190613590565b610ef2565b005b34801561044857600080fd5b50610463600480360381019061045e91906134d0565b610f5e565b6040516104709190613961565b60405180910390f35b34801561048557600080fd5b506104a0600480360381019061049b9190613590565b611050565b005b3480156104ae57600080fd5b506104c960048036038101906104c49190613610565b6110bc565b005b3480156104d757600080fd5b506104e061114e565b6040516104ed9190613a99565b60405180910390f35b34801561050257600080fd5b5061050b611158565b6040516105189190613a99565b60405180910390f35b34801561052d57600080fd5b5061054860048036038101906105439190613590565b611162565b005b34801561055657600080fd5b5061055f611211565b60405161056c9190613a99565b60405180910390f35b34801561058157600080fd5b5061059c6004803603810190610597919061343d565b611217565b6040516105a99190613961565b60405180910390f35b3480156105be57600080fd5b506105d960048036038101906105d49190613369565b6113d9565b6040516105e69190613961565b60405180910390f35b3480156105fb57600080fd5b50610604611432565b6040516106119190613b37565b60405180910390f35b34801561062657600080fd5b5061062f61143b565b60405161063c9190613a99565b60405180910390f35b34801561065157600080fd5b5061066c600480360381019061066791906134d0565b611441565b6040516106799190613961565b60405180910390f35b34801561068e57600080fd5b50610697611520565b6040516106a49190613a99565b60405180910390f35b3480156106b957600080fd5b506106c2611526565b6040516106cf9190613a99565b60405180910390f35b3480156106e457600080fd5b506106ff60048036038101906106fa91906133d6565b61152c565b005b34801561070d57600080fd5b5061071661167e565b6040516107239190613a99565b60405180910390f35b34801561073857600080fd5b50610753600480360381019061074e9190613369565b611684565b6040516107609190613961565b60405180910390f35b34801561077557600080fd5b5061077e6116a4565b60405161078b9190613a99565b60405180910390f35b3480156107a057600080fd5b506107a96116aa565b6040516107b69190613a99565b60405180910390f35b3480156107cb57600080fd5b506107e660048036038101906107e19190613369565b6116b4565b6040516107f39190613961565b60405180910390f35b34801561080857600080fd5b506108116116e7565b60405161081e9190613a99565b60405180910390f35b34801561083357600080fd5b5061083c6116f1565b6040516108499190613a99565b60405180910390f35b34801561085e57600080fd5b5061087960048036038101906108749190613490565b6116f7565b005b34801561088757600080fd5b5061089061179a565b60405161089d9190613a99565b60405180910390f35b3480156108b257600080fd5b506108bb6117a0565b6040516108c89190613a99565b60405180910390f35b3480156108dd57600080fd5b506108f860048036038101906108f39190613610565b6117a6565b005b34801561090657600080fd5b5061090f611838565b60405161091c9190613a99565b60405180910390f35b34801561093157600080fd5b5061093a611842565b6040516109479190613a99565b60405180910390f35b34801561095c57600080fd5b50610965611848565b6040516109729190613961565b60405180910390f35b34801561098757600080fd5b506109a2600480360381019061099d9190613369565b61185b565b6040516109af9190613a99565b60405180910390f35b3480156109c457600080fd5b506109cd6118a4565b6040516109da9190613a99565b60405180910390f35b3480156109ef57600080fd5b506109f86118aa565b604051610a059190613a99565b60405180910390f35b348015610a1a57600080fd5b50610a236118b0565b604051610a309190613a99565b60405180910390f35b348015610a4557600080fd5b50610a4e6118b6565b604051610a5b9190613961565b60405180910390f35b348015610a7057600080fd5b50610a796118ce565b604051610a8691906138bc565b60405180910390f35b348015610a9b57600080fd5b50610aa46118f4565b604051610ab191906138bc565b60405180910390f35b348015610ac657600080fd5b50610ae16004803603810190610adc9190613369565b61191d565b604051610aee9190613961565b60405180910390f35b348015610b0357600080fd5b50610b0c61193d565b604051610b199190613997565b60405180910390f35b348015610b2e57600080fd5b50610b496004803603810190610b449190613590565b61197a565b005b348015610b5757600080fd5b50610b606119e6565b604051610b6d9190613a99565b60405180910390f35b348015610b8257600080fd5b50610b9d6004803603810190610b989190613590565b6119ec565b005b348015610bab57600080fd5b50610bb4611b66565b604051610bc191906138bc565b60405180910390f35b348015610bd657600080fd5b50610bf16004803603810190610bec91906134d0565b611b8c565b604051610bfe9190613961565b60405180910390f35b348015610c1357600080fd5b50610c1c611ba1565b604051610c299190613a99565b60405180910390f35b348015610c3e57600080fd5b50610c47611ba7565b604051610c549190613a99565b60405180910390f35b348015610c6957600080fd5b50610c72611bb1565b604051610c7f91906138bc565b60405180910390f35b348015610c9457600080fd5b50610c9d611bd7565b604051610caa9190613a99565b60405180910390f35b348015610cbf57600080fd5b50610cda6004803603810190610cd5919061353d565b611bdd565b005b348015610ce857600080fd5b50610cf1611c86565b604051610cfe91906138bc565b60405180910390f35b348015610d1357600080fd5b50610d2e6004803603810190610d299190613396565b611cac565b604051610d3b9190613a99565b60405180910390f35b348015610d5057600080fd5b50610d59611d33565b604051610d669190613a99565b60405180910390f35b348015610d7b57600080fd5b50610d84611d39565b604051610d9191906138bc565b60405180910390f35b348015610da657600080fd5b50610daf611d5f565b604051610dbc9190613a99565b60405180910390f35b348015610dd157600080fd5b50610dda611d65565b604051610de79190613a99565b60405180910390f35b348015610dfc57600080fd5b50610e176004803603810190610e129190613369565b611d6b565b005b348015610e2557600080fd5b50610e2e611ee0565b005b348015610e3c57600080fd5b50610e576004803603810190610e529190613490565b6120b4565b005b348015610e6557600080fd5b50610e6e612157565b604051610e7b919061397c565b60405180910390f35b348015610e9057600080fd5b50610e9961217d565b604051610ea69190613a99565b60405180910390f35b60235481565b60606040518060400160405280600881526020017f5a4b537069646572000000000000000000000000000000000000000000000000815250905090565b610efb336113d9565b610f3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3190613a39565b60405180910390fd5b806103e8600654610f4b9190613c08565b610f559190613c39565b601c8190555050565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161103e9190613a99565b60405180910390a36001905092915050565b611059336113d9565b611098576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108f90613a39565b60405180910390fd5b806103e86006546110a99190613c08565b6110b39190613c39565b601a8190555050565b6110c5336113d9565b611104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fb90613a39565b60405180910390fd5b836010819055508260138190555081601281905550806011819055508082848661112e9190613bb2565b6111389190613bb2565b6111429190613bb2565b60148190555050505050565b6000600654905090565b6000601a54905090565b61116b336113d9565b6111aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a190613a39565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc606484846111d79190613c39565b6111e19190613c08565b9081150290604051600060405180830381858888f1935050505015801561120c573d6000803e3d6000fd5b505050565b600f5481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146113c55781600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113449190613c93565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6113d0848484612183565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b601a5481565b600061144c336113d9565b61148b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148290613a39565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016114c69291906138d7565b602060405180830381600087803b1580156114e057600080fd5b505af11580156114f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115189190613510565b905092915050565b60145481565b600e5481565b611535336113d9565b611574576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156b90613a39565b60405180910390fd5b83601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b60255481565b60096020528060005260406000206000915054906101000a900460ff1681565b60245481565b6000601b54905090565b60006116e0827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610f5e565b9050919050565b6000600254905090565b60115481565b611700336113d9565b61173f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173690613a39565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600c5481565b600d5481565b6117af336113d9565b6117ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e590613a39565b60405180910390fd5b83601581905550826018819055508160178190555080601681905550808284866118189190613bb2565b6118229190613bb2565b61182c9190613bb2565b60198190555050505050565b6000602354905090565b60175481565b602260149054906101000a900460ff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60195481565b601c5481565b60125481565b6000602660009054906101000a900460ff1615905090565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600881526020017f5a4b537069646572000000000000000000000000000000000000000000000000815250905090565b611983336113d9565b6119c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b990613a39565b60405180910390fd5b806103e86006546119d39190613c08565b6119dd9190613c39565b601b8190555050565b600b5481565b6119f5336113d9565b611a34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2b90613a39565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508042611ae29190613bb2565b600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611b99338484612183565b905092915050565b60165481565b6000601c54905090565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b5481565b611be6336113d9565b611c25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1c90613a39565b60405180910390fd5b82602260146101000a81548160ff02191690831515021790555081612710600654611c509190613c08565b611c5a9190613c39565b60238190555080612710600654611c719190613c08565b611c7b9190613c39565b602481905550505050565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60135481565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155481565b60105481565b611d74336113d9565b611db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611daa90613a39565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1a906139d9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6790613a79565b60405180910390fd5b6002544211611fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fab90613a59565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6120bd336113d9565b6120fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f390613a39565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60185481565b6000602660009054906101000a900460ff16156121ac576121a5848484612804565b90506127fd565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561220b5761220a612992565b5b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561226a576122696129c1565b5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156122f257503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561234c5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123a65750602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b806123fa5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561245e57600061240a8461185b565b9050601c54838261241b9190613bb2565b111561245c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245390613a19565b60405180910390fd5b505b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561254e57601a548211158061250e5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61254d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612544906139b9565b60405180910390fd5b5b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561263e57601b54821115806125fe5750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61263d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612634906139b9565b60405180910390fd5b5b6126466129f0565b1561265457612653612ac7565b5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461269f9190613c93565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006126ed8561305d565b6126f75782612702565b61270184846130b4565b5b905080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461274f9190613bb2565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127ef9190613a99565b60405180910390a360019150505b9392505050565b600081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128519190613c93565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128df9190613bb2565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161297f9190613a99565b60405180910390a3600190509392505050565b601054600b81905550601154600c81905550601254600d81905550601354600e81905550601454600f81905550565b601554600b81905550601654600c81905550601754600d81905550601854600e81905550601954600f81905550565b6000602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612a5d5750602660009054906101000a900460ff16155b8015612a755750602260149054906101000a900460ff165b8015612ac25750602354600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602660006101000a81548160ff0219169083151502179055506000612aed3061185b565b90506024548110612b0657602454602581905550612b0e565b806025819055505b60006002600b54600f54602554612b259190613c08565b612b2f9190613c39565b612b399190613c08565b9050600081602554612b4b9190613c93565b90506000600267ffffffffffffffff811115612b6a57612b69613e12565b5b604051908082528060200260200182016040528015612b985781602001602082028036833780820191505090505b5090503081600081518110612bb057612baf613de3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612c2157612c20613de3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612cc4959493929190613ab4565b600060405180830381600087803b158015612cde57600080fd5b505af1158015612cf2573d6000803e3d6000fd5b5050505060008147612d049190613c93565b905060006002600b54612d179190613c08565b600f54612d249190613c93565b90506000600282600b5485612d399190613c39565b612d439190613c08565b612d4d9190613c08565b9050600082600e5485612d609190613c39565b612d6a9190613c08565b9050600083600d5486612d7d9190613c39565b612d879190613c08565b9050600081838588612d999190613c93565b612da39190613c93565b612dad9190613c93565b90506000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051612dfb906138a7565b600060405180830381858888f193505050503d8060008114612e39576040519150601f19603f3d011682016040523d82523d6000602084013e612e3e565b606091505b5050905080612e82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e79906139f9565b60405180910390fd5b6000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168561753090604051612ece906138a7565b600060405180830381858888f193505050503d8060008114612f0c576040519150601f19603f3d011682016040523d82523d6000602084013e612f11565b606091505b5050905080612f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f4c906139f9565b60405180910390fd5b6000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168461753090604051612fa1906138a7565b600060405180830381858888f193505050503d8060008114612fdf576040519150601f19603f3d011682016040523d82523d6000602084013e612fe4565b606091505b5050905080613028576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161301f906139f9565b60405180910390fd5b6130328d886131db565b50505050505050505050505050506000602660006101000a81548160ff021916908315150217905550565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080600f546064846130c79190613c08565b6130d19190613c39565b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461311e9190613bb2565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131be9190613a99565b60405180910390a380836131d29190613c93565b91505092915050565b60008211156132fc57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161326d96959493929190613900565b6060604051808303818588803b15801561328657600080fd5b505af115801561329a573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132bf91906135bd565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450681836040516132f3929190613b0e565b60405180910390a15b5050565b60008135905061330f81613feb565b92915050565b60008135905061332481614002565b92915050565b60008151905061333981614002565b92915050565b60008135905061334e81614019565b92915050565b60008151905061336381614019565b92915050565b60006020828403121561337f5761337e613e41565b5b600061338d84828501613300565b91505092915050565b600080604083850312156133ad576133ac613e41565b5b60006133bb85828601613300565b92505060206133cc85828601613300565b9150509250929050565b600080600080608085870312156133f0576133ef613e41565b5b60006133fe87828801613300565b945050602061340f87828801613300565b935050604061342087828801613300565b925050606061343187828801613300565b91505092959194509250565b60008060006060848603121561345657613455613e41565b5b600061346486828701613300565b935050602061347586828701613300565b92505060406134868682870161333f565b9150509250925092565b600080604083850312156134a7576134a6613e41565b5b60006134b585828601613300565b92505060206134c685828601613315565b9150509250929050565b600080604083850312156134e7576134e6613e41565b5b60006134f585828601613300565b92505060206135068582860161333f565b9150509250929050565b60006020828403121561352657613525613e41565b5b60006135348482850161332a565b91505092915050565b60008060006060848603121561355657613555613e41565b5b600061356486828701613315565b93505060206135758682870161333f565b92505060406135868682870161333f565b9150509250925092565b6000602082840312156135a6576135a5613e41565b5b60006135b48482850161333f565b91505092915050565b6000806000606084860312156135d6576135d5613e41565b5b60006135e486828701613354565b93505060206135f586828701613354565b925050604061360686828701613354565b9150509250925092565b6000806000806080858703121561362a57613629613e41565b5b60006136388782880161333f565b94505060206136498782880161333f565b935050604061365a8782880161333f565b925050606061366b8782880161333f565b91505092959194509250565b6000613683838361368f565b60208301905092915050565b61369881613cc7565b82525050565b6136a781613cc7565b82525050565b60006136b882613b62565b6136c28185613b85565b93506136cd83613b52565b8060005b838110156136fe5781516136e58882613677565b97506136f083613b78565b9250506001810190506136d1565b5085935050505092915050565b61371481613cd9565b82525050565b61372381613d1c565b82525050565b61373281613d40565b82525050565b600061374382613b6d565b61374d8185613ba1565b935061375d818560208601613d52565b61376681613e46565b840191505092915050565b600061377e601183613ba1565b915061378982613e57565b602082019050919050565b60006137a1602683613ba1565b91506137ac82613e80565b604082019050919050565b60006137c4601e83613ba1565b91506137cf82613ecf565b602082019050919050565b60006137e7603e83613ba1565b91506137f282613ef8565b604082019050919050565b600061380a600683613ba1565b915061381582613f47565b602082019050919050565b600061382d600083613b96565b915061383882613f70565b600082019050919050565b6000613850601283613ba1565b915061385b82613f73565b602082019050919050565b6000613873602383613ba1565b915061387e82613f9c565b604082019050919050565b61389281613d05565b82525050565b6138a181613d0f565b82525050565b60006138b282613820565b9150819050919050565b60006020820190506138d1600083018461369e565b92915050565b60006040820190506138ec600083018561369e565b6138f96020830184613889565b9392505050565b600060c082019050613915600083018961369e565b6139226020830188613889565b61392f6040830187613729565b61393c6060830186613729565b613949608083018561369e565b61395660a0830184613889565b979650505050505050565b6000602082019050613976600083018461370b565b92915050565b6000602082019050613991600083018461371a565b92915050565b600060208201905081810360008301526139b18184613738565b905092915050565b600060208201905081810360008301526139d281613771565b9050919050565b600060208201905081810360008301526139f281613794565b9050919050565b60006020820190508181036000830152613a12816137b7565b9050919050565b60006020820190508181036000830152613a32816137da565b9050919050565b60006020820190508181036000830152613a52816137fd565b9050919050565b60006020820190508181036000830152613a7281613843565b9050919050565b60006020820190508181036000830152613a9281613866565b9050919050565b6000602082019050613aae6000830184613889565b92915050565b600060a082019050613ac96000830188613889565b613ad66020830187613729565b8181036040830152613ae881866136ad565b9050613af7606083018561369e565b613b046080830184613889565b9695505050505050565b6000604082019050613b236000830185613889565b613b306020830184613889565b9392505050565b6000602082019050613b4c6000830184613898565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000613bbd82613d05565b9150613bc883613d05565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613bfd57613bfc613d85565b5b828201905092915050565b6000613c1382613d05565b9150613c1e83613d05565b925082613c2e57613c2d613db4565b5b828204905092915050565b6000613c4482613d05565b9150613c4f83613d05565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613c8857613c87613d85565b5b828202905092915050565b6000613c9e82613d05565b9150613ca983613d05565b925082821015613cbc57613cbb613d85565b5b828203905092915050565b6000613cd282613ce5565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613d2782613d2e565b9050919050565b6000613d3982613ce5565b9050919050565b6000613d4b82613d05565b9050919050565b60005b83811015613d70578082015181840152602081019050613d55565b83811115613d7f576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b7f436f6e7472616374206973206c6f636b65640000000000000000000000000000600082015250565b7f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c60008201527f6f636b0000000000000000000000000000000000000000000000000000000000602082015250565b613ff481613cc7565b8114613fff57600080fd5b50565b61400b81613cd9565b811461401657600080fd5b50565b61402281613d05565b811461402d57600080fd5b5056fea2646970667358221220157e5820286e894264ba09a9c279dfeb9936ee3cf95306542b00e151bb7611d564736f6c63430008060033

Deployed Bytecode Sourcemap

4015:13054:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6120:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7164:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16010:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7584:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16194:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14263:367;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6894:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13913:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16794:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4813:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8106:341;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1471:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6988:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5439:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16613:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5015:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4781:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15023:375;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6252:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4551:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6189:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14029:106;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7812:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1832:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4889:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15744:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4719:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4747:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14638:373;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13684:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5204:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6083:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7334:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5295:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5584:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4926:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14143:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5937:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7250;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4602:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7074:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16385:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4685:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1930:232;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6055:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7942:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5166:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13797:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5681:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5511:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15406:330;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5856:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7445:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4970:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5769:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5121:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4845:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1582:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2170:299;;;;;;;;;;;;;:::i;:::-;;15875:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6024:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5249:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6120:54;;;;:::o;7164:80::-;7212:13;7236:5;;;;;;;;;;;;;;;;;7229:12;;7164:80;:::o;16010:176::-;1422:19;1430:10;1422:7;:19::i;:::-;1414:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16154:23:::1;16145:4;16129:12;;:21;;;;:::i;:::-;:49;;;;:::i;:::-;16111:15;:67;;;;16010:176:::0;:::o;7584:216::-;7659:4;7711:6;7676:11;:23;7688:10;7676:23;;;;;;;;;;;;;;;:32;7700:7;7676:32;;;;;;;;;;;;;;;:41;;;;7754:7;7733:37;;7742:10;7733:37;;;7763:6;7733:37;;;;;;:::i;:::-;;;;;;;;7788:4;7781:11;;7584:216;;;;:::o;16194:183::-;1422:19;1430:10;1422:7;:19::i;:::-;1414:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16341:27:::1;16332:4;16316:12;;:21;;;;:::i;:::-;:53;;;;:::i;:::-;16298:15;:71;;;;16194:183:::0;:::o;14263:367::-;1422:19;1430:10;1422:7;:19::i;:::-;1414:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14415:13:::1;14397:15;:31;;;;14455:11;14439:13;:27;;;;14495:13;14477:15;:31;;;;14531:7;14519:9;:19;;;;14614:7;14596:13;14580:11;14563:13;:29;;;;:::i;:::-;:47;;;;:::i;:::-;:59;;;;:::i;:::-;14549:11;:73;;;;14263:367:::0;;;;:::o;6894:88::-;6949:7;6967:12;;6960:19;;6894:88;:::o;13913:104::-;13967:7;13994:15;;13987:22;;13913:104;:::o;16794:207::-;1422:19;1430:10;1422:7;:19::i;:::-;1414:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16877:17:::1;16897:21;16877:41;;16937:10;16929:28;;:64;16989:3;16970:16;16958:9;:28;;;;:::i;:::-;:34;;;;:::i;:::-;16929:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;16866:135;16794:207:::0;:::o;4813:23::-;;;;:::o;8106:341::-;8206:4;8261:17;8226:11;:19;8238:6;8226:19;;;;;;;;;;;;;;;:31;8246:10;8226:31;;;;;;;;;;;;;;;;:52;8223:157;;8362:6;8328:11;:19;8340:6;8328:19;;;;;;;;;;;;;;;:31;8348:10;8328:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;8294:11;:19;8306:6;8294:19;;;;;;;;;;;;;;;:31;8314:10;8294:31;;;;;;;;;;;;;;;:74;;;;8223:157;8399:40;8413:6;8421:9;8432:6;8399:13;:40::i;:::-;8392:47;;8106:341;;;;;:::o;1471:103::-;1526:4;1561:5;;;;;;;;;;;1550:16;;:7;:16;;;1543:23;;1471:103;;;:::o;6988:80::-;7040:5;4373:1;7049:16;;6988:80;:::o;5439:59::-;;;;:::o;16613:173::-;16698:12;1422:19;1430:10;1422:7;:19::i;:::-;1414:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16736:12:::1;16730:28;;;16759:10;16771:6;16730:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16723:55;;16613:173:::0;;;;:::o;5015:97::-;;;;:::o;4781:25::-;;;;:::o;15023:375::-;1422:19;1430:10;1422:7;:19::i;:::-;1414:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15219:22:::1;15195:21;;:46;;;;;;;;;;;;;;;;;;15275:21;15252:20;;:44;;;;;;;;;;;;;;;;;;15328:19;15307:18;;:40;;;;;;;;;;;;;;;;;;15375:15;15358:14;;:32;;;;;;;;;;;;;;;;;;15023:375:::0;;;;:::o;6252:27::-;;;;:::o;4551:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;6189:51::-;;;;:::o;14029:106::-;14084:7;14111:16;;14104:23;;14029:106;:::o;7812:122::-;7867:4;7891:35;7899:7;7908:17;7891:7;:35::i;:::-;7884:42;;7812:122;;;:::o;1832:90::-;1878:7;1905:9;;1898:16;;1832:90;:::o;4889:30::-;;;;:::o;15744:119::-;1422:19;1430:10;1422:7;:19::i;:::-;1414:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15849:6:::1;15827:11;:19;15839:6;15827:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;15744:119:::0;;:::o;4719:21::-;;;;:::o;4747:27::-;;;;:::o;14638:373::-;1422:19;1430:10;1422:7;:19::i;:::-;1414:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14792:13:::1;14773:16;:32;;;;14833:11;14816:14;:28;;;;14874:13;14855:16;:32;;;;14911:7;14898:10;:20;;;;14995:7;14977:13;14961:11;14944:13;:29;;;;:::i;:::-;:47;;;;:::i;:::-;:59;;;;:::i;:::-;14929:12;:74;;;;14638:373:::0;;;;:::o;13684:101::-;13737:7;13764:13;;13757:20;;13684:101;:::o;5204:38::-;;;;:::o;6083:30::-;;;;;;;;;;;;;:::o;7334:105::-;7400:7;7418:9;:18;7428:7;7418:18;;;;;;;;;;;;;;;;7411:25;;7334:105;;;:::o;5295:102::-;;;;:::o;5584:59::-;;;;:::o;4926:37::-;;;;:::o;14143:85::-;14189:4;14214:6;;;;;;;;;;;14213:7;14206:14;;14143:85;:::o;5937:78::-;;;;;;;;;;;;;:::o;7250:::-;7302:7;7320:5;;;;;;;;;;;7313:12;;7250:78;:::o;4602:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;7074:84::-;7124:13;7148:7;;;;;;;;;;;;;;;;;7141:14;;7074:84;:::o;16385:187::-;1422:19;1430:10;1422:7;:19::i;:::-;1414:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16535:28:::1;16526:4;16510:12;;:21;;;;:::i;:::-;:54;;;;:::i;:::-;16491:16;:73;;;;16385:187:::0;:::o;4685:27::-;;;;:::o;1930:232::-;1422:19;1430:10;1422:7;:19::i;:::-;1414:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2020:5:::1;::::0;::::1;;;;;;;;2003:14;;:22;;;;;;;;;;;;;;;;;;2052:1;2036:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2095:4;2077:15;:22;;;;:::i;:::-;2065:9;:34;;;;2151:1;2115:39;;2136:5;::::0;::::1;;;;;;;;2115:39;;;;;;;;;;;;1930:232:::0;:::o;6055:19::-;;;;;;;;;;;;;:::o;7942:156::-;8022:4;8046:44;8060:10;8072:9;8083:6;8046:13;:44::i;:::-;8039:51;;7942:156;;;;:::o;5166:31::-;;;;:::o;13797:104::-;13851:7;13878:15;;13871:22;;13797:104;:::o;5681:81::-;;;;;;;;;;;;;:::o;5511:60::-;;;;:::o;15406:330::-;1422:19;1430:10;1422:7;:19::i;:::-;1414:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15564:8:::1;15550:11;;:22;;;;;;;;;;;;;;;;;;15625:25;15615:5;15599:12;;:22;;;;:::i;:::-;:52;;;;:::i;:::-;15583:13;:68;;;;15702:25;15692:5;15676:12;;:22;;;;:::i;:::-;:52;;;;:::i;:::-;15662:11;:66;;;;15406:330:::0;;;:::o;5856:74::-;;;;;;;;;;;;;:::o;7445:133::-;7529:7;7547:11;:19;7559:6;7547:19;;;;;;;;;;;;;;;:28;7567:7;7547:28;;;;;;;;;;;;;;;;7540:35;;7445:133;;;;:::o;4970:38::-;;;;:::o;5769:80::-;;;;;;;;;;;;;:::o;5121:38::-;;;;:::o;4845:37::-;;;;:::o;1582:242::-;1422:19;1430:10;1422:7;:19::i;:::-;1414:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;1691:1:::1;1671:22;;:8;:22;;;;1663:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1780:8;1752:37;;1773:5;::::0;::::1;;;;;;;;1752:37;;;;;;;;;;;;1808:8;1800:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;1582:242:::0;:::o;2170:299::-;2249:10;2231:28;;:14;;;;;;;;;;;:28;;;2223:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;2336:9;;2318:15;:27;2310:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;2413:14;;;;;;;;;;;2385:43;;2406:5;;;;;;;;;;2385:43;;;;;;;;;;;;2447:14;;;;;;;;;;;2439:5;;:22;;;;;;;;;;;;;;;;;;2170:299::o;15875:127::-;1422:19;1430:10;1422:7;:19::i;:::-;1414:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15988:6:::1;15962:15;:23;15978:6;15962:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;15875:127:::0;;:::o;6024:24::-;;;;;;;;;;;;;:::o;5249:39::-;;;;:::o;8455:1361::-;8547:4;8567:6;;;;;;;;;;;8564:63;;;8583:41;8598:6;8606:9;8617:6;8583:14;:41::i;:::-;8576:48;;;;8564:63;8652:4;;;;;;;;;;;8642:14;;:6;:14;;;8639:54;;;8672:9;:7;:9::i;:::-;8639:54;8721:4;;;;;;;;;;;8708:17;;:9;:17;;;8705:58;;;8741:10;:8;:10::i;:::-;8705:58;8789:5;;;;;;;;;;8779:15;;:6;:15;;;;:45;;;;;8819:4;8798:26;;:9;:26;;;;8779:45;:75;;;;;8849:4;;;;;;;;;;;8828:26;;:9;:26;;;;8779:75;:96;;;;;8871:4;;;;;;;;;;;8858:17;;:9;:17;;;;8779:96;:126;;;;8879:15;:26;8895:9;8879:26;;;;;;;;;;;;;;;;;;;;;;;;;8779:126;8775:318;;;8921:18;8942:20;8952:9;8942;:20::i;:::-;8921:41;;9010:15;;8999:6;8986:10;:19;;;;:::i;:::-;8985:40;;8977:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;8906:187;8775:318;9159:4;;;;;;;;;;;9149:14;;:6;:14;;;9146:130;;;9197:15;;9187:6;:25;;:55;;;;9216:15;:26;9232:9;9216:26;;;;;;;;;;;;;;;;;;;;;;;;;9187:55;9179:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;9146:130;9312:4;;;;;;;;;;;9299:17;;:9;:17;;;9296:131;;;9350:16;;9340:6;:26;;:53;;;;9370:15;:23;9386:6;9370:23;;;;;;;;;;;;;;;;;;;;;;;;;9340:53;9332:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;9296:131;9467:16;:14;:16::i;:::-;9464:35;;;9486:10;:8;:10::i;:::-;9464:35;9551:6;9531:9;:17;9541:6;9531:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;9511:9;:17;9521:6;9511:17;;;;;;;;;;;;;;;:46;;;;9570:22;9595:21;9609:6;9595:13;:21::i;:::-;:59;;9648:6;9595:59;;;9619:26;9627:9;9638:6;9619:7;:26::i;:::-;9595:59;9570:84;;9711:14;9688:9;:20;9698:9;9688:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;9665:9;:20;9675:9;9665:20;;;;;;;;;;;;;;;:60;;;;9760:9;9743:43;;9752:6;9743:43;;;9771:14;9743:43;;;;;;:::i;:::-;;;;;;;;9804:4;9797:11;;;8455:1361;;;;;;:::o;9828:302::-;9921:4;9978:6;9958:9;:17;9968:6;9958:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;9938:9;:17;9948:6;9938:17;;;;;;;;;;;;;;;:46;;;;10042:6;10018:9;:20;10028:9;10018:20;;;;;;;;;;;;;;;;:31;;;;:::i;:::-;9995:9;:20;10005:9;9995:20;;;;;;;;;;;;;;;:54;;;;10082:9;10065:35;;10074:6;10065:35;;;10093:6;10065:35;;;;;;:::i;:::-;;;;;;;;10118:4;10111:11;;9828:302;;;;;:::o;10165:236::-;10221:15;;10203:12;:33;;;;10258:9;;10247:6;:20;;;;10296:15;;10278:12;:33;;;;10340:13;;10322:10;:31;;;;10382:11;;10364:8;:29;;;;10165:236::o;10409:242::-;10466:16;;10448:12;:34;;;;10504:10;;10493:6;:21;;;;10543:16;;10525:12;:34;;;;10588:14;;10570:10;:32;;;;10631:12;;10613:8;:30;;;;10409:242::o;11107:197::-;11156:4;11194;;;;;;;;;;;11180:18;;:10;:18;;;;:38;;;;;11212:6;;;;;;;;;;;11211:7;11180:38;:62;;;;;11231:11;;;;;;;;;;;11180:62;:116;;;;;11283:13;;11255:9;:24;11273:4;11255:24;;;;;;;;;;;;;;;;:41;;11180:116;11173:123;;11107:197;:::o;11312:1913::-;6337:4;6328:6;;:13;;;;;;;;;;;;;;;;;;11361:28:::1;11392:24;11410:4;11392:9;:24::i;:::-;11361:55;;11454:11;;11430:20;:35;11427:180;;11496:11;;11481:12;:26;;;;11427:180;;;11575:20;11560:12;:35;;;;11427:180;11619:23;11691:1;11674:12;;11661:8;;11645:12;;:25;;;;:::i;:::-;:42;;;;:::i;:::-;:48;;;;:::i;:::-;11619:74;;11704:20;11743:15;11727:12;;:32;;;;:::i;:::-;11704:55;;11772:21;11810:1;11796:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11772:40;;11841:4;11823;11828:1;11823:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11867:4;;;;;;;;;;;11857;11862:1;11857:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;11884:21;11908;11884:45;;11942:6;;;;;;;;;;;:57;;;12014:12;12041:1;12057:4;12084;12104:15;11942:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12143:17;12188:13;12163:21;:39;;;;:::i;:::-;12143:59;;12215:19;12265:1;12249:12;;:18;;;;:::i;:::-;12237:8;;:31;;;;:::i;:::-;12215:53;;12289:26;12364:1;12348:11;12331:12;;12318:9;:26;;;;:::i;:::-;:42;;;;:::i;:::-;:48;;;;:::i;:::-;12289:77;;12377:24;12432:11;12417:10;;12404:9;:24;;;;:::i;:::-;:40;;;;:::i;:::-;12377:67;;12455:26;12514:11;12497:12;;12484:9;:26;;;;:::i;:::-;:42;;;;:::i;:::-;12455:71;;12537:20;12612:18;12593:16;12572:18;12560:9;:30;;;;:::i;:::-;:49;;;;:::i;:::-;:70;;;;:::i;:::-;12537:93;;12644:21;12678:20;;;;;;;;;;;12670:34;;12712:18;12737:5;12670:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12643:104;;;12766:16;12758:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;12829:19;12861:18;;;;;;;;;;;12853:32;;12893:16;12916:5;12853:73;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12828:98;;;12945:14;12937:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;13006:15;13034:14;;;;;;;;;;;13026:28;;13062:12;13081:5;13026:65;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13005:86;;;13110:10;13102:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;13168:49;13181:15;13198:18;13168:12;:49::i;:::-;11350:1875;;;;;;;;;;;;;;6355:5:::0;6346:6;;:14;;;;;;;;;;;;;;;;;;11312:1913::o;10659:114::-;10721:4;10746:11;:19;10758:6;10746:19;;;;;;;;;;;;;;;;;;;;;;;;;10745:20;10738:27;;10659:114;;;:::o;10781:316::-;10848:7;10868:17;10904:8;;10897:3;10888:6;:12;;;;:::i;:::-;:25;;;;:::i;:::-;10868:45;;10981:9;10953;:24;10971:4;10953:24;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;10926:9;:24;10944:4;10926:24;;;;;;;;;;;;;;;:65;;;;11032:4;11007:42;;11016:6;11007:42;;;11039:9;11007:42;;;;;;:::i;:::-;;;;;;;;11079:9;11069:6;:20;;;;:::i;:::-;11062:27;;;10781:316;;;;:::o;13233:416::-;13327:1;13313:11;:15;13310:332;;;13344:6;;;;;;;;;;;:22;;;13374:9;13411:4;13435:11;13465:1;13485;13505:21;;;;;;;;;;;13545:15;13344:231;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13595:35;13607:9;13618:11;13595:35;;;;;;;:::i;:::-;;;;;;;;13310:332;13233:416;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:133::-;195:5;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;201:84;;;;:::o;291:137::-;345:5;376:6;370:13;361:22;;392:30;416:5;392:30;:::i;:::-;351:77;;;;:::o;434:139::-;480:5;518:6;505:20;496:29;;534:33;561:5;534:33;:::i;:::-;486:87;;;;:::o;579:143::-;636:5;667:6;661:13;652:22;;683:33;710:5;683:33;:::i;:::-;642:80;;;;:::o;728:329::-;787:6;836:2;824:9;815:7;811:23;807:32;804:2;;;842:79;;:::i;:::-;804:2;962:1;987:53;1032:7;1023:6;1012:9;1008:22;987:53;:::i;:::-;977:63;;933:117;794:263;;;;:::o;1063:474::-;1131:6;1139;1188:2;1176:9;1167:7;1163:23;1159:32;1156:2;;;1194:79;;:::i;:::-;1156:2;1314:1;1339:53;1384:7;1375:6;1364:9;1360:22;1339:53;:::i;:::-;1329:63;;1285:117;1441:2;1467:53;1512:7;1503:6;1492:9;1488:22;1467:53;:::i;:::-;1457:63;;1412:118;1146:391;;;;;:::o;1543:765::-;1629:6;1637;1645;1653;1702:3;1690:9;1681:7;1677:23;1673:33;1670:2;;;1709:79;;:::i;:::-;1670:2;1829:1;1854:53;1899:7;1890:6;1879:9;1875:22;1854:53;:::i;:::-;1844:63;;1800:117;1956:2;1982:53;2027:7;2018:6;2007:9;2003:22;1982:53;:::i;:::-;1972:63;;1927:118;2084:2;2110:53;2155:7;2146:6;2135:9;2131:22;2110:53;:::i;:::-;2100:63;;2055:118;2212:2;2238:53;2283:7;2274:6;2263:9;2259:22;2238:53;:::i;:::-;2228:63;;2183:118;1660:648;;;;;;;:::o;2314:619::-;2391:6;2399;2407;2456:2;2444:9;2435:7;2431:23;2427:32;2424:2;;;2462:79;;:::i;:::-;2424:2;2582:1;2607:53;2652:7;2643:6;2632:9;2628:22;2607:53;:::i;:::-;2597:63;;2553:117;2709:2;2735:53;2780:7;2771:6;2760:9;2756:22;2735:53;:::i;:::-;2725:63;;2680:118;2837:2;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2808:118;2414:519;;;;;:::o;2939:468::-;3004:6;3012;3061:2;3049:9;3040:7;3036:23;3032:32;3029:2;;;3067:79;;:::i;:::-;3029:2;3187:1;3212:53;3257:7;3248:6;3237:9;3233:22;3212:53;:::i;:::-;3202:63;;3158:117;3314:2;3340:50;3382:7;3373:6;3362:9;3358:22;3340:50;:::i;:::-;3330:60;;3285:115;3019:388;;;;;:::o;3413:474::-;3481:6;3489;3538:2;3526:9;3517:7;3513:23;3509:32;3506:2;;;3544:79;;:::i;:::-;3506:2;3664:1;3689:53;3734:7;3725:6;3714:9;3710:22;3689:53;:::i;:::-;3679:63;;3635:117;3791:2;3817:53;3862:7;3853:6;3842:9;3838:22;3817:53;:::i;:::-;3807:63;;3762:118;3496:391;;;;;:::o;3893:345::-;3960:6;4009:2;3997:9;3988:7;3984:23;3980:32;3977:2;;;4015:79;;:::i;:::-;3977:2;4135:1;4160:61;4213:7;4204:6;4193:9;4189:22;4160:61;:::i;:::-;4150:71;;4106:125;3967:271;;;;:::o;4244:613::-;4318:6;4326;4334;4383:2;4371:9;4362:7;4358:23;4354:32;4351:2;;;4389:79;;:::i;:::-;4351:2;4509:1;4534:50;4576:7;4567:6;4556:9;4552:22;4534:50;:::i;:::-;4524:60;;4480:114;4633:2;4659:53;4704:7;4695:6;4684:9;4680:22;4659:53;:::i;:::-;4649:63;;4604:118;4761:2;4787:53;4832:7;4823:6;4812:9;4808:22;4787:53;:::i;:::-;4777:63;;4732:118;4341:516;;;;;:::o;4863:329::-;4922:6;4971:2;4959:9;4950:7;4946:23;4942:32;4939:2;;;4977:79;;:::i;:::-;4939:2;5097:1;5122:53;5167:7;5158:6;5147:9;5143:22;5122:53;:::i;:::-;5112:63;;5068:117;4929:263;;;;:::o;5198:663::-;5286:6;5294;5302;5351:2;5339:9;5330:7;5326:23;5322:32;5319:2;;;5357:79;;:::i;:::-;5319:2;5477:1;5502:64;5558:7;5549:6;5538:9;5534:22;5502:64;:::i;:::-;5492:74;;5448:128;5615:2;5641:64;5697:7;5688:6;5677:9;5673:22;5641:64;:::i;:::-;5631:74;;5586:129;5754:2;5780:64;5836:7;5827:6;5816:9;5812:22;5780:64;:::i;:::-;5770:74;;5725:129;5309:552;;;;;:::o;5867:765::-;5953:6;5961;5969;5977;6026:3;6014:9;6005:7;6001:23;5997:33;5994:2;;;6033:79;;:::i;:::-;5994:2;6153:1;6178:53;6223:7;6214:6;6203:9;6199:22;6178:53;:::i;:::-;6168:63;;6124:117;6280:2;6306:53;6351:7;6342:6;6331:9;6327:22;6306:53;:::i;:::-;6296:63;;6251:118;6408:2;6434:53;6479:7;6470:6;6459:9;6455:22;6434:53;:::i;:::-;6424:63;;6379:118;6536:2;6562:53;6607:7;6598:6;6587:9;6583:22;6562:53;:::i;:::-;6552:63;;6507:118;5984:648;;;;;;;:::o;6638:179::-;6707:10;6728:46;6770:3;6762:6;6728:46;:::i;:::-;6806:4;6801:3;6797:14;6783:28;;6718:99;;;;:::o;6823:108::-;6900:24;6918:5;6900:24;:::i;:::-;6895:3;6888:37;6878:53;;:::o;6937:118::-;7024:24;7042:5;7024:24;:::i;:::-;7019:3;7012:37;7002:53;;:::o;7091:732::-;7210:3;7239:54;7287:5;7239:54;:::i;:::-;7309:86;7388:6;7383:3;7309:86;:::i;:::-;7302:93;;7419:56;7469:5;7419:56;:::i;:::-;7498:7;7529:1;7514:284;7539:6;7536:1;7533:13;7514:284;;;7615:6;7609:13;7642:63;7701:3;7686:13;7642:63;:::i;:::-;7635:70;;7728:60;7781:6;7728:60;:::i;:::-;7718:70;;7574:224;7561:1;7558;7554:9;7549:14;;7514:284;;;7518:14;7814:3;7807:10;;7215:608;;;;;;;:::o;7829:109::-;7910:21;7925:5;7910:21;:::i;:::-;7905:3;7898:34;7888:50;;:::o;7944:167::-;8049:55;8098:5;8049:55;:::i;:::-;8044:3;8037:68;8027:84;;:::o;8117:147::-;8212:45;8251:5;8212:45;:::i;:::-;8207:3;8200:58;8190:74;;:::o;8270:364::-;8358:3;8386:39;8419:5;8386:39;:::i;:::-;8441:71;8505:6;8500:3;8441:71;:::i;:::-;8434:78;;8521:52;8566:6;8561:3;8554:4;8547:5;8543:16;8521:52;:::i;:::-;8598:29;8620:6;8598:29;:::i;:::-;8593:3;8589:39;8582:46;;8362:272;;;;;:::o;8640:366::-;8782:3;8803:67;8867:2;8862:3;8803:67;:::i;:::-;8796:74;;8879:93;8968:3;8879:93;:::i;:::-;8997:2;8992:3;8988:12;8981:19;;8786:220;;;:::o;9012:366::-;9154:3;9175:67;9239:2;9234:3;9175:67;:::i;:::-;9168:74;;9251:93;9340:3;9251:93;:::i;:::-;9369:2;9364:3;9360:12;9353:19;;9158:220;;;:::o;9384:366::-;9526:3;9547:67;9611:2;9606:3;9547:67;:::i;:::-;9540:74;;9623:93;9712:3;9623:93;:::i;:::-;9741:2;9736:3;9732:12;9725:19;;9530:220;;;:::o;9756:366::-;9898:3;9919:67;9983:2;9978:3;9919:67;:::i;:::-;9912:74;;9995:93;10084:3;9995:93;:::i;:::-;10113:2;10108:3;10104:12;10097:19;;9902:220;;;:::o;10128:365::-;10270:3;10291:66;10355:1;10350:3;10291:66;:::i;:::-;10284:73;;10366:93;10455:3;10366:93;:::i;:::-;10484:2;10479:3;10475:12;10468:19;;10274:219;;;:::o;10499:398::-;10658:3;10679:83;10760:1;10755:3;10679:83;:::i;:::-;10672:90;;10771:93;10860:3;10771:93;:::i;:::-;10889:1;10884:3;10880:11;10873:18;;10662:235;;;:::o;10903:366::-;11045:3;11066:67;11130:2;11125:3;11066:67;:::i;:::-;11059:74;;11142:93;11231:3;11142:93;:::i;:::-;11260:2;11255:3;11251:12;11244:19;;11049:220;;;:::o;11275:366::-;11417:3;11438:67;11502:2;11497:3;11438:67;:::i;:::-;11431:74;;11514:93;11603:3;11514:93;:::i;:::-;11632:2;11627:3;11623:12;11616:19;;11421:220;;;:::o;11647:118::-;11734:24;11752:5;11734:24;:::i;:::-;11729:3;11722:37;11712:53;;:::o;11771:112::-;11854:22;11870:5;11854:22;:::i;:::-;11849:3;11842:35;11832:51;;:::o;11889:379::-;12073:3;12095:147;12238:3;12095:147;:::i;:::-;12088:154;;12259:3;12252:10;;12077:191;;;:::o;12274:222::-;12367:4;12405:2;12394:9;12390:18;12382:26;;12418:71;12486:1;12475:9;12471:17;12462:6;12418:71;:::i;:::-;12372:124;;;;:::o;12502:332::-;12623:4;12661:2;12650:9;12646:18;12638:26;;12674:71;12742:1;12731:9;12727:17;12718:6;12674:71;:::i;:::-;12755:72;12823:2;12812:9;12808:18;12799:6;12755:72;:::i;:::-;12628:206;;;;;:::o;12840:807::-;13089:4;13127:3;13116:9;13112:19;13104:27;;13141:71;13209:1;13198:9;13194:17;13185:6;13141:71;:::i;:::-;13222:72;13290:2;13279:9;13275:18;13266:6;13222:72;:::i;:::-;13304:80;13380:2;13369:9;13365:18;13356:6;13304:80;:::i;:::-;13394;13470:2;13459:9;13455:18;13446:6;13394:80;:::i;:::-;13484:73;13552:3;13541:9;13537:19;13528:6;13484:73;:::i;:::-;13567;13635:3;13624:9;13620:19;13611:6;13567:73;:::i;:::-;13094:553;;;;;;;;;:::o;13653:210::-;13740:4;13778:2;13767:9;13763:18;13755:26;;13791:65;13853:1;13842:9;13838:17;13829:6;13791:65;:::i;:::-;13745:118;;;;:::o;13869:258::-;13980:4;14018:2;14007:9;14003:18;13995:26;;14031:89;14117:1;14106:9;14102:17;14093:6;14031:89;:::i;:::-;13985:142;;;;:::o;14133:313::-;14246:4;14284:2;14273:9;14269:18;14261:26;;14333:9;14327:4;14323:20;14319:1;14308:9;14304:17;14297:47;14361:78;14434:4;14425:6;14361:78;:::i;:::-;14353:86;;14251:195;;;;:::o;14452:419::-;14618:4;14656:2;14645:9;14641:18;14633:26;;14705:9;14699:4;14695:20;14691:1;14680:9;14676:17;14669:47;14733:131;14859:4;14733:131;:::i;:::-;14725:139;;14623:248;;;:::o;14877:419::-;15043:4;15081:2;15070:9;15066:18;15058:26;;15130:9;15124:4;15120:20;15116:1;15105:9;15101:17;15094:47;15158:131;15284:4;15158:131;:::i;:::-;15150:139;;15048:248;;;:::o;15302:419::-;15468:4;15506:2;15495:9;15491:18;15483:26;;15555:9;15549:4;15545:20;15541:1;15530:9;15526:17;15519:47;15583:131;15709:4;15583:131;:::i;:::-;15575:139;;15473:248;;;:::o;15727:419::-;15893:4;15931:2;15920:9;15916:18;15908:26;;15980:9;15974:4;15970:20;15966:1;15955:9;15951:17;15944:47;16008:131;16134:4;16008:131;:::i;:::-;16000:139;;15898:248;;;:::o;16152:419::-;16318:4;16356:2;16345:9;16341:18;16333:26;;16405:9;16399:4;16395:20;16391:1;16380:9;16376:17;16369:47;16433:131;16559:4;16433:131;:::i;:::-;16425:139;;16323:248;;;:::o;16577:419::-;16743:4;16781:2;16770:9;16766:18;16758:26;;16830:9;16824:4;16820:20;16816:1;16805:9;16801:17;16794:47;16858:131;16984:4;16858:131;:::i;:::-;16850:139;;16748:248;;;:::o;17002:419::-;17168:4;17206:2;17195:9;17191:18;17183:26;;17255:9;17249:4;17245:20;17241:1;17230:9;17226:17;17219:47;17283:131;17409:4;17283:131;:::i;:::-;17275:139;;17173:248;;;:::o;17427:222::-;17520:4;17558:2;17547:9;17543:18;17535:26;;17571:71;17639:1;17628:9;17624:17;17615:6;17571:71;:::i;:::-;17525:124;;;;:::o;17655:831::-;17918:4;17956:3;17945:9;17941:19;17933:27;;17970:71;18038:1;18027:9;18023:17;18014:6;17970:71;:::i;:::-;18051:80;18127:2;18116:9;18112:18;18103:6;18051:80;:::i;:::-;18178:9;18172:4;18168:20;18163:2;18152:9;18148:18;18141:48;18206:108;18309:4;18300:6;18206:108;:::i;:::-;18198:116;;18324:72;18392:2;18381:9;18377:18;18368:6;18324:72;:::i;:::-;18406:73;18474:3;18463:9;18459:19;18450:6;18406:73;:::i;:::-;17923:563;;;;;;;;:::o;18492:332::-;18613:4;18651:2;18640:9;18636:18;18628:26;;18664:71;18732:1;18721:9;18717:17;18708:6;18664:71;:::i;:::-;18745:72;18813:2;18802:9;18798:18;18789:6;18745:72;:::i;:::-;18618:206;;;;;:::o;18830:214::-;18919:4;18957:2;18946:9;18942:18;18934:26;;18970:67;19034:1;19023:9;19019:17;19010:6;18970:67;:::i;:::-;18924:120;;;;:::o;19131:132::-;19198:4;19221:3;19213:11;;19251:4;19246:3;19242:14;19234:22;;19203:60;;;:::o;19269:114::-;19336:6;19370:5;19364:12;19354:22;;19343:40;;;:::o;19389:99::-;19441:6;19475:5;19469:12;19459:22;;19448:40;;;:::o;19494:113::-;19564:4;19596;19591:3;19587:14;19579:22;;19569:38;;;:::o;19613:184::-;19712:11;19746:6;19741:3;19734:19;19786:4;19781:3;19777:14;19762:29;;19724:73;;;;:::o;19803:147::-;19904:11;19941:3;19926:18;;19916:34;;;;:::o;19956:169::-;20040:11;20074:6;20069:3;20062:19;20114:4;20109:3;20105:14;20090:29;;20052:73;;;;:::o;20131:305::-;20171:3;20190:20;20208:1;20190:20;:::i;:::-;20185:25;;20224:20;20242:1;20224:20;:::i;:::-;20219:25;;20378:1;20310:66;20306:74;20303:1;20300:81;20297:2;;;20384:18;;:::i;:::-;20297:2;20428:1;20425;20421:9;20414:16;;20175:261;;;;:::o;20442:185::-;20482:1;20499:20;20517:1;20499:20;:::i;:::-;20494:25;;20533:20;20551:1;20533:20;:::i;:::-;20528:25;;20572:1;20562:2;;20577:18;;:::i;:::-;20562:2;20619:1;20616;20612:9;20607:14;;20484:143;;;;:::o;20633:348::-;20673:7;20696:20;20714:1;20696:20;:::i;:::-;20691:25;;20730:20;20748:1;20730:20;:::i;:::-;20725:25;;20918:1;20850:66;20846:74;20843:1;20840:81;20835:1;20828:9;20821:17;20817:105;20814:2;;;20925:18;;:::i;:::-;20814:2;20973:1;20970;20966:9;20955:20;;20681:300;;;;:::o;20987:191::-;21027:4;21047:20;21065:1;21047:20;:::i;:::-;21042:25;;21081:20;21099:1;21081:20;:::i;:::-;21076:25;;21120:1;21117;21114:8;21111:2;;;21125:18;;:::i;:::-;21111:2;21170:1;21167;21163:9;21155:17;;21032:146;;;;:::o;21184:96::-;21221:7;21250:24;21268:5;21250:24;:::i;:::-;21239:35;;21229:51;;;:::o;21286:90::-;21320:7;21363:5;21356:13;21349:21;21338:32;;21328:48;;;:::o;21382:126::-;21419:7;21459:42;21452:5;21448:54;21437:65;;21427:81;;;:::o;21514:77::-;21551:7;21580:5;21569:16;;21559:32;;;:::o;21597:86::-;21632:7;21672:4;21665:5;21661:16;21650:27;;21640:43;;;:::o;21689:162::-;21757:9;21790:55;21839:5;21790:55;:::i;:::-;21777:68;;21767:84;;;:::o;21857:131::-;21925:9;21958:24;21976:5;21958:24;:::i;:::-;21945:37;;21935:53;;;:::o;21994:121::-;22052:9;22085:24;22103:5;22085:24;:::i;:::-;22072:37;;22062:53;;;:::o;22121:307::-;22189:1;22199:113;22213:6;22210:1;22207:13;22199:113;;;22298:1;22293:3;22289:11;22283:18;22279:1;22274:3;22270:11;22263:39;22235:2;22232:1;22228:10;22223:15;;22199:113;;;22330:6;22327:1;22324:13;22321:2;;;22410:1;22401:6;22396:3;22392:16;22385:27;22321:2;22170:258;;;;:::o;22434:180::-;22482:77;22479:1;22472:88;22579:4;22576:1;22569:15;22603:4;22600:1;22593:15;22620:180;22668:77;22665:1;22658:88;22765:4;22762:1;22755:15;22789:4;22786:1;22779:15;22806:180;22854:77;22851:1;22844:88;22951:4;22948:1;22941:15;22975:4;22972:1;22965:15;22992:180;23040:77;23037:1;23030:88;23137:4;23134:1;23127:15;23161:4;23158:1;23151:15;23301:117;23410:1;23407;23400:12;23424:102;23465:6;23516:2;23512:7;23507:2;23500:5;23496:14;23492:28;23482:38;;23472:54;;;:::o;23532:167::-;23672:19;23668:1;23660:6;23656:14;23649:43;23638:61;:::o;23705:225::-;23845:34;23841:1;23833:6;23829:14;23822:58;23914:8;23909:2;23901:6;23897:15;23890:33;23811:119;:::o;23936:180::-;24076:32;24072:1;24064:6;24060:14;24053:56;24042:74;:::o;24122:249::-;24262:34;24258:1;24250:6;24246:14;24239:58;24331:32;24326:2;24318:6;24314:15;24307:57;24228:143;:::o;24377:156::-;24517:8;24513:1;24505:6;24501:14;24494:32;24483:50;:::o;24539:114::-;24645:8;:::o;24659:168::-;24799:20;24795:1;24787:6;24783:14;24776:44;24765:62;:::o;24833:222::-;24973:34;24969:1;24961:6;24957:14;24950:58;25042:5;25037:2;25029:6;25025:15;25018:30;24939:116;:::o;25061:122::-;25134:24;25152:5;25134:24;:::i;:::-;25127:5;25124:35;25114:2;;25173:1;25170;25163:12;25114:2;25104:79;:::o;25189:116::-;25259:21;25274:5;25259:21;:::i;:::-;25252:5;25249:32;25239:2;;25295:1;25292;25285:12;25239:2;25229:76;:::o;25311:122::-;25384:24;25402:5;25384:24;:::i;:::-;25377:5;25374:35;25364:2;;25423:1;25420;25413:12;25364:2;25354:79;:::o

Swarm Source

ipfs://157e5820286e894264ba09a9c279dfeb9936ee3cf95306542b00e151bb7611d5

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.