ETH Price: $3,595.49 (+5.08%)

Token

Heaven Impact ETH (HIM)
 

Overview

Max Total Supply

10,000,000 HIM

Holders

57

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
23,121.563975247 HIM

Value
$0.00
0xdc66ddecd799b88eeee8dd6737f0ed1b1a45669e
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
HeavenImpactETH

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

pragma solidity 0.8.13;

/** HEAVEN IMPACT ETH
Official TG: https://t.me/HeavenImpactERC
Official Twitter: https://twitter.com/HeavenImpactBSC
Official Website: https://www.heavenimpact.com/
*/

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

abstract contract Auth {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

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

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

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

    event OwnershipTransferred(address owner);
}

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

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

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

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

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

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

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

contract HeavenImpactETH is IBEP20, Auth {

    address private WETH;

    string private constant _name = "Heaven Impact ETH";
    string private constant _symbol = "HIM";
    uint8 private constant _decimals = 9;
    
    uint256 _totalSupply = 10 * 10**6 * (10 ** _decimals);
    uint256 maxTx = 1 * 10**5 * (10 ** _decimals);
    uint256 maxWallet = 3 * 10**5 * (10 ** _decimals);

    uint256 public swapThreshold = 1 * 10**4 * (10 ** _decimals); // Starting at 10k

    mapping (address => uint256) private _balances;
    mapping (address => mapping(address => uint256)) private _allowances;
    mapping (address => bool) private bots;
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public isWltExempt;
    mapping (address => bool) public isXferTaxExempt;

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

    uint[3] taxesCollected = [0, 0, 0];

    uint256 public launchedAt;
    address private liquidityPool = DEAD;

    uint256 private buyMkt = 3;
    uint256 private sellMkt = 2;
    uint256 private ecoFee = 1;
    uint256 private lpFee = 1;
    uint256 private ecoXfer = 10;
    uint256 private mktXfer = 10;
    uint256 private preLaunch = 0;

    uint256 _baseBuyFee = buyMkt + ecoFee;
    uint256 _baseSellFee = sellMkt + ecoFee + lpFee;

    uint256 private _moderateBuyImpact = 1;
    uint256 private _severeBuyImpact = 3;
    uint256 private _extremeBuyImpact = 5;

    uint256 private _moderateBuyDisc = 1;
    uint256 private _severeBuyDisc = 2;
    uint256 private _extremeBuyDisc = 3;

    uint256 private _moderateSellImpact = 1;
    uint256 private _severeSellImpact = 3;
    uint256 private _extremeSellImpact = 5;

    uint256 private _moderateSellFee = 1;
    uint256 private _severeSellFee = 2;
    uint256 private _extremeSellFee = 3;

    uint256 private _maxBuyAmount = 300000 * (10 ** _decimals);  // 3%
    uint256 private _maxSellAmount = 100000 * (10 ** _decimals); // 1%

    IDEXRouter public router;
    address public pair;
    address public factory;
    address public marketingWallet = payable(0x74E6B16189Ffd088ffFb3Fb63a13Cf13457E303C);
    address public ecosystemWallet = payable(0x7f3b67Ea68eEdA4a3c05eAe17F04095b7dc7FA33);

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public tradingOpen = false;

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor (address _owner) Auth(_owner) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            
        WETH = router.WETH();
        
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[_owner] = true;
        isFeeExempt[marketingWallet] = true;
        isFeeExempt[ecosystemWallet] = true;

        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD] = true;
        isTxLimitExempt[ZERO] = true;
        isTxLimitExempt[marketingWallet] = true;
        isTxLimitExempt[ecosystemWallet] = true;  

	    isWltExempt[_owner] = true;
    	isWltExempt[DEAD] = true;
    	isWltExempt[ZERO] = true;
    	isWltExempt[marketingWallet] = true;
        isWltExempt[ecosystemWallet] = true; 

	    isXferTaxExempt[_owner] = true;
    	isXferTaxExempt[DEAD] = true;
    	isXferTaxExempt[ZERO] = true;
    	isXferTaxExempt[marketingWallet] = true;
        isXferTaxExempt[ecosystemWallet] = true; 

        _balances[_owner] = _totalSupply;
    
        emit Transfer(address(0), _owner, _totalSupply);
    }

    receive() external payable { }

    function setBots(address[] memory bots_) external onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function preLaunchSequence() external onlyOwner {
    	require(preLaunch == 0, "Already launched");
    	tradingOpen = true;
    	preLaunch = 1;
    }

    function endPrelaunch() external onlyOwner {
    	require(preLaunch == 1);
    	tradingOpen = false;
    	preLaunch = 2;
    }

    function fullLaunch() external onlyOwner {
    	require(preLaunch == 2);
        launchedAt = block.number;
        tradingOpen = true;
    	preLaunch = 3;
    }

    function changeIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }
    
    function changeIsWltExempt(address holder, bool exempt) external onlyOwner {
        isWltExempt[holder] = exempt;
    }

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

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

    function changeTxLimit(uint256 newLimit) external onlyOwner {
        maxTx = newLimit;
    }

    function changeWalletLimit(uint256 newLimit) external onlyOwner {
        maxWallet  = newLimit;
    }

    function setMarketingWallet(address payable newMarketingWallet) external onlyOwner {
        marketingWallet = payable(newMarketingWallet);
    }

    function setLiquidityPool(address newLiquidityPool) external onlyOwner {
        liquidityPool = newLiquidityPool;
    }

    function setEcosystemWallet(address payable newEcosystemWallet) external onlyOwner {
        ecosystemWallet = newEcosystemWallet;
    }

    function changeSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit) external onlyOwner {
        swapAndLiquifyEnabled  = enableSwapBack;
        swapThreshold = newSwapBackLimit;
    }

    function delBot(address notbot) external onlyOwner {
        bots[notbot] = false;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply - balanceOf(DEAD) - balanceOf(ZERO);
    }

    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 maxTransaction() external view returns (uint256) {return maxTx; }
    function maxWalletAmt() external view returns (uint256) {return maxWallet; }
    function baseBuyFee() external view returns (uint256) {return _baseBuyFee; }
    function baseSellFee() external view returns (uint256) {return _baseSellFee; }

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

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

    function addTaxCollected(uint eco, uint mkt, uint lp) internal {
        taxesCollected[0] += eco;
        taxesCollected[1] += mkt;
        taxesCollected[2] += lp;
    }

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

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

        return _transfer(sender, recipient, amount);
    }

    function _transfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(sender != address(0) && recipient != address(0), "BEP20: transfer to/from the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!bots[sender] && !bots[recipient], "Bots are not allowed to trade");
        require(amount <= maxTx || isTxLimitExempt[sender], "Exceeds Tx Limit");

        if (sender != owner && recipient != owner) require(tradingOpen, "Trading not active");

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

        if(!isWltExempt[recipient] && recipient != pair) require(_balances[recipient] + amount <= maxWallet, "Exceeds Wallet limit");

    	if(sender != pair && recipient != pair && isXferTaxExempt[sender]) { return _basicTransfer(sender, recipient, amount); }

        if(msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold){ swapBack(); }

        _balances[sender] = _balances[sender] - amount;
        
        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient] + finalAmount;

        emit Transfer(sender, recipient, finalAmount);
        return true;
    }    

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 ecoTax = amount * ecoFee / 100;
        uint256 mktTax;
        uint256 lpTax = amount * lpFee / 100;
        uint256 taxToGet;

	if(sender == pair && recipient != address(pair) && !isFeeExempt[recipient]) {

        if (_maxBuyAmount > 0) {
            require(amount <= _maxBuyAmount, "Amount exceeds max buy");
            }

        if (amount >= balanceOf(pair) * _extremeBuyImpact / 100) {
            taxToGet = amount * (ecoFee + buyMkt - _extremeBuyDisc) / 100;
		    mktTax = taxToGet - ecoTax;
        } else if (amount >= balanceOf(pair) * _severeBuyImpact / 100) {
            taxToGet = amount * (ecoFee + buyMkt - _severeBuyDisc) / 100;
            mktTax = taxToGet - ecoTax;
        } else if (amount >= balanceOf(pair) * _moderateBuyImpact / 100) {
            taxToGet = amount * (ecoFee + buyMkt - _moderateBuyDisc) / 100;
		    mktTax = taxToGet - ecoTax;
        } else {
            taxToGet = amount * (ecoFee + buyMkt) / 100;
		    mktTax = taxToGet - ecoTax;
        }
            addTaxCollected(ecoTax, mktTax, 0);

	}

	if(!inSwapAndLiquify && sender != pair && tradingOpen) {

        if (_maxSellAmount > 0) {
            require(amount <= _maxSellAmount, "Amount exceeds max sell");
            }

            if (amount >= balanceOf(pair) * _extremeSellImpact / 100) {
            	taxToGet = amount * (ecoFee + lpFee + sellMkt + _extremeSellFee) / 100;
            	mktTax = taxToGet - ecoTax - lpTax;
            } else if (amount >= balanceOf(pair) * _severeSellImpact / 100) {
            	taxToGet = amount * (ecoFee + lpFee + sellMkt + _severeSellFee) / 100;
            	mktTax = taxToGet - ecoTax - lpTax;
            } else if (amount >= balanceOf(pair) * _moderateSellImpact / 100) {
            	taxToGet = amount * (ecoFee + lpFee + sellMkt + _moderateSellFee) / 100;
            	mktTax = taxToGet - ecoTax - lpTax;
            } else {
            	taxToGet = amount * (ecoFee + lpFee + sellMkt) / 100;
            	mktTax = taxToGet - ecoTax - lpTax;
            }
        	addTaxCollected(ecoTax, mktTax, lpTax);
		}

	if(sender != pair && recipient != pair && !isXferTaxExempt[sender]) {
		ecoTax = amount * ecoXfer / 100;
		mktTax = amount * mktXfer / 100;
		taxToGet = ecoTax + mktTax;
		addTaxCollected(ecoTax, mktTax, 0);
		}

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

        return amount - taxToGet;
    }

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

    function updateBaseFees(uint256 newEcoFee, uint256 newBuyMktFee, uint256 newSellMktFee, uint256 newLpFee) public onlyOwner {
	    require(newEcoFee <= 5 && newBuyMktFee <= 5 && newSellMktFee <= 5 && newLpFee <= 5, "Fees Too High");
	    ecoFee = newEcoFee;
	    buyMkt = newBuyMktFee;
	    sellMkt = newSellMktFee;
	    lpFee = newLpFee;
    }

    function updateBuyDynamics(uint256 moderateBuyImpact, uint256 severeBuyImpact, uint256 extremeBuyImpact) public onlyOwner {
        _moderateBuyImpact = moderateBuyImpact;
        _severeBuyImpact = severeBuyImpact;
        _extremeBuyImpact = extremeBuyImpact;
    }

    function updateDynamicBuyDiscounts(uint256 moderateBuyDisc, uint256 severeBuyDisc, uint256 extremeBuyDisc) public onlyOwner {
        _moderateBuyDisc = moderateBuyDisc;
        _severeBuyDisc = severeBuyDisc;
        _extremeBuyDisc = extremeBuyDisc;
    }

    function updateSellDynamics(uint256 moderateSellImpact, uint256 severeSellImpact, uint256 extremeSellImpact) public onlyOwner {
        _moderateSellImpact = moderateSellImpact;
        _severeSellImpact = severeSellImpact;
        _extremeSellImpact = extremeSellImpact;
    }

    function updateDynamicSellFees(uint256 moderateSellFee, uint256 severeSellFee, uint256 extremeSellFee) public onlyOwner {
	require(moderateSellFee <= 8 && severeSellFee <= 9 && extremeSellFee <= 10, "Fees must be less than 25");
        _moderateSellFee = moderateSellFee;
        _severeSellFee = severeSellFee;
        _extremeSellFee = extremeSellFee;
    }

    function updateXferFees(uint256 _newEcoXfer, uint256 _newMktXfer) public onlyOwner {
	require(_newEcoXfer <= 10 && _newMktXfer <= 10, "Fees must be less than 25");
	ecoXfer = _newEcoXfer;
	mktXfer = _newMktXfer;
    }

    function swapTokensForETH(uint256 tokenAmount) private {

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

        approve(address(this), tokenAmount);

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

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            liquidityPool,
            block.timestamp
        );
    }

    function swapBack() internal lockTheSwap {
    
        uint256 tokenBalance = _balances[address(this)];
        uint256 _totalCollected = taxesCollected[0] + taxesCollected[1] + taxesCollected[2];
        uint256 ecoShare = taxesCollected[0];
        uint256 mktShare = taxesCollected[1];
        uint256 lpShare = taxesCollected[2];
        uint256 tokensForLiquidity = lpShare / 2;  
        uint256 amountToSwap = tokenBalance - tokensForLiquidity;

        swapTokensForETH(amountToSwap);

        uint256 totalBNBBalance = address(this).balance;
        uint256 BNBForEco = totalBNBBalance * ecoShare / _totalCollected;
        uint256 BNBForMkt = totalBNBBalance * mktShare / _totalCollected;
        uint256 BNBForLiquidity = totalBNBBalance * lpShare / _totalCollected / 2;
      
        if (totalBNBBalance > 0){
            payable(marketingWallet).transfer(BNBForMkt);
        }

          if (totalBNBBalance > 0){
            payable(ecosystemWallet).transfer(BNBForEco);
        }
  
        if (tokensForLiquidity > 0){
            addLiquidity(tokensForLiquidity, BNBForLiquidity);
        }

	delete taxesCollected;
    }

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

    function clearStuckBNB() external onlyOwner {
        uint256 contractBNBBalance = address(this).balance;
    	uint256 contractTokenBalance = _balances[address(this)];
        if(contractBNBBalance > 0) {          
            payable(marketingWallet).transfer(contractBNBBalance);
        }
	if(contractTokenBalance > 0) {
	    payable(marketingWallet).transfer(contractTokenBalance);
        }
    }

    function renounceOwnership() public virtual onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));

    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"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":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsWltExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsXferTaxExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ecosystemWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endPrelaunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fullLaunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWltExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isXferTaxExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"preLaunchSequence","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":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newEcosystemWallet","type":"address"}],"name":"setEcosystemWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLiquidityPool","type":"address"}],"name":"setLiquidityPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMarketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newEcoFee","type":"uint256"},{"internalType":"uint256","name":"newBuyMktFee","type":"uint256"},{"internalType":"uint256","name":"newSellMktFee","type":"uint256"},{"internalType":"uint256","name":"newLpFee","type":"uint256"}],"name":"updateBaseFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"moderateBuyImpact","type":"uint256"},{"internalType":"uint256","name":"severeBuyImpact","type":"uint256"},{"internalType":"uint256","name":"extremeBuyImpact","type":"uint256"}],"name":"updateBuyDynamics","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"moderateBuyDisc","type":"uint256"},{"internalType":"uint256","name":"severeBuyDisc","type":"uint256"},{"internalType":"uint256","name":"extremeBuyDisc","type":"uint256"}],"name":"updateDynamicBuyDiscounts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"moderateSellFee","type":"uint256"},{"internalType":"uint256","name":"severeSellFee","type":"uint256"},{"internalType":"uint256","name":"extremeSellFee","type":"uint256"}],"name":"updateDynamicSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"moderateSellImpact","type":"uint256"},{"internalType":"uint256","name":"severeSellImpact","type":"uint256"},{"internalType":"uint256","name":"extremeSellImpact","type":"uint256"}],"name":"updateSellDynamics","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newEcoXfer","type":"uint256"},{"internalType":"uint256","name":"_newMktXfer","type":"uint256"}],"name":"updateXferFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526009600a62000014919062001288565b62989680620000249190620012d9565b6002556009600a62000037919062001288565b620186a0620000479190620012d9565b6003556009600a6200005a919062001288565b620493e06200006a9190620012d9565b6004556009600a6200007d919062001288565b6127106200008c9190620012d9565b60055561dead600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060600160405280600060ff168152602001600060ff168152602001600060ff16815250600f9060036200014d92919062001085565b50600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003601455600260155560016016556001601755600a601855600a6019556000601a55601654601454620001e691906200133a565b601b55601754601654601554620001fe91906200133a565b6200020a91906200133a565b601c556001601d556003601e556005601f556001602055600260215560036022556001602355600360245560056025556001602655600260275560036028556009600a62000259919062001288565b620493e0620002699190620012d9565b6029556009600a6200027c919062001288565b620186a06200028c9190620012d9565b602a557374e6b16189ffd088fffb3fb63a13cf13457e303c602e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737f3b67ea68eeda4a3c05eae17f04095b7dc7fa33602f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001602f60156101000a81548160ff0219169083151502179055506000602f60166101000a81548160ff0219169083151502179055503480156200037c57600080fd5b5060405162006335380380620063358339818101604052810190620003a2919062001401565b80806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d602b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004a7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004cd919062001401565b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200057b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005a1919062001401565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401620005ff92919062001444565b6020604051808303816000875af11580156200061f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000645919062001401565b602c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000602b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000602e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000602f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000602e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000602f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000602e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000602f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000602e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000602f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600254600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60025460405162001076919062001482565b60405180910390a3506200149f565b8260038101928215620010bc579160200282015b82811115620010bb578251829060ff1690559160200191906001019062001099565b5b509050620010cb9190620010cf565b5090565b5b80821115620010ea576000816000905550600101620010d0565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200117c57808604811115620011545762001153620010ee565b5b6001851615620011645780820291505b808102905062001174856200111d565b945062001134565b94509492505050565b6000826200119757600190506200126a565b81620011a757600090506200126a565b8160018114620011c05760028114620011cb5762001201565b60019150506200126a565b60ff841115620011e057620011df620010ee565b5b8360020a915084821115620011fa57620011f9620010ee565b5b506200126a565b5060208310610133831016604e8410600b84101617156200123b5782820a905083811115620012355762001234620010ee565b5b6200126a565b6200124a84848460016200112a565b92509050818404811115620012645762001263620010ee565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620012958262001271565b9150620012a2836200127b565b9250620012d17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462001185565b905092915050565b6000620012e68262001271565b9150620012f38362001271565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200132f576200132e620010ee565b5b828202905092915050565b6000620013478262001271565b9150620013548362001271565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200138c576200138b620010ee565b5b828201905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620013c9826200139c565b9050919050565b620013db81620013bc565b8114620013e757600080fd5b50565b600081519050620013fb81620013d0565b92915050565b6000602082840312156200141a576200141962001397565b5b60006200142a84828501620013ea565b91505092915050565b6200143e81620013bc565b82525050565b60006040820190506200145b600083018562001433565b6200146a602083018462001433565b9392505050565b6200147c8162001271565b82525050565b600060208201905062001499600083018462001471565b92915050565b614e8680620014af6000396000f3fe6080604052600436106103545760003560e01c806375f0a874116101c6578063d073a01f116100f7578063f3ff43da11610095578063f96f9d0f1161006f578063f96f9d0f14610c1f578063fabe628314610c48578063fd5edb6f14610c71578063ffb54a9914610c9a5761035b565b8063f3ff43da14610ba2578063f887ea4014610bcb578063f8cc469314610bf65761035b565b8063d920334e116100d1578063d920334e14610ad6578063dd62ed3e14610aff578063e2c6fb9214610b3c578063f2fde38b14610b795761035b565b8063d073a01f14610a57578063d184603314610a82578063d726b22114610aab5761035b565b8063a8aa1b3111610164578063bb8115081161013e578063bb811508146109ab578063bf56b371146109d6578063c3f70b5214610a01578063c45a015514610a2c5761035b565b8063a8aa1b311461091a578063a9059cbb14610945578063b515566a146109825761035b565b8063893d20e8116101a0578063893d20e81461085e5780638b42507f1461088957806395d89b41146108c6578063a3a2e89e146108f15761035b565b806375f0a874146107cd5780637c6e7b43146107f85780637db1342c146108355761035b565b80633611fd9c116102a05780634a74bb021161023e5780635d098b38116102185780635d098b381461073957806366eb37851461076257806370a0823114610779578063715018a6146107b65761035b565b80634a74bb02146106ba578063571ac8b0146106e55780635b023f57146107225761035b565b8063408f1efc1161027a578063408f1efc1461062657806340f606711461064f578063435263ef146106665780634500fab0146106915761035b565b80633611fd9c146105a95780633dab5269146105c05780633f4218e0146105e95761035b565b8063161948b21161030d578063273123b7116102e7578063273123b7146104ed5780632b112e49146105165780632f54bf6e14610541578063313ce5671461057e5761035b565b8063161948b21461046e57806318160ddd1461048557806323b872dd146104b05761035b565b8063013b81431461036057806301877020146103895780630445b667146103b2578063067eb796146103dd57806306fdde0314610406578063095ea7b3146104315761035b565b3661035b57005b600080fd5b34801561036c57600080fd5b5061038760048036038101906103829190613dad565b610cc5565b005b34801561039557600080fd5b506103b060048036038101906103ab9190613ded565b610d68565b005b3480156103be57600080fd5b506103c7610df4565b6040516103d49190613e33565b60405180910390f35b3480156103e957600080fd5b5061040460048036038101906103ff9190613e7a565b610dfa565b005b34801561041257600080fd5b5061041b610eba565b6040516104289190613f66565b60405180910390f35b34801561043d57600080fd5b5061045860048036038101906104539190613f88565b610ef7565b6040516104659190613fd7565b60405180910390f35b34801561047a57600080fd5b50610483610fe9565b005b34801561049157600080fd5b5061049a61109b565b6040516104a79190613e33565b60405180910390f35b3480156104bc57600080fd5b506104d760048036038101906104d29190613ff2565b6110a5565b6040516104e49190613fd7565b60405180910390f35b3480156104f957600080fd5b50610514600480360381019061050f9190613ded565b611267565b005b34801561052257600080fd5b5061052b61130a565b6040516105389190613e33565b60405180910390f35b34801561054d57600080fd5b5061056860048036038101906105639190613ded565b61137e565b6040516105759190613fd7565b60405180910390f35b34801561058a57600080fd5b506105936113d7565b6040516105a09190614061565b60405180910390f35b3480156105b557600080fd5b506105be6113e0565b005b3480156105cc57600080fd5b506105e760048036038101906105e2919061407c565b61155b565b005b3480156105f557600080fd5b50610610600480360381019061060b9190613ded565b6115c8565b60405161061d9190613fd7565b60405180910390f35b34801561063257600080fd5b5061064d60048036038101906106489190613e7a565b6115e8565b005b34801561065b57600080fd5b5061066461164a565b005b34801561067257600080fd5b5061067b6116cd565b60405161068891906140cb565b60405180910390f35b34801561069d57600080fd5b506106b860048036038101906106b391906140e6565b6116f3565b005b3480156106c657600080fd5b506106cf61179e565b6040516106dc9190613fd7565b60405180910390f35b3480156106f157600080fd5b5061070c60048036038101906107079190613ded565b6117b1565b6040516107199190613fd7565b60405180910390f35b34801561072e57600080fd5b506107376117e4565b005b34801561074557600080fd5b50610760600480360381019061075b9190614164565b611860565b005b34801561076e57600080fd5b506107776118ec565b005b34801561078557600080fd5b506107a0600480360381019061079b9190613ded565b61193e565b6040516107ad9190613e33565b60405180910390f35b3480156107c257600080fd5b506107cb611987565b005b3480156107d957600080fd5b506107e2611a4a565b6040516107ef91906140cb565b60405180910390f35b34801561080457600080fd5b5061081f600480360381019061081a9190613ded565b611a70565b60405161082c9190613fd7565b60405180910390f35b34801561084157600080fd5b5061085c60048036038101906108579190614191565b611a90565b005b34801561086a57600080fd5b50610873611ae2565b60405161088091906140cb565b60405180910390f35b34801561089557600080fd5b506108b060048036038101906108ab9190613ded565b611b0b565b6040516108bd9190613fd7565b60405180910390f35b3480156108d257600080fd5b506108db611b2b565b6040516108e89190613f66565b60405180910390f35b3480156108fd57600080fd5b5061091860048036038101906109139190613dad565b611b68565b005b34801561092657600080fd5b5061092f611c0b565b60405161093c91906140cb565b60405180910390f35b34801561095157600080fd5b5061096c60048036038101906109679190613f88565b611c31565b6040516109799190613fd7565b60405180910390f35b34801561098e57600080fd5b506109a960048036038101906109a49190614306565b611c46565b005b3480156109b757600080fd5b506109c0611d23565b6040516109cd9190613e33565b60405180910390f35b3480156109e257600080fd5b506109eb611d2d565b6040516109f89190613e33565b60405180910390f35b348015610a0d57600080fd5b50610a16611d33565b604051610a239190613e33565b60405180910390f35b348015610a3857600080fd5b50610a41611d3d565b604051610a4e91906140cb565b60405180910390f35b348015610a6357600080fd5b50610a6c611d63565b604051610a799190613e33565b60405180910390f35b348015610a8e57600080fd5b50610aa96004803603810190610aa49190613e7a565b611d6d565b005b348015610ab757600080fd5b50610ac0611dcf565b604051610acd9190613e33565b60405180910390f35b348015610ae257600080fd5b50610afd6004803603810190610af89190614191565b611dd9565b005b348015610b0b57600080fd5b50610b266004803603810190610b21919061434f565b611e2b565b604051610b339190613e33565b60405180910390f35b348015610b4857600080fd5b50610b636004803603810190610b5e9190613ded565b611eb2565b604051610b709190613fd7565b60405180910390f35b348015610b8557600080fd5b50610ba06004803603810190610b9b9190614164565b611ed2565b005b348015610bae57600080fd5b50610bc96004803603810190610bc49190614164565b611f94565b005b348015610bd757600080fd5b50610be0612020565b604051610bed91906143ee565b60405180910390f35b348015610c0257600080fd5b50610c1d6004803603810190610c189190614409565b612046565b005b348015610c2b57600080fd5b50610c466004803603810190610c419190613e7a565b61211b565b005b348015610c5457600080fd5b50610c6f6004803603810190610c6a9190613dad565b61217d565b005b348015610c7d57600080fd5b50610c986004803603810190610c939190613dad565b612220565b005b348015610ca657600080fd5b50610caf6122c3565b604051610cbc9190613fd7565b60405180910390f35b610cce3361137e565b610d0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d04906144bc565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610d713361137e565b610db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da7906144bc565b60405180910390fd5b80601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60055481565b610e033361137e565b610e42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e39906144bc565b60405180910390fd5b60088311158015610e54575060098211155b8015610e615750600a8111155b610ea0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9790614528565b60405180910390fd5b826026819055508160278190555080602881905550505050565b60606040518060400160405280601181526020017f48656176656e20496d7061637420455448000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610fd79190613e33565b60405180910390a36001905092915050565b610ff23361137e565b611031576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611028906144bc565b60405180910390fd5b6000601a5414611076576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106d90614594565b60405180910390fd5b6001602f60166101000a81548160ff0219169083151502179055506001601a81905550565b6000600254905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146112535781600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111d291906145e3565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61125e8484846122d6565b90509392505050565b6112703361137e565b6112af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a6906144bc565b60405180910390fd5b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611337600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661193e565b611362600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661193e565b60025461136f91906145e3565b61137991906145e3565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b6113e93361137e565b611428576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141f906144bc565b60405180910390fd5b60004790506000600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008211156114e457602e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156114e2573d6000803e3d6000fd5b505b600081111561155757602e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611555573d6000803e3d6000fd5b505b5050565b6115643361137e565b6115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159a906144bc565b60405180910390fd5b81602f60156101000a81548160ff021916908315150217905550806005819055505050565b60096020528060005260406000206000915054906101000a900460ff1681565b6115f13361137e565b611630576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611627906144bc565b60405180910390fd5b826023819055508160248190555080602581905550505050565b6116533361137e565b611692576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611689906144bc565b60405180910390fd5b6002601a54146116a157600080fd5b436012819055506001602f60166101000a81548160ff0219169083151502179055506003601a81905550565b602f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6116fc3361137e565b61173b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611732906144bc565b60405180910390fd5b600a821115801561174d5750600a8111155b61178c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178390614528565b60405180910390fd5b81601881905550806019819055505050565b602f60159054906101000a900460ff1681565b60006117dd827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610ef7565b9050919050565b6117ed3361137e565b61182c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611823906144bc565b60405180910390fd5b6001601a541461183b57600080fd5b6000602f60166101000a81548160ff0219169083151502179055506002601a81905550565b6118693361137e565b6118a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189f906144bc565b60405180910390fd5b80602e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118f53361137e565b611934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192b906144bc565b60405180910390fd5b61193c612be2565b565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6119903361137e565b6119cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c6906144bc565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051611a4091906140cb565b60405180910390a1565b602e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c6020528060005260406000206000915054906101000a900460ff1681565b611a993361137e565b611ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acf906144bc565b60405180910390fd5b8060048190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600381526020017f48494d0000000000000000000000000000000000000000000000000000000000815250905090565b611b713361137e565b611bb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba7906144bc565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611c3e3384846122d6565b905092915050565b611c4f3361137e565b611c8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c85906144bc565b60405180910390fd5b60005b8151811015611d1f57600160086000848481518110611cb357611cb2614617565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611d1790614646565b915050611c91565b5050565b6000600454905090565b60125481565b6000600354905090565b602d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601c54905090565b611d763361137e565b611db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dac906144bc565b60405180910390fd5b82601d8190555081601e8190555080601f81905550505050565b6000601b54905090565b611de23361137e565b611e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e18906144bc565b60405180910390fd5b8060038190555050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b611edb3361137e565b611f1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f11906144bc565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611f8991906146af565b60405180910390a150565b611f9d3361137e565b611fdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd3906144bc565b60405180910390fd5b80602f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b602b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61204f3361137e565b61208e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612085906144bc565b60405180910390fd5b600584111580156120a0575060058311155b80156120ad575060058211155b80156120ba575060058111155b6120f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f090614716565b60405180910390fd5b8360168190555082601481905550816015819055508060178190555050505050565b6121243361137e565b612163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215a906144bc565b60405180910390fd5b826020819055508160218190555080602281905550505050565b6121863361137e565b6121c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121bc906144bc565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6122293361137e565b612268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225f906144bc565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602f60169054906101000a900460ff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156123415750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b612380576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612377906147a8565b60405180910390fd5b600082116123c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ba9061483a565b60405180910390fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124675750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6124a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249d906148a6565b60405180910390fd5b600354821115806125005750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61253f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253690614912565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156125e7575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561263c57602f60169054906101000a900460ff1661263b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126329061497e565b60405180910390fd5b5b602f60149054906101000a900460ff16156126635761265c848484612eab565b9050612bdb565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561270b5750602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156127a05760045482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461275e919061499e565b111561279f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279690614a40565b60405180910390fd5b5b602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561284c5750602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156128a15750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156128b8576128b1848484612eab565b9050612bdb565b602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156129235750602f60149054906101000a900460ff16155b801561293b5750602f60159054906101000a900460ff165b80156129885750600554600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b1561299657612995612be2565b5b81600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129e191906145e3565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612aca5750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612ad45782612ae0565b612adf858585613039565b5b905080600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b2d919061499e565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612bcd9190613e33565b60405180910390a360019150505b9392505050565b6001602f60146101000a81548160ff0219169083151502179055506000600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600f600260038110612c5857612c57614617565b5b0154600f600160038110612c6f57612c6e614617565b5b0154600f600060038110612c8657612c85614617565b5b0154612c92919061499e565b612c9c919061499e565b90506000600f600060038110612cb557612cb4614617565b5b015490506000600f600160038110612cd057612ccf614617565b5b015490506000600f600260038110612ceb57612cea614617565b5b015490506000600282612cfe9190614a8f565b905060008187612d0e91906145e3565b9050612d198161396e565b60004790506000878783612d2d9190614ac0565b612d379190614a8f565b90506000888784612d489190614ac0565b612d529190614a8f565b9050600060028a8886612d659190614ac0565b612d6f9190614a8f565b612d799190614a8f565b90506000841115612dee57602e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612dec573d6000803e3d6000fd5b505b6000841115612e6157602f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015612e5f573d6000803e3d6000fd5b505b6000861115612e7557612e748682613b8f565b5b600f6000612e839190613cee565b50505050505050505050506000602f60146101000a81548160ff021916908315150217905550565b600081600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ef891906145e3565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f86919061499e565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516130269190613e33565b60405180910390a3600190509392505050565b60008060646016548461304c9190614ac0565b6130569190614a8f565b905060008060646017548661306b9190614ac0565b6130759190614a8f565b90506000602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161480156131245750602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b801561317a5750600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156133d057600060295411156131d0576029548611156131cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131c690614b66565b60405180910390fd5b5b6064601f54613200602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661193e565b61320a9190614ac0565b6132149190614a8f565b861061326357606460225460145460165461322f919061499e565b61323991906145e3565b876132449190614ac0565b61324e9190614a8f565b9050838161325c91906145e3565b92506133c3565b6064601e54613293602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661193e565b61329d9190614ac0565b6132a79190614a8f565b86106132f65760646021546014546016546132c2919061499e565b6132cc91906145e3565b876132d79190614ac0565b6132e19190614a8f565b905083816132ef91906145e3565b92506133c2565b6064601d54613326602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661193e565b6133309190614ac0565b61333a9190614a8f565b8610613389576064602054601454601654613355919061499e565b61335f91906145e3565b8761336a9190614ac0565b6133749190614a8f565b9050838161338291906145e3565b92506133c1565b606460145460165461339b919061499e565b876133a69190614ac0565b6133b09190614a8f565b905083816133be91906145e3565b92505b5b5b6133cf84846000613c62565b5b602f60149054906101000a900460ff1615801561343b5750602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b80156134535750602f60169054906101000a900460ff165b15613708576000602a5411156134a957602a548611156134a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161349f90614bd2565b60405180910390fd5b5b60646025546134d9602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661193e565b6134e39190614ac0565b6134ed9190614a8f565b861061355457606460285460155460175460165461350b919061499e565b613515919061499e565b61351f919061499e565b8761352a9190614ac0565b6135349190614a8f565b905081848261354391906145e3565b61354d91906145e3565b92506136fc565b6064602454613584602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661193e565b61358e9190614ac0565b6135989190614a8f565b86106135ff5760646027546015546017546016546135b6919061499e565b6135c0919061499e565b6135ca919061499e565b876135d59190614ac0565b6135df9190614a8f565b90508184826135ee91906145e3565b6135f891906145e3565b92506136fb565b606460235461362f602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661193e565b6136399190614ac0565b6136439190614a8f565b86106136aa576064602654601554601754601654613661919061499e565b61366b919061499e565b613675919061499e565b876136809190614ac0565b61368a9190614a8f565b905081848261369991906145e3565b6136a391906145e3565b92506136fa565b60646015546017546016546136bf919061499e565b6136c9919061499e565b876136d49190614ac0565b6136de9190614a8f565b90508184826136ed91906145e3565b6136f791906145e3565b92505b5b5b613707848484613c62565b5b602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141580156137b45750602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b801561380a5750600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156138625760646018548761381f9190614ac0565b6138299190614a8f565b935060646019548761383b9190614ac0565b6138459190614a8f565b92508284613853919061499e565b905061386184846000613c62565b5b80600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138ad919061499e565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161394d9190613e33565b60405180910390a3808661396191906145e3565b9450505050509392505050565b6000600267ffffffffffffffff81111561398b5761398a6141c3565b5b6040519080825280602002602001820160405280156139b95781602001602082028036833780820191505090505b50905030816000815181106139d1576139d0614617565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a9c9190614c07565b81600181518110613ab057613aaf614617565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613af43083610ef7565b50602b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613b59959493929190614d2d565b600060405180830381600087803b158015613b7357600080fd5b505af1158015613b87573d6000803e3d6000fd5b505050505050565b602b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613c1896959493929190614d87565b60606040518083038185885af1158015613c36573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613c5b9190614dfd565b5050505050565b82600f600060038110613c7857613c77614617565b5b016000828254613c88919061499e565b9250508190555081600f600160038110613ca557613ca4614617565b5b016000828254613cb5919061499e565b9250508190555080600f600260038110613cd257613cd1614617565b5b016000828254613ce2919061499e565b92505081905550505050565b50600081556001016000815560010160009055565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613d4282613d17565b9050919050565b613d5281613d37565b8114613d5d57600080fd5b50565b600081359050613d6f81613d49565b92915050565b60008115159050919050565b613d8a81613d75565b8114613d9557600080fd5b50565b600081359050613da781613d81565b92915050565b60008060408385031215613dc457613dc3613d0d565b5b6000613dd285828601613d60565b9250506020613de385828601613d98565b9150509250929050565b600060208284031215613e0357613e02613d0d565b5b6000613e1184828501613d60565b91505092915050565b6000819050919050565b613e2d81613e1a565b82525050565b6000602082019050613e486000830184613e24565b92915050565b613e5781613e1a565b8114613e6257600080fd5b50565b600081359050613e7481613e4e565b92915050565b600080600060608486031215613e9357613e92613d0d565b5b6000613ea186828701613e65565b9350506020613eb286828701613e65565b9250506040613ec386828701613e65565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015613f07578082015181840152602081019050613eec565b83811115613f16576000848401525b50505050565b6000601f19601f8301169050919050565b6000613f3882613ecd565b613f428185613ed8565b9350613f52818560208601613ee9565b613f5b81613f1c565b840191505092915050565b60006020820190508181036000830152613f808184613f2d565b905092915050565b60008060408385031215613f9f57613f9e613d0d565b5b6000613fad85828601613d60565b9250506020613fbe85828601613e65565b9150509250929050565b613fd181613d75565b82525050565b6000602082019050613fec6000830184613fc8565b92915050565b60008060006060848603121561400b5761400a613d0d565b5b600061401986828701613d60565b935050602061402a86828701613d60565b925050604061403b86828701613e65565b9150509250925092565b600060ff82169050919050565b61405b81614045565b82525050565b60006020820190506140766000830184614052565b92915050565b6000806040838503121561409357614092613d0d565b5b60006140a185828601613d98565b92505060206140b285828601613e65565b9150509250929050565b6140c581613d37565b82525050565b60006020820190506140e060008301846140bc565b92915050565b600080604083850312156140fd576140fc613d0d565b5b600061410b85828601613e65565b925050602061411c85828601613e65565b9150509250929050565b600061413182613d17565b9050919050565b61414181614126565b811461414c57600080fd5b50565b60008135905061415e81614138565b92915050565b60006020828403121561417a57614179613d0d565b5b60006141888482850161414f565b91505092915050565b6000602082840312156141a7576141a6613d0d565b5b60006141b584828501613e65565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6141fb82613f1c565b810181811067ffffffffffffffff8211171561421a576142196141c3565b5b80604052505050565b600061422d613d03565b905061423982826141f2565b919050565b600067ffffffffffffffff821115614259576142586141c3565b5b602082029050602081019050919050565b600080fd5b600061428261427d8461423e565b614223565b905080838252602082019050602084028301858111156142a5576142a461426a565b5b835b818110156142ce57806142ba8882613d60565b8452602084019350506020810190506142a7565b5050509392505050565b600082601f8301126142ed576142ec6141be565b5b81356142fd84826020860161426f565b91505092915050565b60006020828403121561431c5761431b613d0d565b5b600082013567ffffffffffffffff81111561433a57614339613d12565b5b614346848285016142d8565b91505092915050565b6000806040838503121561436657614365613d0d565b5b600061437485828601613d60565b925050602061438585828601613d60565b9150509250929050565b6000819050919050565b60006143b46143af6143aa84613d17565b61438f565b613d17565b9050919050565b60006143c682614399565b9050919050565b60006143d8826143bb565b9050919050565b6143e8816143cd565b82525050565b600060208201905061440360008301846143df565b92915050565b6000806000806080858703121561442357614422613d0d565b5b600061443187828801613e65565b945050602061444287828801613e65565b935050604061445387828801613e65565b925050606061446487828801613e65565b91505092959194509250565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b60006144a6600683613ed8565b91506144b182614470565b602082019050919050565b600060208201905081810360008301526144d581614499565b9050919050565b7f46656573206d757374206265206c657373207468616e20323500000000000000600082015250565b6000614512601983613ed8565b915061451d826144dc565b602082019050919050565b6000602082019050818103600083015261454181614505565b9050919050565b7f416c7265616479206c61756e6368656400000000000000000000000000000000600082015250565b600061457e601083613ed8565b915061458982614548565b602082019050919050565b600060208201905081810360008301526145ad81614571565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006145ee82613e1a565b91506145f983613e1a565b92508282101561460c5761460b6145b4565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061465182613e1a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614683576146826145b4565b5b600182019050919050565b6000614699826143bb565b9050919050565b6146a98161468e565b82525050565b60006020820190506146c460008301846146a0565b92915050565b7f4665657320546f6f204869676800000000000000000000000000000000000000600082015250565b6000614700600d83613ed8565b915061470b826146ca565b602082019050919050565b6000602082019050818103600083015261472f816146f3565b9050919050565b7f42455032303a207472616e7366657220746f2f66726f6d20746865207a65726f60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b6000614792602883613ed8565b915061479d82614736565b604082019050919050565b600060208201905081810360008301526147c181614785565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614824602983613ed8565b915061482f826147c8565b604082019050919050565b6000602082019050818103600083015261485381614817565b9050919050565b7f426f747320617265206e6f7420616c6c6f77656420746f207472616465000000600082015250565b6000614890601d83613ed8565b915061489b8261485a565b602082019050919050565b600060208201905081810360008301526148bf81614883565b9050919050565b7f45786365656473205478204c696d697400000000000000000000000000000000600082015250565b60006148fc601083613ed8565b9150614907826148c6565b602082019050919050565b6000602082019050818103600083015261492b816148ef565b9050919050565b7f54726164696e67206e6f74206163746976650000000000000000000000000000600082015250565b6000614968601283613ed8565b915061497382614932565b602082019050919050565b600060208201905081810360008301526149978161495b565b9050919050565b60006149a982613e1a565b91506149b483613e1a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156149e9576149e86145b4565b5b828201905092915050565b7f457863656564732057616c6c6574206c696d6974000000000000000000000000600082015250565b6000614a2a601483613ed8565b9150614a35826149f4565b602082019050919050565b60006020820190508181036000830152614a5981614a1d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614a9a82613e1a565b9150614aa583613e1a565b925082614ab557614ab4614a60565b5b828204905092915050565b6000614acb82613e1a565b9150614ad683613e1a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614b0f57614b0e6145b4565b5b828202905092915050565b7f416d6f756e742065786365656473206d61782062757900000000000000000000600082015250565b6000614b50601683613ed8565b9150614b5b82614b1a565b602082019050919050565b60006020820190508181036000830152614b7f81614b43565b9050919050565b7f416d6f756e742065786365656473206d61782073656c6c000000000000000000600082015250565b6000614bbc601783613ed8565b9150614bc782614b86565b602082019050919050565b60006020820190508181036000830152614beb81614baf565b9050919050565b600081519050614c0181613d49565b92915050565b600060208284031215614c1d57614c1c613d0d565b5b6000614c2b84828501614bf2565b91505092915050565b6000819050919050565b6000614c59614c54614c4f84614c34565b61438f565b613e1a565b9050919050565b614c6981614c3e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614ca481613d37565b82525050565b6000614cb68383614c9b565b60208301905092915050565b6000602082019050919050565b6000614cda82614c6f565b614ce48185614c7a565b9350614cef83614c8b565b8060005b83811015614d20578151614d078882614caa565b9750614d1283614cc2565b925050600181019050614cf3565b5085935050505092915050565b600060a082019050614d426000830188613e24565b614d4f6020830187614c60565b8181036040830152614d618186614ccf565b9050614d7060608301856140bc565b614d7d6080830184613e24565b9695505050505050565b600060c082019050614d9c60008301896140bc565b614da96020830188613e24565b614db66040830187614c60565b614dc36060830186614c60565b614dd060808301856140bc565b614ddd60a0830184613e24565b979650505050505050565b600081519050614df781613e4e565b92915050565b600080600060608486031215614e1657614e15613d0d565b5b6000614e2486828701614de8565b9350506020614e3586828701614de8565b9250506040614e4686828701614de8565b915050925092509256fea264697066735822122057ea293661e9dd1d62cb58804c81ed871ddc15bd4d30cd7ab82c26c4ad1dbf4864736f6c634300080d0033000000000000000000000000bb382294cb617a2cea2e8ff17b4d026329210485

Deployed Bytecode

0x6080604052600436106103545760003560e01c806375f0a874116101c6578063d073a01f116100f7578063f3ff43da11610095578063f96f9d0f1161006f578063f96f9d0f14610c1f578063fabe628314610c48578063fd5edb6f14610c71578063ffb54a9914610c9a5761035b565b8063f3ff43da14610ba2578063f887ea4014610bcb578063f8cc469314610bf65761035b565b8063d920334e116100d1578063d920334e14610ad6578063dd62ed3e14610aff578063e2c6fb9214610b3c578063f2fde38b14610b795761035b565b8063d073a01f14610a57578063d184603314610a82578063d726b22114610aab5761035b565b8063a8aa1b3111610164578063bb8115081161013e578063bb811508146109ab578063bf56b371146109d6578063c3f70b5214610a01578063c45a015514610a2c5761035b565b8063a8aa1b311461091a578063a9059cbb14610945578063b515566a146109825761035b565b8063893d20e8116101a0578063893d20e81461085e5780638b42507f1461088957806395d89b41146108c6578063a3a2e89e146108f15761035b565b806375f0a874146107cd5780637c6e7b43146107f85780637db1342c146108355761035b565b80633611fd9c116102a05780634a74bb021161023e5780635d098b38116102185780635d098b381461073957806366eb37851461076257806370a0823114610779578063715018a6146107b65761035b565b80634a74bb02146106ba578063571ac8b0146106e55780635b023f57146107225761035b565b8063408f1efc1161027a578063408f1efc1461062657806340f606711461064f578063435263ef146106665780634500fab0146106915761035b565b80633611fd9c146105a95780633dab5269146105c05780633f4218e0146105e95761035b565b8063161948b21161030d578063273123b7116102e7578063273123b7146104ed5780632b112e49146105165780632f54bf6e14610541578063313ce5671461057e5761035b565b8063161948b21461046e57806318160ddd1461048557806323b872dd146104b05761035b565b8063013b81431461036057806301877020146103895780630445b667146103b2578063067eb796146103dd57806306fdde0314610406578063095ea7b3146104315761035b565b3661035b57005b600080fd5b34801561036c57600080fd5b5061038760048036038101906103829190613dad565b610cc5565b005b34801561039557600080fd5b506103b060048036038101906103ab9190613ded565b610d68565b005b3480156103be57600080fd5b506103c7610df4565b6040516103d49190613e33565b60405180910390f35b3480156103e957600080fd5b5061040460048036038101906103ff9190613e7a565b610dfa565b005b34801561041257600080fd5b5061041b610eba565b6040516104289190613f66565b60405180910390f35b34801561043d57600080fd5b5061045860048036038101906104539190613f88565b610ef7565b6040516104659190613fd7565b60405180910390f35b34801561047a57600080fd5b50610483610fe9565b005b34801561049157600080fd5b5061049a61109b565b6040516104a79190613e33565b60405180910390f35b3480156104bc57600080fd5b506104d760048036038101906104d29190613ff2565b6110a5565b6040516104e49190613fd7565b60405180910390f35b3480156104f957600080fd5b50610514600480360381019061050f9190613ded565b611267565b005b34801561052257600080fd5b5061052b61130a565b6040516105389190613e33565b60405180910390f35b34801561054d57600080fd5b5061056860048036038101906105639190613ded565b61137e565b6040516105759190613fd7565b60405180910390f35b34801561058a57600080fd5b506105936113d7565b6040516105a09190614061565b60405180910390f35b3480156105b557600080fd5b506105be6113e0565b005b3480156105cc57600080fd5b506105e760048036038101906105e2919061407c565b61155b565b005b3480156105f557600080fd5b50610610600480360381019061060b9190613ded565b6115c8565b60405161061d9190613fd7565b60405180910390f35b34801561063257600080fd5b5061064d60048036038101906106489190613e7a565b6115e8565b005b34801561065b57600080fd5b5061066461164a565b005b34801561067257600080fd5b5061067b6116cd565b60405161068891906140cb565b60405180910390f35b34801561069d57600080fd5b506106b860048036038101906106b391906140e6565b6116f3565b005b3480156106c657600080fd5b506106cf61179e565b6040516106dc9190613fd7565b60405180910390f35b3480156106f157600080fd5b5061070c60048036038101906107079190613ded565b6117b1565b6040516107199190613fd7565b60405180910390f35b34801561072e57600080fd5b506107376117e4565b005b34801561074557600080fd5b50610760600480360381019061075b9190614164565b611860565b005b34801561076e57600080fd5b506107776118ec565b005b34801561078557600080fd5b506107a0600480360381019061079b9190613ded565b61193e565b6040516107ad9190613e33565b60405180910390f35b3480156107c257600080fd5b506107cb611987565b005b3480156107d957600080fd5b506107e2611a4a565b6040516107ef91906140cb565b60405180910390f35b34801561080457600080fd5b5061081f600480360381019061081a9190613ded565b611a70565b60405161082c9190613fd7565b60405180910390f35b34801561084157600080fd5b5061085c60048036038101906108579190614191565b611a90565b005b34801561086a57600080fd5b50610873611ae2565b60405161088091906140cb565b60405180910390f35b34801561089557600080fd5b506108b060048036038101906108ab9190613ded565b611b0b565b6040516108bd9190613fd7565b60405180910390f35b3480156108d257600080fd5b506108db611b2b565b6040516108e89190613f66565b60405180910390f35b3480156108fd57600080fd5b5061091860048036038101906109139190613dad565b611b68565b005b34801561092657600080fd5b5061092f611c0b565b60405161093c91906140cb565b60405180910390f35b34801561095157600080fd5b5061096c60048036038101906109679190613f88565b611c31565b6040516109799190613fd7565b60405180910390f35b34801561098e57600080fd5b506109a960048036038101906109a49190614306565b611c46565b005b3480156109b757600080fd5b506109c0611d23565b6040516109cd9190613e33565b60405180910390f35b3480156109e257600080fd5b506109eb611d2d565b6040516109f89190613e33565b60405180910390f35b348015610a0d57600080fd5b50610a16611d33565b604051610a239190613e33565b60405180910390f35b348015610a3857600080fd5b50610a41611d3d565b604051610a4e91906140cb565b60405180910390f35b348015610a6357600080fd5b50610a6c611d63565b604051610a799190613e33565b60405180910390f35b348015610a8e57600080fd5b50610aa96004803603810190610aa49190613e7a565b611d6d565b005b348015610ab757600080fd5b50610ac0611dcf565b604051610acd9190613e33565b60405180910390f35b348015610ae257600080fd5b50610afd6004803603810190610af89190614191565b611dd9565b005b348015610b0b57600080fd5b50610b266004803603810190610b21919061434f565b611e2b565b604051610b339190613e33565b60405180910390f35b348015610b4857600080fd5b50610b636004803603810190610b5e9190613ded565b611eb2565b604051610b709190613fd7565b60405180910390f35b348015610b8557600080fd5b50610ba06004803603810190610b9b9190614164565b611ed2565b005b348015610bae57600080fd5b50610bc96004803603810190610bc49190614164565b611f94565b005b348015610bd757600080fd5b50610be0612020565b604051610bed91906143ee565b60405180910390f35b348015610c0257600080fd5b50610c1d6004803603810190610c189190614409565b612046565b005b348015610c2b57600080fd5b50610c466004803603810190610c419190613e7a565b61211b565b005b348015610c5457600080fd5b50610c6f6004803603810190610c6a9190613dad565b61217d565b005b348015610c7d57600080fd5b50610c986004803603810190610c939190613dad565b612220565b005b348015610ca657600080fd5b50610caf6122c3565b604051610cbc9190613fd7565b60405180910390f35b610cce3361137e565b610d0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d04906144bc565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610d713361137e565b610db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da7906144bc565b60405180910390fd5b80601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60055481565b610e033361137e565b610e42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e39906144bc565b60405180910390fd5b60088311158015610e54575060098211155b8015610e615750600a8111155b610ea0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9790614528565b60405180910390fd5b826026819055508160278190555080602881905550505050565b60606040518060400160405280601181526020017f48656176656e20496d7061637420455448000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610fd79190613e33565b60405180910390a36001905092915050565b610ff23361137e565b611031576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611028906144bc565b60405180910390fd5b6000601a5414611076576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106d90614594565b60405180910390fd5b6001602f60166101000a81548160ff0219169083151502179055506001601a81905550565b6000600254905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146112535781600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111d291906145e3565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61125e8484846122d6565b90509392505050565b6112703361137e565b6112af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a6906144bc565b60405180910390fd5b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611337600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661193e565b611362600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661193e565b60025461136f91906145e3565b61137991906145e3565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b6113e93361137e565b611428576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141f906144bc565b60405180910390fd5b60004790506000600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008211156114e457602e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156114e2573d6000803e3d6000fd5b505b600081111561155757602e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611555573d6000803e3d6000fd5b505b5050565b6115643361137e565b6115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159a906144bc565b60405180910390fd5b81602f60156101000a81548160ff021916908315150217905550806005819055505050565b60096020528060005260406000206000915054906101000a900460ff1681565b6115f13361137e565b611630576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611627906144bc565b60405180910390fd5b826023819055508160248190555080602581905550505050565b6116533361137e565b611692576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611689906144bc565b60405180910390fd5b6002601a54146116a157600080fd5b436012819055506001602f60166101000a81548160ff0219169083151502179055506003601a81905550565b602f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6116fc3361137e565b61173b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611732906144bc565b60405180910390fd5b600a821115801561174d5750600a8111155b61178c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178390614528565b60405180910390fd5b81601881905550806019819055505050565b602f60159054906101000a900460ff1681565b60006117dd827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610ef7565b9050919050565b6117ed3361137e565b61182c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611823906144bc565b60405180910390fd5b6001601a541461183b57600080fd5b6000602f60166101000a81548160ff0219169083151502179055506002601a81905550565b6118693361137e565b6118a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189f906144bc565b60405180910390fd5b80602e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118f53361137e565b611934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192b906144bc565b60405180910390fd5b61193c612be2565b565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6119903361137e565b6119cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c6906144bc565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051611a4091906140cb565b60405180910390a1565b602e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c6020528060005260406000206000915054906101000a900460ff1681565b611a993361137e565b611ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acf906144bc565b60405180910390fd5b8060048190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600381526020017f48494d0000000000000000000000000000000000000000000000000000000000815250905090565b611b713361137e565b611bb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba7906144bc565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611c3e3384846122d6565b905092915050565b611c4f3361137e565b611c8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c85906144bc565b60405180910390fd5b60005b8151811015611d1f57600160086000848481518110611cb357611cb2614617565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611d1790614646565b915050611c91565b5050565b6000600454905090565b60125481565b6000600354905090565b602d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601c54905090565b611d763361137e565b611db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dac906144bc565b60405180910390fd5b82601d8190555081601e8190555080601f81905550505050565b6000601b54905090565b611de23361137e565b611e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e18906144bc565b60405180910390fd5b8060038190555050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b611edb3361137e565b611f1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f11906144bc565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611f8991906146af565b60405180910390a150565b611f9d3361137e565b611fdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd3906144bc565b60405180910390fd5b80602f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b602b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61204f3361137e565b61208e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612085906144bc565b60405180910390fd5b600584111580156120a0575060058311155b80156120ad575060058211155b80156120ba575060058111155b6120f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f090614716565b60405180910390fd5b8360168190555082601481905550816015819055508060178190555050505050565b6121243361137e565b612163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215a906144bc565b60405180910390fd5b826020819055508160218190555080602281905550505050565b6121863361137e565b6121c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121bc906144bc565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6122293361137e565b612268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225f906144bc565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602f60169054906101000a900460ff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156123415750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b612380576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612377906147a8565b60405180910390fd5b600082116123c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ba9061483a565b60405180910390fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124675750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6124a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249d906148a6565b60405180910390fd5b600354821115806125005750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61253f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253690614912565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156125e7575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561263c57602f60169054906101000a900460ff1661263b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126329061497e565b60405180910390fd5b5b602f60149054906101000a900460ff16156126635761265c848484612eab565b9050612bdb565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561270b5750602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156127a05760045482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461275e919061499e565b111561279f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279690614a40565b60405180910390fd5b5b602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561284c5750602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156128a15750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156128b8576128b1848484612eab565b9050612bdb565b602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156129235750602f60149054906101000a900460ff16155b801561293b5750602f60159054906101000a900460ff165b80156129885750600554600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b1561299657612995612be2565b5b81600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129e191906145e3565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612aca5750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612ad45782612ae0565b612adf858585613039565b5b905080600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b2d919061499e565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612bcd9190613e33565b60405180910390a360019150505b9392505050565b6001602f60146101000a81548160ff0219169083151502179055506000600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600f600260038110612c5857612c57614617565b5b0154600f600160038110612c6f57612c6e614617565b5b0154600f600060038110612c8657612c85614617565b5b0154612c92919061499e565b612c9c919061499e565b90506000600f600060038110612cb557612cb4614617565b5b015490506000600f600160038110612cd057612ccf614617565b5b015490506000600f600260038110612ceb57612cea614617565b5b015490506000600282612cfe9190614a8f565b905060008187612d0e91906145e3565b9050612d198161396e565b60004790506000878783612d2d9190614ac0565b612d379190614a8f565b90506000888784612d489190614ac0565b612d529190614a8f565b9050600060028a8886612d659190614ac0565b612d6f9190614a8f565b612d799190614a8f565b90506000841115612dee57602e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612dec573d6000803e3d6000fd5b505b6000841115612e6157602f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015612e5f573d6000803e3d6000fd5b505b6000861115612e7557612e748682613b8f565b5b600f6000612e839190613cee565b50505050505050505050506000602f60146101000a81548160ff021916908315150217905550565b600081600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ef891906145e3565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f86919061499e565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516130269190613e33565b60405180910390a3600190509392505050565b60008060646016548461304c9190614ac0565b6130569190614a8f565b905060008060646017548661306b9190614ac0565b6130759190614a8f565b90506000602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161480156131245750602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b801561317a5750600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156133d057600060295411156131d0576029548611156131cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131c690614b66565b60405180910390fd5b5b6064601f54613200602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661193e565b61320a9190614ac0565b6132149190614a8f565b861061326357606460225460145460165461322f919061499e565b61323991906145e3565b876132449190614ac0565b61324e9190614a8f565b9050838161325c91906145e3565b92506133c3565b6064601e54613293602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661193e565b61329d9190614ac0565b6132a79190614a8f565b86106132f65760646021546014546016546132c2919061499e565b6132cc91906145e3565b876132d79190614ac0565b6132e19190614a8f565b905083816132ef91906145e3565b92506133c2565b6064601d54613326602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661193e565b6133309190614ac0565b61333a9190614a8f565b8610613389576064602054601454601654613355919061499e565b61335f91906145e3565b8761336a9190614ac0565b6133749190614a8f565b9050838161338291906145e3565b92506133c1565b606460145460165461339b919061499e565b876133a69190614ac0565b6133b09190614a8f565b905083816133be91906145e3565b92505b5b5b6133cf84846000613c62565b5b602f60149054906101000a900460ff1615801561343b5750602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b80156134535750602f60169054906101000a900460ff165b15613708576000602a5411156134a957602a548611156134a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161349f90614bd2565b60405180910390fd5b5b60646025546134d9602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661193e565b6134e39190614ac0565b6134ed9190614a8f565b861061355457606460285460155460175460165461350b919061499e565b613515919061499e565b61351f919061499e565b8761352a9190614ac0565b6135349190614a8f565b905081848261354391906145e3565b61354d91906145e3565b92506136fc565b6064602454613584602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661193e565b61358e9190614ac0565b6135989190614a8f565b86106135ff5760646027546015546017546016546135b6919061499e565b6135c0919061499e565b6135ca919061499e565b876135d59190614ac0565b6135df9190614a8f565b90508184826135ee91906145e3565b6135f891906145e3565b92506136fb565b606460235461362f602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661193e565b6136399190614ac0565b6136439190614a8f565b86106136aa576064602654601554601754601654613661919061499e565b61366b919061499e565b613675919061499e565b876136809190614ac0565b61368a9190614a8f565b905081848261369991906145e3565b6136a391906145e3565b92506136fa565b60646015546017546016546136bf919061499e565b6136c9919061499e565b876136d49190614ac0565b6136de9190614a8f565b90508184826136ed91906145e3565b6136f791906145e3565b92505b5b5b613707848484613c62565b5b602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141580156137b45750602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b801561380a5750600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156138625760646018548761381f9190614ac0565b6138299190614a8f565b935060646019548761383b9190614ac0565b6138459190614a8f565b92508284613853919061499e565b905061386184846000613c62565b5b80600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138ad919061499e565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161394d9190613e33565b60405180910390a3808661396191906145e3565b9450505050509392505050565b6000600267ffffffffffffffff81111561398b5761398a6141c3565b5b6040519080825280602002602001820160405280156139b95781602001602082028036833780820191505090505b50905030816000815181106139d1576139d0614617565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a9c9190614c07565b81600181518110613ab057613aaf614617565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613af43083610ef7565b50602b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613b59959493929190614d2d565b600060405180830381600087803b158015613b7357600080fd5b505af1158015613b87573d6000803e3d6000fd5b505050505050565b602b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613c1896959493929190614d87565b60606040518083038185885af1158015613c36573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613c5b9190614dfd565b5050505050565b82600f600060038110613c7857613c77614617565b5b016000828254613c88919061499e565b9250508190555081600f600160038110613ca557613ca4614617565b5b016000828254613cb5919061499e565b9250508190555080600f600260038110613cd257613cd1614617565b5b016000828254613ce2919061499e565b92505081905550505050565b50600081556001016000815560010160009055565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613d4282613d17565b9050919050565b613d5281613d37565b8114613d5d57600080fd5b50565b600081359050613d6f81613d49565b92915050565b60008115159050919050565b613d8a81613d75565b8114613d9557600080fd5b50565b600081359050613da781613d81565b92915050565b60008060408385031215613dc457613dc3613d0d565b5b6000613dd285828601613d60565b9250506020613de385828601613d98565b9150509250929050565b600060208284031215613e0357613e02613d0d565b5b6000613e1184828501613d60565b91505092915050565b6000819050919050565b613e2d81613e1a565b82525050565b6000602082019050613e486000830184613e24565b92915050565b613e5781613e1a565b8114613e6257600080fd5b50565b600081359050613e7481613e4e565b92915050565b600080600060608486031215613e9357613e92613d0d565b5b6000613ea186828701613e65565b9350506020613eb286828701613e65565b9250506040613ec386828701613e65565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015613f07578082015181840152602081019050613eec565b83811115613f16576000848401525b50505050565b6000601f19601f8301169050919050565b6000613f3882613ecd565b613f428185613ed8565b9350613f52818560208601613ee9565b613f5b81613f1c565b840191505092915050565b60006020820190508181036000830152613f808184613f2d565b905092915050565b60008060408385031215613f9f57613f9e613d0d565b5b6000613fad85828601613d60565b9250506020613fbe85828601613e65565b9150509250929050565b613fd181613d75565b82525050565b6000602082019050613fec6000830184613fc8565b92915050565b60008060006060848603121561400b5761400a613d0d565b5b600061401986828701613d60565b935050602061402a86828701613d60565b925050604061403b86828701613e65565b9150509250925092565b600060ff82169050919050565b61405b81614045565b82525050565b60006020820190506140766000830184614052565b92915050565b6000806040838503121561409357614092613d0d565b5b60006140a185828601613d98565b92505060206140b285828601613e65565b9150509250929050565b6140c581613d37565b82525050565b60006020820190506140e060008301846140bc565b92915050565b600080604083850312156140fd576140fc613d0d565b5b600061410b85828601613e65565b925050602061411c85828601613e65565b9150509250929050565b600061413182613d17565b9050919050565b61414181614126565b811461414c57600080fd5b50565b60008135905061415e81614138565b92915050565b60006020828403121561417a57614179613d0d565b5b60006141888482850161414f565b91505092915050565b6000602082840312156141a7576141a6613d0d565b5b60006141b584828501613e65565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6141fb82613f1c565b810181811067ffffffffffffffff8211171561421a576142196141c3565b5b80604052505050565b600061422d613d03565b905061423982826141f2565b919050565b600067ffffffffffffffff821115614259576142586141c3565b5b602082029050602081019050919050565b600080fd5b600061428261427d8461423e565b614223565b905080838252602082019050602084028301858111156142a5576142a461426a565b5b835b818110156142ce57806142ba8882613d60565b8452602084019350506020810190506142a7565b5050509392505050565b600082601f8301126142ed576142ec6141be565b5b81356142fd84826020860161426f565b91505092915050565b60006020828403121561431c5761431b613d0d565b5b600082013567ffffffffffffffff81111561433a57614339613d12565b5b614346848285016142d8565b91505092915050565b6000806040838503121561436657614365613d0d565b5b600061437485828601613d60565b925050602061438585828601613d60565b9150509250929050565b6000819050919050565b60006143b46143af6143aa84613d17565b61438f565b613d17565b9050919050565b60006143c682614399565b9050919050565b60006143d8826143bb565b9050919050565b6143e8816143cd565b82525050565b600060208201905061440360008301846143df565b92915050565b6000806000806080858703121561442357614422613d0d565b5b600061443187828801613e65565b945050602061444287828801613e65565b935050604061445387828801613e65565b925050606061446487828801613e65565b91505092959194509250565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b60006144a6600683613ed8565b91506144b182614470565b602082019050919050565b600060208201905081810360008301526144d581614499565b9050919050565b7f46656573206d757374206265206c657373207468616e20323500000000000000600082015250565b6000614512601983613ed8565b915061451d826144dc565b602082019050919050565b6000602082019050818103600083015261454181614505565b9050919050565b7f416c7265616479206c61756e6368656400000000000000000000000000000000600082015250565b600061457e601083613ed8565b915061458982614548565b602082019050919050565b600060208201905081810360008301526145ad81614571565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006145ee82613e1a565b91506145f983613e1a565b92508282101561460c5761460b6145b4565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061465182613e1a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614683576146826145b4565b5b600182019050919050565b6000614699826143bb565b9050919050565b6146a98161468e565b82525050565b60006020820190506146c460008301846146a0565b92915050565b7f4665657320546f6f204869676800000000000000000000000000000000000000600082015250565b6000614700600d83613ed8565b915061470b826146ca565b602082019050919050565b6000602082019050818103600083015261472f816146f3565b9050919050565b7f42455032303a207472616e7366657220746f2f66726f6d20746865207a65726f60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b6000614792602883613ed8565b915061479d82614736565b604082019050919050565b600060208201905081810360008301526147c181614785565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614824602983613ed8565b915061482f826147c8565b604082019050919050565b6000602082019050818103600083015261485381614817565b9050919050565b7f426f747320617265206e6f7420616c6c6f77656420746f207472616465000000600082015250565b6000614890601d83613ed8565b915061489b8261485a565b602082019050919050565b600060208201905081810360008301526148bf81614883565b9050919050565b7f45786365656473205478204c696d697400000000000000000000000000000000600082015250565b60006148fc601083613ed8565b9150614907826148c6565b602082019050919050565b6000602082019050818103600083015261492b816148ef565b9050919050565b7f54726164696e67206e6f74206163746976650000000000000000000000000000600082015250565b6000614968601283613ed8565b915061497382614932565b602082019050919050565b600060208201905081810360008301526149978161495b565b9050919050565b60006149a982613e1a565b91506149b483613e1a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156149e9576149e86145b4565b5b828201905092915050565b7f457863656564732057616c6c6574206c696d6974000000000000000000000000600082015250565b6000614a2a601483613ed8565b9150614a35826149f4565b602082019050919050565b60006020820190508181036000830152614a5981614a1d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614a9a82613e1a565b9150614aa583613e1a565b925082614ab557614ab4614a60565b5b828204905092915050565b6000614acb82613e1a565b9150614ad683613e1a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614b0f57614b0e6145b4565b5b828202905092915050565b7f416d6f756e742065786365656473206d61782062757900000000000000000000600082015250565b6000614b50601683613ed8565b9150614b5b82614b1a565b602082019050919050565b60006020820190508181036000830152614b7f81614b43565b9050919050565b7f416d6f756e742065786365656473206d61782073656c6c000000000000000000600082015250565b6000614bbc601783613ed8565b9150614bc782614b86565b602082019050919050565b60006020820190508181036000830152614beb81614baf565b9050919050565b600081519050614c0181613d49565b92915050565b600060208284031215614c1d57614c1c613d0d565b5b6000614c2b84828501614bf2565b91505092915050565b6000819050919050565b6000614c59614c54614c4f84614c34565b61438f565b613e1a565b9050919050565b614c6981614c3e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614ca481613d37565b82525050565b6000614cb68383614c9b565b60208301905092915050565b6000602082019050919050565b6000614cda82614c6f565b614ce48185614c7a565b9350614cef83614c8b565b8060005b83811015614d20578151614d078882614caa565b9750614d1283614cc2565b925050600181019050614cf3565b5085935050505092915050565b600060a082019050614d426000830188613e24565b614d4f6020830187614c60565b8181036040830152614d618186614ccf565b9050614d7060608301856140bc565b614d7d6080830184613e24565b9695505050505050565b600060c082019050614d9c60008301896140bc565b614da96020830188613e24565b614db66040830187614c60565b614dc36060830186614c60565b614dd060808301856140bc565b614ddd60a0830184613e24565b979650505050505050565b600081519050614df781613e4e565b92915050565b600080600060608486031215614e1657614e15613d0d565b5b6000614e2486828701614de8565b9350506020614e3586828701614de8565b9250506040614e4686828701614de8565b915050925092509256fea264697066735822122057ea293661e9dd1d62cb58804c81ed871ddc15bd4d30cd7ab82c26c4ad1dbf4864736f6c634300080d0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000bb382294cb617a2cea2e8ff17b4d026329210485

-----Decoded View---------------
Arg [0] : _owner (address): 0xBb382294Cb617A2CeA2e8fF17B4D026329210485

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000bb382294cb617a2cea2e8ff17b4d026329210485


Deployed Bytecode Sourcemap

3150:16979:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8139:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8640:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3552:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16973:365;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9635:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10385:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7257:154;;;;;;;;;;;;;:::i;:::-;;9365:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11082:337;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9123:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9221:136;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1371:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9459:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19567:410;;;;;;;;;;;;;:::i;:::-;;8916:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3813:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16684:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7557:166;;;;;;;;;;;;;:::i;:::-;;5467:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17346:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5588:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10609:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7419:130;;;;;;;;;;;;;:::i;:::-;;8485:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19485:74;;;;;;;;;;;;;:::i;:::-;;9805:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19985:141;;;;;;;;;;;;;:::i;:::-;;5376:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3970:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8373:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9721:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3864:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9545:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7731:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5321:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10922:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7083:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10135:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4200:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10055:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5347:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10299:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16136:271;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10217:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8270:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9916:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3919:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1482:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8770:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5290:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15779:349;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16415:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7995:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7865:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5635:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8139:123;1322:19;1330:10;1322:7;:19::i;:::-;1314:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8248:6:::1;8222:15;:23;8238:6;8222:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;8139:123:::0;;:::o;8640:122::-;1322:19;1330:10;1322:7;:19::i;:::-;1314:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8738:16:::1;8722:13;;:32;;;;;;;;;;;;;;;;;;8640:122:::0;:::o;3552:60::-;;;;:::o;16973:365::-;1322:19;1330:10;1322:7;:19::i;:::-;1314:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;17124:1:::1;17105:15;:20;;:42;;;;;17146:1;17129:13;:18;;17105:42;:66;;;;;17169:2;17151:14;:20;;17105:66;17097:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;17231:15;17212:16;:34;;;;17274:13;17257:14;:30;;;;17316:14;17298:15;:32;;;;16973:365:::0;;;:::o;9635:80::-;9683:13;9707:5;;;;;;;;;;;;;;;;;9700:12;;9635:80;:::o;10385:216::-;10460:4;10512:6;10477:11;:23;10489:10;10477:23;;;;;;;;;;;;;;;:32;10501:7;10477:32;;;;;;;;;;;;;;;:41;;;;10555:7;10534:37;;10543:10;10534:37;;;10564:6;10534:37;;;;;;:::i;:::-;;;;;;;;10589:4;10582:11;;10385:216;;;;:::o;7257:154::-;1322:19;1330:10;1322:7;:19::i;:::-;1314:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;7334:1:::1;7321:9;;:14;7313:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;7378:4;7364:11;;:18;;;;;;;;;;;;;;;;;;7402:1;7390:9;:13;;;;7257:154::o:0;9365:88::-;9420:7;9438:12;;9431:19;;9365:88;:::o;11082:337::-;11182:4;11237:17;11202:11;:19;11214:6;11202:19;;;;;;;;;;;;;;;:31;11222:10;11202:31;;;;;;;;;;;;;;;;:52;11199:157;;11338:6;11304:11;:19;11316:6;11304:19;;;;;;;;;;;;;;;:31;11324:10;11304:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;11270:11;:19;11282:6;11270:19;;;;;;;;;;;;;;;:31;11290:10;11270:31;;;;;;;;;;;;;;;:74;;;;11199:157;11375:36;11385:6;11393:9;11404:6;11375:9;:36::i;:::-;11368:43;;11082:337;;;;;:::o;9123:90::-;1322:19;1330:10;1322:7;:19::i;:::-;1314:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;9200:5:::1;9185:4;:12;9190:6;9185:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;9123:90:::0;:::o;9221:136::-;9274:7;9334:15;9344:4;;;;;;;;;;;9334:9;:15::i;:::-;9316;9326:4;;;;;;;;;;;9316:9;:15::i;:::-;9301:12;;:30;;;;:::i;:::-;:48;;;;:::i;:::-;9294:55;;9221:136;:::o;1371:103::-;1426:4;1461:5;;;;;;;;;;;1450:16;;:7;:16;;;1443:23;;1371:103;;;:::o;9459:80::-;9511:5;3368:1;9520:16;;9459:80;:::o;19567:410::-;1322:19;1330:10;1322:7;:19::i;:::-;1314:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19622:26:::1;19651:21;19622:50;;19680:28;19711:9;:24;19729:4;19711:24;;;;;;;;;;;;;;;;19680:55;;19770:1;19749:18;:22;19746:117;;;19806:15;;;;;;;;;;;19798:33;;:53;19832:18;19798:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;19746:117;19892:1;19869:20;:24;19866:104;;;19911:15;;;;;;;;;;;19903:33;;:55;19937:20;19903:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;19866:104;19611:366;;19567:410::o:0;8916:199::-;1322:19;1330:10;1322:7;:19::i;:::-;1314:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;9050:14:::1;9025:21;;:39;;;;;;;;;;;;;;;;;;9091:16;9075:13;:32;;;;8916:199:::0;;:::o;3813:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;16684:281::-;1322:19;1330:10;1322:7;:19::i;:::-;1314:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16843:18:::1;16821:19;:40;;;;16892:16;16872:17;:36;;;;16940:17;16919:18;:38;;;;16684:281:::0;;;:::o;7557:166::-;1322:19;1330:10;1322:7;:19::i;:::-;1314:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;7627:1:::1;7614:9;;:14;7606:23;;;::::0;::::1;;7653:12;7640:10;:25;;;;7690:4;7676:11;;:18;;;;;;;;;;;;;;;;;;7714:1;7702:9;:13;;;;7557:166::o:0;5467:84::-;;;;;;;;;;;;;:::o;17346:221::-;1322:19;1330:10;1322:7;:19::i;:::-;1314:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;17456:2:::1;17441:11;:17;;:38;;;;;17477:2;17462:11;:17;;17441:38;17433:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;17523:11;17513:7;:21;;;;17548:11;17538:7;:21;;;;17346:221:::0;;:::o;5588:40::-;;;;;;;;;;;;;:::o;10609:122::-;10664:4;10688:35;10696:7;10705:17;10688:7;:35::i;:::-;10681:42;;10609:122;;;:::o;7419:130::-;1322:19;1330:10;1322:7;:19::i;:::-;1314:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;7491:1:::1;7478:9;;:14;7470:23;;;::::0;::::1;;7515:5;7501:11;;:19;;;;;;;;;;;;;;;;;;7540:1;7528:9;:13;;;;7419:130::o:0;8485:147::-;1322:19;1330:10;1322:7;:19::i;:::-;1314:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8605:18:::1;8579:15;;:45;;;;;;;;;;;;;;;;;;8485:147:::0;:::o;19485:74::-;1322:19;1330:10;1322:7;:19::i;:::-;1314:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19541:10:::1;:8;:10::i;:::-;19485:74::o:0;9805:105::-;9871:7;9889:9;:18;9899:7;9889:18;;;;;;;;;;;;;;;;9882:25;;9805:105;;;:::o;19985:141::-;1322:19;1330:10;1322:7;:19::i;:::-;1314:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;20066:1:::1;20050:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;20084:32;20113:1;20084:32;;;;;;:::i;:::-;;;;;;;;19985:141::o:0;5376:84::-;;;;;;;;;;;;;:::o;3970:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;8373:104::-;1322:19;1330:10;1322:7;:19::i;:::-;1314:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8461:8:::1;8448:9;:21;;;;8373:104:::0;:::o;9721:78::-;9773:7;9791:5;;;;;;;;;;;9784:12;;9721:78;:::o;3864:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;9545:84::-;9595:13;9619:7;;;;;;;;;;;;;;;;;9612:14;;9545:84;:::o;7731:122::-;1322:19;1330:10;1322:7;:19::i;:::-;1314:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;7839:6:::1;7817:11;:19;7829:6;7817:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;7731:122:::0;;:::o;5321:19::-;;;;;;;;;;;;;:::o;10922:152::-;11002:4;11026:40;11036:10;11048:9;11059:6;11026:9;:40::i;:::-;11019:47;;10922:152;;;;:::o;7083:166::-;1322:19;1330:10;1322:7;:19::i;:::-;1314:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;7159:6:::1;7154:88;7175:5;:12;7171:1;:16;7154:88;;;7226:4;7209;:14;7214:5;7220:1;7214:8;;;;;;;;:::i;:::-;;;;;;;;7209:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;7189:3;;;;;:::i;:::-;;;;7154:88;;;;7083:166:::0;:::o;10135:76::-;10182:7;10199:9;;10192:16;;10135:76;:::o;4200:25::-;;;;:::o;10055:74::-;10104:7;10121:5;;10114:12;;10055:74;:::o;5347:22::-;;;;;;;;;;;;;:::o;10299:78::-;10345:7;10362:12;;10355:19;;10299:78;:::o;16136:271::-;1322:19;1330:10;1322:7;:19::i;:::-;1314:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16290:17:::1;16269:18;:38;;;;16337:15;16318:16;:34;;;;16383:16;16363:17;:36;;;;16136:271:::0;;;:::o;10217:76::-;10262:7;10279:11;;10272:18;;10217:76;:::o;8270:95::-;1322:19;1330:10;1322:7;:19::i;:::-;1314:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8349:8:::1;8341:5;:16;;;;8270:95:::0;:::o;9916:133::-;10000:7;10018:11;:19;10030:6;10018:19;;;;;;;;;;;;;;;:28;10038:7;10018:28;;;;;;;;;;;;;;;;10011:35;;9916:133;;;;:::o;3919:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;1482:136::-;1322:19;1330:10;1322:7;:19::i;:::-;1314:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;1566:3:::1;1558:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;1585:25;1606:3;1585:25;;;;;;:::i;:::-;;;;;;;;1482:136:::0;:::o;8770:138::-;1322:19;1330:10;1322:7;:19::i;:::-;1314:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8882:18:::1;8864:15;;:36;;;;;;;;;;;;;;;;;;8770:138:::0;:::o;5290:24::-;;;;;;;;;;;;;:::o;15779:349::-;1322:19;1330:10;1322:7;:19::i;:::-;1314:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15931:1:::1;15918:9;:14;;:35;;;;;15952:1;15936:12;:17;;15918:35;:57;;;;;15974:1;15957:13;:18;;15918:57;:74;;;;;15991:1;15979:8;:13;;15918:74;15910:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;16027:9;16018:6;:18;;;;16053:12;16044:6;:21;;;;16083:13;16073:7;:23;;;;16112:8;16104:5;:16;;;;15779:349:::0;;;;:::o;16415:261::-;1322:19;1330:10;1322:7;:19::i;:::-;1314:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16569:15:::1;16550:16;:34;;;;16612:13;16595:14;:30;;;;16654:14;16636:15;:32;;;;16415:261:::0;;;:::o;7995:136::-;1322:19;1330:10;1322:7;:19::i;:::-;1314:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8117:6:::1;8091:15;:23;8107:6;8091:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;7995:136:::0;;:::o;7865:122::-;1322:19;1330:10;1322:7;:19::i;:::-;1314:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;7973:6:::1;7951:11;:19;7963:6;7951:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;7865:122:::0;;:::o;5635:31::-;;;;;;;;;;;;;:::o;11427:1388::-;11515:4;11558:1;11540:20;;:6;:20;;;;:47;;;;;11585:1;11564:23;;:9;:23;;;;11540:47;11532:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;11660:1;11651:6;:10;11643:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11727:4;:12;11732:6;11727:12;;;;;;;;;;;;;;;;;;;;;;;;;11726:13;:33;;;;;11744:4;:15;11749:9;11744:15;;;;;;;;;;;;;;;;;;;;;;;;;11743:16;11726:33;11718:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;11822:5;;11812:6;:15;;:42;;;;11831:15;:23;11847:6;11831:23;;;;;;;;;;;;;;;;;;;;;;;;;11812:42;11804:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11902:5;;;;;;;;;;11892:15;;:6;:15;;;;:37;;;;;11924:5;;;;;;;;;;11911:18;;:9;:18;;;;11892:37;11888:85;;;11939:11;;;;;;;;;;;11931:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;11888:85;11989:16;;;;;;;;;;;11986:73;;;12015:41;12030:6;12038:9;12049:6;12015:14;:41::i;:::-;12008:48;;;;11986:73;12075:11;:22;12087:9;12075:22;;;;;;;;;;;;;;;;;;;;;;;;;12074:23;:44;;;;;12114:4;;;;;;;;;;;12101:17;;:9;:17;;;;12074:44;12071:124;;;12161:9;;12151:6;12128:9;:20;12138:9;12128:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:42;;12120:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;12071:124;12218:4;;;;;;;;;;;12208:14;;:6;:14;;;;:35;;;;;12239:4;;;;;;;;;;;12226:17;;:9;:17;;;;12208:35;:62;;;;;12247:15;:23;12263:6;12247:23;;;;;;;;;;;;;;;;;;;;;;;;;12208:62;12205:120;;;12281:41;12296:6;12304:9;12315:6;12281:14;:41::i;:::-;12274:48;;;;12205:120;12354:4;;;;;;;;;;;12340:18;;:10;:18;;;;:39;;;;;12363:16;;;;;;;;;;;12362:17;12340:39;:64;;;;;12383:21;;;;;;;;;;;12340:64;:109;;;;;12436:13;;12408:9;:24;12426:4;12408:24;;;;;;;;;;;;;;;;:41;;12340:109;12337:128;;;12452:10;:8;:10::i;:::-;12337:128;12517:6;12497:9;:17;12507:6;12497:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;12477:9;:17;12487:6;12477:17;;;;;;;;;;;;;;;:46;;;;12544:19;12567:11;:19;12579:6;12567:19;;;;;;;;;;;;;;;;;;;;;;;;;12566:20;:47;;;;;12591:11;:22;12603:9;12591:22;;;;;;;;;;;;;;;;;;;;;;;;;12590:23;12566:47;:93;;12653:6;12566:93;;;12616:34;12624:6;12632:9;12643:6;12616:7;:34::i;:::-;12566:93;12544:115;;12716:11;12693:9;:20;12703:9;12693:20;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;12670:9;:20;12680:9;12670:20;;;;;;;;;;;;;;;:57;;;;12762:9;12745:40;;12754:6;12745:40;;;12773:11;12745:40;;;;;;:::i;:::-;;;;;;;;12803:4;12796:11;;;11427:1388;;;;;;:::o;18307:1170::-;5726:4;5707:16;;:23;;;;;;;;;;;;;;;;;;18365:20:::1;18388:9;:24;18406:4;18388:24;;;;;;;;;;;;;;;;18365:47;;18423:23;18489:14;18504:1;18489:17;;;;;;;:::i;:::-;;;;18469:14;18484:1;18469:17;;;;;;;:::i;:::-;;;;18449:14;18464:1;18449:17;;;;;;;:::i;:::-;;;;:37;;;;:::i;:::-;:57;;;;:::i;:::-;18423:83;;18517:16;18536:14;18551:1;18536:17;;;;;;;:::i;:::-;;;;18517:36;;18564:16;18583:14;18598:1;18583:17;;;;;;;:::i;:::-;;;;18564:36;;18611:15;18629:14;18644:1;18629:17;;;;;;;:::i;:::-;;;;18611:35;;18657:26;18696:1;18686:7;:11;;;;:::i;:::-;18657:40;;18710:20;18748:18;18733:12;:33;;;;:::i;:::-;18710:56;;18779:30;18796:12;18779:16;:30::i;:::-;18822:23;18848:21;18822:47;;18880:17;18929:15;18918:8;18900:15;:26;;;;:::i;:::-;:44;;;;:::i;:::-;18880:64;;18955:17;19004:15;18993:8;18975:15;:26;;;;:::i;:::-;:44;;;;:::i;:::-;18955:64;;19030:23;19102:1;19084:15;19074:7;19056:15;:25;;;;:::i;:::-;:43;;;;:::i;:::-;:47;;;;:::i;:::-;19030:73;;19144:1;19126:15;:19;19122:95;;;19169:15;;;;;;;;;;;19161:33;;:44;19195:9;19161:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;19122:95;19253:1;19235:15;:19;19231:95;;;19278:15;;;;;;;;;;;19270:33;;:44;19304:9;19270:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;19231:95;19365:1;19344:18;:22;19340:103;;;19382:49;19395:18;19415:15;19382:12;:49::i;:::-;19340:103;19455:14;;19448:21;;;;:::i;:::-;18348:1129;;;;;;;;;;;5772:5:::0;5753:16;;:24;;;;;;;;;;;;;;;;;;18307:1170::o;15469:300::-;15562:4;15619:6;15599:9;:17;15609:6;15599:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;15579:9;:17;15589:6;15579:17;;;;;;;;;;;;;;;:46;;;;15682:6;15659:9;:20;15669:9;15659:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;15636:9;:20;15646:9;15636:20;;;;;;;;;;;;;;;:52;;;;15721:9;15704:35;;15713:6;15704:35;;;15732:6;15704:35;;;;;;:::i;:::-;;;;;;;;15757:4;15750:11;;15469:300;;;;;:::o;12827:2634::-;12913:7;12943:14;12978:3;12969:6;;12960;:15;;;;:::i;:::-;:21;;;;:::i;:::-;12943:38;;12992:14;13017:13;13050:3;13042:5;;13033:6;:14;;;;:::i;:::-;:20;;;;:::i;:::-;13017:36;;13064:16;13099:4;;;;;;;;;;;13089:14;;:6;:14;;;:44;;;;;13128:4;;;;;;;;;;;13107:26;;:9;:26;;;;13089:44;:71;;;;;13138:11;:22;13150:9;13138:22;;;;;;;;;;;;;;;;;;;;;;;;;13137:23;13089:71;13086:937;;;13195:1;13179:13;;:17;13175:112;;;13231:13;;13221:6;:23;;13213:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;13175:112;13351:3;13331:17;;13313:15;13323:4;;;;;;;;;;;13313:9;:15::i;:::-;:35;;;;:::i;:::-;:41;;;;:::i;:::-;13303:6;:51;13299:669;;13429:3;13410:15;;13401:6;;13392;;:15;;;;:::i;:::-;:33;;;;:::i;:::-;13382:6;:44;;;;:::i;:::-;:50;;;;:::i;:::-;13371:61;;13461:6;13450:8;:17;;;;:::i;:::-;13441:26;;13299:669;;;13536:3;13517:16;;13499:15;13509:4;;;;;;;;;;;13499:9;:15::i;:::-;:34;;;;:::i;:::-;:40;;;;:::i;:::-;13489:6;:50;13485:483;;13613:3;13595:14;;13586:6;;13577;;:15;;;;:::i;:::-;:32;;;;:::i;:::-;13567:6;:43;;;;:::i;:::-;:49;;;;:::i;:::-;13556:60;;13651:6;13640:8;:17;;;;:::i;:::-;13631:26;;13485:483;;;13728:3;13707:18;;13689:15;13699:4;;;;;;;;;;;13689:9;:15::i;:::-;:36;;;;:::i;:::-;:42;;;;:::i;:::-;13679:6;:52;13675:293;;13807:3;13787:16;;13778:6;;13769;;:15;;;;:::i;:::-;:34;;;;:::i;:::-;13759:6;:45;;;;:::i;:::-;:51;;;;:::i;:::-;13748:62;;13839:6;13828:8;:17;;;;:::i;:::-;13819:26;;13675:293;;;13918:3;13908:6;;13899;;:15;;;;:::i;:::-;13889:6;:26;;;;:::i;:::-;:32;;;;:::i;:::-;13878:43;;13950:6;13939:8;:17;;;;:::i;:::-;13930:26;;13675:293;13485:483;13299:669;13982:34;13998:6;14006;14014:1;13982:15;:34::i;:::-;13086:937;14032:16;;;;;;;;;;;14031:17;:35;;;;;14062:4;;;;;;;;;;;14052:14;;:6;:14;;;;14031:35;:50;;;;;14070:11;;;;;;;;;;;14031:50;14028:1036;;;14117:1;14100:14;;:18;14096:115;;;14153:14;;14143:6;:24;;14135:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;14096:115;14280:3;14259:18;;14241:15;14251:4;;;;;;;;;;;14241:9;:15::i;:::-;:36;;;;:::i;:::-;:42;;;;:::i;:::-;14231:6;:52;14227:782;;14368:3;14349:15;;14339:7;;14331:5;;14322:6;;:14;;;;:::i;:::-;:24;;;;:::i;:::-;:42;;;;:::i;:::-;14312:6;:53;;;;:::i;:::-;:59;;;;:::i;:::-;14301:70;;14416:5;14407:6;14396:8;:17;;;;:::i;:::-;:25;;;;:::i;:::-;14387:34;;14227:782;;;14495:3;14475:17;;14457:15;14467:4;;;;;;;;;;;14457:9;:15::i;:::-;:35;;;;:::i;:::-;:41;;;;:::i;:::-;14447:6;:51;14443:566;;14582:3;14564:14;;14554:7;;14546:5;;14537:6;;:14;;;;:::i;:::-;:24;;;;:::i;:::-;:41;;;;:::i;:::-;14527:6;:52;;;;:::i;:::-;:58;;;;:::i;:::-;14516:69;;14630:5;14621:6;14610:8;:17;;;;:::i;:::-;:25;;;;:::i;:::-;14601:34;;14443:566;;;14711:3;14689:19;;14671:15;14681:4;;;;;;;;;;;14671:9;:15::i;:::-;:37;;;;:::i;:::-;:43;;;;:::i;:::-;14661:6;:53;14657:352;;14800:3;14780:16;;14770:7;;14762:5;;14753:6;;:14;;;;:::i;:::-;:24;;;;:::i;:::-;:43;;;;:::i;:::-;14743:6;:54;;;;:::i;:::-;:60;;;;:::i;:::-;14732:71;;14848:5;14839:6;14828:8;:17;;;;:::i;:::-;:25;;;;:::i;:::-;14819:34;;14657:352;;;14940:3;14929:7;;14921:5;;14912:6;;:14;;;;:::i;:::-;:24;;;;:::i;:::-;14902:6;:35;;;;:::i;:::-;:41;;;;:::i;:::-;14891:52;;14988:5;14979:6;14968:8;:17;;;;:::i;:::-;:25;;;;:::i;:::-;14959:34;;14657:352;14443:566;14227:782;15020:38;15036:6;15044;15052:5;15020:15;:38::i;:::-;14028:1036;15082:4;;;;;;;;;;;15072:14;;:6;:14;;;;:35;;;;;15103:4;;;;;;;;;;;15090:17;;:9;:17;;;;15072:35;:63;;;;;15112:15;:23;15128:6;15112:23;;;;;;;;;;;;;;;;;;;;;;;;;15111:24;15072:63;15069:216;;;15170:3;15160:7;;15151:6;:16;;;;:::i;:::-;:22;;;;:::i;:::-;15142:31;;15206:3;15196:7;;15187:6;:16;;;;:::i;:::-;:22;;;;:::i;:::-;15178:31;;15234:6;15225;:15;;;;:::i;:::-;15214:26;;15245:34;15261:6;15269;15277:1;15245:15;:34::i;:::-;15069:216;15351:8;15324:9;:24;15342:4;15324:24;;;;;;;;;;;;;;;;:35;;;;:::i;:::-;15297:9;:24;15315:4;15297:24;;;;;;;;;;;;;;;:62;;;;15400:4;15375:41;;15384:6;15375:41;;;15407:8;15375:41;;;;;;:::i;:::-;;;;;;;;15445:8;15436:6;:17;;;;:::i;:::-;15429:24;;;;;;12827:2634;;;;;:::o;17575:432::-;17643:21;17681:1;17667:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17643:40;;17712:4;17694;17699:1;17694:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17738:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17728:4;17733:1;17728:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17764:35;17780:4;17787:11;17764:7;:35::i;:::-;;17812:6;;;;;;;;;;;:57;;;17884:11;17910:1;17926:4;17953;17973:15;17812:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17630:377;17575:432;:::o;18015:284::-;18096:6;;;;;;;;;;;:22;;;18126:9;18159:4;18179:11;18205:1;18221;18237:13;;;;;;;;;;;18265:15;18096:195;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18015:284;;:::o;10739:175::-;10834:3;10813:14;10828:1;10813:17;;;;;;;:::i;:::-;;;;:24;;;;;;;:::i;:::-;;;;;;;;10869:3;10848:14;10863:1;10848:17;;;;;;;:::i;:::-;;;;:24;;;;;;;:::i;:::-;;;;;;;;10904:2;10883:14;10898:1;10883:17;;;;;;;:::i;:::-;;;;:23;;;;;;;:::i;:::-;;;;;;;;10739:175;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;:::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:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:90::-;875:7;918:5;911:13;904:21;893:32;;841:90;;;:::o;937:116::-;1007:21;1022:5;1007:21;:::i;:::-;1000:5;997:32;987:60;;1043:1;1040;1033:12;987:60;937:116;:::o;1059:133::-;1102:5;1140:6;1127:20;1118:29;;1156:30;1180:5;1156:30;:::i;:::-;1059:133;;;;:::o;1198:468::-;1263:6;1271;1320:2;1308:9;1299:7;1295:23;1291:32;1288:119;;;1326:79;;:::i;:::-;1288:119;1446:1;1471:53;1516:7;1507:6;1496:9;1492:22;1471:53;:::i;:::-;1461:63;;1417:117;1573:2;1599:50;1641:7;1632:6;1621:9;1617:22;1599:50;:::i;:::-;1589:60;;1544:115;1198:468;;;;;:::o;1672:329::-;1731:6;1780:2;1768:9;1759:7;1755:23;1751:32;1748:119;;;1786:79;;:::i;:::-;1748:119;1906:1;1931:53;1976:7;1967:6;1956:9;1952:22;1931:53;:::i;:::-;1921:63;;1877:117;1672:329;;;;:::o;2007:77::-;2044:7;2073:5;2062:16;;2007:77;;;:::o;2090:118::-;2177:24;2195:5;2177:24;:::i;:::-;2172:3;2165:37;2090:118;;:::o;2214:222::-;2307:4;2345:2;2334:9;2330:18;2322:26;;2358:71;2426:1;2415:9;2411:17;2402:6;2358:71;:::i;:::-;2214:222;;;;:::o;2442:122::-;2515:24;2533:5;2515:24;:::i;:::-;2508:5;2505:35;2495:63;;2554:1;2551;2544:12;2495:63;2442:122;:::o;2570:139::-;2616:5;2654:6;2641:20;2632:29;;2670:33;2697:5;2670:33;:::i;:::-;2570:139;;;;:::o;2715:619::-;2792:6;2800;2808;2857:2;2845:9;2836:7;2832:23;2828:32;2825:119;;;2863:79;;:::i;:::-;2825:119;2983:1;3008:53;3053:7;3044:6;3033:9;3029:22;3008:53;:::i;:::-;2998:63;;2954:117;3110:2;3136:53;3181:7;3172:6;3161:9;3157:22;3136:53;:::i;:::-;3126:63;;3081:118;3238:2;3264:53;3309:7;3300:6;3289:9;3285:22;3264:53;:::i;:::-;3254:63;;3209:118;2715:619;;;;;:::o;3340:99::-;3392:6;3426:5;3420:12;3410:22;;3340:99;;;:::o;3445:169::-;3529:11;3563:6;3558:3;3551:19;3603:4;3598:3;3594:14;3579:29;;3445:169;;;;:::o;3620:307::-;3688:1;3698:113;3712:6;3709:1;3706:13;3698:113;;;3797:1;3792:3;3788:11;3782:18;3778:1;3773:3;3769:11;3762:39;3734:2;3731:1;3727:10;3722:15;;3698:113;;;3829:6;3826:1;3823:13;3820:101;;;3909:1;3900:6;3895:3;3891:16;3884:27;3820:101;3669:258;3620:307;;;:::o;3933:102::-;3974:6;4025:2;4021:7;4016:2;4009:5;4005:14;4001:28;3991:38;;3933:102;;;:::o;4041:364::-;4129:3;4157:39;4190:5;4157:39;:::i;:::-;4212:71;4276:6;4271:3;4212:71;:::i;:::-;4205:78;;4292:52;4337:6;4332:3;4325:4;4318:5;4314:16;4292:52;:::i;:::-;4369:29;4391:6;4369:29;:::i;:::-;4364:3;4360:39;4353:46;;4133:272;4041:364;;;;:::o;4411:313::-;4524:4;4562:2;4551:9;4547:18;4539:26;;4611:9;4605:4;4601:20;4597:1;4586:9;4582:17;4575:47;4639:78;4712:4;4703:6;4639:78;:::i;:::-;4631:86;;4411:313;;;;:::o;4730:474::-;4798:6;4806;4855:2;4843:9;4834:7;4830:23;4826:32;4823:119;;;4861:79;;:::i;:::-;4823:119;4981:1;5006:53;5051:7;5042:6;5031:9;5027:22;5006:53;:::i;:::-;4996:63;;4952:117;5108:2;5134:53;5179:7;5170:6;5159:9;5155:22;5134:53;:::i;:::-;5124:63;;5079:118;4730:474;;;;;:::o;5210:109::-;5291:21;5306:5;5291:21;:::i;:::-;5286:3;5279:34;5210:109;;:::o;5325:210::-;5412:4;5450:2;5439:9;5435:18;5427:26;;5463:65;5525:1;5514:9;5510:17;5501:6;5463:65;:::i;:::-;5325:210;;;;:::o;5541:619::-;5618:6;5626;5634;5683:2;5671:9;5662:7;5658:23;5654:32;5651:119;;;5689:79;;:::i;:::-;5651:119;5809:1;5834:53;5879:7;5870:6;5859:9;5855:22;5834:53;:::i;:::-;5824:63;;5780:117;5936:2;5962:53;6007:7;5998:6;5987:9;5983:22;5962:53;:::i;:::-;5952:63;;5907:118;6064:2;6090:53;6135:7;6126:6;6115:9;6111:22;6090:53;:::i;:::-;6080:63;;6035:118;5541:619;;;;;:::o;6166:86::-;6201:7;6241:4;6234:5;6230:16;6219:27;;6166:86;;;:::o;6258:112::-;6341:22;6357:5;6341:22;:::i;:::-;6336:3;6329:35;6258:112;;:::o;6376:214::-;6465:4;6503:2;6492:9;6488:18;6480:26;;6516:67;6580:1;6569:9;6565:17;6556:6;6516:67;:::i;:::-;6376:214;;;;:::o;6596:468::-;6661:6;6669;6718:2;6706:9;6697:7;6693:23;6689:32;6686:119;;;6724:79;;:::i;:::-;6686:119;6844:1;6869:50;6911:7;6902:6;6891:9;6887:22;6869:50;:::i;:::-;6859:60;;6815:114;6968:2;6994:53;7039:7;7030:6;7019:9;7015:22;6994:53;:::i;:::-;6984:63;;6939:118;6596:468;;;;;:::o;7070:118::-;7157:24;7175:5;7157:24;:::i;:::-;7152:3;7145:37;7070:118;;:::o;7194:222::-;7287:4;7325:2;7314:9;7310:18;7302:26;;7338:71;7406:1;7395:9;7391:17;7382:6;7338:71;:::i;:::-;7194:222;;;;:::o;7422:474::-;7490:6;7498;7547:2;7535:9;7526:7;7522:23;7518:32;7515:119;;;7553:79;;:::i;:::-;7515:119;7673:1;7698:53;7743:7;7734:6;7723:9;7719:22;7698:53;:::i;:::-;7688:63;;7644:117;7800:2;7826:53;7871:7;7862:6;7851:9;7847:22;7826:53;:::i;:::-;7816:63;;7771:118;7422:474;;;;;:::o;7902:104::-;7947:7;7976:24;7994:5;7976:24;:::i;:::-;7965:35;;7902:104;;;:::o;8012:138::-;8093:32;8119:5;8093:32;:::i;:::-;8086:5;8083:43;8073:71;;8140:1;8137;8130:12;8073:71;8012:138;:::o;8156:155::-;8210:5;8248:6;8235:20;8226:29;;8264:41;8299:5;8264:41;:::i;:::-;8156:155;;;;:::o;8317:345::-;8384:6;8433:2;8421:9;8412:7;8408:23;8404:32;8401:119;;;8439:79;;:::i;:::-;8401:119;8559:1;8584:61;8637:7;8628:6;8617:9;8613:22;8584:61;:::i;:::-;8574:71;;8530:125;8317:345;;;;:::o;8668:329::-;8727:6;8776:2;8764:9;8755:7;8751:23;8747:32;8744:119;;;8782:79;;:::i;:::-;8744:119;8902:1;8927:53;8972:7;8963:6;8952:9;8948:22;8927:53;:::i;:::-;8917:63;;8873:117;8668:329;;;;:::o;9003:117::-;9112:1;9109;9102:12;9126:180;9174:77;9171:1;9164:88;9271:4;9268:1;9261:15;9295:4;9292:1;9285:15;9312:281;9395:27;9417:4;9395:27;:::i;:::-;9387:6;9383:40;9525:6;9513:10;9510:22;9489:18;9477:10;9474:34;9471:62;9468:88;;;9536:18;;:::i;:::-;9468:88;9576:10;9572:2;9565:22;9355:238;9312:281;;:::o;9599:129::-;9633:6;9660:20;;:::i;:::-;9650:30;;9689:33;9717:4;9709:6;9689:33;:::i;:::-;9599:129;;;:::o;9734:311::-;9811:4;9901:18;9893:6;9890:30;9887:56;;;9923:18;;:::i;:::-;9887:56;9973:4;9965:6;9961:17;9953:25;;10033:4;10027;10023:15;10015:23;;9734:311;;;:::o;10051:117::-;10160:1;10157;10150:12;10191:710;10287:5;10312:81;10328:64;10385:6;10328:64;:::i;:::-;10312:81;:::i;:::-;10303:90;;10413:5;10442:6;10435:5;10428:21;10476:4;10469:5;10465:16;10458:23;;10529:4;10521:6;10517:17;10509:6;10505:30;10558:3;10550:6;10547:15;10544:122;;;10577:79;;:::i;:::-;10544:122;10692:6;10675:220;10709:6;10704:3;10701:15;10675:220;;;10784:3;10813:37;10846:3;10834:10;10813:37;:::i;:::-;10808:3;10801:50;10880:4;10875:3;10871:14;10864:21;;10751:144;10735:4;10730:3;10726:14;10719:21;;10675:220;;;10679:21;10293:608;;10191:710;;;;;:::o;10924:370::-;10995:5;11044:3;11037:4;11029:6;11025:17;11021:27;11011:122;;11052:79;;:::i;:::-;11011:122;11169:6;11156:20;11194:94;11284:3;11276:6;11269:4;11261:6;11257:17;11194:94;:::i;:::-;11185:103;;11001:293;10924:370;;;;:::o;11300:539::-;11384:6;11433:2;11421:9;11412:7;11408:23;11404:32;11401:119;;;11439:79;;:::i;:::-;11401:119;11587:1;11576:9;11572:17;11559:31;11617:18;11609:6;11606:30;11603:117;;;11639:79;;:::i;:::-;11603:117;11744:78;11814:7;11805:6;11794:9;11790:22;11744:78;:::i;:::-;11734:88;;11530:302;11300:539;;;;:::o;11845:474::-;11913:6;11921;11970:2;11958:9;11949:7;11945:23;11941:32;11938:119;;;11976:79;;:::i;:::-;11938:119;12096:1;12121:53;12166:7;12157:6;12146:9;12142:22;12121:53;:::i;:::-;12111:63;;12067:117;12223:2;12249:53;12294:7;12285:6;12274:9;12270:22;12249:53;:::i;:::-;12239:63;;12194:118;11845:474;;;;;:::o;12325:60::-;12353:3;12374:5;12367:12;;12325:60;;;:::o;12391:142::-;12441:9;12474:53;12492:34;12501:24;12519:5;12501:24;:::i;:::-;12492:34;:::i;:::-;12474:53;:::i;:::-;12461:66;;12391:142;;;:::o;12539:126::-;12589:9;12622:37;12653:5;12622:37;:::i;:::-;12609:50;;12539:126;;;:::o;12671:144::-;12739:9;12772:37;12803:5;12772:37;:::i;:::-;12759:50;;12671:144;;;:::o;12821:167::-;12926:55;12975:5;12926:55;:::i;:::-;12921:3;12914:68;12821:167;;:::o;12994:258::-;13105:4;13143:2;13132:9;13128:18;13120:26;;13156:89;13242:1;13231:9;13227:17;13218:6;13156:89;:::i;:::-;12994:258;;;;:::o;13258:765::-;13344:6;13352;13360;13368;13417:3;13405:9;13396:7;13392:23;13388:33;13385:120;;;13424:79;;:::i;:::-;13385:120;13544:1;13569:53;13614:7;13605:6;13594:9;13590:22;13569:53;:::i;:::-;13559:63;;13515:117;13671:2;13697:53;13742:7;13733:6;13722:9;13718:22;13697:53;:::i;:::-;13687:63;;13642:118;13799:2;13825:53;13870:7;13861:6;13850:9;13846:22;13825:53;:::i;:::-;13815:63;;13770:118;13927:2;13953:53;13998:7;13989:6;13978:9;13974:22;13953:53;:::i;:::-;13943:63;;13898:118;13258:765;;;;;;;:::o;14029:156::-;14169:8;14165:1;14157:6;14153:14;14146:32;14029:156;:::o;14191:365::-;14333:3;14354:66;14418:1;14413:3;14354:66;:::i;:::-;14347:73;;14429:93;14518:3;14429:93;:::i;:::-;14547:2;14542:3;14538:12;14531:19;;14191:365;;;:::o;14562:419::-;14728:4;14766:2;14755:9;14751:18;14743:26;;14815:9;14809:4;14805:20;14801:1;14790:9;14786:17;14779:47;14843:131;14969:4;14843:131;:::i;:::-;14835:139;;14562:419;;;:::o;14987:175::-;15127:27;15123:1;15115:6;15111:14;15104:51;14987:175;:::o;15168:366::-;15310:3;15331:67;15395:2;15390:3;15331:67;:::i;:::-;15324:74;;15407:93;15496:3;15407:93;:::i;:::-;15525:2;15520:3;15516:12;15509:19;;15168:366;;;:::o;15540:419::-;15706:4;15744:2;15733:9;15729:18;15721:26;;15793:9;15787:4;15783:20;15779:1;15768:9;15764:17;15757:47;15821:131;15947:4;15821:131;:::i;:::-;15813:139;;15540:419;;;:::o;15965:166::-;16105:18;16101:1;16093:6;16089:14;16082:42;15965:166;:::o;16137:366::-;16279:3;16300:67;16364:2;16359:3;16300:67;:::i;:::-;16293:74;;16376:93;16465:3;16376:93;:::i;:::-;16494:2;16489:3;16485:12;16478:19;;16137:366;;;:::o;16509:419::-;16675:4;16713:2;16702:9;16698:18;16690:26;;16762:9;16756:4;16752:20;16748:1;16737:9;16733:17;16726:47;16790:131;16916:4;16790:131;:::i;:::-;16782:139;;16509:419;;;:::o;16934:180::-;16982:77;16979:1;16972:88;17079:4;17076:1;17069:15;17103:4;17100:1;17093:15;17120:191;17160:4;17180:20;17198:1;17180:20;:::i;:::-;17175:25;;17214:20;17232:1;17214:20;:::i;:::-;17209:25;;17253:1;17250;17247:8;17244:34;;;17258:18;;:::i;:::-;17244:34;17303:1;17300;17296:9;17288:17;;17120:191;;;;:::o;17317:180::-;17365:77;17362:1;17355:88;17462:4;17459:1;17452:15;17486:4;17483:1;17476:15;17503:233;17542:3;17565:24;17583:5;17565:24;:::i;:::-;17556:33;;17611:66;17604:5;17601:77;17598:103;;17681:18;;:::i;:::-;17598:103;17728:1;17721:5;17717:13;17710:20;;17503:233;;;:::o;17742:134::-;17800:9;17833:37;17864:5;17833:37;:::i;:::-;17820:50;;17742:134;;;:::o;17882:147::-;17977:45;18016:5;17977:45;:::i;:::-;17972:3;17965:58;17882:147;;:::o;18035:238::-;18136:4;18174:2;18163:9;18159:18;18151:26;;18187:79;18263:1;18252:9;18248:17;18239:6;18187:79;:::i;:::-;18035:238;;;;:::o;18279:163::-;18419:15;18415:1;18407:6;18403:14;18396:39;18279:163;:::o;18448:366::-;18590:3;18611:67;18675:2;18670:3;18611:67;:::i;:::-;18604:74;;18687:93;18776:3;18687:93;:::i;:::-;18805:2;18800:3;18796:12;18789:19;;18448:366;;;:::o;18820:419::-;18986:4;19024:2;19013:9;19009:18;19001:26;;19073:9;19067:4;19063:20;19059:1;19048:9;19044:17;19037:47;19101:131;19227:4;19101:131;:::i;:::-;19093:139;;18820:419;;;:::o;19245:227::-;19385:34;19381:1;19373:6;19369:14;19362:58;19454:10;19449:2;19441:6;19437:15;19430:35;19245:227;:::o;19478:366::-;19620:3;19641:67;19705:2;19700:3;19641:67;:::i;:::-;19634:74;;19717:93;19806:3;19717:93;:::i;:::-;19835:2;19830:3;19826:12;19819:19;;19478:366;;;:::o;19850:419::-;20016:4;20054:2;20043:9;20039:18;20031:26;;20103:9;20097:4;20093:20;20089:1;20078:9;20074:17;20067:47;20131:131;20257:4;20131:131;:::i;:::-;20123:139;;19850:419;;;:::o;20275:228::-;20415:34;20411:1;20403:6;20399:14;20392:58;20484:11;20479:2;20471:6;20467:15;20460:36;20275:228;:::o;20509:366::-;20651:3;20672:67;20736:2;20731:3;20672:67;:::i;:::-;20665:74;;20748:93;20837:3;20748:93;:::i;:::-;20866:2;20861:3;20857:12;20850:19;;20509:366;;;:::o;20881:419::-;21047:4;21085:2;21074:9;21070:18;21062:26;;21134:9;21128:4;21124:20;21120:1;21109:9;21105:17;21098:47;21162:131;21288:4;21162:131;:::i;:::-;21154:139;;20881:419;;;:::o;21306:179::-;21446:31;21442:1;21434:6;21430:14;21423:55;21306:179;:::o;21491:366::-;21633:3;21654:67;21718:2;21713:3;21654:67;:::i;:::-;21647:74;;21730:93;21819:3;21730:93;:::i;:::-;21848:2;21843:3;21839:12;21832:19;;21491:366;;;:::o;21863:419::-;22029:4;22067:2;22056:9;22052:18;22044:26;;22116:9;22110:4;22106:20;22102:1;22091:9;22087:17;22080:47;22144:131;22270:4;22144:131;:::i;:::-;22136:139;;21863:419;;;:::o;22288:166::-;22428:18;22424:1;22416:6;22412:14;22405:42;22288:166;:::o;22460:366::-;22602:3;22623:67;22687:2;22682:3;22623:67;:::i;:::-;22616:74;;22699:93;22788:3;22699:93;:::i;:::-;22817:2;22812:3;22808:12;22801:19;;22460:366;;;:::o;22832:419::-;22998:4;23036:2;23025:9;23021:18;23013:26;;23085:9;23079:4;23075:20;23071:1;23060:9;23056:17;23049:47;23113:131;23239:4;23113:131;:::i;:::-;23105:139;;22832:419;;;:::o;23257:168::-;23397:20;23393:1;23385:6;23381:14;23374:44;23257:168;:::o;23431:366::-;23573:3;23594:67;23658:2;23653:3;23594:67;:::i;:::-;23587:74;;23670:93;23759:3;23670:93;:::i;:::-;23788:2;23783:3;23779:12;23772:19;;23431:366;;;:::o;23803:419::-;23969:4;24007:2;23996:9;23992:18;23984:26;;24056:9;24050:4;24046:20;24042:1;24031:9;24027:17;24020:47;24084:131;24210:4;24084:131;:::i;:::-;24076:139;;23803:419;;;:::o;24228:305::-;24268:3;24287:20;24305:1;24287:20;:::i;:::-;24282:25;;24321:20;24339:1;24321:20;:::i;:::-;24316:25;;24475:1;24407:66;24403:74;24400:1;24397:81;24394:107;;;24481:18;;:::i;:::-;24394:107;24525:1;24522;24518:9;24511:16;;24228:305;;;;:::o;24539:170::-;24679:22;24675:1;24667:6;24663:14;24656:46;24539:170;:::o;24715:366::-;24857:3;24878:67;24942:2;24937:3;24878:67;:::i;:::-;24871:74;;24954:93;25043:3;24954:93;:::i;:::-;25072:2;25067:3;25063:12;25056:19;;24715:366;;;:::o;25087:419::-;25253:4;25291:2;25280:9;25276:18;25268:26;;25340:9;25334:4;25330:20;25326:1;25315:9;25311:17;25304:47;25368:131;25494:4;25368:131;:::i;:::-;25360:139;;25087:419;;;:::o;25512:180::-;25560:77;25557:1;25550:88;25657:4;25654:1;25647:15;25681:4;25678:1;25671:15;25698:185;25738:1;25755:20;25773:1;25755:20;:::i;:::-;25750:25;;25789:20;25807:1;25789:20;:::i;:::-;25784:25;;25828:1;25818:35;;25833:18;;:::i;:::-;25818:35;25875:1;25872;25868:9;25863:14;;25698:185;;;;:::o;25889:348::-;25929:7;25952:20;25970:1;25952:20;:::i;:::-;25947:25;;25986:20;26004:1;25986:20;:::i;:::-;25981:25;;26174:1;26106:66;26102:74;26099:1;26096:81;26091:1;26084:9;26077:17;26073:105;26070:131;;;26181:18;;:::i;:::-;26070:131;26229:1;26226;26222:9;26211:20;;25889:348;;;;:::o;26243:172::-;26383:24;26379:1;26371:6;26367:14;26360:48;26243:172;:::o;26421:366::-;26563:3;26584:67;26648:2;26643:3;26584:67;:::i;:::-;26577:74;;26660:93;26749:3;26660:93;:::i;:::-;26778:2;26773:3;26769:12;26762:19;;26421:366;;;:::o;26793:419::-;26959:4;26997:2;26986:9;26982:18;26974:26;;27046:9;27040:4;27036:20;27032:1;27021:9;27017:17;27010:47;27074:131;27200:4;27074:131;:::i;:::-;27066:139;;26793:419;;;:::o;27218:173::-;27358:25;27354:1;27346:6;27342:14;27335:49;27218:173;:::o;27397:366::-;27539:3;27560:67;27624:2;27619:3;27560:67;:::i;:::-;27553:74;;27636:93;27725:3;27636:93;:::i;:::-;27754:2;27749:3;27745:12;27738:19;;27397:366;;;:::o;27769:419::-;27935:4;27973:2;27962:9;27958:18;27950:26;;28022:9;28016:4;28012:20;28008:1;27997:9;27993:17;27986:47;28050:131;28176:4;28050:131;:::i;:::-;28042:139;;27769:419;;;:::o;28194:143::-;28251:5;28282:6;28276:13;28267:22;;28298:33;28325:5;28298:33;:::i;:::-;28194:143;;;;:::o;28343:351::-;28413:6;28462:2;28450:9;28441:7;28437:23;28433:32;28430:119;;;28468:79;;:::i;:::-;28430:119;28588:1;28613:64;28669:7;28660:6;28649:9;28645:22;28613:64;:::i;:::-;28603:74;;28559:128;28343:351;;;;:::o;28700:85::-;28745:7;28774:5;28763:16;;28700:85;;;:::o;28791:158::-;28849:9;28882:61;28900:42;28909:32;28935:5;28909:32;:::i;:::-;28900:42;:::i;:::-;28882:61;:::i;:::-;28869:74;;28791:158;;;:::o;28955:147::-;29050:45;29089:5;29050:45;:::i;:::-;29045:3;29038:58;28955:147;;:::o;29108:114::-;29175:6;29209:5;29203:12;29193:22;;29108:114;;;:::o;29228:184::-;29327:11;29361:6;29356:3;29349:19;29401:4;29396:3;29392:14;29377:29;;29228:184;;;;:::o;29418:132::-;29485:4;29508:3;29500:11;;29538:4;29533:3;29529:14;29521:22;;29418:132;;;:::o;29556:108::-;29633:24;29651:5;29633:24;:::i;:::-;29628:3;29621:37;29556:108;;:::o;29670:179::-;29739:10;29760:46;29802:3;29794:6;29760:46;:::i;:::-;29838:4;29833:3;29829:14;29815:28;;29670:179;;;;:::o;29855:113::-;29925:4;29957;29952:3;29948:14;29940:22;;29855:113;;;:::o;30004:732::-;30123:3;30152:54;30200:5;30152:54;:::i;:::-;30222:86;30301:6;30296:3;30222:86;:::i;:::-;30215:93;;30332:56;30382:5;30332:56;:::i;:::-;30411:7;30442:1;30427:284;30452:6;30449:1;30446:13;30427:284;;;30528:6;30522:13;30555:63;30614:3;30599:13;30555:63;:::i;:::-;30548:70;;30641:60;30694:6;30641:60;:::i;:::-;30631:70;;30487:224;30474:1;30471;30467:9;30462:14;;30427:284;;;30431:14;30727:3;30720:10;;30128:608;;;30004:732;;;;:::o;30742:831::-;31005:4;31043:3;31032:9;31028:19;31020:27;;31057:71;31125:1;31114:9;31110:17;31101:6;31057:71;:::i;:::-;31138:80;31214:2;31203:9;31199:18;31190:6;31138:80;:::i;:::-;31265:9;31259:4;31255:20;31250:2;31239:9;31235:18;31228:48;31293:108;31396:4;31387:6;31293:108;:::i;:::-;31285:116;;31411:72;31479:2;31468:9;31464:18;31455:6;31411:72;:::i;:::-;31493:73;31561:3;31550:9;31546:19;31537:6;31493:73;:::i;:::-;30742:831;;;;;;;;:::o;31579:807::-;31828:4;31866:3;31855:9;31851:19;31843:27;;31880:71;31948:1;31937:9;31933:17;31924:6;31880:71;:::i;:::-;31961:72;32029:2;32018:9;32014:18;32005:6;31961:72;:::i;:::-;32043:80;32119:2;32108:9;32104:18;32095:6;32043:80;:::i;:::-;32133;32209:2;32198:9;32194:18;32185:6;32133:80;:::i;:::-;32223:73;32291:3;32280:9;32276:19;32267:6;32223:73;:::i;:::-;32306;32374:3;32363:9;32359:19;32350:6;32306:73;:::i;:::-;31579:807;;;;;;;;;:::o;32392:143::-;32449:5;32480:6;32474:13;32465:22;;32496:33;32523:5;32496:33;:::i;:::-;32392:143;;;;:::o;32541:663::-;32629:6;32637;32645;32694:2;32682:9;32673:7;32669:23;32665:32;32662:119;;;32700:79;;:::i;:::-;32662:119;32820:1;32845:64;32901:7;32892:6;32881:9;32877:22;32845:64;:::i;:::-;32835:74;;32791:128;32958:2;32984:64;33040:7;33031:6;33020:9;33016:22;32984:64;:::i;:::-;32974:74;;32929:129;33097:2;33123:64;33179:7;33170:6;33159:9;33155:22;33123:64;:::i;:::-;33113:74;;33068:129;32541:663;;;;;:::o

Swarm Source

ipfs://57ea293661e9dd1d62cb58804c81ed871ddc15bd4d30cd7ab82c26c4ad1dbf48
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.