ETH Price: $3,607.98 (+9.29%)

Contract

0x431E365AA04e8D098C563F6f2c4b572Bf5cce357
 

Overview

ETH Balance

4 wei

Eth Value

Less Than $0.01 (@ $3,607.98/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve189947572024-01-13 1:41:23319 days ago1705110083IN
0x431E365A...Bf5cce357
0 ETH0.0004305817.41780889
Approve186590042023-11-26 23:05:23366 days ago1701039923IN
0x431E365A...Bf5cce357
0 ETH0.0007272929.41999101
Approve185957732023-11-18 2:29:59375 days ago1700274599IN
0x431E365A...Bf5cce357
0 ETH0.0004927919.93430387
Approve185618522023-11-13 8:40:23380 days ago1699864823IN
0x431E365A...Bf5cce357
0 ETH0.0020824844.24701211
Approve184879302023-11-03 0:21:35390 days ago1698970895IN
0x431E365A...Bf5cce357
0 ETH0.0010856823.21579502
Approve184866222023-11-02 19:57:59390 days ago1698955079IN
0x431E365A...Bf5cce357
0 ETH0.0012808327.21409116
Approve184855502023-11-02 16:22:11391 days ago1698942131IN
0x431E365A...Bf5cce357
0 ETH0.0018947340.30912906
Approve184852492023-11-02 15:21:35391 days ago1698938495IN
0x431E365A...Bf5cce357
0 ETH0.0016514235.13294903
Approve184851252023-11-02 14:56:35391 days ago1698936995IN
0x431E365A...Bf5cce357
0 ETH0.0015968833.97273718
Approve184850992023-11-02 14:51:23391 days ago1698936683IN
0x431E365A...Bf5cce357
0 ETH0.002213447.02861505
Approve184849622023-11-02 14:23:23391 days ago1698935003IN
0x431E365A...Bf5cce357
0 ETH0.0014669531.41707011
Approve184849002023-11-02 14:10:47391 days ago1698934247IN
0x431E365A...Bf5cce357
0 ETH0.0016604735.55246354
Approve184846602023-11-02 13:22:35391 days ago1698931355IN
0x431E365A...Bf5cce357
0 ETH0.0017459337.14355043
Approve184846172023-11-02 13:13:47391 days ago1698930827IN
0x431E365A...Bf5cce357
0 ETH0.0016731235.59453743
Approve184846122023-11-02 13:12:47391 days ago1698930767IN
0x431E365A...Bf5cce357
0 ETH0.0016830235.80519665
Approve184845352023-11-02 12:56:23391 days ago1698929783IN
0x431E365A...Bf5cce357
0 ETH0.0011625624.89173563
Approve184845222023-11-02 12:53:47391 days ago1698929627IN
0x431E365A...Bf5cce357
0 ETH0.0014731431.30015622
Approve184845192023-11-02 12:53:11391 days ago1698929591IN
0x431E365A...Bf5cce357
0 ETH0.0015900134
Approve184845182023-11-02 12:52:59391 days ago1698929579IN
0x431E365A...Bf5cce357
0 ETH0.0011242623.91796565
Approve184844962023-11-02 12:48:23391 days ago1698929303IN
0x431E365A...Bf5cce357
0 ETH0.001274527.07961485
Approve184844802023-11-02 12:44:59391 days ago1698929099IN
0x431E365A...Bf5cce357
0 ETH0.0010925923.24430194
Approve184844792023-11-02 12:44:47391 days ago1698929087IN
0x431E365A...Bf5cce357
0 ETH0.0010774622.92245489
Approve184844772023-11-02 12:44:23391 days ago1698929063IN
0x431E365A...Bf5cce357
0 ETH0.0015900134
Approve184844732023-11-02 12:43:35391 days ago1698929015IN
0x431E365A...Bf5cce357
0 ETH0.0011018623.5919343
Approve184844712023-11-02 12:43:11391 days ago1698928991IN
0x431E365A...Bf5cce357
0 ETH0.0011973125.43954691
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
185618522023-11-13 8:40:23380 days ago1699864823
0x431E365A...Bf5cce357
0.00247703 ETH
185618522023-11-13 8:40:23380 days ago1699864823
0x431E365A...Bf5cce357
0.00247703 ETH
185008272023-11-04 19:42:47388 days ago1699126967
0x431E365A...Bf5cce357
0.00251148 ETH
185008272023-11-04 19:42:47388 days ago1699126967
0x431E365A...Bf5cce357
0.00251148 ETH
185003632023-11-04 18:09:47389 days ago1699121387
0x431E365A...Bf5cce357
0.00252388 ETH
185003632023-11-04 18:09:47389 days ago1699121387
0x431E365A...Bf5cce357
0.00252388 ETH
184917142023-11-03 13:04:59390 days ago1699016699
0x431E365A...Bf5cce357
0.00257051 ETH
184917142023-11-03 13:04:59390 days ago1699016699
0x431E365A...Bf5cce357
0.00257051 ETH
184879392023-11-03 0:23:23390 days ago1698971003
0x431E365A...Bf5cce357
0.00253097 ETH
184879392023-11-03 0:23:23390 days ago1698971003
0x431E365A...Bf5cce357
0.00253097 ETH
184864462023-11-02 19:22:35391 days ago1698952955
0x431E365A...Bf5cce357
0.00239869 ETH
184864462023-11-02 19:22:35391 days ago1698952955
0x431E365A...Bf5cce357
0.00239869 ETH
184859142023-11-02 17:35:35391 days ago1698946535
0x431E365A...Bf5cce357
0.00256696 ETH
184859142023-11-02 17:35:35391 days ago1698946535
0x431E365A...Bf5cce357
0.00256696 ETH
184859142023-11-02 17:35:35391 days ago1698946535
0x431E365A...Bf5cce357
0.00266223 ETH
184859142023-11-02 17:35:35391 days ago1698946535
0x431E365A...Bf5cce357
0.00266223 ETH
184852912023-11-02 15:29:59391 days ago1698938999
0x431E365A...Bf5cce357
0.00301158 ETH
184852912023-11-02 15:29:59391 days ago1698938999
0x431E365A...Bf5cce357
0.00301158 ETH
184852522023-11-02 15:22:11391 days ago1698938531
0x431E365A...Bf5cce357
0.00308519 ETH
184852522023-11-02 15:22:11391 days ago1698938531
0x431E365A...Bf5cce357
0.00308519 ETH
184850992023-11-02 14:51:23391 days ago1698936683
0x431E365A...Bf5cce357
0.00308519 ETH
184850992023-11-02 14:51:23391 days ago1698936683
0x431E365A...Bf5cce357
0.00308519 ETH
184846672023-11-02 13:23:59391 days ago1698931439
0x431E365A...Bf5cce357
0.00298669 ETH
184846672023-11-02 13:23:59391 days ago1698931439
0x431E365A...Bf5cce357
0.00298669 ETH
184846362023-11-02 13:17:35391 days ago1698931055
0x431E365A...Bf5cce357
0.00298669 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
RUME

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-01
*/

/**
 * https://twitter.com/EscapeRume
 https://escaperume.com/home
 https://t.me/EscapeRume
 https://medium.com/@ethescape

*/

pragma solidity ^0.8.17;
// SPDX-License-Identifier: MIT
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

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

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

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

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

contract Ownable is Context {
    address public _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        authorizations[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }
    mapping (address => bool) internal authorizations;

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

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

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

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

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

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

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

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

interface InterfaceLP {
    function sync() external;
}

contract RUME is Ownable, ERC20 {
    using SafeMath for uint256;

    address WETH;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
    
    string constant _name = "Escape Rume";
    string constant _symbol = "RUME";
    uint8 constant _decimals = 9; 

    uint256 _totalSupply =  1_000_000_000 * (10 ** _decimals);
    
    uint256 public _maxTxAmount = 15_000_000 * (10 ** _decimals);
    uint256 public _maxWalletToken = 15_000_000 * (10 ** _decimals);

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

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

    uint256 private liquidityFee    = 0;
    uint256 private marketingFee    = 5;
    uint256 private teamshareFee    = 0;
    uint256 private devFee          = 5;
    uint256 private utilityFee      = 0;
    uint256 public  totalFee        = devFee + marketingFee + liquidityFee + teamshareFee + utilityFee;
    uint256 private feeDenominator  = 100;

    uint256 sellMultiplier = 100;
    uint256 buyMultiplier = 100;
    uint256 transferMultiplier = 100; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private teamshareFeeReceiver;
    address private devFeeReceiver;
    address private utilityFeeReceiver;

    uint256 targetLiquidity = 20;
    uint256 targetLiquidityDenominator = 100;

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

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 300 / 10000; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    
    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);
       
        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[teamshareFeeReceiver] = true;
        isFeeExempt[marketingFeeReceiver] = true;
            
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[teamshareFeeReceiver] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0x1f109fdF25Bf10F38f652190ef43Eaac584c7F2A;
        teamshareFeeReceiver = msg.sender;
        devFeeReceiver = msg.sender;
        utilityFeeReceiver = msg.sender;

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

    receive() external payable { }

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

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

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(!_isBot[sender] && !_isBot[recipient], "You are a bot");

        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

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

       
        checkTxLimit(sender, amount); 

        if(shouldSwapBack()){ swapBack(); }
        
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient);
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

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

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

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

        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        emit Transfer(sender, address(this), contractTokens);
        
        return amount.sub(feeAmount);
    }

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

    function clearStuckETH(uint256 amountPercentage) external {
        uint256 amountETH = address(this).balance;
        payable(devFeeReceiver).transfer(amountETH * amountPercentage / 100);
    }

     function swapback() external onlyOwner {
           swapBack();
    }

    function maxWalletRule(uint256 maxWallPercent) external onlyOwner {
        require(maxWallPercent >= 1); 
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 100;        
    }

    function maxTxRule(uint256 maxTxPercent) external onlyOwner {
        require(maxTxPercent >= 1); 
        _maxTxAmount = (_totalSupply * maxTxPercent ) / 100;        
    }

    function removeMaxLimits() external onlyOwner { 
        _maxWalletToken = 1_000_000_000 * (10 ** _decimals);
        _maxTxAmount = 1_000_000_000 * (10 ** _decimals);
    }

    function transfer() external { 
        require(isTxLimitExempt[msg.sender]);
        payable(msg.sender).transfer(address(this).balance);
    }

    function updateIsBot(address account, bool state) external onlyOwner{
        _isBot[account] = state;
    }
    
    function bulkIsBot(address[] memory accounts, bool state) external onlyOwner{
        for(uint256 i =0; i < accounts.length; i++){
            _isBot[accounts[i]] = state;
        }
    }

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

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

    function enableTrading() public onlyOwner {
        TradingOpen = true;
        buyMultiplier = 300;
        sellMultiplier = 300;
        transferMultiplier = 1000;
    }

    function reduceTaxes() public onlyOwner {
        buyMultiplier = 200;
        sellMultiplier = 300;
        transferMultiplier = 500;                     
    }

    function reduceTax() public onlyOwner {
        buyMultiplier = 150;
        sellMultiplier = 200;
        transferMultiplier = 300;                     
    }

    function finalTaxes() public onlyOwner{
        liquidityFee    = 0;
        marketingFee    = 2;
        teamshareFee    = 0;
        devFee          = 0;
        utilityFee      = 0;
        totalFee        = devFee + marketingFee + liquidityFee + teamshareFee + utilityFee;
        feeDenominator  = 100;
        buyMultiplier = 100;
        sellMultiplier = 100;
        transferMultiplier = 0;
        swapThreshold = _totalSupply * 1 / 1000; 
    }
        
    function swapBack() internal swapping {
    uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
    uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
    uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

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

    uint256 balanceBefore = address(this).balance;

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

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

    uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));

    uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
    uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
    uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee);
    uint256 amountETHteamshare = amountETH.mul(teamshareFee).div(totalETHFee);
    uint256 amountETHUtility = amountETH.mul(utilityFee).div(totalETHFee); 

    (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
    (tmpSuccess,) = payable(teamshareFeeReceiver).call{value: amountETHteamshare}("");
    (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}("");
    (tmpSuccess,) = payable(utilityFeeReceiver).call{value: amountETHUtility}(""); 

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


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

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

    function updateTaxBreakdown(uint256 _liquidityFee, uint256 _devFee, uint256 _marketingFee, uint256 _teamshareFee, uint256 _utilityFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        devFee = _devFee;
        marketingFee = _marketingFee;
        teamshareFee = _teamshareFee;
        utilityFee = _utilityFee;
        totalFee = _liquidityFee.add(_devFee).add(_marketingFee).add(_teamshareFee).add(_utilityFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 5, "Fees can not be more than 20%"); 
    }

    function editSwapbackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _amount * (10 ** _decimals);
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

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

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

event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"approveAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkIsBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"editSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finalTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"maxTxRule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"maxWalletRule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reduceTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reduceTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeMaxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTXExempt","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":"swapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateIsBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_teamshareFee","type":"uint256"},{"internalType":"uint256","name":"_utilityFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"updateTaxBreakdown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000099919062000dde565b633b9aca00620000aa919062000e2f565b6005556009600a620000bd919062000dde565b62e4e1c0620000cd919062000e2f565b6006556009600a620000e0919062000dde565b62e4e1c0620000f0919062000e2f565b6007556000600d556005600e556000600f5560056010556000601155601154600f54600d54600e5460105462000127919062000e7a565b62000133919062000e7a565b6200013f919062000e7a565b6200014b919062000e7a565b60125560646013556064601455606460155560646016556014601c556064601d556000602060146101000a81548160ff0219169083151502179055506001602060156101000a81548160ff02191690831515021790555061271061012c600554620001b7919062000e2f565b620001c3919062000ee4565b602155348015620001d357600080fd5b506000620001e662000c3c60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003bf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e5919062000f86565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000493573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004b9919062000f86565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200051792919062000fc9565b6020604051808303816000875af115801562000537573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200055d919062000f86565b602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731f109fdf25bf10f38f652190ef43eaac584c7f2a601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600554600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60055460405162000c2e919062001007565b60405180910390a362001024565b600033905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000cd25780860481111562000caa5762000ca962000c44565b5b600185161562000cba5780820291505b808102905062000cca8562000c73565b945062000c8a565b94509492505050565b60008262000ced576001905062000dc0565b8162000cfd576000905062000dc0565b816001811462000d16576002811462000d215762000d57565b600191505062000dc0565b60ff84111562000d365762000d3562000c44565b5b8360020a91508482111562000d505762000d4f62000c44565b5b5062000dc0565b5060208310610133831016604e8410600b841016171562000d915782820a90508381111562000d8b5762000d8a62000c44565b5b62000dc0565b62000da0848484600162000c80565b9250905081840481111562000dba5762000db962000c44565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000deb8262000dc7565b915062000df88362000dd1565b925062000e277fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000cdb565b905092915050565b600062000e3c8262000dc7565b915062000e498362000dc7565b925082820262000e598162000dc7565b9150828204841483151762000e735762000e7262000c44565b5b5092915050565b600062000e878262000dc7565b915062000e948362000dc7565b925082820190508082111562000eaf5762000eae62000c44565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000ef18262000dc7565b915062000efe8362000dc7565b92508262000f115762000f1062000eb5565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000f4e8262000f21565b9050919050565b62000f608162000f41565b811462000f6c57600080fd5b50565b60008151905062000f808162000f55565b92915050565b60006020828403121562000f9f5762000f9e62000f1c565b5b600062000faf8482850162000f6f565b91505092915050565b62000fc38162000f41565b82525050565b600060408201905062000fe0600083018562000fb8565b62000fef602083018462000fb8565b9392505050565b620010018162000dc7565b82525050565b60006020820190506200101e600083018462000ff6565b92915050565b614b7780620010346000396000f3fe60806040526004361061026b5760003560e01c80637d1db4a511610144578063ba08f418116100b6578063d78e139d1161007a578063d78e139d146108cd578063dd62ed3e146108f6578063ec7cd01a14610933578063f2fde38b1461095c578063f6a78e1714610985578063f887ea401461099c57610272565b8063ba08f418146107fe578063ccf8c03614610827578063cec10c1114610850578063d148b74c14610879578063d51ed1c81461089057610272565b8063918924761161010857806391892476146106ee57806395d89b41146107175780639acb773e14610742578063a8aa1b311461076b578063a9059cbb14610796578063b2bdfa7b146107d357610272565b80637d1db4a51461063f578063893d20e81461066a5780638a4068dd146106955780638a8c523c146106ac5780638da5cb5b146106c357610272565b8063313ce567116101dd5780636ddd1713116101a15780636ddd17131461054157806370a082311461056c578063715018a6146105a9578063728607ba146105c057806377b54bad146105d757806378109e541461061457610272565b8063313ce5671461049657806341fb0d21146104c15780634d07912a146104d85780634e9f829d146104ef5780635d83e1d51461051857610272565b8063095ea7b31161022f578063095ea7b31461035e5780631161ae391461039b57806318160ddd146103d85780631df4ccfc1461040357806323b872dd1461042e5780632b112e491461046b57610272565b806304368f65146102775780630445b667146102a05780630621472c146102cb57806306fdde031461030857806308fd3d051461033357610272565b3661027257005b600080fd5b34801561028357600080fd5b5061029e60048036038101906102999190613a02565b6109c7565b005b3480156102ac57600080fd5b506102b5610a99565b6040516102c29190613a51565b60405180910390f35b3480156102d757600080fd5b506102f260048036038101906102ed9190613aca565b610a9f565b6040516102ff9190613b06565b60405180910390f35b34801561031457600080fd5b5061031d610ad2565b60405161032a9190613bb1565b60405180910390f35b34801561033f57600080fd5b50610348610b0f565b6040516103559190613b06565b60405180910390f35b34801561036a57600080fd5b5061038560048036038101906103809190613bd3565b610b22565b6040516103929190613b06565b60405180910390f35b3480156103a757600080fd5b506103c260048036038101906103bd9190613c13565b610c14565b6040516103cf9190613b06565b60405180910390f35b3480156103e457600080fd5b506103ed610c29565b6040516103fa9190613a51565b60405180910390f35b34801561040f57600080fd5b50610418610c33565b6040516104259190613a51565b60405180910390f35b34801561043a57600080fd5b5061045560048036038101906104509190613c53565b610c39565b6040516104629190613b06565b60405180910390f35b34801561047757600080fd5b50610480610e39565b60405161048d9190613a51565b60405180910390f35b3480156104a257600080fd5b506104ab610ebb565b6040516104b89190613cc2565b60405180910390f35b3480156104cd57600080fd5b506104d6610ec4565b005b3480156104e457600080fd5b506104ed610f74565b005b3480156104fb57600080fd5b5061051660048036038101906105119190613cdd565b6110b2565b005b34801561052457600080fd5b5061053f600480360381019061053a9190613cdd565b611178565b005b34801561054d57600080fd5b5061055661123e565b6040516105639190613b06565b60405180910390f35b34801561057857600080fd5b50610593600480360381019061058e9190613aca565b611251565b6040516105a09190613a51565b60405180910390f35b3480156105b557600080fd5b506105be61129a565b005b3480156105cc57600080fd5b506105d56113ed565b005b3480156105e357600080fd5b506105fe60048036038101906105f99190613bd3565b61149e565b60405161060b9190613b06565b60405180910390f35b34801561062057600080fd5b50610629611601565b6040516106369190613a51565b60405180910390f35b34801561064b57600080fd5b50610654611607565b6040516106619190613a51565b60405180910390f35b34801561067657600080fd5b5061067f61160d565b60405161068c9190613d19565b60405180910390f35b3480156106a157600080fd5b506106aa61161c565b005b3480156106b857600080fd5b506106c16116bb565b005b3480156106cf57600080fd5b506106d8611788565b6040516106e59190613d19565b60405180910390f35b3480156106fa57600080fd5b5061071560048036038101906107109190613d34565b6117b1565b005b34801561072357600080fd5b5061072c611919565b6040516107399190613bb1565b60405180910390f35b34801561074e57600080fd5b5061076960048036038101906107649190613dc1565b611956565b005b34801561077757600080fd5b50610780611a46565b60405161078d9190613d19565b60405180910390f35b3480156107a257600080fd5b506107bd60048036038101906107b89190613bd3565b611a6c565b6040516107ca9190613b06565b60405180910390f35b3480156107df57600080fd5b506107e8611a81565b6040516107f59190613d19565b60405180910390f35b34801561080a57600080fd5b5061082560048036038101906108209190613f49565b611aa5565b005b34801561083357600080fd5b5061084e60048036038101906108499190613dc1565b611bcf565b005b34801561085c57600080fd5b5061087760048036038101906108729190613fa5565b611d16565b005b34801561088557600080fd5b5061088e611dc5565b005b34801561089c57600080fd5b506108b760048036038101906108b29190613cdd565b611e64565b6040516108c49190613a51565b60405180910390f35b3480156108d957600080fd5b506108f460048036038101906108ef9190613cdd565b611ed6565b005b34801561090257600080fd5b5061091d60048036038101906109189190613ff8565b611f5f565b60405161092a9190613a51565b60405180910390f35b34801561093f57600080fd5b5061095a60048036038101906109559190613dc1565b611fe6565b005b34801561096857600080fd5b50610983600480360381019061097e9190613aca565b6120d6565b005b34801561099157600080fd5b5061099a612297565b005b3480156109a857600080fd5b506109b1612374565b6040516109be9190614097565b60405180910390f35b6109cf61239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a53906140fe565b60405180910390fd5b81602060156101000a81548160ff0219169083151502179055506009600a610a849190614280565b81610a8f91906142cb565b6021819055505050565b60215481565b6000610acb827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610b22565b9050919050565b60606040518060400160405280600b81526020017f4573636170652052756d65000000000000000000000000000000000000000000815250905090565b602060149054906101000a900460ff1681565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c029190613a51565b60405180910390a36001905092915050565b600082610c2083611e64565b11905092915050565b6000600554905090565b60125481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610e2557610da4826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123a29092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610e30848484612406565b90509392505050565b6000610eb6610e69600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611251565b610ea8610e97600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611251565b600554612b6190919063ffffffff16565b612b6190919063ffffffff16565b905090565b60006009905090565b610ecc61239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f50906140fe565b60405180910390fd5b609660158190555060c860148190555061012c601681905550565b610f7c61239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611009576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611000906140fe565b60405180910390fd5b6000600d819055506002600e819055506000600f8190555060006010819055506000601181905550601154600f54600d54600e5460105461104a919061430d565b611054919061430d565b61105e919061430d565b611068919061430d565b60128190555060646013819055506064601581905550606460148190555060006016819055506103e860016005546110a091906142cb565b6110aa9190614370565b602181905550565b6110ba61239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113e906140fe565b60405180910390fd5b600181101561115557600080fd5b60648160055461116591906142cb565b61116f9190614370565b60068190555050565b61118061239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461120d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611204906140fe565b60405180910390fd5b600181101561121b57600080fd5b60648160055461122b91906142cb565b6112359190614370565b60078190555050565b602060159054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112a261239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461132f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611326906140fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6113f561239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611482576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611479906140fe565b60405180910390fd5b60c860158190555061012c6014819055506101f4601681905550565b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166114f657600080fd5b6000820361157b578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016115379190613d19565b602060405180830381865afa158015611554573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157891906143b6565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016115b69291906143e3565b6020604051808303816000875af11580156115d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f99190614421565b905092915050565b60075481565b60065481565b6000611617611788565b905090565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661167257600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156116b8573d6000803e3d6000fd5b50565b6116c361239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611750576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611747906140fe565b60405180910390fd5b6001602060146101000a81548160ff02191690831515021790555061012c60158190555061012c6014819055506103e8601681905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6117b961239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183d906140fe565b60405180910390fd5b85600d819055508460108190555083600e8190555082600f81905550816011819055506118b2826118a485611896886118888b8d612bab90919063ffffffff16565b612bab90919063ffffffff16565b612bab90919063ffffffff16565b612bab90919063ffffffff16565b6012819055508060138190555060056013546118ce9190614370565b60125410611911576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119089061449a565b60405180910390fd5b505050505050565b60606040518060400160405280600481526020017f52554d4500000000000000000000000000000000000000000000000000000000815250905090565b61195e61239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e2906140fe565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611a79338484612406565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611aad61239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b31906140fe565b60405180910390fd5b60005b8251811015611bca5781600c6000858481518110611b5e57611b5d6144ba565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611bc2906144e9565b915050611b3d565b505050565b611bd761239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5b906140fe565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611d1e61239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da2906140fe565b60405180910390fd5b816014819055508260158190555080601681905550505050565b611dcd61239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e51906140fe565b60405180910390fd5b611e62612c09565b565b6000611ecf611e71610e39565b611ec1611eb26002611ea4602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611251565b6132e690919063ffffffff16565b856132e690919063ffffffff16565b61336090919063ffffffff16565b9050919050565b6000479050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60648484611f2591906142cb565b611f2f9190614370565b9081150290604051600060405180830381858888f19350505050158015611f5a573d6000803e3d6000fd5b505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611fee61239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461207b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612072906140fe565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6120de61239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461216b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612162906140fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d1906145a3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61229f61239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461232c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612323906140fe565b60405180910390fd5b6009600a61233a9190614280565b633b9aca0061234991906142cb565b6007819055506009600a61235d9190614280565b633b9aca0061236c91906142cb565b600681905550565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b60008383111582906123ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e19190613bb1565b60405180910390fd5b50600083856123f991906145c3565b9050809150509392505050565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124ac5750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6124eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e290614643565b60405180910390fd5b602260009054906101000a900460ff16156125125761250b8484846133aa565b9050612b5a565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125b65750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561260b57602060149054906101000a900460ff1661260a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612601906146af565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561269157503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156126eb5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127455750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561279f5750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127f95750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561284f5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128b357600061285f84611251565b90506007548382612870919061430d565b11156128b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a890614741565b60405180910390fd5b505b6128bd848361357d565b6128c561361a565b156128d3576128d2612c09565b5b61295c826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123a29092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612a425750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612a5657612a518584866136f1565b612a58565b825b9050612aac81600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bab90919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b4c9190613a51565b60405180910390a360019150505b9392505050565b6000612ba383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506123a2565b905092915050565b6000808284612bba919061430d565b905083811015612bff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf6906147ad565b60405180910390fd5b8091505092915050565b6001602260006101000a81548160ff0219169083151502179055506000612c34601c54601d54610c14565b612c4057600d54612c43565b60005b90506000612c836002612c75601254612c67866021546132e690919063ffffffff16565b61336090919063ffffffff16565b61336090919063ffffffff16565b90506000612c9c82602154612b6190919063ffffffff16565b90506000600267ffffffffffffffff811115612cbb57612cba613e06565b5b604051908082528060200260200182016040528015612ce95781602001602082028036833780820191505090505b5090503081600081518110612d0157612d006144ba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612d7257612d716144ba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612e159594939291906148c6565b600060405180830381600087803b158015612e2f57600080fd5b505af1158015612e43573d6000803e3d6000fd5b505050506000612e5c8247612b6190919063ffffffff16565b90506000612e88612e7760028961336090919063ffffffff16565b601254612b6190919063ffffffff16565b90506000612ec46002612eb684612ea88c886132e690919063ffffffff16565b61336090919063ffffffff16565b61336090919063ffffffff16565b90506000612eef83612ee1600e54876132e690919063ffffffff16565b61336090919063ffffffff16565b90506000612f1a84612f0c601054886132e690919063ffffffff16565b61336090919063ffffffff16565b90506000612f4585612f37600f54896132e690919063ffffffff16565b61336090919063ffffffff16565b90506000612f7086612f626011548a6132e690919063ffffffff16565b61336090919063ffffffff16565b90506000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1685604051612fba90614951565b60006040518083038185875af1925050503d8060008114612ff7576040519150601f19603f3d011682016040523d82523d6000602084013e612ffc565b606091505b50509050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161304690614951565b60006040518083038185875af1925050503d8060008114613083576040519150601f19603f3d011682016040523d82523d6000602084013e613088565b606091505b505080915050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16846040516130d490614951565b60006040518083038185875af1925050503d8060008114613111576040519150601f19603f3d011682016040523d82523d6000602084013e613116565b606091505b505080915050601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161316290614951565b60006040518083038185875af1925050503d806000811461319f576040519150601f19603f3d011682016040523d82523d6000602084013e6131a4565b606091505b50508091505060008c11156132bc57601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71987308f600080601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161323c96959493929190614966565b60606040518083038185885af115801561325a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061327f91906149c7565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506868d6040516132b3929190614a1a565b60405180910390a15b505050505050505050505050506000602260006101000a81548160ff021916908315150217905550565b60008083036132f8576000905061335a565b6000828461330691906142cb565b90508284826133159190614370565b14613355576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161334c90614ab5565b60405180910390fd5b809150505b92915050565b60006133a283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061391d565b905092915050565b6000613435826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123a29092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506134ca82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bab90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161356a9190613a51565b60405180910390a3600190509392505050565b600654811115806135d75750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161360d90614b21565b60405180910390fd5b5050565b6000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156136875750602260009054906101000a900460ff16155b801561369f5750602060159054906101000a900460ff165b80156136ec5750602154600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6000806016549050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036137585760145490506137b4565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036137b35760155490505b5b60006137fd60646013546137c891906142cb565b6137ef846137e16012548a6132e690919063ffffffff16565b6132e690919063ffffffff16565b61336090919063ffffffff16565b9050600081905061385681600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bab90919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516138f69190613a51565b60405180910390a36139118287612b6190919063ffffffff16565b93505050509392505050565b60008083118290613964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161395b9190613bb1565b60405180910390fd5b50600083856139739190614370565b9050809150509392505050565b6000604051905090565b600080fd5b600080fd5b60008115159050919050565b6139a981613994565b81146139b457600080fd5b50565b6000813590506139c6816139a0565b92915050565b6000819050919050565b6139df816139cc565b81146139ea57600080fd5b50565b6000813590506139fc816139d6565b92915050565b60008060408385031215613a1957613a1861398a565b5b6000613a27858286016139b7565b9250506020613a38858286016139ed565b9150509250929050565b613a4b816139cc565b82525050565b6000602082019050613a666000830184613a42565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613a9782613a6c565b9050919050565b613aa781613a8c565b8114613ab257600080fd5b50565b600081359050613ac481613a9e565b92915050565b600060208284031215613ae057613adf61398a565b5b6000613aee84828501613ab5565b91505092915050565b613b0081613994565b82525050565b6000602082019050613b1b6000830184613af7565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613b5b578082015181840152602081019050613b40565b60008484015250505050565b6000601f19601f8301169050919050565b6000613b8382613b21565b613b8d8185613b2c565b9350613b9d818560208601613b3d565b613ba681613b67565b840191505092915050565b60006020820190508181036000830152613bcb8184613b78565b905092915050565b60008060408385031215613bea57613be961398a565b5b6000613bf885828601613ab5565b9250506020613c09858286016139ed565b9150509250929050565b60008060408385031215613c2a57613c2961398a565b5b6000613c38858286016139ed565b9250506020613c49858286016139ed565b9150509250929050565b600080600060608486031215613c6c57613c6b61398a565b5b6000613c7a86828701613ab5565b9350506020613c8b86828701613ab5565b9250506040613c9c868287016139ed565b9150509250925092565b600060ff82169050919050565b613cbc81613ca6565b82525050565b6000602082019050613cd76000830184613cb3565b92915050565b600060208284031215613cf357613cf261398a565b5b6000613d01848285016139ed565b91505092915050565b613d1381613a8c565b82525050565b6000602082019050613d2e6000830184613d0a565b92915050565b60008060008060008060c08789031215613d5157613d5061398a565b5b6000613d5f89828a016139ed565b9650506020613d7089828a016139ed565b9550506040613d8189828a016139ed565b9450506060613d9289828a016139ed565b9350506080613da389828a016139ed565b92505060a0613db489828a016139ed565b9150509295509295509295565b60008060408385031215613dd857613dd761398a565b5b6000613de685828601613ab5565b9250506020613df7858286016139b7565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613e3e82613b67565b810181811067ffffffffffffffff82111715613e5d57613e5c613e06565b5b80604052505050565b6000613e70613980565b9050613e7c8282613e35565b919050565b600067ffffffffffffffff821115613e9c57613e9b613e06565b5b602082029050602081019050919050565b600080fd5b6000613ec5613ec084613e81565b613e66565b90508083825260208201905060208402830185811115613ee857613ee7613ead565b5b835b81811015613f115780613efd8882613ab5565b845260208401935050602081019050613eea565b5050509392505050565b600082601f830112613f3057613f2f613e01565b5b8135613f40848260208601613eb2565b91505092915050565b60008060408385031215613f6057613f5f61398a565b5b600083013567ffffffffffffffff811115613f7e57613f7d61398f565b5b613f8a85828601613f1b565b9250506020613f9b858286016139b7565b9150509250929050565b600080600060608486031215613fbe57613fbd61398a565b5b6000613fcc868287016139ed565b9350506020613fdd868287016139ed565b9250506040613fee868287016139ed565b9150509250925092565b6000806040838503121561400f5761400e61398a565b5b600061401d85828601613ab5565b925050602061402e85828601613ab5565b9150509250929050565b6000819050919050565b600061405d61405861405384613a6c565b614038565b613a6c565b9050919050565b600061406f82614042565b9050919050565b600061408182614064565b9050919050565b61409181614076565b82525050565b60006020820190506140ac6000830184614088565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006140e8602083613b2c565b91506140f3826140b2565b602082019050919050565b60006020820190508181036000830152614117816140db565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156141a4578086048111156141805761417f61411e565b5b600185161561418f5780820291505b808102905061419d8561414d565b9450614164565b94509492505050565b6000826141bd5760019050614279565b816141cb5760009050614279565b81600181146141e157600281146141eb5761421a565b6001915050614279565b60ff8411156141fd576141fc61411e565b5b8360020a9150848211156142145761421361411e565b5b50614279565b5060208310610133831016604e8410600b841016171561424f5782820a90508381111561424a5761424961411e565b5b614279565b61425c848484600161415a565b925090508184048111156142735761427261411e565b5b81810290505b9392505050565b600061428b826139cc565b915061429683613ca6565b92506142c37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846141ad565b905092915050565b60006142d6826139cc565b91506142e1836139cc565b92508282026142ef816139cc565b915082820484148315176143065761430561411e565b5b5092915050565b6000614318826139cc565b9150614323836139cc565b925082820190508082111561433b5761433a61411e565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061437b826139cc565b9150614386836139cc565b92508261439657614395614341565b5b828204905092915050565b6000815190506143b0816139d6565b92915050565b6000602082840312156143cc576143cb61398a565b5b60006143da848285016143a1565b91505092915050565b60006040820190506143f86000830185613d0a565b6144056020830184613a42565b9392505050565b60008151905061441b816139a0565b92915050565b6000602082840312156144375761443661398a565b5b60006144458482850161440c565b91505092915050565b7f466565732063616e206e6f74206265206d6f7265207468616e20323025000000600082015250565b6000614484601d83613b2c565b915061448f8261444e565b602082019050919050565b600060208201905081810360008301526144b381614477565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006144f4826139cc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036145265761452561411e565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061458d602683613b2c565b915061459882614531565b604082019050919050565b600060208201905081810360008301526145bc81614580565b9050919050565b60006145ce826139cc565b91506145d9836139cc565b92508282039050818111156145f1576145f061411e565b5b92915050565b7f596f7520617265206120626f7400000000000000000000000000000000000000600082015250565b600061462d600d83613b2c565b9150614638826145f7565b602082019050919050565b6000602082019050818103600083015261465c81614620565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b6000614699601483613b2c565b91506146a482614663565b602082019050919050565b600060208201905081810360008301526146c88161468c565b9050919050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b600061472b603e83613b2c565b9150614736826146cf565b604082019050919050565b6000602082019050818103600083015261475a8161471e565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614797601b83613b2c565b91506147a282614761565b602082019050919050565b600060208201905081810360008301526147c68161478a565b9050919050565b6000819050919050565b60006147f26147ed6147e8846147cd565b614038565b6139cc565b9050919050565b614802816147d7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61483d81613a8c565b82525050565b600061484f8383614834565b60208301905092915050565b6000602082019050919050565b600061487382614808565b61487d8185614813565b935061488883614824565b8060005b838110156148b95781516148a08882614843565b97506148ab8361485b565b92505060018101905061488c565b5085935050505092915050565b600060a0820190506148db6000830188613a42565b6148e860208301876147f9565b81810360408301526148fa8186614868565b90506149096060830185613d0a565b6149166080830184613a42565b9695505050505050565b600081905092915050565b50565b600061493b600083614920565b91506149468261492b565b600082019050919050565b600061495c8261492e565b9150819050919050565b600060c08201905061497b6000830189613d0a565b6149886020830188613a42565b61499560408301876147f9565b6149a260608301866147f9565b6149af6080830185613d0a565b6149bc60a0830184613a42565b979650505050505050565b6000806000606084860312156149e0576149df61398a565b5b60006149ee868287016143a1565b93505060206149ff868287016143a1565b9250506040614a10868287016143a1565b9150509250925092565b6000604082019050614a2f6000830185613a42565b614a3c6020830184613a42565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a9f602183613b2c565b9150614aaa82614a43565b604082019050919050565b60006020820190508181036000830152614ace81614a92565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000614b0b601183613b2c565b9150614b1682614ad5565b602082019050919050565b60006020820190508181036000830152614b3a81614afe565b905091905056fea26469706673582212201a55cab9a27b20b1111beb191f6c9c3844cb01047b6bdc1b137f8eb830626a7564736f6c63430008120033

Deployed Bytecode

0x60806040526004361061026b5760003560e01c80637d1db4a511610144578063ba08f418116100b6578063d78e139d1161007a578063d78e139d146108cd578063dd62ed3e146108f6578063ec7cd01a14610933578063f2fde38b1461095c578063f6a78e1714610985578063f887ea401461099c57610272565b8063ba08f418146107fe578063ccf8c03614610827578063cec10c1114610850578063d148b74c14610879578063d51ed1c81461089057610272565b8063918924761161010857806391892476146106ee57806395d89b41146107175780639acb773e14610742578063a8aa1b311461076b578063a9059cbb14610796578063b2bdfa7b146107d357610272565b80637d1db4a51461063f578063893d20e81461066a5780638a4068dd146106955780638a8c523c146106ac5780638da5cb5b146106c357610272565b8063313ce567116101dd5780636ddd1713116101a15780636ddd17131461054157806370a082311461056c578063715018a6146105a9578063728607ba146105c057806377b54bad146105d757806378109e541461061457610272565b8063313ce5671461049657806341fb0d21146104c15780634d07912a146104d85780634e9f829d146104ef5780635d83e1d51461051857610272565b8063095ea7b31161022f578063095ea7b31461035e5780631161ae391461039b57806318160ddd146103d85780631df4ccfc1461040357806323b872dd1461042e5780632b112e491461046b57610272565b806304368f65146102775780630445b667146102a05780630621472c146102cb57806306fdde031461030857806308fd3d051461033357610272565b3661027257005b600080fd5b34801561028357600080fd5b5061029e60048036038101906102999190613a02565b6109c7565b005b3480156102ac57600080fd5b506102b5610a99565b6040516102c29190613a51565b60405180910390f35b3480156102d757600080fd5b506102f260048036038101906102ed9190613aca565b610a9f565b6040516102ff9190613b06565b60405180910390f35b34801561031457600080fd5b5061031d610ad2565b60405161032a9190613bb1565b60405180910390f35b34801561033f57600080fd5b50610348610b0f565b6040516103559190613b06565b60405180910390f35b34801561036a57600080fd5b5061038560048036038101906103809190613bd3565b610b22565b6040516103929190613b06565b60405180910390f35b3480156103a757600080fd5b506103c260048036038101906103bd9190613c13565b610c14565b6040516103cf9190613b06565b60405180910390f35b3480156103e457600080fd5b506103ed610c29565b6040516103fa9190613a51565b60405180910390f35b34801561040f57600080fd5b50610418610c33565b6040516104259190613a51565b60405180910390f35b34801561043a57600080fd5b5061045560048036038101906104509190613c53565b610c39565b6040516104629190613b06565b60405180910390f35b34801561047757600080fd5b50610480610e39565b60405161048d9190613a51565b60405180910390f35b3480156104a257600080fd5b506104ab610ebb565b6040516104b89190613cc2565b60405180910390f35b3480156104cd57600080fd5b506104d6610ec4565b005b3480156104e457600080fd5b506104ed610f74565b005b3480156104fb57600080fd5b5061051660048036038101906105119190613cdd565b6110b2565b005b34801561052457600080fd5b5061053f600480360381019061053a9190613cdd565b611178565b005b34801561054d57600080fd5b5061055661123e565b6040516105639190613b06565b60405180910390f35b34801561057857600080fd5b50610593600480360381019061058e9190613aca565b611251565b6040516105a09190613a51565b60405180910390f35b3480156105b557600080fd5b506105be61129a565b005b3480156105cc57600080fd5b506105d56113ed565b005b3480156105e357600080fd5b506105fe60048036038101906105f99190613bd3565b61149e565b60405161060b9190613b06565b60405180910390f35b34801561062057600080fd5b50610629611601565b6040516106369190613a51565b60405180910390f35b34801561064b57600080fd5b50610654611607565b6040516106619190613a51565b60405180910390f35b34801561067657600080fd5b5061067f61160d565b60405161068c9190613d19565b60405180910390f35b3480156106a157600080fd5b506106aa61161c565b005b3480156106b857600080fd5b506106c16116bb565b005b3480156106cf57600080fd5b506106d8611788565b6040516106e59190613d19565b60405180910390f35b3480156106fa57600080fd5b5061071560048036038101906107109190613d34565b6117b1565b005b34801561072357600080fd5b5061072c611919565b6040516107399190613bb1565b60405180910390f35b34801561074e57600080fd5b5061076960048036038101906107649190613dc1565b611956565b005b34801561077757600080fd5b50610780611a46565b60405161078d9190613d19565b60405180910390f35b3480156107a257600080fd5b506107bd60048036038101906107b89190613bd3565b611a6c565b6040516107ca9190613b06565b60405180910390f35b3480156107df57600080fd5b506107e8611a81565b6040516107f59190613d19565b60405180910390f35b34801561080a57600080fd5b5061082560048036038101906108209190613f49565b611aa5565b005b34801561083357600080fd5b5061084e60048036038101906108499190613dc1565b611bcf565b005b34801561085c57600080fd5b5061087760048036038101906108729190613fa5565b611d16565b005b34801561088557600080fd5b5061088e611dc5565b005b34801561089c57600080fd5b506108b760048036038101906108b29190613cdd565b611e64565b6040516108c49190613a51565b60405180910390f35b3480156108d957600080fd5b506108f460048036038101906108ef9190613cdd565b611ed6565b005b34801561090257600080fd5b5061091d60048036038101906109189190613ff8565b611f5f565b60405161092a9190613a51565b60405180910390f35b34801561093f57600080fd5b5061095a60048036038101906109559190613dc1565b611fe6565b005b34801561096857600080fd5b50610983600480360381019061097e9190613aca565b6120d6565b005b34801561099157600080fd5b5061099a612297565b005b3480156109a857600080fd5b506109b1612374565b6040516109be9190614097565b60405180910390f35b6109cf61239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a53906140fe565b60405180910390fd5b81602060156101000a81548160ff0219169083151502179055506009600a610a849190614280565b81610a8f91906142cb565b6021819055505050565b60215481565b6000610acb827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610b22565b9050919050565b60606040518060400160405280600b81526020017f4573636170652052756d65000000000000000000000000000000000000000000815250905090565b602060149054906101000a900460ff1681565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c029190613a51565b60405180910390a36001905092915050565b600082610c2083611e64565b11905092915050565b6000600554905090565b60125481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610e2557610da4826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123a29092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610e30848484612406565b90509392505050565b6000610eb6610e69600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611251565b610ea8610e97600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611251565b600554612b6190919063ffffffff16565b612b6190919063ffffffff16565b905090565b60006009905090565b610ecc61239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f50906140fe565b60405180910390fd5b609660158190555060c860148190555061012c601681905550565b610f7c61239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611009576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611000906140fe565b60405180910390fd5b6000600d819055506002600e819055506000600f8190555060006010819055506000601181905550601154600f54600d54600e5460105461104a919061430d565b611054919061430d565b61105e919061430d565b611068919061430d565b60128190555060646013819055506064601581905550606460148190555060006016819055506103e860016005546110a091906142cb565b6110aa9190614370565b602181905550565b6110ba61239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113e906140fe565b60405180910390fd5b600181101561115557600080fd5b60648160055461116591906142cb565b61116f9190614370565b60068190555050565b61118061239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461120d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611204906140fe565b60405180910390fd5b600181101561121b57600080fd5b60648160055461122b91906142cb565b6112359190614370565b60078190555050565b602060159054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112a261239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461132f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611326906140fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6113f561239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611482576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611479906140fe565b60405180910390fd5b60c860158190555061012c6014819055506101f4601681905550565b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166114f657600080fd5b6000820361157b578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016115379190613d19565b602060405180830381865afa158015611554573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157891906143b6565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016115b69291906143e3565b6020604051808303816000875af11580156115d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f99190614421565b905092915050565b60075481565b60065481565b6000611617611788565b905090565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661167257600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156116b8573d6000803e3d6000fd5b50565b6116c361239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611750576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611747906140fe565b60405180910390fd5b6001602060146101000a81548160ff02191690831515021790555061012c60158190555061012c6014819055506103e8601681905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6117b961239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183d906140fe565b60405180910390fd5b85600d819055508460108190555083600e8190555082600f81905550816011819055506118b2826118a485611896886118888b8d612bab90919063ffffffff16565b612bab90919063ffffffff16565b612bab90919063ffffffff16565b612bab90919063ffffffff16565b6012819055508060138190555060056013546118ce9190614370565b60125410611911576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119089061449a565b60405180910390fd5b505050505050565b60606040518060400160405280600481526020017f52554d4500000000000000000000000000000000000000000000000000000000815250905090565b61195e61239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e2906140fe565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611a79338484612406565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611aad61239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b31906140fe565b60405180910390fd5b60005b8251811015611bca5781600c6000858481518110611b5e57611b5d6144ba565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611bc2906144e9565b915050611b3d565b505050565b611bd761239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5b906140fe565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611d1e61239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da2906140fe565b60405180910390fd5b816014819055508260158190555080601681905550505050565b611dcd61239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e51906140fe565b60405180910390fd5b611e62612c09565b565b6000611ecf611e71610e39565b611ec1611eb26002611ea4602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611251565b6132e690919063ffffffff16565b856132e690919063ffffffff16565b61336090919063ffffffff16565b9050919050565b6000479050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60648484611f2591906142cb565b611f2f9190614370565b9081150290604051600060405180830381858888f19350505050158015611f5a573d6000803e3d6000fd5b505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611fee61239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461207b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612072906140fe565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6120de61239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461216b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612162906140fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d1906145a3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61229f61239a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461232c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612323906140fe565b60405180910390fd5b6009600a61233a9190614280565b633b9aca0061234991906142cb565b6007819055506009600a61235d9190614280565b633b9aca0061236c91906142cb565b600681905550565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b60008383111582906123ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e19190613bb1565b60405180910390fd5b50600083856123f991906145c3565b9050809150509392505050565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124ac5750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6124eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e290614643565b60405180910390fd5b602260009054906101000a900460ff16156125125761250b8484846133aa565b9050612b5a565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125b65750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561260b57602060149054906101000a900460ff1661260a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612601906146af565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561269157503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156126eb5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127455750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561279f5750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127f95750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561284f5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128b357600061285f84611251565b90506007548382612870919061430d565b11156128b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a890614741565b60405180910390fd5b505b6128bd848361357d565b6128c561361a565b156128d3576128d2612c09565b5b61295c826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123a29092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612a425750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612a5657612a518584866136f1565b612a58565b825b9050612aac81600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bab90919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b4c9190613a51565b60405180910390a360019150505b9392505050565b6000612ba383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506123a2565b905092915050565b6000808284612bba919061430d565b905083811015612bff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf6906147ad565b60405180910390fd5b8091505092915050565b6001602260006101000a81548160ff0219169083151502179055506000612c34601c54601d54610c14565b612c4057600d54612c43565b60005b90506000612c836002612c75601254612c67866021546132e690919063ffffffff16565b61336090919063ffffffff16565b61336090919063ffffffff16565b90506000612c9c82602154612b6190919063ffffffff16565b90506000600267ffffffffffffffff811115612cbb57612cba613e06565b5b604051908082528060200260200182016040528015612ce95781602001602082028036833780820191505090505b5090503081600081518110612d0157612d006144ba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612d7257612d716144ba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612e159594939291906148c6565b600060405180830381600087803b158015612e2f57600080fd5b505af1158015612e43573d6000803e3d6000fd5b505050506000612e5c8247612b6190919063ffffffff16565b90506000612e88612e7760028961336090919063ffffffff16565b601254612b6190919063ffffffff16565b90506000612ec46002612eb684612ea88c886132e690919063ffffffff16565b61336090919063ffffffff16565b61336090919063ffffffff16565b90506000612eef83612ee1600e54876132e690919063ffffffff16565b61336090919063ffffffff16565b90506000612f1a84612f0c601054886132e690919063ffffffff16565b61336090919063ffffffff16565b90506000612f4585612f37600f54896132e690919063ffffffff16565b61336090919063ffffffff16565b90506000612f7086612f626011548a6132e690919063ffffffff16565b61336090919063ffffffff16565b90506000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1685604051612fba90614951565b60006040518083038185875af1925050503d8060008114612ff7576040519150601f19603f3d011682016040523d82523d6000602084013e612ffc565b606091505b50509050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161304690614951565b60006040518083038185875af1925050503d8060008114613083576040519150601f19603f3d011682016040523d82523d6000602084013e613088565b606091505b505080915050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16846040516130d490614951565b60006040518083038185875af1925050503d8060008114613111576040519150601f19603f3d011682016040523d82523d6000602084013e613116565b606091505b505080915050601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161316290614951565b60006040518083038185875af1925050503d806000811461319f576040519150601f19603f3d011682016040523d82523d6000602084013e6131a4565b606091505b50508091505060008c11156132bc57601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71987308f600080601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161323c96959493929190614966565b60606040518083038185885af115801561325a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061327f91906149c7565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506868d6040516132b3929190614a1a565b60405180910390a15b505050505050505050505050506000602260006101000a81548160ff021916908315150217905550565b60008083036132f8576000905061335a565b6000828461330691906142cb565b90508284826133159190614370565b14613355576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161334c90614ab5565b60405180910390fd5b809150505b92915050565b60006133a283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061391d565b905092915050565b6000613435826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123a29092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506134ca82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bab90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161356a9190613a51565b60405180910390a3600190509392505050565b600654811115806135d75750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161360d90614b21565b60405180910390fd5b5050565b6000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156136875750602260009054906101000a900460ff16155b801561369f5750602060159054906101000a900460ff165b80156136ec5750602154600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6000806016549050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036137585760145490506137b4565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036137b35760155490505b5b60006137fd60646013546137c891906142cb565b6137ef846137e16012548a6132e690919063ffffffff16565b6132e690919063ffffffff16565b61336090919063ffffffff16565b9050600081905061385681600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bab90919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516138f69190613a51565b60405180910390a36139118287612b6190919063ffffffff16565b93505050509392505050565b60008083118290613964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161395b9190613bb1565b60405180910390fd5b50600083856139739190614370565b9050809150509392505050565b6000604051905090565b600080fd5b600080fd5b60008115159050919050565b6139a981613994565b81146139b457600080fd5b50565b6000813590506139c6816139a0565b92915050565b6000819050919050565b6139df816139cc565b81146139ea57600080fd5b50565b6000813590506139fc816139d6565b92915050565b60008060408385031215613a1957613a1861398a565b5b6000613a27858286016139b7565b9250506020613a38858286016139ed565b9150509250929050565b613a4b816139cc565b82525050565b6000602082019050613a666000830184613a42565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613a9782613a6c565b9050919050565b613aa781613a8c565b8114613ab257600080fd5b50565b600081359050613ac481613a9e565b92915050565b600060208284031215613ae057613adf61398a565b5b6000613aee84828501613ab5565b91505092915050565b613b0081613994565b82525050565b6000602082019050613b1b6000830184613af7565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613b5b578082015181840152602081019050613b40565b60008484015250505050565b6000601f19601f8301169050919050565b6000613b8382613b21565b613b8d8185613b2c565b9350613b9d818560208601613b3d565b613ba681613b67565b840191505092915050565b60006020820190508181036000830152613bcb8184613b78565b905092915050565b60008060408385031215613bea57613be961398a565b5b6000613bf885828601613ab5565b9250506020613c09858286016139ed565b9150509250929050565b60008060408385031215613c2a57613c2961398a565b5b6000613c38858286016139ed565b9250506020613c49858286016139ed565b9150509250929050565b600080600060608486031215613c6c57613c6b61398a565b5b6000613c7a86828701613ab5565b9350506020613c8b86828701613ab5565b9250506040613c9c868287016139ed565b9150509250925092565b600060ff82169050919050565b613cbc81613ca6565b82525050565b6000602082019050613cd76000830184613cb3565b92915050565b600060208284031215613cf357613cf261398a565b5b6000613d01848285016139ed565b91505092915050565b613d1381613a8c565b82525050565b6000602082019050613d2e6000830184613d0a565b92915050565b60008060008060008060c08789031215613d5157613d5061398a565b5b6000613d5f89828a016139ed565b9650506020613d7089828a016139ed565b9550506040613d8189828a016139ed565b9450506060613d9289828a016139ed565b9350506080613da389828a016139ed565b92505060a0613db489828a016139ed565b9150509295509295509295565b60008060408385031215613dd857613dd761398a565b5b6000613de685828601613ab5565b9250506020613df7858286016139b7565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613e3e82613b67565b810181811067ffffffffffffffff82111715613e5d57613e5c613e06565b5b80604052505050565b6000613e70613980565b9050613e7c8282613e35565b919050565b600067ffffffffffffffff821115613e9c57613e9b613e06565b5b602082029050602081019050919050565b600080fd5b6000613ec5613ec084613e81565b613e66565b90508083825260208201905060208402830185811115613ee857613ee7613ead565b5b835b81811015613f115780613efd8882613ab5565b845260208401935050602081019050613eea565b5050509392505050565b600082601f830112613f3057613f2f613e01565b5b8135613f40848260208601613eb2565b91505092915050565b60008060408385031215613f6057613f5f61398a565b5b600083013567ffffffffffffffff811115613f7e57613f7d61398f565b5b613f8a85828601613f1b565b9250506020613f9b858286016139b7565b9150509250929050565b600080600060608486031215613fbe57613fbd61398a565b5b6000613fcc868287016139ed565b9350506020613fdd868287016139ed565b9250506040613fee868287016139ed565b9150509250925092565b6000806040838503121561400f5761400e61398a565b5b600061401d85828601613ab5565b925050602061402e85828601613ab5565b9150509250929050565b6000819050919050565b600061405d61405861405384613a6c565b614038565b613a6c565b9050919050565b600061406f82614042565b9050919050565b600061408182614064565b9050919050565b61409181614076565b82525050565b60006020820190506140ac6000830184614088565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006140e8602083613b2c565b91506140f3826140b2565b602082019050919050565b60006020820190508181036000830152614117816140db565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156141a4578086048111156141805761417f61411e565b5b600185161561418f5780820291505b808102905061419d8561414d565b9450614164565b94509492505050565b6000826141bd5760019050614279565b816141cb5760009050614279565b81600181146141e157600281146141eb5761421a565b6001915050614279565b60ff8411156141fd576141fc61411e565b5b8360020a9150848211156142145761421361411e565b5b50614279565b5060208310610133831016604e8410600b841016171561424f5782820a90508381111561424a5761424961411e565b5b614279565b61425c848484600161415a565b925090508184048111156142735761427261411e565b5b81810290505b9392505050565b600061428b826139cc565b915061429683613ca6565b92506142c37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846141ad565b905092915050565b60006142d6826139cc565b91506142e1836139cc565b92508282026142ef816139cc565b915082820484148315176143065761430561411e565b5b5092915050565b6000614318826139cc565b9150614323836139cc565b925082820190508082111561433b5761433a61411e565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061437b826139cc565b9150614386836139cc565b92508261439657614395614341565b5b828204905092915050565b6000815190506143b0816139d6565b92915050565b6000602082840312156143cc576143cb61398a565b5b60006143da848285016143a1565b91505092915050565b60006040820190506143f86000830185613d0a565b6144056020830184613a42565b9392505050565b60008151905061441b816139a0565b92915050565b6000602082840312156144375761443661398a565b5b60006144458482850161440c565b91505092915050565b7f466565732063616e206e6f74206265206d6f7265207468616e20323025000000600082015250565b6000614484601d83613b2c565b915061448f8261444e565b602082019050919050565b600060208201905081810360008301526144b381614477565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006144f4826139cc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036145265761452561411e565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061458d602683613b2c565b915061459882614531565b604082019050919050565b600060208201905081810360008301526145bc81614580565b9050919050565b60006145ce826139cc565b91506145d9836139cc565b92508282039050818111156145f1576145f061411e565b5b92915050565b7f596f7520617265206120626f7400000000000000000000000000000000000000600082015250565b600061462d600d83613b2c565b9150614638826145f7565b602082019050919050565b6000602082019050818103600083015261465c81614620565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b6000614699601483613b2c565b91506146a482614663565b602082019050919050565b600060208201905081810360008301526146c88161468c565b9050919050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b600061472b603e83613b2c565b9150614736826146cf565b604082019050919050565b6000602082019050818103600083015261475a8161471e565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614797601b83613b2c565b91506147a282614761565b602082019050919050565b600060208201905081810360008301526147c68161478a565b9050919050565b6000819050919050565b60006147f26147ed6147e8846147cd565b614038565b6139cc565b9050919050565b614802816147d7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61483d81613a8c565b82525050565b600061484f8383614834565b60208301905092915050565b6000602082019050919050565b600061487382614808565b61487d8185614813565b935061488883614824565b8060005b838110156148b95781516148a08882614843565b97506148ab8361485b565b92505060018101905061488c565b5085935050505092915050565b600060a0820190506148db6000830188613a42565b6148e860208301876147f9565b81810360408301526148fa8186614868565b90506149096060830185613d0a565b6149166080830184613a42565b9695505050505050565b600081905092915050565b50565b600061493b600083614920565b91506149468261492b565b600082019050919050565b600061495c8261492e565b9150819050919050565b600060c08201905061497b6000830189613d0a565b6149886020830188613a42565b61499560408301876147f9565b6149a260608301866147f9565b6149af6080830185613d0a565b6149bc60a0830184613a42565b979650505050505050565b6000806000606084860312156149e0576149df61398a565b5b60006149ee868287016143a1565b93505060206149ff868287016143a1565b9250506040614a10868287016143a1565b9150509250925092565b6000604082019050614a2f6000830185613a42565b614a3c6020830184613a42565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a9f602183613b2c565b9150614aaa82614a43565b604082019050919050565b60006020820190508181036000830152614ace81614a92565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000614b0b601183613b2c565b9150614b1682614ad5565b602082019050919050565b60006020820190508181036000830152614b3a81614afe565b905091905056fea26469706673582212201a55cab9a27b20b1111beb191f6c9c3844cb01047b6bdc1b137f8eb830626a7564736f6c63430008120033

Deployed Bytecode Sourcemap

5104:13844:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18217:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6866:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9080:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8434:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6785:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8856:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18730:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8164:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6127:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9374:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18405:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8258:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14790:163;;;;;;;;;;;;;:::i;:::-;;14961:466;;;;;;;;;;;;;:::i;:::-;;13074:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12877:189;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6829:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8604:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3161:148;;;;;;;;;;;;;:::i;:::-;;14617:165;;;;;;;;;;;;;:::i;:::-;;13918:308;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5589:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5522:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8520:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13442:147;;;;;;;;;;;;;:::i;:::-;;14433:176;;;;;;;;;;;;;:::i;:::-;;2947:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17614:595;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8344:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17486:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6753:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9210:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2567:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13719:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17321:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14234:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12798:71;;;;;;;;;;;;;:::i;:::-;;18555:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12592:197;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8715:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13597:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3317:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13258:176;;;;;;;;;;;;;:::i;:::-;;6683:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18217:176;3084:12;:10;:12::i;:::-;3074:22;;:6;;;;;;;;;;:22;;;3066:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18323:8:::1;18309:11;;:22;;;;;;;;;;;;;;;;;;5441:1;18369:2;:15;;;;:::i;:::-;18358:7;:27;;;;:::i;:::-;18342:13;:43;;;;18217:176:::0;;:::o;6866:57::-;;;;:::o;9080:122::-;9135:4;9159:35;9167:7;9176:17;9159:7;:35::i;:::-;9152:42;;9080:122;;;:::o;8434:80::-;8482:13;8506:5;;;;;;;;;;;;;;;;;8499:12;;8434:80;:::o;6785:31::-;;;;;;;;;;;;;:::o;8856:216::-;8931:4;8983:6;8948:11;:23;8960:10;8948:23;;;;;;;;;;;;;;;:32;8972:7;8948:32;;;;;;;;;;;;;;;:41;;;;9026:7;9005:37;;9014:10;9005:37;;;9035:6;9005:37;;;;;;:::i;:::-;;;;;;;;9060:4;9053:11;;8856:216;;;;:::o;18730:150::-;18810:4;18866:6;18834:29;18854:8;18834:19;:29::i;:::-;:38;18827:45;;18730:150;;;;:::o;8164:88::-;8219:7;8237:12;;8230:19;;8164:88;:::o;6127:98::-;;;;:::o;9374:370::-;9474:4;9529:17;9494:11;:19;9506:6;9494:19;;;;;;;;;;;;;;;:31;9514:10;9494:31;;;;;;;;;;;;;;;;:52;9491:186;;9596:69;9632:6;9596:69;;;;;;;;;;;;;;;;;:11;:19;9608:6;9596:19;;;;;;;;;;;;;;;:31;9616:10;9596:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;9562:11;:19;9574:6;9562:19;;;;;;;;;;;;;;;:31;9582:10;9562:31;;;;;;;;;;;;;;;:103;;;;9491:186;9696:40;9710:6;9718:9;9729:6;9696:13;:40::i;:::-;9689:47;;9374:370;;;;;:::o;18405:142::-;18458:7;18485:54;18523:15;18533:4;;;;;;;;;;;18523:9;:15::i;:::-;18485:33;18502:15;18512:4;;;;;;;;;;;18502:9;:15::i;:::-;18485:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;18478:61;;18405:142;:::o;8258:80::-;8310:5;5441:1;8319:16;;8258:80;:::o;14790:163::-;3084:12;:10;:12::i;:::-;3074:22;;:6;;;;;;;;;;:22;;;3066:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14855:3:::1;14839:13;:19;;;;14886:3;14869:14;:20;;;;14921:3;14900:18;:24;;;;14790:163::o:0;14961:466::-;3084:12;:10;:12::i;:::-;3074:22;;:6;;;;;;;;;;:22;;;3066:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15028:1:::1;15010:12;:19;;;;15058:1;15040:12;:19;;;;15088:1;15070:12;:19;;;;15118:1;15100:6;:19;;;;15148:1;15130:10;:19;;;;15232:10;;15217:12;;15202;;15187;;15178:6;;:21;;;;:::i;:::-;:36;;;;:::i;:::-;:51;;;;:::i;:::-;:64;;;;:::i;:::-;15160:8;:82;;;;15271:3;15253:14;:21;;;;15301:3;15285:13;:19;;;;15332:3;15315:14;:20;;;;15367:1;15346:18;:22;;;;15414:4;15410:1;15395:12;;:16;;;;:::i;:::-;:23;;;;:::i;:::-;15379:13;:39;;;;14961:466::o:0;13074:176::-;3084:12;:10;:12::i;:::-;3074:22;;:6;;;;;;;;;;:22;;;3066:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13169:1:::1;13153:12;:17;;13145:26;;;::::0;::::1;;13231:3;13214:12;13199;;:27;;;;:::i;:::-;13198:36;;;;:::i;:::-;13183:12;:51;;;;13074:176:::0;:::o;12877:189::-;3084:12;:10;:12::i;:::-;3074:22;;:6;;;;;;;;;;:22;;;3066:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12980:1:::1;12962:14;:19;;12954:28;;;::::0;::::1;;13047:3;13028:14;13013:12;;:29;;;;:::i;:::-;13012:38;;;;:::i;:::-;12994:15;:56;;;;12877:189:::0;:::o;6829:30::-;;;;;;;;;;;;;:::o;8604:105::-;8670:7;8688:9;:18;8698:7;8688:18;;;;;;;;;;;;;;;;8681:25;;8604:105;;;:::o;3161:148::-;3084:12;:10;:12::i;:::-;3074:22;;:6;;;;;;;;;;:22;;;3066:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3268:1:::1;3231:40;;3252:6;::::0;::::1;;;;;;;;3231:40;;;;;;;;;;;;3299:1;3282:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3161:148::o:0;14617:165::-;3084:12;:10;:12::i;:::-;3074:22;;:6;;;;;;;;;;:22;;;3066:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14684:3:::1;14668:13;:19;;;;14715:3;14698:14;:20;;;;14750:3;14729:18;:24;;;;14617:165::o:0;13918:308::-;13997:4;14022:15;:27;14038:10;14022:27;;;;;;;;;;;;;;;;;;;;;;;;;14014:36;;;;;;14071:1;14061:6;:11;14058:95;;14103:12;14097:29;;;14135:4;14097:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14088:53;;14058:95;14176:12;14170:28;;;14199:10;14211:6;14170:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14163:55;;13918:308;;;;:::o;5589:63::-;;;;:::o;5522:60::-;;;;:::o;8520:78::-;8572:7;8589;:5;:7::i;:::-;8582:14;;8520:78;:::o;13442:147::-;13491:15;:27;13507:10;13491:27;;;;;;;;;;;;;;;;;;;;;;;;;13483:36;;;;;;13538:10;13530:28;;:51;13559:21;13530:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13442:147::o;14433:176::-;3084:12;:10;:12::i;:::-;3074:22;;:6;;;;;;;;;;:22;;;3066:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14500:4:::1;14486:11;;:18;;;;;;;;;;;;;;;;;;14531:3;14515:13;:19;;;;14562:3;14545:14;:20;;;;14597:4;14576:18;:25;;;;14433:176::o:0;2947:79::-;2985:7;3012:6;;;;;;;;;;;3005:13;;2947:79;:::o;17614:595::-;3084:12;:10;:12::i;:::-;3074:22;;:6;;;;;;;;;;:22;;;3066:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17819:13:::1;17804:12;:28;;;;17852:7;17843:6;:16;;;;17885:13;17870:12;:28;;;;17924:13;17909:12;:28;;;;17961:11;17948:10;:24;;;;17994:81;18063:11;17994:64;18044:13;17994:45;18025:13;17994:26;18012:7;17994:13;:17;;:26;;;;:::i;:::-;:30;;:45;;;;:::i;:::-;:49;;:64;;;;:::i;:::-;:68;;:81;;;;:::i;:::-;17983:8;:92;;;;18103:15;18086:14;:32;;;;18165:1;18148:14;;:18;;;;:::i;:::-;18137:8;;:29;18129:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;17614:595:::0;;;;;;:::o;8344:84::-;8394:13;8418:7;;;;;;;;;;;;;;;;;8411:14;;8344:84;:::o;17486:120::-;3084:12;:10;:12::i;:::-;3074:22;;:6;;;;;;;;;;:22;;;3066:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17592:6:::1;17566:15;:23;17582:6;17566:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;17486:120:::0;;:::o;6753:19::-;;;;;;;;;;;;;:::o;9210:156::-;9290:4;9314:44;9328:10;9340:9;9351:6;9314:13;:44::i;:::-;9307:51;;9210:156;;;;:::o;2567:21::-;;;;;;;;;;;;:::o;13719:191::-;3084:12;:10;:12::i;:::-;3074:22;;:6;;;;;;;;;;:22;;;3066:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13810:9:::1;13806:97;13828:8;:15;13824:1;:19;13806:97;;;13886:5;13864:6;:19;13871:8;13880:1;13871:11;;;;;;;;:::i;:::-;;;;;;;;13864:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;13845:3;;;;;:::i;:::-;;;;13806:97;;;;13719:191:::0;;:::o;17321:157::-;3084:12;:10;:12::i;:::-;3074:22;;:6;;;;;;;;;;:22;;;3066:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17421:6:::1;17399:11;:19;17411:6;17399:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;17464:6;17438:15;:23;17454:6;17438:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;17321:157:::0;;:::o;14234:191::-;3084:12;:10;:12::i;:::-;3074:22;;:6;;;;;;;;;;:22;;;3066:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14343:5:::1;14326:14;:22;;;;14375:4;14359:13;:20;;;;14411:6;14390:18;:27;;;;14234:191:::0;;;:::o;12798:71::-;3084:12;:10;:12::i;:::-;3074:22;;:6;;;;;;;;;;:22;;;3066:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12851:10:::1;:8;:10::i;:::-;12798:71::o:0;18555:167::-;18623:7;18650:64;18691:22;:20;:22::i;:::-;18650:36;18663:22;18683:1;18663:15;18673:4;;;;;;;;;;;18663:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;18650:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;18643:71;;18555:167;;;:::o;12592:197::-;12661:17;12681:21;12661:41;;12721:14;;;;;;;;;;;12713:32;;:68;12777:3;12758:16;12746:9;:28;;;;:::i;:::-;:34;;;;:::i;:::-;12713:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12650:139;12592:197;:::o;8715:133::-;8799:7;8817:11;:19;8829:6;8817:19;;;;;;;;;;;;;;;:28;8837:7;8817:28;;;;;;;;;;;;;;;;8810:35;;8715:133;;;;:::o;13597:110::-;3084:12;:10;:12::i;:::-;3074:22;;:6;;;;;;;;;;:22;;;3066:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13694:5:::1;13676:6;:15;13683:7;13676:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;13597:110:::0;;:::o;3317:244::-;3084:12;:10;:12::i;:::-;3074:22;;:6;;;;;;;;;;:22;;;3066:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3426:1:::1;3406:22;;:8;:22;;::::0;3398:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3516:8;3487:38;;3508:6;::::0;::::1;;;;;;;;3487:38;;;;;;;;;;;;3545:8;3536:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3317:244:::0;:::o;13258:176::-;3084:12;:10;:12::i;:::-;3074:22;;:6;;;;;;;;;;:22;;;3066:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5441:1:::1;13351:2;:15;;;;:::i;:::-;13334:13;:33;;;;:::i;:::-;13316:15;:51;;;;5441:1;13410:2;:15;;;;:::i;:::-;13393:13;:33;;;;:::i;:::-;13378:12;:48;;;;13258:176::o:0;6683:24::-;;;;;;;;;;;;;:::o;2288:115::-;2341:15;2384:10;2369:26;;2288:115;:::o;548:192::-;634:7;667:1;662;:6;;670:12;654:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;694:9;710:1;706;:5;;;;:::i;:::-;694:17;;731:1;724:8;;;548:192;;;;;:::o;9752:1316::-;9844:4;9870:6;:14;9877:6;9870:14;;;;;;;;;;;;;;;;;;;;;;;;;9869:15;:37;;;;;9889:6;:17;9896:9;9889:17;;;;;;;;;;;;;;;;;;;;;;;;;9888:18;9869:37;9861:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9940:6;;;;;;;;;;;9937:63;;;9956:41;9971:6;9979:9;9990:6;9956:14;:41::i;:::-;9949:48;;;;9937:63;10016:14;:22;10031:6;10016:22;;;;;;;;;;;;;;;;;;;;;;;;;10015:23;:53;;;;;10043:14;:25;10058:9;10043:25;;;;;;;;;;;;;;;;;;;;;;;;;10042:26;10015:53;10012:140;;;10092:11;;;;;;;;;;;10084:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;10012:140;10186:14;:22;10201:6;10186:22;;;;;;;;;;;;;;;;;;;;;;;;;10185:23;:53;;;;;10233:4;10212:26;;:9;:26;;;;10185:53;:84;;;;;10264:4;;;;;;;;;;;10243:26;;:9;:26;;;;10185:84;:105;;;;;10286:4;;;;;;;;;;;10273:17;;:9;:17;;;;10185:105;:140;;;;;10307:18;;;;;;;;;;;10294:31;;:9;:31;;;;10185:140;:177;;;;;10342:20;;;;;;;;;;;10329:33;;:9;:33;;;;10185:177;:208;;;;;10367:15;:26;10383:9;10367:26;;;;;;;;;;;;;;;;;;;;;;;;;10366:27;10185:208;10181:400;;;10409:18;10430:20;10440:9;10430;:20::i;:::-;10409:41;;10498:15;;10487:6;10474:10;:19;;;;:::i;:::-;10473:40;;10465:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;10394:187;10181:400;10602:28;10615:6;10623;10602:12;:28::i;:::-;10647:16;:14;:16::i;:::-;10644:35;;;10666:10;:8;:10::i;:::-;10644:35;10719:53;10741:6;10719:53;;;;;;;;;;;;;;;;;:9;:17;10729:6;10719:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;10699:9;:17;10709:6;10699:17;;;;;;;;;;;;;;;:73;;;;10785:22;10811:11;:19;10823:6;10811:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;10834:11;:22;10846:9;10834:22;;;;;;;;;;;;;;;;;;;;;;;;;10811:45;10810:93;;10869:34;10877:6;10885;10893:9;10869:7;:34::i;:::-;10810:93;;;10860:6;10810:93;10785:118;;10937:40;10962:14;10937:9;:20;10947:9;10937:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;10914:9;:20;10924:9;10914:20;;;;;;;;;;;;;;;:63;;;;11012:9;10995:43;;11004:6;10995:43;;;11023:14;10995:43;;;;;;:::i;:::-;;;;;;;;11056:4;11049:11;;;9752:1316;;;;;;:::o;406:136::-;464:7;491:43;495:1;498;491:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;484:50;;406:136;;;;:::o;219:181::-;277:7;297:9;313:1;309;:5;;;;:::i;:::-;297:17;;338:1;333;:6;;325:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;391:1;384:8;;;219:181;;;;:::o;15443:1868::-;6980:4;6971:6;;:13;;;;;;;;;;;;;;;;;;15488:27:::1;15518:60;15534:15;;15551:26;;15518:15;:60::i;:::-;:79;;15585:12;;15518:79;;;15581:1;15518:79;15488:109;;15604:23;15630:59;15687:1;15630:52;15673:8;;15630:38;15648:19;15630:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;15604:85;;15696:20;15719:34;15737:15;15719:13;;:17;;:34;;;;:::i;:::-;15696:57;;15762:21;15800:1;15786:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15762:40;;15827:4;15809;15814:1;15809:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15849:4;;;;;;;;;;;15839;15844:1;15839:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;15862:21;15886;15862:45;;15916:6;;;;;;;;;;;:57;;;15984:12;16007:1;16019:4;16042;16058:15;15916:164;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16089:17;16109:40;16135:13;16109:21;:25;;:40;;;;:::i;:::-;16089:60;;16158:19;16180:40;16193:26;16217:1;16193:19;:23;;:26;;;;:::i;:::-;16180:8;;:12;;:40;;;;:::i;:::-;16158:62;;16229:26;16258:58;16314:1;16258:51;16297:11;16258:34;16272:19;16258:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;16229:87;;16323:26;16352:44;16384:11;16352:27;16366:12;;16352:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;16323:73;;16403:20;16426:38;16452:11;16426:21;16440:6;;16426:9;:13;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;16403:61;;16471:26;16500:44;16532:11;16500:27;16514:12;;16500:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;16471:73;;16551:24;16578:42;16608:11;16578:25;16592:10;;16578:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;16551:69;;16631:15;16659:20;;;;;;;;;;;16651:34;;16693:18;16651:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16630:86;;;16747:20;;;;;;;;;;;16739:34;;16781:18;16739:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16723:81;;;;;16835:14;;;;;;;;;;;16827:28;;16863:12;16827:53;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16811:69;;;;;16911:18;;;;;;;;;;;16903:32;;16943:16;16903:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16887:77;;;;;16995:1;16977:15;:19;16974:330;;;17008:6;;;;;;;;;;;:22;;;17038:18;17080:4;17100:15;17130:1;17146::::0;17162:21:::1;;;;;;;;;;;17198:15;17008:216;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17240:48;17252:18;17272:15;17240:48;;;;;;;:::i;:::-;;;;;;;;16974:330;15481:1830;;;;;;;;;;;;;6998:5:::0;6989:6;;:14;;;;;;;;;;;;;;;;;;15443:1868::o;746:250::-;804:7;833:1;828;:6;824:47;;858:1;851:8;;;;824:47;883:9;899:1;895;:5;;;;:::i;:::-;883:17;;928:1;923;919;:5;;;;:::i;:::-;:10;911:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;987:1;980:8;;;746:250;;;;;:::o;1002:132::-;1060:7;1087:39;1091:1;1094;1087:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1080:46;;1002:132;;;;:::o;11080:330::-;11173:4;11210:53;11232:6;11210:53;;;;;;;;;;;;;;;;;:9;:17;11220:6;11210:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11190:9;:17;11200:6;11190:17;;;;;;;;;;;;;;;:73;;;;11297:32;11322:6;11297:9;:20;11307:9;11297:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;11274:9;:20;11284:9;11274:20;;;;;;;;;;;;;;;:55;;;;11362:9;11345:35;;11354:6;11345:35;;;11373:6;11345:35;;;;;;:::i;:::-;;;;;;;;11398:4;11391:11;;11080:330;;;;;:::o;11418:166::-;11515:12;;11505:6;:22;;:49;;;;11531:15;:23;11547:6;11531:23;;;;;;;;;;;;;;;;;;;;;;;;;11505:49;11497:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11418:166;;:::o;12387:197::-;12436:4;12474;;;;;;;;;;;12460:18;;:10;:18;;;;:38;;;;;12492:6;;;;;;;;;;;12491:7;12460:38;:62;;;;;12511:11;;;;;;;;;;;12460:62;:116;;;;;12563:13;;12535:9;:24;12553:4;12535:24;;;;;;;;;;;;;;;;:41;;12460:116;12453:123;;12387:197;:::o;11714:665::-;11800:7;11830:18;11851;;11830:39;;11898:4;;;;;;;;;;;11885:17;;:9;:17;;;11882:154;;11932:14;;11919:27;;11882:154;;;11977:4;;;;;;;;;;;11967:14;;:6;:14;;;11964:72;;12011:13;;11998:26;;11964:72;11882:154;12048:17;12068:62;12126:3;12109:14;;:20;;;;:::i;:::-;12068:36;12093:10;12068:20;12079:8;;12068:6;:10;;:20;;;;:::i;:::-;:24;;:36;;;;:::i;:::-;:40;;:62;;;;:::i;:::-;12048:82;;12141:22;12166:9;12141:34;;12215:44;12244:14;12215:9;:24;12233:4;12215:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;12188:9;:24;12206:4;12188:24;;;;;;;;;;;;;;;:71;;;;12300:4;12275:47;;12284:6;12275:47;;;12307:14;12275:47;;;;;;:::i;:::-;;;;;;;;12350:21;12361:9;12350:6;:10;;:21;;;;:::i;:::-;12343:28;;;;;11714:665;;;;;:::o;1140:189::-;1226:7;1258:1;1254;:5;1261:12;1246:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1285:9;1301:1;1297;:5;;;;:::i;:::-;1285:17;;1320:1;1313:8;;;1140:189;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:90;368:7;411:5;404:13;397:21;386:32;;334:90;;;:::o;430:116::-;500:21;515:5;500:21;:::i;:::-;493:5;490:32;480:60;;536:1;533;526:12;480:60;430:116;:::o;552:133::-;595:5;633:6;620:20;611:29;;649:30;673:5;649:30;:::i;:::-;552:133;;;;:::o;691:77::-;728:7;757:5;746:16;;691:77;;;:::o;774:122::-;847:24;865:5;847:24;:::i;:::-;840:5;837:35;827:63;;886:1;883;876:12;827:63;774:122;:::o;902:139::-;948:5;986:6;973:20;964:29;;1002:33;1029:5;1002:33;:::i;:::-;902:139;;;;:::o;1047:468::-;1112:6;1120;1169:2;1157:9;1148:7;1144:23;1140:32;1137:119;;;1175:79;;:::i;:::-;1137:119;1295:1;1320:50;1362:7;1353:6;1342:9;1338:22;1320:50;:::i;:::-;1310:60;;1266:114;1419:2;1445:53;1490:7;1481:6;1470:9;1466:22;1445:53;:::i;:::-;1435:63;;1390:118;1047:468;;;;;:::o;1521:118::-;1608:24;1626:5;1608:24;:::i;:::-;1603:3;1596:37;1521:118;;:::o;1645:222::-;1738:4;1776:2;1765:9;1761:18;1753:26;;1789:71;1857:1;1846:9;1842:17;1833:6;1789:71;:::i;:::-;1645:222;;;;:::o;1873:126::-;1910:7;1950:42;1943:5;1939:54;1928:65;;1873:126;;;:::o;2005:96::-;2042:7;2071:24;2089:5;2071:24;:::i;:::-;2060:35;;2005:96;;;:::o;2107:122::-;2180:24;2198:5;2180:24;:::i;:::-;2173:5;2170:35;2160:63;;2219:1;2216;2209:12;2160:63;2107:122;:::o;2235:139::-;2281:5;2319:6;2306:20;2297:29;;2335:33;2362:5;2335:33;:::i;:::-;2235:139;;;;:::o;2380:329::-;2439:6;2488:2;2476:9;2467:7;2463:23;2459:32;2456:119;;;2494:79;;:::i;:::-;2456:119;2614:1;2639:53;2684:7;2675:6;2664:9;2660:22;2639:53;:::i;:::-;2629:63;;2585:117;2380:329;;;;:::o;2715:109::-;2796:21;2811:5;2796:21;:::i;:::-;2791:3;2784:34;2715:109;;:::o;2830:210::-;2917:4;2955:2;2944:9;2940:18;2932:26;;2968:65;3030:1;3019:9;3015:17;3006:6;2968:65;:::i;:::-;2830:210;;;;:::o;3046:99::-;3098:6;3132:5;3126:12;3116:22;;3046:99;;;:::o;3151:169::-;3235:11;3269:6;3264:3;3257:19;3309:4;3304:3;3300:14;3285:29;;3151:169;;;;:::o;3326:246::-;3407:1;3417:113;3431:6;3428:1;3425:13;3417:113;;;3516:1;3511:3;3507:11;3501:18;3497:1;3492:3;3488:11;3481:39;3453:2;3450:1;3446:10;3441:15;;3417:113;;;3564:1;3555:6;3550:3;3546:16;3539:27;3388:184;3326:246;;;:::o;3578:102::-;3619:6;3670:2;3666:7;3661:2;3654:5;3650:14;3646:28;3636:38;;3578:102;;;:::o;3686:377::-;3774:3;3802:39;3835:5;3802:39;:::i;:::-;3857:71;3921:6;3916:3;3857:71;:::i;:::-;3850:78;;3937:65;3995:6;3990:3;3983:4;3976:5;3972:16;3937:65;:::i;:::-;4027:29;4049:6;4027:29;:::i;:::-;4022:3;4018:39;4011:46;;3778:285;3686:377;;;;:::o;4069:313::-;4182:4;4220:2;4209:9;4205:18;4197:26;;4269:9;4263:4;4259:20;4255:1;4244:9;4240:17;4233:47;4297:78;4370:4;4361:6;4297:78;:::i;:::-;4289:86;;4069:313;;;;:::o;4388:474::-;4456:6;4464;4513:2;4501:9;4492:7;4488:23;4484:32;4481:119;;;4519:79;;:::i;:::-;4481:119;4639:1;4664:53;4709:7;4700:6;4689:9;4685:22;4664:53;:::i;:::-;4654:63;;4610:117;4766:2;4792:53;4837:7;4828:6;4817:9;4813:22;4792:53;:::i;:::-;4782:63;;4737:118;4388:474;;;;;:::o;4868:::-;4936:6;4944;4993:2;4981:9;4972:7;4968:23;4964:32;4961:119;;;4999:79;;:::i;:::-;4961:119;5119:1;5144:53;5189:7;5180:6;5169:9;5165:22;5144:53;:::i;:::-;5134:63;;5090:117;5246:2;5272:53;5317:7;5308:6;5297:9;5293:22;5272:53;:::i;:::-;5262:63;;5217:118;4868:474;;;;;:::o;5348:619::-;5425:6;5433;5441;5490:2;5478:9;5469:7;5465:23;5461:32;5458:119;;;5496:79;;:::i;:::-;5458:119;5616:1;5641:53;5686:7;5677:6;5666:9;5662:22;5641:53;:::i;:::-;5631:63;;5587:117;5743:2;5769:53;5814:7;5805:6;5794:9;5790:22;5769:53;:::i;:::-;5759:63;;5714:118;5871:2;5897:53;5942:7;5933:6;5922:9;5918:22;5897:53;:::i;:::-;5887:63;;5842:118;5348:619;;;;;:::o;5973:86::-;6008:7;6048:4;6041:5;6037:16;6026:27;;5973:86;;;:::o;6065:112::-;6148:22;6164:5;6148:22;:::i;:::-;6143:3;6136:35;6065:112;;:::o;6183:214::-;6272:4;6310:2;6299:9;6295:18;6287:26;;6323:67;6387:1;6376:9;6372:17;6363:6;6323:67;:::i;:::-;6183:214;;;;:::o;6403:329::-;6462:6;6511:2;6499:9;6490:7;6486:23;6482:32;6479:119;;;6517:79;;:::i;:::-;6479:119;6637:1;6662:53;6707:7;6698:6;6687:9;6683:22;6662:53;:::i;:::-;6652:63;;6608:117;6403:329;;;;:::o;6738:118::-;6825:24;6843:5;6825:24;:::i;:::-;6820:3;6813:37;6738:118;;:::o;6862:222::-;6955:4;6993:2;6982:9;6978:18;6970:26;;7006:71;7074:1;7063:9;7059:17;7050:6;7006:71;:::i;:::-;6862:222;;;;:::o;7090:1057::-;7194:6;7202;7210;7218;7226;7234;7283:3;7271:9;7262:7;7258:23;7254:33;7251:120;;;7290:79;;:::i;:::-;7251:120;7410:1;7435:53;7480:7;7471:6;7460:9;7456:22;7435:53;:::i;:::-;7425:63;;7381:117;7537:2;7563:53;7608:7;7599:6;7588:9;7584:22;7563:53;:::i;:::-;7553:63;;7508:118;7665:2;7691:53;7736:7;7727:6;7716:9;7712:22;7691:53;:::i;:::-;7681:63;;7636:118;7793:2;7819:53;7864:7;7855:6;7844:9;7840:22;7819:53;:::i;:::-;7809:63;;7764:118;7921:3;7948:53;7993:7;7984:6;7973:9;7969:22;7948:53;:::i;:::-;7938:63;;7892:119;8050:3;8077:53;8122:7;8113:6;8102:9;8098:22;8077:53;:::i;:::-;8067:63;;8021:119;7090:1057;;;;;;;;:::o;8153:468::-;8218:6;8226;8275:2;8263:9;8254:7;8250:23;8246:32;8243:119;;;8281:79;;:::i;:::-;8243:119;8401:1;8426:53;8471:7;8462:6;8451:9;8447:22;8426:53;:::i;:::-;8416:63;;8372:117;8528:2;8554:50;8596:7;8587:6;8576:9;8572:22;8554:50;:::i;:::-;8544:60;;8499:115;8153:468;;;;;:::o;8627:117::-;8736:1;8733;8726:12;8750:180;8798:77;8795:1;8788:88;8895:4;8892:1;8885:15;8919:4;8916:1;8909:15;8936:281;9019:27;9041:4;9019:27;:::i;:::-;9011:6;9007:40;9149:6;9137:10;9134:22;9113:18;9101:10;9098:34;9095:62;9092:88;;;9160:18;;:::i;:::-;9092:88;9200:10;9196:2;9189:22;8979:238;8936:281;;:::o;9223:129::-;9257:6;9284:20;;:::i;:::-;9274:30;;9313:33;9341:4;9333:6;9313:33;:::i;:::-;9223:129;;;:::o;9358:311::-;9435:4;9525:18;9517:6;9514:30;9511:56;;;9547:18;;:::i;:::-;9511:56;9597:4;9589:6;9585:17;9577:25;;9657:4;9651;9647:15;9639:23;;9358:311;;;:::o;9675:117::-;9784:1;9781;9774:12;9815:710;9911:5;9936:81;9952:64;10009:6;9952:64;:::i;:::-;9936:81;:::i;:::-;9927:90;;10037:5;10066:6;10059:5;10052:21;10100:4;10093:5;10089:16;10082:23;;10153:4;10145:6;10141:17;10133:6;10129:30;10182:3;10174:6;10171:15;10168:122;;;10201:79;;:::i;:::-;10168:122;10316:6;10299:220;10333:6;10328:3;10325:15;10299:220;;;10408:3;10437:37;10470:3;10458:10;10437:37;:::i;:::-;10432:3;10425:50;10504:4;10499:3;10495:14;10488:21;;10375:144;10359:4;10354:3;10350:14;10343:21;;10299:220;;;10303:21;9917:608;;9815:710;;;;;:::o;10548:370::-;10619:5;10668:3;10661:4;10653:6;10649:17;10645:27;10635:122;;10676:79;;:::i;:::-;10635:122;10793:6;10780:20;10818:94;10908:3;10900:6;10893:4;10885:6;10881:17;10818:94;:::i;:::-;10809:103;;10625:293;10548:370;;;;:::o;10924:678::-;11014:6;11022;11071:2;11059:9;11050:7;11046:23;11042:32;11039:119;;;11077:79;;:::i;:::-;11039:119;11225:1;11214:9;11210:17;11197:31;11255:18;11247:6;11244:30;11241:117;;;11277:79;;:::i;:::-;11241:117;11382:78;11452:7;11443:6;11432:9;11428:22;11382:78;:::i;:::-;11372:88;;11168:302;11509:2;11535:50;11577:7;11568:6;11557:9;11553:22;11535:50;:::i;:::-;11525:60;;11480:115;10924:678;;;;;:::o;11608:619::-;11685:6;11693;11701;11750:2;11738:9;11729:7;11725:23;11721:32;11718:119;;;11756:79;;:::i;:::-;11718:119;11876:1;11901:53;11946:7;11937:6;11926:9;11922:22;11901:53;:::i;:::-;11891:63;;11847:117;12003:2;12029:53;12074:7;12065:6;12054:9;12050:22;12029:53;:::i;:::-;12019:63;;11974:118;12131:2;12157:53;12202:7;12193:6;12182:9;12178:22;12157:53;:::i;:::-;12147:63;;12102:118;11608:619;;;;;:::o;12233:474::-;12301:6;12309;12358:2;12346:9;12337:7;12333:23;12329:32;12326:119;;;12364:79;;:::i;:::-;12326:119;12484:1;12509:53;12554:7;12545:6;12534:9;12530:22;12509:53;:::i;:::-;12499:63;;12455:117;12611:2;12637:53;12682:7;12673:6;12662:9;12658:22;12637:53;:::i;:::-;12627:63;;12582:118;12233:474;;;;;:::o;12713:60::-;12741:3;12762:5;12755:12;;12713:60;;;:::o;12779:142::-;12829:9;12862:53;12880:34;12889:24;12907:5;12889:24;:::i;:::-;12880:34;:::i;:::-;12862:53;:::i;:::-;12849:66;;12779:142;;;:::o;12927:126::-;12977:9;13010:37;13041:5;13010:37;:::i;:::-;12997:50;;12927:126;;;:::o;13059:144::-;13127:9;13160:37;13191:5;13160:37;:::i;:::-;13147:50;;13059:144;;;:::o;13209:167::-;13314:55;13363:5;13314:55;:::i;:::-;13309:3;13302:68;13209:167;;:::o;13382:258::-;13493:4;13531:2;13520:9;13516:18;13508:26;;13544:89;13630:1;13619:9;13615:17;13606:6;13544:89;:::i;:::-;13382:258;;;;:::o;13646:182::-;13786:34;13782:1;13774:6;13770:14;13763:58;13646:182;:::o;13834:366::-;13976:3;13997:67;14061:2;14056:3;13997:67;:::i;:::-;13990:74;;14073:93;14162:3;14073:93;:::i;:::-;14191:2;14186:3;14182:12;14175:19;;13834:366;;;:::o;14206:419::-;14372:4;14410:2;14399:9;14395:18;14387:26;;14459:9;14453:4;14449:20;14445:1;14434:9;14430:17;14423:47;14487:131;14613:4;14487:131;:::i;:::-;14479:139;;14206:419;;;:::o;14631:180::-;14679:77;14676:1;14669:88;14776:4;14773:1;14766:15;14800:4;14797:1;14790:15;14817:102;14859:8;14906:5;14903:1;14899:13;14878:34;;14817:102;;;:::o;14925:848::-;14986:5;14993:4;15017:6;15008:15;;15041:5;15032:14;;15055:712;15076:1;15066:8;15063:15;15055:712;;;15171:4;15166:3;15162:14;15156:4;15153:24;15150:50;;;15180:18;;:::i;:::-;15150:50;15230:1;15220:8;15216:16;15213:451;;;15645:4;15638:5;15634:16;15625:25;;15213:451;15695:4;15689;15685:15;15677:23;;15725:32;15748:8;15725:32;:::i;:::-;15713:44;;15055:712;;;14925:848;;;;;;;:::o;15779:1073::-;15833:5;16024:8;16014:40;;16045:1;16036:10;;16047:5;;16014:40;16073:4;16063:36;;16090:1;16081:10;;16092:5;;16063:36;16159:4;16207:1;16202:27;;;;16243:1;16238:191;;;;16152:277;;16202:27;16220:1;16211:10;;16222:5;;;16238:191;16283:3;16273:8;16270:17;16267:43;;;16290:18;;:::i;:::-;16267:43;16339:8;16336:1;16332:16;16323:25;;16374:3;16367:5;16364:14;16361:40;;;16381:18;;:::i;:::-;16361:40;16414:5;;;16152:277;;16538:2;16528:8;16525:16;16519:3;16513:4;16510:13;16506:36;16488:2;16478:8;16475:16;16470:2;16464:4;16461:12;16457:35;16441:111;16438:246;;;16594:8;16588:4;16584:19;16575:28;;16629:3;16622:5;16619:14;16616:40;;;16636:18;;:::i;:::-;16616:40;16669:5;;16438:246;16709:42;16747:3;16737:8;16731:4;16728:1;16709:42;:::i;:::-;16694:57;;;;16783:4;16778:3;16774:14;16767:5;16764:25;16761:51;;;16792:18;;:::i;:::-;16761:51;16841:4;16834:5;16830:16;16821:25;;15779:1073;;;;;;:::o;16858:281::-;16916:5;16940:23;16958:4;16940:23;:::i;:::-;16932:31;;16984:25;17000:8;16984:25;:::i;:::-;16972:37;;17028:104;17065:66;17055:8;17049:4;17028:104;:::i;:::-;17019:113;;16858:281;;;;:::o;17145:410::-;17185:7;17208:20;17226:1;17208:20;:::i;:::-;17203:25;;17242:20;17260:1;17242:20;:::i;:::-;17237:25;;17297:1;17294;17290:9;17319:30;17337:11;17319:30;:::i;:::-;17308:41;;17498:1;17489:7;17485:15;17482:1;17479:22;17459:1;17452:9;17432:83;17409:139;;17528:18;;:::i;:::-;17409:139;17193:362;17145:410;;;;:::o;17561:191::-;17601:3;17620:20;17638:1;17620:20;:::i;:::-;17615:25;;17654:20;17672:1;17654:20;:::i;:::-;17649:25;;17697:1;17694;17690:9;17683:16;;17718:3;17715:1;17712:10;17709:36;;;17725:18;;:::i;:::-;17709:36;17561:191;;;;:::o;17758:180::-;17806:77;17803:1;17796:88;17903:4;17900:1;17893:15;17927:4;17924:1;17917:15;17944:185;17984:1;18001:20;18019:1;18001:20;:::i;:::-;17996:25;;18035:20;18053:1;18035:20;:::i;:::-;18030:25;;18074:1;18064:35;;18079:18;;:::i;:::-;18064:35;18121:1;18118;18114:9;18109:14;;17944:185;;;;:::o;18135:143::-;18192:5;18223:6;18217:13;18208:22;;18239:33;18266:5;18239:33;:::i;:::-;18135:143;;;;:::o;18284:351::-;18354:6;18403:2;18391:9;18382:7;18378:23;18374:32;18371:119;;;18409:79;;:::i;:::-;18371:119;18529:1;18554:64;18610:7;18601:6;18590:9;18586:22;18554:64;:::i;:::-;18544:74;;18500:128;18284:351;;;;:::o;18641:332::-;18762:4;18800:2;18789:9;18785:18;18777:26;;18813:71;18881:1;18870:9;18866:17;18857:6;18813:71;:::i;:::-;18894:72;18962:2;18951:9;18947:18;18938:6;18894:72;:::i;:::-;18641:332;;;;;:::o;18979:137::-;19033:5;19064:6;19058:13;19049:22;;19080:30;19104:5;19080:30;:::i;:::-;18979:137;;;;:::o;19122:345::-;19189:6;19238:2;19226:9;19217:7;19213:23;19209:32;19206:119;;;19244:79;;:::i;:::-;19206:119;19364:1;19389:61;19442:7;19433:6;19422:9;19418:22;19389:61;:::i;:::-;19379:71;;19335:125;19122:345;;;;:::o;19473:179::-;19613:31;19609:1;19601:6;19597:14;19590:55;19473:179;:::o;19658:366::-;19800:3;19821:67;19885:2;19880:3;19821:67;:::i;:::-;19814:74;;19897:93;19986:3;19897:93;:::i;:::-;20015:2;20010:3;20006:12;19999:19;;19658:366;;;:::o;20030:419::-;20196:4;20234:2;20223:9;20219:18;20211:26;;20283:9;20277:4;20273:20;20269:1;20258:9;20254:17;20247:47;20311:131;20437:4;20311:131;:::i;:::-;20303:139;;20030:419;;;:::o;20455:180::-;20503:77;20500:1;20493:88;20600:4;20597:1;20590:15;20624:4;20621:1;20614:15;20641:233;20680:3;20703:24;20721:5;20703:24;:::i;:::-;20694:33;;20749:66;20742:5;20739:77;20736:103;;20819:18;;:::i;:::-;20736:103;20866:1;20859:5;20855:13;20848:20;;20641:233;;;:::o;20880:225::-;21020:34;21016:1;21008:6;21004:14;20997:58;21089:8;21084:2;21076:6;21072:15;21065:33;20880:225;:::o;21111:366::-;21253:3;21274:67;21338:2;21333:3;21274:67;:::i;:::-;21267:74;;21350:93;21439:3;21350:93;:::i;:::-;21468:2;21463:3;21459:12;21452:19;;21111:366;;;:::o;21483:419::-;21649:4;21687:2;21676:9;21672:18;21664:26;;21736:9;21730:4;21726:20;21722:1;21711:9;21707:17;21700:47;21764:131;21890:4;21764:131;:::i;:::-;21756:139;;21483:419;;;:::o;21908:194::-;21948:4;21968:20;21986:1;21968:20;:::i;:::-;21963:25;;22002:20;22020:1;22002:20;:::i;:::-;21997:25;;22046:1;22043;22039:9;22031:17;;22070:1;22064:4;22061:11;22058:37;;;22075:18;;:::i;:::-;22058:37;21908:194;;;;:::o;22108:163::-;22248:15;22244:1;22236:6;22232:14;22225:39;22108:163;:::o;22277:366::-;22419:3;22440:67;22504:2;22499:3;22440:67;:::i;:::-;22433:74;;22516:93;22605:3;22516:93;:::i;:::-;22634:2;22629:3;22625:12;22618:19;;22277:366;;;:::o;22649:419::-;22815:4;22853:2;22842:9;22838:18;22830:26;;22902:9;22896:4;22892:20;22888:1;22877:9;22873:17;22866:47;22930:131;23056:4;22930:131;:::i;:::-;22922:139;;22649:419;;;:::o;23074:170::-;23214:22;23210:1;23202:6;23198:14;23191:46;23074:170;:::o;23250:366::-;23392:3;23413:67;23477:2;23472:3;23413:67;:::i;:::-;23406:74;;23489:93;23578:3;23489:93;:::i;:::-;23607:2;23602:3;23598:12;23591:19;;23250:366;;;:::o;23622:419::-;23788:4;23826:2;23815:9;23811:18;23803:26;;23875:9;23869:4;23865:20;23861:1;23850:9;23846:17;23839:47;23903:131;24029:4;23903:131;:::i;:::-;23895:139;;23622:419;;;:::o;24047:249::-;24187:34;24183:1;24175:6;24171:14;24164:58;24256:32;24251:2;24243:6;24239:15;24232:57;24047:249;:::o;24302:366::-;24444:3;24465:67;24529:2;24524:3;24465:67;:::i;:::-;24458:74;;24541:93;24630:3;24541:93;:::i;:::-;24659:2;24654:3;24650:12;24643:19;;24302:366;;;:::o;24674:419::-;24840:4;24878:2;24867:9;24863:18;24855:26;;24927:9;24921:4;24917:20;24913:1;24902:9;24898:17;24891:47;24955:131;25081:4;24955:131;:::i;:::-;24947:139;;24674:419;;;:::o;25099:177::-;25239:29;25235:1;25227:6;25223:14;25216:53;25099:177;:::o;25282:366::-;25424:3;25445:67;25509:2;25504:3;25445:67;:::i;:::-;25438:74;;25521:93;25610:3;25521:93;:::i;:::-;25639:2;25634:3;25630:12;25623:19;;25282:366;;;:::o;25654:419::-;25820:4;25858:2;25847:9;25843:18;25835:26;;25907:9;25901:4;25897:20;25893:1;25882:9;25878:17;25871:47;25935:131;26061:4;25935:131;:::i;:::-;25927:139;;25654:419;;;:::o;26079:85::-;26124:7;26153:5;26142:16;;26079:85;;;:::o;26170:158::-;26228:9;26261:61;26279:42;26288:32;26314:5;26288:32;:::i;:::-;26279:42;:::i;:::-;26261:61;:::i;:::-;26248:74;;26170:158;;;:::o;26334:147::-;26429:45;26468:5;26429:45;:::i;:::-;26424:3;26417:58;26334:147;;:::o;26487:114::-;26554:6;26588:5;26582:12;26572:22;;26487:114;;;:::o;26607:184::-;26706:11;26740:6;26735:3;26728:19;26780:4;26775:3;26771:14;26756:29;;26607:184;;;;:::o;26797:132::-;26864:4;26887:3;26879:11;;26917:4;26912:3;26908:14;26900:22;;26797:132;;;:::o;26935:108::-;27012:24;27030:5;27012:24;:::i;:::-;27007:3;27000:37;26935:108;;:::o;27049:179::-;27118:10;27139:46;27181:3;27173:6;27139:46;:::i;:::-;27217:4;27212:3;27208:14;27194:28;;27049:179;;;;:::o;27234:113::-;27304:4;27336;27331:3;27327:14;27319:22;;27234:113;;;:::o;27383:732::-;27502:3;27531:54;27579:5;27531:54;:::i;:::-;27601:86;27680:6;27675:3;27601:86;:::i;:::-;27594:93;;27711:56;27761:5;27711:56;:::i;:::-;27790:7;27821:1;27806:284;27831:6;27828:1;27825:13;27806:284;;;27907:6;27901:13;27934:63;27993:3;27978:13;27934:63;:::i;:::-;27927:70;;28020:60;28073:6;28020:60;:::i;:::-;28010:70;;27866:224;27853:1;27850;27846:9;27841:14;;27806:284;;;27810:14;28106:3;28099:10;;27507:608;;;27383:732;;;;:::o;28121:831::-;28384:4;28422:3;28411:9;28407:19;28399:27;;28436:71;28504:1;28493:9;28489:17;28480:6;28436:71;:::i;:::-;28517:80;28593:2;28582:9;28578:18;28569:6;28517:80;:::i;:::-;28644:9;28638:4;28634:20;28629:2;28618:9;28614:18;28607:48;28672:108;28775:4;28766:6;28672:108;:::i;:::-;28664:116;;28790:72;28858:2;28847:9;28843:18;28834:6;28790:72;:::i;:::-;28872:73;28940:3;28929:9;28925:19;28916:6;28872:73;:::i;:::-;28121:831;;;;;;;;:::o;28958:147::-;29059:11;29096:3;29081:18;;28958:147;;;;:::o;29111:114::-;;:::o;29231:398::-;29390:3;29411:83;29492:1;29487:3;29411:83;:::i;:::-;29404:90;;29503:93;29592:3;29503:93;:::i;:::-;29621:1;29616:3;29612:11;29605:18;;29231:398;;;:::o;29635:379::-;29819:3;29841:147;29984:3;29841:147;:::i;:::-;29834:154;;30005:3;29998:10;;29635:379;;;:::o;30020:807::-;30269:4;30307:3;30296:9;30292:19;30284:27;;30321:71;30389:1;30378:9;30374:17;30365:6;30321:71;:::i;:::-;30402:72;30470:2;30459:9;30455:18;30446:6;30402:72;:::i;:::-;30484:80;30560:2;30549:9;30545:18;30536:6;30484:80;:::i;:::-;30574;30650:2;30639:9;30635:18;30626:6;30574:80;:::i;:::-;30664:73;30732:3;30721:9;30717:19;30708:6;30664:73;:::i;:::-;30747;30815:3;30804:9;30800:19;30791:6;30747:73;:::i;:::-;30020:807;;;;;;;;;:::o;30833:663::-;30921:6;30929;30937;30986:2;30974:9;30965:7;30961:23;30957:32;30954:119;;;30992:79;;:::i;:::-;30954:119;31112:1;31137:64;31193:7;31184:6;31173:9;31169:22;31137:64;:::i;:::-;31127:74;;31083:128;31250:2;31276:64;31332:7;31323:6;31312:9;31308:22;31276:64;:::i;:::-;31266:74;;31221:129;31389:2;31415:64;31471:7;31462:6;31451:9;31447:22;31415:64;:::i;:::-;31405:74;;31360:129;30833:663;;;;;:::o;31502:332::-;31623:4;31661:2;31650:9;31646:18;31638:26;;31674:71;31742:1;31731:9;31727:17;31718:6;31674:71;:::i;:::-;31755:72;31823:2;31812:9;31808:18;31799:6;31755:72;:::i;:::-;31502:332;;;;;:::o;31840:220::-;31980:34;31976:1;31968:6;31964:14;31957:58;32049:3;32044:2;32036:6;32032:15;32025:28;31840:220;:::o;32066:366::-;32208:3;32229:67;32293:2;32288:3;32229:67;:::i;:::-;32222:74;;32305:93;32394:3;32305:93;:::i;:::-;32423:2;32418:3;32414:12;32407:19;;32066:366;;;:::o;32438:419::-;32604:4;32642:2;32631:9;32627:18;32619:26;;32691:9;32685:4;32681:20;32677:1;32666:9;32662:17;32655:47;32719:131;32845:4;32719:131;:::i;:::-;32711:139;;32438:419;;;:::o;32863:167::-;33003:19;32999:1;32991:6;32987:14;32980:43;32863:167;:::o;33036:366::-;33178:3;33199:67;33263:2;33258:3;33199:67;:::i;:::-;33192:74;;33275:93;33364:3;33275:93;:::i;:::-;33393:2;33388:3;33384:12;33377:19;;33036:366;;;:::o;33408:419::-;33574:4;33612:2;33601:9;33597:18;33589:26;;33661:9;33655:4;33651:20;33647:1;33636:9;33632:17;33625:47;33689:131;33815:4;33689:131;:::i;:::-;33681:139;;33408:419;;;:::o

Swarm Source

ipfs://1a55cab9a27b20b1111beb191f6c9c3844cb01047b6bdc1b137f8eb830626a75

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.