ETH Price: $3,296.65 (-3.38%)
Gas: 22 Gwei

Token

BUHUNDS KIBBLES (KIBBLES)
 

Overview

Max Total Supply

1,000,000,000 KIBBLES

Holders

27

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
4,006,417.576402317042331964 KIBBLES

Value
$0.00
0xa649a7b78071da654e677cd4bb7a55949911a483
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:
BUHUNDSKIBBLES

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 2022-10-11
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.13;

/**
🍗 Welcome to BUHUNDS KIBBLES. $BUH needs $KIBBLES 🍗

We all know $BUH, and we know he loves $KIBBLES. $KIBBLES are the diet recommended by veterinarians for the Norwegian BUHUND. $BUH - BUHUND, is a 0% token that crossed 5m mcap in few hours, and $KIBBLES is here to support $BUH in numerous ways:

10% initial anti-jeet tax, then will be reduced to 6%.
- 3% of tax in $BUH reflections
- 2% auto-increase the LP
- 5% for supporting $BUH and marketing

https://t.me/buhkibbles
**/

/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

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

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

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

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

/**
 * ERC20 standard interface.
 */
interface IERC20 {
    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;
    }

    /**
     * Function modifier to require caller to be contract deployer
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!Owner"); _;
    }

    /**
     * Check if address is 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;
}

interface TastyKibbles {
    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external;
    function setShare(address shareholder, uint256 amount) external;
    function deposit() external payable;
    function process(uint256 gas) external;
    function getDividends(address shareholder) external;
}


contract Kibbles is TastyKibbles {

    using SafeMath for uint256;
    address _token;

    address public BUHUND;

    IDEXRouter router;

    struct Share {
        uint256 amount;
        uint256 totalExcluded;
        uint256 totalRealised;
    }

    address[] shareholders;
    mapping (address => uint256) shareholderIndexes;
    mapping (address => uint256) shareholderClaims;
    mapping (address => Share) public shares;

    uint256 public totalShares;
    uint256 public totalDividends;
    uint256 public totalDistributed;
    uint256 public dividendsPerShare;
    uint256 public dividendsPerShareAccuracyFactor = 10 ** 36;

    uint256 public minPeriod = 30 minutes;
    uint256 public minDistribution = 0 * (10 ** 9);

    uint256 public currentIndex;
    bool initialized;

    modifier initialization() {
        require(!initialized);
        _;
        initialized = true;
    }

    modifier onlyToken() {
        require(msg.sender == _token); _;
    }

    constructor () {
        _token = msg.sender;
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // uniswap router
        BUHUND = 0x66bcD0C22Bb15cD1bA7199C7a383DC89528f4427;
    }
    
    receive() external payable {
        deposit();
    }

    function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external override onlyToken {
        minPeriod = newMinPeriod;
        minDistribution = newMinDistribution;
    }

    function setShare(address shareholder, uint256 amount) external override onlyToken {

        if(shares[shareholder].amount > 0){
            distributeDividend(shareholder);
        }

        if(amount > 0 && shares[shareholder].amount == 0){
            addShareholder(shareholder);
        }else if(amount == 0 && shares[shareholder].amount > 0){
            removeShareholder(shareholder);
        }

        totalShares = totalShares.sub(shares[shareholder].amount).add(amount);
        shares[shareholder].amount = amount;
        shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
    }

    function deposit() public payable override {
        uint256 balanceBefore = IERC20(BUHUND).balanceOf(address(this));

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

        // takes the current balance of WETH on the contract and transfers to BUHUND
        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}(
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amount = IERC20(BUHUND).balanceOf(address(this)).sub(balanceBefore);
        // amount = amount of new BUHUND just converted. add that to the totalDividends
        totalDividends = totalDividends.add(amount);
        dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares));
    }
    
    function process(uint256 gas) external override {
        uint256 shareholderCount = shareholders.length;

        if(shareholderCount == 0) { return; }

        uint256 iterations = 0;
        uint256 gasUsed = 0;
        uint256 gasLeft = gasleft();

        while(gasUsed < gas && iterations < shareholderCount) {

            if(currentIndex >= shareholderCount){ currentIndex = 0; }

            if(shouldDistribute(shareholders[currentIndex])){
                distributeDividend(shareholders[currentIndex]);
            }

            gasUsed = gasUsed.add(gasLeft.sub(gasleft()));
            gasLeft = gasleft();
            currentIndex++;
            iterations++;
        }
    }
    
    function shouldDistribute(address shareholder) public view returns (bool) {
        return shareholderClaims[shareholder] + minPeriod < block.timestamp
                && getUnpaidEarnings(shareholder) > minDistribution;
    }

    function distributeDividend(address shareholder) internal {
        if(shares[shareholder].amount == 0){ return; }

        uint256 amount = getUnpaidEarnings(shareholder);
        if(amount > 0){
            totalDistributed = totalDistributed.add(amount);
            IERC20(BUHUND).transfer(shareholder, amount);
            shareholderClaims[shareholder] = block.timestamp;
            shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
        }
    }
    
    function getDividends(address shareholder) external override onlyToken {
        distributeDividend(shareholder);
    }

    function getUnpaidEarnings(address shareholder) public view returns (uint256) {
        if(shares[shareholder].amount == 0){ return 0; }

        uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount);
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;

        if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; }

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

    function getCumulativeDividends(uint256 share) internal view returns (uint256) {
        return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor);
    }

    function addShareholder(address shareholder) internal {
        shareholderIndexes[shareholder] = shareholders.length;
        shareholders.push(shareholder);
    }

    function removeShareholder(address shareholder) internal {
        shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1];
        shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder];
        shareholders.pop();
    }
}

contract BUHUNDSKIBBLES is IERC20, Auth {
    using SafeMath for uint256;

    address public BUHUND = 0x66bcD0C22Bb15cD1bA7199C7a383DC89528f4427; //BUHUND COIN

    string private constant _name = "BUHUNDS KIBBLES";
    string private constant _symbol = "KIBBLES";
    uint8 private constant _decimals = 18;
    
    uint256 private _totalSupply = 1000000000 * (10 ** _decimals);

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

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

    bool public antiBot = true;

    mapping (address => bool) private bots; 
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public isDividendExempt;

    uint256 public launchedAt;
    address public lpWallet = DEAD;

    uint256 public buyFee = 10;
    uint256 public sellFee = 10;

    uint256 public toReflections = 30;
    uint256 public toLiquidity = 20;
    uint256 public toMarketing = 50;

    uint256 public allocationSum = 100;

    IDEXRouter public router;
    address public pair;
    address public factory;
    address private tokenOwner;
    address public teamWallet = payable(0xFf9Ac6B29d0862D576AD790B4d426F147e265E73); // add address here

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public tradingOpen = false;
    
    Kibbles public kibbles;
    uint256 public kibblesGas = 0;

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

    uint256 public maxTx = _totalSupply.div(100);
    uint256 public maxWallet = _totalSupply.div(50);
    uint256 public swapThreshold = _totalSupply.div(400);

    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;

        kibbles = new Kibbles();
        
        isFeeExempt[_owner] = true;
        isFeeExempt[teamWallet] = true;            

        isDividendExempt[pair] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;    

        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD] = true;
        isTxLimitExempt[teamWallet] = 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;
        }
    }
    
    //once enabled, cannot be reversed
    function openTrading() external onlyOwner {
        launchedAt = block.number;
        tradingOpen = true;
    }      

    function changeTotalFees(uint256 newBuyFee, uint256 newSellFee) external onlyOwner {

        buyFee = newBuyFee;
        sellFee = newSellFee;

        require(buyFee <= 10, "too high");
        require(sellFee <= 10, "too high");
    } 
    
    function changeFeeAllocation(uint256 newRewardFee, uint256 newLpFee, uint256 newMarketingFee) external onlyOwner {
        toReflections = newRewardFee;
        toLiquidity = newLpFee;
        toMarketing = newMarketingFee;
    }

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

    function changeWalletLimit(uint256 newLimit) external onlyOwner {
        maxWallet  = newLimit;
    }
    
    function changeIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

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

    function setteamWallet(address payable newteamWallet) external onlyOwner {
        teamWallet = payable(newteamWallet);
    }

    function setOwnerWallet(address payable newOwnerWallet) external onlyOwner {
        tokenOwner = newOwnerWallet;
    }     

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

    function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external onlyOwner {
        kibbles.setDistributionCriteria(newMinPeriod, newMinDistribution);        
    }

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

    function _setIsDividendExempt(address holder, bool exempt) internal {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;
        if(exempt){
            kibbles.setShare(holder, 0);
        }else{
            kibbles.setShare(holder, _balances[holder]);
        }
    }

    function setIsDividendExempt(address holder, bool exempt) external onlyOwner {
        _setIsDividendExempt(holder, exempt);
    }

    function changeXenaTheWarriorGas(uint256 newGas) external onlyOwner {
        kibblesGas = newGas;
    }           

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(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 approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

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

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _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].sub(amount, "Insufficient Allowance");
        }

        return _transfer(sender, recipient, amount);
    }

    function _transfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (sender!= owner && recipient!= owner) require(tradingOpen, "hold ur horses big guy."); //transfers disabled before tradingActive
        require(!bots[sender] && !bots[recipient]);

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

        require(amount <= maxTx || isTxLimitExempt[sender], "tx");

        if(!isTxLimitExempt[recipient] && antiBot)
        {
            require(_balances[recipient].add(amount) <= maxWallet, "wallet");
        }

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

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        
        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

        // Dividend tracker
        if(!isDividendExempt[sender]) {
            try kibbles.setShare(sender, _balances[sender]) {} catch {}
        }

        if(!isDividendExempt[recipient]) {
            try kibbles.setShare(recipient, _balances[recipient]) {} catch {} 
        }

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

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }  
    
    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 feeApplicable = pair == recipient ? sellFee : buyFee;
        uint256 feeAmount = amount.mul(feeApplicable).div(100);

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

        return amount.sub(feeAmount);
    }
    
    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, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

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

    function swapBack() internal lockTheSwap {
    
        uint256 tokenBalance = _balances[address(this)]; 
        uint256 tokensForLiquidity = tokenBalance.mul(toLiquidity).div(100).div(2);     
        uint256 amountToSwap = tokenBalance.sub(tokensForLiquidity);

        swapTokensForEth(amountToSwap);

        uint256 totalEthBalance = address(this).balance;
        uint256 ethForBUHUND = totalEthBalance.mul(toReflections).div(100);
        uint256 ethForTeam = totalEthBalance.mul(toMarketing).div(100);
        uint256 ethForLiquidity = totalEthBalance.mul(toLiquidity).div(100).div(2);
      
        if (totalEthBalance > 0){
            payable(teamWallet).transfer(ethForTeam);
        }
        
        try kibbles.deposit{value: ethForBUHUND}() {} catch {}
        
        if (tokensForLiquidity > 0){
            addLiquidity(tokensForLiquidity, ethForLiquidity);
        }
    }

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

    function clearStuckEth() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        if(contractETHBalance > 0){          
            payable(teamWallet).transfer(contractETHBalance);
        }
    }

    function manualProcessGas(uint256 manualGas) external onlyOwner {
        kibbles.process(manualGas);
    }

    function checkPendingReflections(address shareholder) external view returns (uint256) {
        return kibbles.getUnpaidEarnings(shareholder);
    }

    function getKibblesRewards() external {
        kibbles.getDividends(msg.sender);
    }
}

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":[],"name":"BUHUND","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allocationSum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antiBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newRewardFee","type":"uint256"},{"internalType":"uint256","name":"newLpFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"}],"name":"changeFeeAllocation","outputs":[],"stateMutability":"nonpayable","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":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"changeTotalFees","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":[{"internalType":"uint256","name":"newGas","type":"uint256"}],"name":"changeXenaTheWarriorGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"checkPendingReflections","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckEth","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":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getKibblesRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"kibbles","outputs":[{"internalType":"contract Kibbles","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"kibblesGas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"manualGas","type":"uint256"}],"name":"manualProcessGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinPeriod","type":"uint256"},{"internalType":"uint256","name":"newMinDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwnerWallet","type":"address"}],"name":"setOwnerWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newteamWallet","type":"address"}],"name":"setteamWallet","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":"teamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toReflections","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"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"},{"stateMutability":"payable","type":"receive"}]

60806040527366bcd0c22bb15cd1ba7199c7a383dc89528f4427600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a62000069919062000dd1565b633b9aca006200007a919062000e22565b60025561dead600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860146101000a81548160ff021916908315150217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a600f55600a601055601e60115560146012556032601355606460145573ff9ac6b29d0862d576ad790b4d426f147e265e73601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601960156101000a81548160ff0219169083151502179055506000601960166101000a81548160ff0219169083151502179055506000601b556200024b606460025462000b6f60201b6200212e1790919060201c565b601c556200026b603260025462000b6f60201b6200212e1790919060201c565b601d556200028c61019060025462000b6f60201b6200212e1790919060201c565b601e553480156200029c57600080fd5b50604051620078a2380380620078a28339818101604052810190620002c2919062000eed565b80806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003c7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ed919062000eed565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200049b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004c1919062000eed565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200051f92919062000f30565b6020604051808303816000875af11580156200053f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000565919062000eed565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550604051620006769062000c29565b604051809103906000f08015801562000693573d6000803e3d6000fd5b50601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600254600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60025460405162000b60919062000f6e565b60405180910390a350620010ba565b600062000bb983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000bc160201b60201c565b905092915050565b6000808311829062000c0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c0291906200102f565b60405180910390fd5b506000838562000c1c919062001082565b9050809150509392505050565b61204c806200585683390190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000cc55780860481111562000c9d5762000c9c62000c37565b5b600185161562000cad5780820291505b808102905062000cbd8562000c66565b945062000c7d565b94509492505050565b60008262000ce0576001905062000db3565b8162000cf0576000905062000db3565b816001811462000d09576002811462000d145762000d4a565b600191505062000db3565b60ff84111562000d295762000d2862000c37565b5b8360020a91508482111562000d435762000d4262000c37565b5b5062000db3565b5060208310610133831016604e8410600b841016171562000d845782820a90508381111562000d7e5762000d7d62000c37565b5b62000db3565b62000d93848484600162000c73565b9250905081840481111562000dad5762000dac62000c37565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000dde8262000dba565b915062000deb8362000dc4565b925062000e1a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000cce565b905092915050565b600062000e2f8262000dba565b915062000e3c8362000dba565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000e785762000e7762000c37565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000eb58262000e88565b9050919050565b62000ec78162000ea8565b811462000ed357600080fd5b50565b60008151905062000ee78162000ebc565b92915050565b60006020828403121562000f065762000f0562000e83565b5b600062000f168482850162000ed6565b91505092915050565b62000f2a8162000ea8565b82525050565b600060408201905062000f47600083018562000f1f565b62000f56602083018462000f1f565b9392505050565b62000f688162000dba565b82525050565b600060208201905062000f85600083018462000f5d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101562000fc757808201518184015260208101905062000faa565b8381111562000fd7576000848401525b50505050565b6000601f19601f8301169050919050565b600062000ffb8262000f8b565b62001007818562000f96565b93506200101981856020860162000fa7565b620010248162000fdd565b840191505092915050565b600060208201905081810360008301526200104b818462000fee565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200108f8262000dba565b91506200109c8362000dba565b925082620010af57620010ae62001053565b5b828204905092915050565b61478c80620010ca6000396000f3fe6080604052600436106103855760003560e01c806375df1305116101d1578063bf56b37111610102578063dc691af0116100a0578063f887ea401161006f578063f887ea4014610cfb578063f8b45b0514610d26578063fabe628314610d51578063ffb54a9914610d7a5761038c565b8063dc691af014610c41578063dd62ed3e14610c6c578063f2fde38b14610ca9578063f708a64f14610cd25761038c565b8063c9567bf9116100dc578063c9567bf914610bbf578063caa5581b14610bd6578063d920334e14610c01578063da010a7d14610c2a5761038c565b8063bf56b37114610b3e578063c45a015514610b69578063c8d1293d14610b945761038c565b80638b42507f1161016f578063a8aa1b3111610149578063a8aa1b3114610a84578063a9059cbb14610aaf578063b515566a14610aec578063bb542ef014610b155761038c565b80638b42507f146109f357806395d89b4114610a30578063a3a2e89e14610a5b5761038c565b80637dfcbe34116101ab5780637dfcbe341461095d578063819340311461098857806389291a8f146109b1578063893d20e8146109c85761038c565b806375df1305146108cc57806377359aa7146108f75780637db1342c146109345761038c565b8063313ce567116102b65780634a74bb02116102545780636303516c116102235780636303516c1461082257806366eb37851461084d57806370a08231146108645780637437681e146108a15761038c565b80634a74bb02146107665780635423aa2414610791578063571ac8b0146107ba57806359927044146107f75761038c565b80634355855a116102905780634355855a146106aa57806345434377146106e757806345bb0a1114610712578063470624021461073b5761038c565b8063313ce567146106195780633dab5269146106445780633f4218e01461066d5761038c565b8063273123b7116103235780632d48e896116102fd5780632d48e896146105615780632dbea2e11461058a5780632f54bf6e146105b357806330ca34ee146105f05761038c565b8063273123b7146104e25780632b112e491461050b5780632b14ca56146105365761038c565b8063095ea7b31161035f578063095ea7b31461041257806318160ddd1461044f57806323b872dd1461047a57806326212f94146104b75761038c565b806301069f5a146103915780630445b667146103bc57806306fdde03146103e75761038c565b3661038c57005b600080fd5b34801561039d57600080fd5b506103a6610da5565b6040516103b3919061383b565b60405180910390f35b3480156103c857600080fd5b506103d1610dcb565b6040516103de919061386f565b60405180910390f35b3480156103f357600080fd5b506103fc610dd1565b6040516104099190613923565b60405180910390f35b34801561041e57600080fd5b50610439600480360381019061043491906139c3565b610e0e565b6040516104469190613a1e565b60405180910390f35b34801561045b57600080fd5b50610464610f00565b604051610471919061386f565b60405180910390f35b34801561048657600080fd5b506104a1600480360381019061049c9190613a39565b610f0a565b6040516104ae9190613a1e565b60405180910390f35b3480156104c357600080fd5b506104cc61110a565b6040516104d99190613a9b565b60405180910390f35b3480156104ee57600080fd5b5061050960048036038101906105049190613ab6565b611130565b005b34801561051757600080fd5b506105206111d3565b60405161052d919061386f565b60405180910390f35b34801561054257600080fd5b5061054b611255565b604051610558919061386f565b60405180910390f35b34801561056d57600080fd5b5061058860048036038101906105839190613ae3565b61125b565b005b34801561059657600080fd5b506105b160048036038101906105ac9190613b23565b611336565b005b3480156105bf57600080fd5b506105da60048036038101906105d59190613ab6565b611398565b6040516105e79190613a1e565b60405180910390f35b3480156105fc57600080fd5b5061061760048036038101906106129190613ae3565b6113f1565b005b34801561062557600080fd5b5061062e6114d7565b60405161063b9190613b92565b60405180910390f35b34801561065057600080fd5b5061066b60048036038101906106669190613bd9565b6114e0565b005b34801561067957600080fd5b50610694600480360381019061068f9190613ab6565b61154d565b6040516106a19190613a1e565b60405180910390f35b3480156106b657600080fd5b506106d160048036038101906106cc9190613ab6565b61156d565b6040516106de9190613a1e565b60405180910390f35b3480156106f357600080fd5b506106fc61158d565b604051610709919061386f565b60405180910390f35b34801561071e57600080fd5b5061073960048036038101906107349190613c57565b611593565b005b34801561074757600080fd5b5061075061161f565b60405161075d919061386f565b60405180910390f35b34801561077257600080fd5b5061077b611625565b6040516107889190613a1e565b60405180910390f35b34801561079d57600080fd5b506107b860048036038101906107b39190613c84565b611638565b005b3480156107c657600080fd5b506107e160048036038101906107dc9190613ab6565b61168a565b6040516107ee9190613a1e565b60405180910390f35b34801561080357600080fd5b5061080c6116bd565b6040516108199190613a9b565b60405180910390f35b34801561082e57600080fd5b506108376116e3565b6040516108449190613a9b565b60405180910390f35b34801561085957600080fd5b50610862611709565b005b34801561087057600080fd5b5061088b60048036038101906108869190613ab6565b61175b565b604051610898919061386f565b60405180910390f35b3480156108ad57600080fd5b506108b66117a4565b6040516108c3919061386f565b60405180910390f35b3480156108d857600080fd5b506108e16117aa565b6040516108ee919061386f565b60405180910390f35b34801561090357600080fd5b5061091e60048036038101906109199190613ab6565b6117b0565b60405161092b919061386f565b60405180910390f35b34801561094057600080fd5b5061095b60048036038101906109569190613c84565b611855565b005b34801561096957600080fd5b506109726118a7565b60405161097f9190613a1e565b60405180910390f35b34801561099457600080fd5b506109af60048036038101906109aa9190613c84565b6118ba565b005b3480156109bd57600080fd5b506109c6611992565b005b3480156109d457600080fd5b506109dd611a55565b6040516109ea9190613a9b565b60405180910390f35b3480156109ff57600080fd5b50610a1a6004803603810190610a159190613ab6565b611a7e565b604051610a279190613a1e565b60405180910390f35b348015610a3c57600080fd5b50610a45611a9e565b604051610a529190613923565b60405180910390f35b348015610a6757600080fd5b50610a826004803603810190610a7d9190613cb1565b611adb565b005b348015610a9057600080fd5b50610a99611b7e565b604051610aa69190613a9b565b60405180910390f35b348015610abb57600080fd5b50610ad66004803603810190610ad191906139c3565b611ba4565b604051610ae39190613a1e565b60405180910390f35b348015610af857600080fd5b50610b136004803603810190610b0e9190613e39565b611bb9565b005b348015610b2157600080fd5b50610b3c6004803603810190610b379190613c57565b611c96565b005b348015610b4a57600080fd5b50610b53611d22565b604051610b60919061386f565b60405180910390f35b348015610b7557600080fd5b50610b7e611d28565b604051610b8b9190613a9b565b60405180910390f35b348015610ba057600080fd5b50610ba9611d4e565b604051610bb6919061386f565b60405180910390f35b348015610bcb57600080fd5b50610bd4611d54565b005b348015610be257600080fd5b50610beb611dc0565b604051610bf8919061386f565b60405180910390f35b348015610c0d57600080fd5b50610c286004803603810190610c239190613c84565b611dc6565b005b348015610c3657600080fd5b50610c3f611e18565b005b348015610c4d57600080fd5b50610c56611ea7565b604051610c63919061386f565b60405180910390f35b348015610c7857600080fd5b50610c936004803603810190610c8e9190613e82565b611ead565b604051610ca0919061386f565b60405180910390f35b348015610cb557600080fd5b50610cd06004803603810190610ccb9190613c57565b611f34565b005b348015610cde57600080fd5b50610cf96004803603810190610cf49190613cb1565b611ff6565b005b348015610d0757600080fd5b50610d1061204c565b604051610d1d9190613ef5565b60405180910390f35b348015610d3257600080fd5b50610d3b612072565b604051610d48919061386f565b60405180910390f35b348015610d5d57600080fd5b50610d786004803603810190610d739190613cb1565b612078565b005b348015610d8657600080fd5b50610d8f61211b565b604051610d9c9190613a1e565b60405180910390f35b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601e5481565b60606040518060400160405280600f81526020017f425548554e4453204b4942424c45530000000000000000000000000000000000815250905090565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610eee919061386f565b60405180910390a36001905092915050565b6000600254905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146110f657611075826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121789092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6111018484846121dc565b90509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61113933611398565b611178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116f90613f5c565b60405180910390fd5b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611250611203600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661175b565b611242611231600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661175b565b600254612aee90919063ffffffff16565b612aee90919063ffffffff16565b905090565b60105481565b61126433611398565b6112a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129a90613f5c565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b8152600401611300929190613f7c565b600060405180830381600087803b15801561131a57600080fd5b505af115801561132e573d6000803e3d6000fd5b505050505050565b61133f33611398565b61137e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137590613f5c565b60405180910390fd5b826011819055508160128190555080601381905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6113fa33611398565b611439576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143090613f5c565b60405180910390fd5b81600f8190555080601081905550600a600f54111561148d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148490613ff1565b60405180910390fd5b600a60105411156114d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ca90613ff1565b60405180910390fd5b5050565b60006012905090565b6114e933611398565b611528576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151f90613f5c565b60405180910390fd5b81601960156101000a81548160ff02191690831515021790555080601e819055505050565b600a6020528060005260406000206000915054906101000a900460ff1681565b600c6020528060005260406000206000915054906101000a900460ff1681565b60145481565b61159c33611398565b6115db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d290613f5c565b60405180910390fd5b80601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b601960159054906101000a900460ff1681565b61164133611398565b611680576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167790613f5c565b60405180910390fd5b80601b8190555050565b60006116b6827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610e0e565b9050919050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61171233611398565b611751576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174890613f5c565b60405180910390fd5b611759612b38565b565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601c5481565b60135481565b6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166328fd3198836040518263ffffffff1660e01b815260040161180d9190613a9b565b602060405180830381865afa15801561182a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184e9190614026565b9050919050565b61185e33611398565b61189d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189490613f5c565b60405180910390fd5b80601d8190555050565b600860149054906101000a900460ff1681565b6118c333611398565b611902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f990613f5c565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c479826040518263ffffffff1660e01b815260040161195d919061386f565b600060405180830381600087803b15801561197757600080fd5b505af115801561198b573d6000803e3d6000fd5b5050505050565b61199b33611398565b6119da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d190613f5c565b60405180910390fd5b60004790506000811115611a5257601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a50573d6000803e3d6000fd5b505b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600781526020017f4b4942424c455300000000000000000000000000000000000000000000000000815250905090565b611ae433611398565b611b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1a90613f5c565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611bb13384846121dc565b905092915050565b611bc233611398565b611c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf890613f5c565b60405180910390fd5b60005b8151811015611c9257600160096000848481518110611c2657611c25614053565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611c8a906140b1565b915050611c04565b5050565b611c9f33611398565b611cde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd590613f5c565b60405180910390fd5b80601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d5481565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125481565b611d5d33611398565b611d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9390613f5c565b60405180910390fd5b43600d819055506001601960166101000a81548160ff021916908315150217905550565b60115481565b611dcf33611398565b611e0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0590613f5c565b60405180910390fd5b80601c8190555050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634634d81c336040518263ffffffff1660e01b8152600401611e739190613a9b565b600060405180830381600087803b158015611e8d57600080fd5b505af1158015611ea1573d6000803e3d6000fd5b50505050565b601b5481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611f3d33611398565b611f7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7390613f5c565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611feb919061411a565b60405180910390a150565b611fff33611398565b61203e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203590613f5c565b60405180910390fd5b6120488282612dba565b5050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d5481565b61208133611398565b6120c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b790613f5c565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601960169054906101000a900460ff1681565b600061217083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613012565b905092915050565b60008383111582906121c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b79190613923565b60405180910390fd5b50600083856121cf9190614135565b9050809150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612287575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122dc57601960169054906101000a900460ff166122db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d2906141b5565b60405180910390fd5b5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123805750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61238957600080fd5b601960149054906101000a900460ff16156123b0576123a9848484613075565b9050612ae7565b601c548211158061240a5750600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612449576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244090614221565b60405180910390fd5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124af5750600860149054906101000a900460ff165b1561254b57601d5461250983600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461324890919063ffffffff16565b111561254a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125419061428d565b60405180910390fd5b5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156125b65750601960149054906101000a900460ff16155b80156125ce5750601960159054906101000a900460ff165b801561261b5750601e54600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b1561262957612628612b38565b5b6126b2826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121789092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561279b5750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6127a557826127b1565b6127b08585856132a6565b5b905061280581600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461324890919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661296257601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016129359291906142ad565b600060405180830381600087803b15801561294f57600080fd5b505af1925050508015612960575060015b505b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612a7c57601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612a4f9291906142ad565b600060405180830381600087803b158015612a6957600080fd5b505af1925050508015612a7a575060015b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ad9919061386f565b60405180910390a360019150505b9392505050565b6000612b3083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612178565b905092915050565b6001601960146101000a81548160ff0219169083151502179055506000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000612bd46002612bc66064612bb86012548761344e90919063ffffffff16565b61212e90919063ffffffff16565b61212e90919063ffffffff16565b90506000612beb8284612aee90919063ffffffff16565b9050612bf6816134c8565b60004790506000612c256064612c176011548561344e90919063ffffffff16565b61212e90919063ffffffff16565b90506000612c516064612c436013548661344e90919063ffffffff16565b61212e90919063ffffffff16565b90506000612c906002612c826064612c746012548961344e90919063ffffffff16565b61212e90919063ffffffff16565b61212e90919063ffffffff16565b90506000841115612d0557601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612d03573d6000803e3d6000fd5b505b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015612d6f57600080fd5b505af193505050508015612d81575060015b506000861115612d9657612d9586826136e9565b5b505050505050506000601960146101000a81548160ff021916908315150217905550565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612e445750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b612e4d57600080fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015612f3f57601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401612f08929190614311565b600060405180830381600087803b158015612f2257600080fd5b505af1158015612f36573d6000803e3d6000fd5b5050505061300e565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612fdb9291906142ad565b600060405180830381600087803b158015612ff557600080fd5b505af1158015613009573d6000803e3d6000fd5b505050505b5050565b60008083118290613059576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130509190613923565b60405180910390fd5b50600083856130689190614369565b9050809150509392505050565b6000613100826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121789092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061319582600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461324890919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613235919061386f565b60405180910390a3600190509392505050565b6000808284613257919061439a565b90508381101561329c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132939061443c565b60405180910390fd5b8091505092915050565b6000808373ffffffffffffffffffffffffffffffffffffffff16601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461330657600f5461330a565b6010545b905060006133346064613326848761344e90919063ffffffff16565b61212e90919063ffffffff16565b905061338881600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461324890919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613428919061386f565b60405180910390a36134438185612aee90919063ffffffff16565b925050509392505050565b600080830361346057600090506134c2565b6000828461346e919061445c565b905082848261347d9190614369565b146134bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134b490614528565b60405180910390fd5b809150505b92915050565b6000600267ffffffffffffffff8111156134e5576134e4613cf6565b5b6040519080825280602002602001820160405280156135135781602001602082028036833780820191505090505b509050308160008151811061352b5761352a614053565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135f6919061455d565b8160018151811061360a57613609614053565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061364e3083610e0e565b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016136b3959493929190614648565b600060405180830381600087803b1580156136cd57600080fd5b505af11580156136e1573d6000803e3d6000fd5b505050505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613772969594939291906146a2565b60606040518083038185885af1158015613790573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906137b59190614703565b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006138016137fc6137f7846137bc565b6137dc565b6137bc565b9050919050565b6000613813826137e6565b9050919050565b600061382582613808565b9050919050565b6138358161381a565b82525050565b6000602082019050613850600083018461382c565b92915050565b6000819050919050565b61386981613856565b82525050565b60006020820190506138846000830184613860565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156138c45780820151818401526020810190506138a9565b838111156138d3576000848401525b50505050565b6000601f19601f8301169050919050565b60006138f58261388a565b6138ff8185613895565b935061390f8185602086016138a6565b613918816138d9565b840191505092915050565b6000602082019050818103600083015261393d81846138ea565b905092915050565b6000604051905090565b600080fd5b600080fd5b6000613964826137bc565b9050919050565b61397481613959565b811461397f57600080fd5b50565b6000813590506139918161396b565b92915050565b6139a081613856565b81146139ab57600080fd5b50565b6000813590506139bd81613997565b92915050565b600080604083850312156139da576139d961394f565b5b60006139e885828601613982565b92505060206139f9858286016139ae565b9150509250929050565b60008115159050919050565b613a1881613a03565b82525050565b6000602082019050613a336000830184613a0f565b92915050565b600080600060608486031215613a5257613a5161394f565b5b6000613a6086828701613982565b9350506020613a7186828701613982565b9250506040613a82868287016139ae565b9150509250925092565b613a9581613959565b82525050565b6000602082019050613ab06000830184613a8c565b92915050565b600060208284031215613acc57613acb61394f565b5b6000613ada84828501613982565b91505092915050565b60008060408385031215613afa57613af961394f565b5b6000613b08858286016139ae565b9250506020613b19858286016139ae565b9150509250929050565b600080600060608486031215613b3c57613b3b61394f565b5b6000613b4a868287016139ae565b9350506020613b5b868287016139ae565b9250506040613b6c868287016139ae565b9150509250925092565b600060ff82169050919050565b613b8c81613b76565b82525050565b6000602082019050613ba76000830184613b83565b92915050565b613bb681613a03565b8114613bc157600080fd5b50565b600081359050613bd381613bad565b92915050565b60008060408385031215613bf057613bef61394f565b5b6000613bfe85828601613bc4565b9250506020613c0f858286016139ae565b9150509250929050565b6000613c24826137bc565b9050919050565b613c3481613c19565b8114613c3f57600080fd5b50565b600081359050613c5181613c2b565b92915050565b600060208284031215613c6d57613c6c61394f565b5b6000613c7b84828501613c42565b91505092915050565b600060208284031215613c9a57613c9961394f565b5b6000613ca8848285016139ae565b91505092915050565b60008060408385031215613cc857613cc761394f565b5b6000613cd685828601613982565b9250506020613ce785828601613bc4565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613d2e826138d9565b810181811067ffffffffffffffff82111715613d4d57613d4c613cf6565b5b80604052505050565b6000613d60613945565b9050613d6c8282613d25565b919050565b600067ffffffffffffffff821115613d8c57613d8b613cf6565b5b602082029050602081019050919050565b600080fd5b6000613db5613db084613d71565b613d56565b90508083825260208201905060208402830185811115613dd857613dd7613d9d565b5b835b81811015613e015780613ded8882613982565b845260208401935050602081019050613dda565b5050509392505050565b600082601f830112613e2057613e1f613cf1565b5b8135613e30848260208601613da2565b91505092915050565b600060208284031215613e4f57613e4e61394f565b5b600082013567ffffffffffffffff811115613e6d57613e6c613954565b5b613e7984828501613e0b565b91505092915050565b60008060408385031215613e9957613e9861394f565b5b6000613ea785828601613982565b9250506020613eb885828601613982565b9150509250929050565b6000613ecd826137e6565b9050919050565b6000613edf82613ec2565b9050919050565b613eef81613ed4565b82525050565b6000602082019050613f0a6000830184613ee6565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000613f46600683613895565b9150613f5182613f10565b602082019050919050565b60006020820190508181036000830152613f7581613f39565b9050919050565b6000604082019050613f916000830185613860565b613f9e6020830184613860565b9392505050565b7f746f6f2068696768000000000000000000000000000000000000000000000000600082015250565b6000613fdb600883613895565b9150613fe682613fa5565b602082019050919050565b6000602082019050818103600083015261400a81613fce565b9050919050565b60008151905061402081613997565b92915050565b60006020828403121561403c5761403b61394f565b5b600061404a84828501614011565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006140bc82613856565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036140ee576140ed614082565b5b600182019050919050565b600061410482613ec2565b9050919050565b614114816140f9565b82525050565b600060208201905061412f600083018461410b565b92915050565b600061414082613856565b915061414b83613856565b92508282101561415e5761415d614082565b5b828203905092915050565b7f686f6c6420757220686f7273657320626967206775792e000000000000000000600082015250565b600061419f601783613895565b91506141aa82614169565b602082019050919050565b600060208201905081810360008301526141ce81614192565b9050919050565b7f7478000000000000000000000000000000000000000000000000000000000000600082015250565b600061420b600283613895565b9150614216826141d5565b602082019050919050565b6000602082019050818103600083015261423a816141fe565b9050919050565b7f77616c6c65740000000000000000000000000000000000000000000000000000600082015250565b6000614277600683613895565b915061428282614241565b602082019050919050565b600060208201905081810360008301526142a68161426a565b9050919050565b60006040820190506142c26000830185613a8c565b6142cf6020830184613860565b9392505050565b6000819050919050565b60006142fb6142f66142f1846142d6565b6137dc565b613856565b9050919050565b61430b816142e0565b82525050565b60006040820190506143266000830185613a8c565b6143336020830184614302565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061437482613856565b915061437f83613856565b92508261438f5761438e61433a565b5b828204905092915050565b60006143a582613856565b91506143b083613856565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156143e5576143e4614082565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614426601b83613895565b9150614431826143f0565b602082019050919050565b6000602082019050818103600083015261445581614419565b9050919050565b600061446782613856565b915061447283613856565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156144ab576144aa614082565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614512602183613895565b915061451d826144b6565b604082019050919050565b6000602082019050818103600083015261454181614505565b9050919050565b6000815190506145578161396b565b92915050565b6000602082840312156145735761457261394f565b5b600061458184828501614548565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6145bf81613959565b82525050565b60006145d183836145b6565b60208301905092915050565b6000602082019050919050565b60006145f58261458a565b6145ff8185614595565b935061460a836145a6565b8060005b8381101561463b57815161462288826145c5565b975061462d836145dd565b92505060018101905061460e565b5085935050505092915050565b600060a08201905061465d6000830188613860565b61466a6020830187614302565b818103604083015261467c81866145ea565b905061468b6060830185613a8c565b6146986080830184613860565b9695505050505050565b600060c0820190506146b76000830189613a8c565b6146c46020830188613860565b6146d16040830187614302565b6146de6060830186614302565b6146eb6080830185613a8c565b6146f860a0830184613860565b979650505050505050565b60008060006060848603121561471c5761471b61394f565b5b600061472a86828701614011565b935050602061473b86828701614011565b925050604061474c86828701614011565b915050925092509256fea2646970667358221220748560d55a6d8a270ef2f48a94c600eb0ce014348af19d2ec346e0be6f6e6e0864736f6c634300080d003360806040526ec097ce7bc90715b34b9f1000000000600b55610708600c556000600d5534801561002e57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507366bcd0c22bb15cd1ba7199c7a383dc89528f4427600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611f24806101286000396000f3fe6080604052600436106101025760003560e01c80634fab0ae811610095578063d0e30db011610064578063d0e30db01461034c578063e2d2e21914610356578063efca2eed14610381578063ffb2c479146103ac578063ffd49c84146103d557610111565b80634fab0ae81461027a5780638c21cd52146102a5578063997664d7146102e2578063ce7c2ac21461030d57610111565b806328fd3198116100d157806328fd3198146101c05780632d48e896146101fd5780633a98ef39146102265780634634d81c1461025157610111565b806311ce023d1461011657806314b6ca961461014157806326212f941461016a57806326987b601461019557610111565b366101115761010f610400565b005b600080fd5b34801561012257600080fd5b5061012b6107e8565b604051610138919061167d565b60405180910390f35b34801561014d57600080fd5b5061016860048036038101906101639190611727565b6107ee565b005b34801561017657600080fd5b5061017f610aad565b60405161018c9190611776565b60405180910390f35b3480156101a157600080fd5b506101aa610ad3565b6040516101b7919061167d565b60405180910390f35b3480156101cc57600080fd5b506101e760048036038101906101e29190611791565b610ad9565b6040516101f4919061167d565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f91906117be565b610bf2565b005b34801561023257600080fd5b5061023b610c5c565b604051610248919061167d565b60405180910390f35b34801561025d57600080fd5b5061027860048036038101906102739190611791565b610c62565b005b34801561028657600080fd5b5061028f610cc6565b60405161029c919061167d565b60405180910390f35b3480156102b157600080fd5b506102cc60048036038101906102c79190611791565b610ccc565b6040516102d99190611819565b60405180910390f35b3480156102ee57600080fd5b506102f7610d39565b604051610304919061167d565b60405180910390f35b34801561031957600080fd5b50610334600480360381019061032f9190611791565b610d3f565b60405161034393929190611834565b60405180910390f35b610354610400565b005b34801561036257600080fd5b5061036b610d69565b604051610378919061167d565b60405180910390f35b34801561038d57600080fd5b50610396610d6f565b6040516103a3919061167d565b60405180910390f35b3480156103b857600080fd5b506103d360048036038101906103ce919061186b565b610d75565b005b3480156103e157600080fd5b506103ea610eb0565b6040516103f7919061167d565b60405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161045d9190611776565b602060405180830381865afa15801561047a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049e91906118ad565b90506000600267ffffffffffffffff8111156104bd576104bc6118da565b5b6040519080825280602002602001820160405280156104eb5781602001602082028036833780820191505090505b509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561055b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057f919061191e565b816000815181106105935761059261194b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106106045761060361194b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de953460008430426040518663ffffffff1660e01b81526004016106a19493929190611a7d565b6000604051808303818588803b1580156106ba57600080fd5b505af11580156106ce573d6000803e3d6000fd5b5050505050600061078383600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107349190611776565b602060405180830381865afa158015610751573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077591906118ad565b610eb690919063ffffffff16565b905061079a81600854610f0090919063ffffffff16565b6008819055506107dd6107cc6007546107be84600b54610f5e90919063ffffffff16565b610fd890919063ffffffff16565b600a54610f0090919063ffffffff16565b600a81905550505050565b600b5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461084657600080fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154111561089b5761089a82611022565b5b6000811180156108ed57506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b15610900576108fb826112b5565b610962565b60008114801561095257506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b156109615761096082611364565b5b5b6109cb816109bd600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754610eb690919063ffffffff16565b610f0090919063ffffffff16565b60078190555080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550610a63600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461156b565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015403610b2d5760009050610bed565b6000610b7a600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461156b565b90506000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050808211610bd557600092505050610bed565b610be88183610eb690919063ffffffff16565b925050505b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c4a57600080fd5b81600c8190555080600d819055505050565b60075481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cba57600080fd5b610cc381611022565b50565b600d5481565b600042600c54600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d1c9190611af8565b108015610d325750600d54610d3083610ad9565b115b9050919050565b60085481565b60066020528060005260406000206000915090508060000154908060010154908060020154905083565b600a5481565b60095481565b6000600380549050905060008103610d8d5750610ead565b60008060005a90505b8482108015610da457508383105b15610ea85783600e5410610dbb576000600e819055505b610e046003600e5481548110610dd457610dd361194b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610ccc565b15610e5357610e526003600e5481548110610e2257610e2161194b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611022565b5b610e78610e695a83610eb690919063ffffffff16565b83610f0090919063ffffffff16565b91505a9050600e6000815480929190610e9090611b4e565b91905055508280610ea090611b4e565b935050610d96565b505050505b50565b600c5481565b6000610ef883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061159d565b905092915050565b6000808284610f0f9190611af8565b905083811015610f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4b90611bf3565b60405180910390fd5b8091505092915050565b6000808303610f705760009050610fd2565b60008284610f7e9190611c13565b9050828482610f8d9190611c9c565b14610fcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc490611d3f565b60405180910390fd5b809150505b92915050565b600061101a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611601565b905092915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015403156112b257600061107882610ad9565b905060008111156112b05761109881600954610f0090919063ffffffff16565b600981905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b81526004016110fb929190611d5f565b6020604051808303816000875af115801561111a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113e9190611db4565b5042600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111d881600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154610f0090919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550611269600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461156b565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600380549050600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506003819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360016003805490506113789190611de1565b815481106113895761138861194b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166003600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815481106114075761140661194b565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460046000600360016003805490506114a79190611de1565b815481106114b8576114b761194b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600380548061153357611532611e15565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b6000611596600b54611588600a5485610f5e90919063ffffffff16565b610fd890919063ffffffff16565b9050919050565b60008383111582906115e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dc9190611ecc565b60405180910390fd5b50600083856115f49190611de1565b9050809150509392505050565b60008083118290611648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163f9190611ecc565b60405180910390fd5b50600083856116579190611c9c565b9050809150509392505050565b6000819050919050565b61167781611664565b82525050565b6000602082019050611692600083018461166e565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006116c88261169d565b9050919050565b6116d8816116bd565b81146116e357600080fd5b50565b6000813590506116f5816116cf565b92915050565b61170481611664565b811461170f57600080fd5b50565b600081359050611721816116fb565b92915050565b6000806040838503121561173e5761173d611698565b5b600061174c858286016116e6565b925050602061175d85828601611712565b9150509250929050565b611770816116bd565b82525050565b600060208201905061178b6000830184611767565b92915050565b6000602082840312156117a7576117a6611698565b5b60006117b5848285016116e6565b91505092915050565b600080604083850312156117d5576117d4611698565b5b60006117e385828601611712565b92505060206117f485828601611712565b9150509250929050565b60008115159050919050565b611813816117fe565b82525050565b600060208201905061182e600083018461180a565b92915050565b6000606082019050611849600083018661166e565b611856602083018561166e565b611863604083018461166e565b949350505050565b60006020828403121561188157611880611698565b5b600061188f84828501611712565b91505092915050565b6000815190506118a7816116fb565b92915050565b6000602082840312156118c3576118c2611698565b5b60006118d184828501611898565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050611918816116cf565b92915050565b60006020828403121561193457611933611698565b5b600061194284828501611909565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000819050919050565b60006119a96119a461199f8461197a565b611984565b611664565b9050919050565b6119b98161198e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6119f4816116bd565b82525050565b6000611a0683836119eb565b60208301905092915050565b6000602082019050919050565b6000611a2a826119bf565b611a3481856119ca565b9350611a3f836119db565b8060005b83811015611a70578151611a5788826119fa565b9750611a6283611a12565b925050600181019050611a43565b5085935050505092915050565b6000608082019050611a9260008301876119b0565b8181036020830152611aa48186611a1f565b9050611ab36040830185611767565b611ac0606083018461166e565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611b0382611664565b9150611b0e83611664565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611b4357611b42611ac9565b5b828201905092915050565b6000611b5982611664565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611b8b57611b8a611ac9565b5b600182019050919050565b600082825260208201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000611bdd601b83611b96565b9150611be882611ba7565b602082019050919050565b60006020820190508181036000830152611c0c81611bd0565b9050919050565b6000611c1e82611664565b9150611c2983611664565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611c6257611c61611ac9565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ca782611664565b9150611cb283611664565b925082611cc257611cc1611c6d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000611d29602183611b96565b9150611d3482611ccd565b604082019050919050565b60006020820190508181036000830152611d5881611d1c565b9050919050565b6000604082019050611d746000830185611767565b611d81602083018461166e565b9392505050565b611d91816117fe565b8114611d9c57600080fd5b50565b600081519050611dae81611d88565b92915050565b600060208284031215611dca57611dc9611698565b5b6000611dd884828501611d9f565b91505092915050565b6000611dec82611664565b9150611df783611664565b925082821015611e0a57611e09611ac9565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600081519050919050565b60005b83811015611e6d578082015181840152602081019050611e52565b83811115611e7c576000848401525b50505050565b6000601f19601f8301169050919050565b6000611e9e82611e44565b611ea88185611b96565b9350611eb8818560208601611e4f565b611ec181611e82565b840191505092915050565b60006020820190508181036000830152611ee68184611e93565b90509291505056fea2646970667358221220cae7d1db958e1f1d09674f4a06b187c3d1a363f690d6ff8c894d2dc6e0de89ab64736f6c634300080d0033000000000000000000000000e0f2e44127dc951f752c16e0536209a1dfa07d78

Deployed Bytecode

0x6080604052600436106103855760003560e01c806375df1305116101d1578063bf56b37111610102578063dc691af0116100a0578063f887ea401161006f578063f887ea4014610cfb578063f8b45b0514610d26578063fabe628314610d51578063ffb54a9914610d7a5761038c565b8063dc691af014610c41578063dd62ed3e14610c6c578063f2fde38b14610ca9578063f708a64f14610cd25761038c565b8063c9567bf9116100dc578063c9567bf914610bbf578063caa5581b14610bd6578063d920334e14610c01578063da010a7d14610c2a5761038c565b8063bf56b37114610b3e578063c45a015514610b69578063c8d1293d14610b945761038c565b80638b42507f1161016f578063a8aa1b3111610149578063a8aa1b3114610a84578063a9059cbb14610aaf578063b515566a14610aec578063bb542ef014610b155761038c565b80638b42507f146109f357806395d89b4114610a30578063a3a2e89e14610a5b5761038c565b80637dfcbe34116101ab5780637dfcbe341461095d578063819340311461098857806389291a8f146109b1578063893d20e8146109c85761038c565b806375df1305146108cc57806377359aa7146108f75780637db1342c146109345761038c565b8063313ce567116102b65780634a74bb02116102545780636303516c116102235780636303516c1461082257806366eb37851461084d57806370a08231146108645780637437681e146108a15761038c565b80634a74bb02146107665780635423aa2414610791578063571ac8b0146107ba57806359927044146107f75761038c565b80634355855a116102905780634355855a146106aa57806345434377146106e757806345bb0a1114610712578063470624021461073b5761038c565b8063313ce567146106195780633dab5269146106445780633f4218e01461066d5761038c565b8063273123b7116103235780632d48e896116102fd5780632d48e896146105615780632dbea2e11461058a5780632f54bf6e146105b357806330ca34ee146105f05761038c565b8063273123b7146104e25780632b112e491461050b5780632b14ca56146105365761038c565b8063095ea7b31161035f578063095ea7b31461041257806318160ddd1461044f57806323b872dd1461047a57806326212f94146104b75761038c565b806301069f5a146103915780630445b667146103bc57806306fdde03146103e75761038c565b3661038c57005b600080fd5b34801561039d57600080fd5b506103a6610da5565b6040516103b3919061383b565b60405180910390f35b3480156103c857600080fd5b506103d1610dcb565b6040516103de919061386f565b60405180910390f35b3480156103f357600080fd5b506103fc610dd1565b6040516104099190613923565b60405180910390f35b34801561041e57600080fd5b50610439600480360381019061043491906139c3565b610e0e565b6040516104469190613a1e565b60405180910390f35b34801561045b57600080fd5b50610464610f00565b604051610471919061386f565b60405180910390f35b34801561048657600080fd5b506104a1600480360381019061049c9190613a39565b610f0a565b6040516104ae9190613a1e565b60405180910390f35b3480156104c357600080fd5b506104cc61110a565b6040516104d99190613a9b565b60405180910390f35b3480156104ee57600080fd5b5061050960048036038101906105049190613ab6565b611130565b005b34801561051757600080fd5b506105206111d3565b60405161052d919061386f565b60405180910390f35b34801561054257600080fd5b5061054b611255565b604051610558919061386f565b60405180910390f35b34801561056d57600080fd5b5061058860048036038101906105839190613ae3565b61125b565b005b34801561059657600080fd5b506105b160048036038101906105ac9190613b23565b611336565b005b3480156105bf57600080fd5b506105da60048036038101906105d59190613ab6565b611398565b6040516105e79190613a1e565b60405180910390f35b3480156105fc57600080fd5b5061061760048036038101906106129190613ae3565b6113f1565b005b34801561062557600080fd5b5061062e6114d7565b60405161063b9190613b92565b60405180910390f35b34801561065057600080fd5b5061066b60048036038101906106669190613bd9565b6114e0565b005b34801561067957600080fd5b50610694600480360381019061068f9190613ab6565b61154d565b6040516106a19190613a1e565b60405180910390f35b3480156106b657600080fd5b506106d160048036038101906106cc9190613ab6565b61156d565b6040516106de9190613a1e565b60405180910390f35b3480156106f357600080fd5b506106fc61158d565b604051610709919061386f565b60405180910390f35b34801561071e57600080fd5b5061073960048036038101906107349190613c57565b611593565b005b34801561074757600080fd5b5061075061161f565b60405161075d919061386f565b60405180910390f35b34801561077257600080fd5b5061077b611625565b6040516107889190613a1e565b60405180910390f35b34801561079d57600080fd5b506107b860048036038101906107b39190613c84565b611638565b005b3480156107c657600080fd5b506107e160048036038101906107dc9190613ab6565b61168a565b6040516107ee9190613a1e565b60405180910390f35b34801561080357600080fd5b5061080c6116bd565b6040516108199190613a9b565b60405180910390f35b34801561082e57600080fd5b506108376116e3565b6040516108449190613a9b565b60405180910390f35b34801561085957600080fd5b50610862611709565b005b34801561087057600080fd5b5061088b60048036038101906108869190613ab6565b61175b565b604051610898919061386f565b60405180910390f35b3480156108ad57600080fd5b506108b66117a4565b6040516108c3919061386f565b60405180910390f35b3480156108d857600080fd5b506108e16117aa565b6040516108ee919061386f565b60405180910390f35b34801561090357600080fd5b5061091e60048036038101906109199190613ab6565b6117b0565b60405161092b919061386f565b60405180910390f35b34801561094057600080fd5b5061095b60048036038101906109569190613c84565b611855565b005b34801561096957600080fd5b506109726118a7565b60405161097f9190613a1e565b60405180910390f35b34801561099457600080fd5b506109af60048036038101906109aa9190613c84565b6118ba565b005b3480156109bd57600080fd5b506109c6611992565b005b3480156109d457600080fd5b506109dd611a55565b6040516109ea9190613a9b565b60405180910390f35b3480156109ff57600080fd5b50610a1a6004803603810190610a159190613ab6565b611a7e565b604051610a279190613a1e565b60405180910390f35b348015610a3c57600080fd5b50610a45611a9e565b604051610a529190613923565b60405180910390f35b348015610a6757600080fd5b50610a826004803603810190610a7d9190613cb1565b611adb565b005b348015610a9057600080fd5b50610a99611b7e565b604051610aa69190613a9b565b60405180910390f35b348015610abb57600080fd5b50610ad66004803603810190610ad191906139c3565b611ba4565b604051610ae39190613a1e565b60405180910390f35b348015610af857600080fd5b50610b136004803603810190610b0e9190613e39565b611bb9565b005b348015610b2157600080fd5b50610b3c6004803603810190610b379190613c57565b611c96565b005b348015610b4a57600080fd5b50610b53611d22565b604051610b60919061386f565b60405180910390f35b348015610b7557600080fd5b50610b7e611d28565b604051610b8b9190613a9b565b60405180910390f35b348015610ba057600080fd5b50610ba9611d4e565b604051610bb6919061386f565b60405180910390f35b348015610bcb57600080fd5b50610bd4611d54565b005b348015610be257600080fd5b50610beb611dc0565b604051610bf8919061386f565b60405180910390f35b348015610c0d57600080fd5b50610c286004803603810190610c239190613c84565b611dc6565b005b348015610c3657600080fd5b50610c3f611e18565b005b348015610c4d57600080fd5b50610c56611ea7565b604051610c63919061386f565b60405180910390f35b348015610c7857600080fd5b50610c936004803603810190610c8e9190613e82565b611ead565b604051610ca0919061386f565b60405180910390f35b348015610cb557600080fd5b50610cd06004803603810190610ccb9190613c57565b611f34565b005b348015610cde57600080fd5b50610cf96004803603810190610cf49190613cb1565b611ff6565b005b348015610d0757600080fd5b50610d1061204c565b604051610d1d9190613ef5565b60405180910390f35b348015610d3257600080fd5b50610d3b612072565b604051610d48919061386f565b60405180910390f35b348015610d5d57600080fd5b50610d786004803603810190610d739190613cb1565b612078565b005b348015610d8657600080fd5b50610d8f61211b565b604051610d9c9190613a1e565b60405180910390f35b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601e5481565b60606040518060400160405280600f81526020017f425548554e4453204b4942424c45530000000000000000000000000000000000815250905090565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610eee919061386f565b60405180910390a36001905092915050565b6000600254905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146110f657611075826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121789092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6111018484846121dc565b90509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61113933611398565b611178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116f90613f5c565b60405180910390fd5b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611250611203600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661175b565b611242611231600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661175b565b600254612aee90919063ffffffff16565b612aee90919063ffffffff16565b905090565b60105481565b61126433611398565b6112a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129a90613f5c565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b8152600401611300929190613f7c565b600060405180830381600087803b15801561131a57600080fd5b505af115801561132e573d6000803e3d6000fd5b505050505050565b61133f33611398565b61137e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137590613f5c565b60405180910390fd5b826011819055508160128190555080601381905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6113fa33611398565b611439576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143090613f5c565b60405180910390fd5b81600f8190555080601081905550600a600f54111561148d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148490613ff1565b60405180910390fd5b600a60105411156114d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ca90613ff1565b60405180910390fd5b5050565b60006012905090565b6114e933611398565b611528576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151f90613f5c565b60405180910390fd5b81601960156101000a81548160ff02191690831515021790555080601e819055505050565b600a6020528060005260406000206000915054906101000a900460ff1681565b600c6020528060005260406000206000915054906101000a900460ff1681565b60145481565b61159c33611398565b6115db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d290613f5c565b60405180910390fd5b80601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b601960159054906101000a900460ff1681565b61164133611398565b611680576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167790613f5c565b60405180910390fd5b80601b8190555050565b60006116b6827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610e0e565b9050919050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61171233611398565b611751576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174890613f5c565b60405180910390fd5b611759612b38565b565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601c5481565b60135481565b6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166328fd3198836040518263ffffffff1660e01b815260040161180d9190613a9b565b602060405180830381865afa15801561182a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184e9190614026565b9050919050565b61185e33611398565b61189d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189490613f5c565b60405180910390fd5b80601d8190555050565b600860149054906101000a900460ff1681565b6118c333611398565b611902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f990613f5c565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c479826040518263ffffffff1660e01b815260040161195d919061386f565b600060405180830381600087803b15801561197757600080fd5b505af115801561198b573d6000803e3d6000fd5b5050505050565b61199b33611398565b6119da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d190613f5c565b60405180910390fd5b60004790506000811115611a5257601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a50573d6000803e3d6000fd5b505b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600781526020017f4b4942424c455300000000000000000000000000000000000000000000000000815250905090565b611ae433611398565b611b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1a90613f5c565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611bb13384846121dc565b905092915050565b611bc233611398565b611c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf890613f5c565b60405180910390fd5b60005b8151811015611c9257600160096000848481518110611c2657611c25614053565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611c8a906140b1565b915050611c04565b5050565b611c9f33611398565b611cde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd590613f5c565b60405180910390fd5b80601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d5481565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125481565b611d5d33611398565b611d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9390613f5c565b60405180910390fd5b43600d819055506001601960166101000a81548160ff021916908315150217905550565b60115481565b611dcf33611398565b611e0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0590613f5c565b60405180910390fd5b80601c8190555050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634634d81c336040518263ffffffff1660e01b8152600401611e739190613a9b565b600060405180830381600087803b158015611e8d57600080fd5b505af1158015611ea1573d6000803e3d6000fd5b50505050565b601b5481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611f3d33611398565b611f7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7390613f5c565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611feb919061411a565b60405180910390a150565b611fff33611398565b61203e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203590613f5c565b60405180910390fd5b6120488282612dba565b5050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d5481565b61208133611398565b6120c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b790613f5c565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601960169054906101000a900460ff1681565b600061217083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613012565b905092915050565b60008383111582906121c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b79190613923565b60405180910390fd5b50600083856121cf9190614135565b9050809150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612287575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122dc57601960169054906101000a900460ff166122db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d2906141b5565b60405180910390fd5b5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123805750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61238957600080fd5b601960149054906101000a900460ff16156123b0576123a9848484613075565b9050612ae7565b601c548211158061240a5750600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612449576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244090614221565b60405180910390fd5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124af5750600860149054906101000a900460ff165b1561254b57601d5461250983600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461324890919063ffffffff16565b111561254a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125419061428d565b60405180910390fd5b5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156125b65750601960149054906101000a900460ff16155b80156125ce5750601960159054906101000a900460ff165b801561261b5750601e54600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b1561262957612628612b38565b5b6126b2826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121789092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561279b5750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6127a557826127b1565b6127b08585856132a6565b5b905061280581600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461324890919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661296257601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016129359291906142ad565b600060405180830381600087803b15801561294f57600080fd5b505af1925050508015612960575060015b505b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612a7c57601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612a4f9291906142ad565b600060405180830381600087803b158015612a6957600080fd5b505af1925050508015612a7a575060015b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ad9919061386f565b60405180910390a360019150505b9392505050565b6000612b3083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612178565b905092915050565b6001601960146101000a81548160ff0219169083151502179055506000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000612bd46002612bc66064612bb86012548761344e90919063ffffffff16565b61212e90919063ffffffff16565b61212e90919063ffffffff16565b90506000612beb8284612aee90919063ffffffff16565b9050612bf6816134c8565b60004790506000612c256064612c176011548561344e90919063ffffffff16565b61212e90919063ffffffff16565b90506000612c516064612c436013548661344e90919063ffffffff16565b61212e90919063ffffffff16565b90506000612c906002612c826064612c746012548961344e90919063ffffffff16565b61212e90919063ffffffff16565b61212e90919063ffffffff16565b90506000841115612d0557601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612d03573d6000803e3d6000fd5b505b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015612d6f57600080fd5b505af193505050508015612d81575060015b506000861115612d9657612d9586826136e9565b5b505050505050506000601960146101000a81548160ff021916908315150217905550565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612e445750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b612e4d57600080fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015612f3f57601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401612f08929190614311565b600060405180830381600087803b158015612f2257600080fd5b505af1158015612f36573d6000803e3d6000fd5b5050505061300e565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612fdb9291906142ad565b600060405180830381600087803b158015612ff557600080fd5b505af1158015613009573d6000803e3d6000fd5b505050505b5050565b60008083118290613059576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130509190613923565b60405180910390fd5b50600083856130689190614369565b9050809150509392505050565b6000613100826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121789092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061319582600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461324890919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613235919061386f565b60405180910390a3600190509392505050565b6000808284613257919061439a565b90508381101561329c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132939061443c565b60405180910390fd5b8091505092915050565b6000808373ffffffffffffffffffffffffffffffffffffffff16601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461330657600f5461330a565b6010545b905060006133346064613326848761344e90919063ffffffff16565b61212e90919063ffffffff16565b905061338881600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461324890919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613428919061386f565b60405180910390a36134438185612aee90919063ffffffff16565b925050509392505050565b600080830361346057600090506134c2565b6000828461346e919061445c565b905082848261347d9190614369565b146134bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134b490614528565b60405180910390fd5b809150505b92915050565b6000600267ffffffffffffffff8111156134e5576134e4613cf6565b5b6040519080825280602002602001820160405280156135135781602001602082028036833780820191505090505b509050308160008151811061352b5761352a614053565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135f6919061455d565b8160018151811061360a57613609614053565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061364e3083610e0e565b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016136b3959493929190614648565b600060405180830381600087803b1580156136cd57600080fd5b505af11580156136e1573d6000803e3d6000fd5b505050505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613772969594939291906146a2565b60606040518083038185885af1158015613790573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906137b59190614703565b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006138016137fc6137f7846137bc565b6137dc565b6137bc565b9050919050565b6000613813826137e6565b9050919050565b600061382582613808565b9050919050565b6138358161381a565b82525050565b6000602082019050613850600083018461382c565b92915050565b6000819050919050565b61386981613856565b82525050565b60006020820190506138846000830184613860565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156138c45780820151818401526020810190506138a9565b838111156138d3576000848401525b50505050565b6000601f19601f8301169050919050565b60006138f58261388a565b6138ff8185613895565b935061390f8185602086016138a6565b613918816138d9565b840191505092915050565b6000602082019050818103600083015261393d81846138ea565b905092915050565b6000604051905090565b600080fd5b600080fd5b6000613964826137bc565b9050919050565b61397481613959565b811461397f57600080fd5b50565b6000813590506139918161396b565b92915050565b6139a081613856565b81146139ab57600080fd5b50565b6000813590506139bd81613997565b92915050565b600080604083850312156139da576139d961394f565b5b60006139e885828601613982565b92505060206139f9858286016139ae565b9150509250929050565b60008115159050919050565b613a1881613a03565b82525050565b6000602082019050613a336000830184613a0f565b92915050565b600080600060608486031215613a5257613a5161394f565b5b6000613a6086828701613982565b9350506020613a7186828701613982565b9250506040613a82868287016139ae565b9150509250925092565b613a9581613959565b82525050565b6000602082019050613ab06000830184613a8c565b92915050565b600060208284031215613acc57613acb61394f565b5b6000613ada84828501613982565b91505092915050565b60008060408385031215613afa57613af961394f565b5b6000613b08858286016139ae565b9250506020613b19858286016139ae565b9150509250929050565b600080600060608486031215613b3c57613b3b61394f565b5b6000613b4a868287016139ae565b9350506020613b5b868287016139ae565b9250506040613b6c868287016139ae565b9150509250925092565b600060ff82169050919050565b613b8c81613b76565b82525050565b6000602082019050613ba76000830184613b83565b92915050565b613bb681613a03565b8114613bc157600080fd5b50565b600081359050613bd381613bad565b92915050565b60008060408385031215613bf057613bef61394f565b5b6000613bfe85828601613bc4565b9250506020613c0f858286016139ae565b9150509250929050565b6000613c24826137bc565b9050919050565b613c3481613c19565b8114613c3f57600080fd5b50565b600081359050613c5181613c2b565b92915050565b600060208284031215613c6d57613c6c61394f565b5b6000613c7b84828501613c42565b91505092915050565b600060208284031215613c9a57613c9961394f565b5b6000613ca8848285016139ae565b91505092915050565b60008060408385031215613cc857613cc761394f565b5b6000613cd685828601613982565b9250506020613ce785828601613bc4565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613d2e826138d9565b810181811067ffffffffffffffff82111715613d4d57613d4c613cf6565b5b80604052505050565b6000613d60613945565b9050613d6c8282613d25565b919050565b600067ffffffffffffffff821115613d8c57613d8b613cf6565b5b602082029050602081019050919050565b600080fd5b6000613db5613db084613d71565b613d56565b90508083825260208201905060208402830185811115613dd857613dd7613d9d565b5b835b81811015613e015780613ded8882613982565b845260208401935050602081019050613dda565b5050509392505050565b600082601f830112613e2057613e1f613cf1565b5b8135613e30848260208601613da2565b91505092915050565b600060208284031215613e4f57613e4e61394f565b5b600082013567ffffffffffffffff811115613e6d57613e6c613954565b5b613e7984828501613e0b565b91505092915050565b60008060408385031215613e9957613e9861394f565b5b6000613ea785828601613982565b9250506020613eb885828601613982565b9150509250929050565b6000613ecd826137e6565b9050919050565b6000613edf82613ec2565b9050919050565b613eef81613ed4565b82525050565b6000602082019050613f0a6000830184613ee6565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000613f46600683613895565b9150613f5182613f10565b602082019050919050565b60006020820190508181036000830152613f7581613f39565b9050919050565b6000604082019050613f916000830185613860565b613f9e6020830184613860565b9392505050565b7f746f6f2068696768000000000000000000000000000000000000000000000000600082015250565b6000613fdb600883613895565b9150613fe682613fa5565b602082019050919050565b6000602082019050818103600083015261400a81613fce565b9050919050565b60008151905061402081613997565b92915050565b60006020828403121561403c5761403b61394f565b5b600061404a84828501614011565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006140bc82613856565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036140ee576140ed614082565b5b600182019050919050565b600061410482613ec2565b9050919050565b614114816140f9565b82525050565b600060208201905061412f600083018461410b565b92915050565b600061414082613856565b915061414b83613856565b92508282101561415e5761415d614082565b5b828203905092915050565b7f686f6c6420757220686f7273657320626967206775792e000000000000000000600082015250565b600061419f601783613895565b91506141aa82614169565b602082019050919050565b600060208201905081810360008301526141ce81614192565b9050919050565b7f7478000000000000000000000000000000000000000000000000000000000000600082015250565b600061420b600283613895565b9150614216826141d5565b602082019050919050565b6000602082019050818103600083015261423a816141fe565b9050919050565b7f77616c6c65740000000000000000000000000000000000000000000000000000600082015250565b6000614277600683613895565b915061428282614241565b602082019050919050565b600060208201905081810360008301526142a68161426a565b9050919050565b60006040820190506142c26000830185613a8c565b6142cf6020830184613860565b9392505050565b6000819050919050565b60006142fb6142f66142f1846142d6565b6137dc565b613856565b9050919050565b61430b816142e0565b82525050565b60006040820190506143266000830185613a8c565b6143336020830184614302565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061437482613856565b915061437f83613856565b92508261438f5761438e61433a565b5b828204905092915050565b60006143a582613856565b91506143b083613856565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156143e5576143e4614082565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614426601b83613895565b9150614431826143f0565b602082019050919050565b6000602082019050818103600083015261445581614419565b9050919050565b600061446782613856565b915061447283613856565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156144ab576144aa614082565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614512602183613895565b915061451d826144b6565b604082019050919050565b6000602082019050818103600083015261454181614505565b9050919050565b6000815190506145578161396b565b92915050565b6000602082840312156145735761457261394f565b5b600061458184828501614548565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6145bf81613959565b82525050565b60006145d183836145b6565b60208301905092915050565b6000602082019050919050565b60006145f58261458a565b6145ff8185614595565b935061460a836145a6565b8060005b8381101561463b57815161462288826145c5565b975061462d836145dd565b92505060018101905061460e565b5085935050505092915050565b600060a08201905061465d6000830188613860565b61466a6020830187614302565b818103604083015261467c81866145ea565b905061468b6060830185613a8c565b6146986080830184613860565b9695505050505050565b600060c0820190506146b76000830189613a8c565b6146c46020830188613860565b6146d16040830187614302565b6146de6060830186614302565b6146eb6080830185613a8c565b6146f860a0830184613860565b979650505050505050565b60008060006060848603121561471c5761471b61394f565b5b600061472a86828701614011565b935050602061473b86828701614011565b925050604061474c86828701614011565b915050925092509256fea2646970667358221220748560d55a6d8a270ef2f48a94c600eb0ce014348af19d2ec346e0be6f6e6e0864736f6c634300080d0033

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

000000000000000000000000e0f2e44127dc951f752c16e0536209a1dfa07d78

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

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


Deployed Bytecode Sourcemap

11260:11970:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12886:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13176:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17337:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17763:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17067:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18277:366;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11342:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16217:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16917:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12343:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16015:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14805:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3252:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14548:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17161:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15808:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12075:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12181:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12497:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15539:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12310:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12795:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16792:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17987:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12659:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12271:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22539:74;;;;;;;;;;;;;:::i;:::-;;17507:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13071:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12457:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22980:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15149:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11994:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22863:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22621:234;;;;;;;;;;;;;:::i;:::-;;17423:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12126:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17247:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15265:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12571:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18117:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14201:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15674:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12239:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12597:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12419:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14419:115;;;;;;;;;;;;;:::i;:::-;;12379:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15046:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23138:89;;;;;;;;;;;;;:::i;:::-;;12915:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17618:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3363:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16652:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12540:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13122:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15395:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12842:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12886:22;;;;;;;;;;;;;:::o;13176:52::-;;;;:::o;17337:80::-;17385:13;17409:5;;;;;;;;;;;;;;;;;17402:12;;17337:80;:::o;17763:216::-;17838:4;17890:6;17855:11;:23;17867:10;17855:23;;;;;;;;;;;;;;;:32;17879:7;17855:32;;;;;;;;;;;;;;;:41;;;;17933:7;17912:37;;17921:10;17912:37;;;17942:6;17912:37;;;;;;:::i;:::-;;;;;;;;17967:4;17960:11;;17763:216;;;;:::o;17067:88::-;17122:7;17140:12;;17133:19;;17067:88;:::o;18277:366::-;18377:4;18432:17;18397:11;:19;18409:6;18397:19;;;;;;;;;;;;;;;:31;18417:10;18397:31;;;;;;;;;;;;;;;;:52;18394:186;;18499:69;18535:6;18499:69;;;;;;;;;;;;;;;;;:11;:19;18511:6;18499:19;;;;;;;;;;;;;;;:31;18519:10;18499:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;18465:11;:19;18477:6;18465:19;;;;;;;;;;;;;;;:31;18485:10;18465:31;;;;;;;;;;;;;;;:103;;;;18394:186;18599:36;18609:6;18617:9;18628:6;18599:9;:36::i;:::-;18592:43;;18277:366;;;;;:::o;11342:66::-;;;;;;;;;;;;;:::o;16217:90::-;3151:19;3159:10;3151:7;:19::i;:::-;3143:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16294:5:::1;16279:4;:12;16284:6;16279:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;16217:90:::0;:::o;16917:142::-;16970:7;16997:54;17035:15;17045:4;;;;;;;;;;;17035:9;:15::i;:::-;16997:33;17014:15;17024:4;;;;;;;;;;;17014:9;:15::i;:::-;16997:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;16990:61;;16917:142;:::o;12343:27::-;;;;:::o;16015:194::-;3151:19;3159:10;3151:7;:19::i;:::-;3143:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16128:7:::1;;;;;;;;;;;:31;;;16160:12;16174:18;16128:65;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16015:194:::0;;:::o;14805:233::-;3151:19;3159:10;3151:7;:19::i;:::-;3143:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14945:12:::1;14929:13;:28;;;;14982:8;14968:11;:22;;;;15015:15;15001:11;:29;;;;14805:233:::0;;;:::o;3252:103::-;3307:4;3342:5;;;;;;;;;;;3331:16;;:7;:16;;;3324:23;;3252:103;;;:::o;14548:244::-;3151:19;3159:10;3151:7;:19::i;:::-;3143:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14653:9:::1;14644:6;:18;;;;14683:10;14673:7;:20;;;;14724:2;14714:6;;:12;;14706:33;;;;;;;;;;;;:::i;:::-;;;;;;;;;14769:2;14758:7;;:13;;14750:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;14548:244:::0;;:::o;17161:80::-;17213:5;11572:2;17222:16;;17161:80;:::o;15808:199::-;3151:19;3159:10;3151:7;:19::i;:::-;3143:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15942:14:::1;15917:21;;:39;;;;;;;;;;;;;;;;;;15983:16;15967:13;:32;;;;15808:199:::0;;:::o;12075:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;12181:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;12497:34::-;;;;:::o;15539:127::-;3151:19;3159:10;3151:7;:19::i;:::-;3143:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15644:13:::1;15623:10;;:35;;;;;;;;;;;;;;;;;;15539:127:::0;:::o;12310:26::-;;;;:::o;12795:40::-;;;;;;;;;;;;;:::o;16792:106::-;3151:19;3159:10;3151:7;:19::i;:::-;3143:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16884:6:::1;16871:10;:19;;;;16792:106:::0;:::o;17987:122::-;18042:4;18066:35;18074:7;18083:17;18066:7;:35::i;:::-;18059:42;;17987:122;;;:::o;12659:79::-;;;;;;;;;;;;;:::o;12271:30::-;;;;;;;;;;;;;:::o;22539:74::-;3151:19;3159:10;3151:7;:19::i;:::-;3143:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;22595:10:::1;:8;:10::i;:::-;22539:74::o:0;17507:105::-;17573:7;17591:9;:18;17601:7;17591:18;;;;;;;;;;;;;;;;17584:25;;17507:105;;;:::o;13071:44::-;;;;:::o;12457:31::-;;;;:::o;22980:150::-;23057:7;23084;;;;;;;;;;;:25;;;23110:11;23084:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23077:45;;22980:150;;;:::o;15149:104::-;3151:19;3159:10;3151:7;:19::i;:::-;3143:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15237:8:::1;15224:9;:21;;;;15149:104:::0;:::o;11994:26::-;;;;;;;;;;;;;:::o;22863:109::-;3151:19;3159:10;3151:7;:19::i;:::-;3143:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;22938:7:::1;;;;;;;;;;;:15;;;22954:9;22938:26;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;22863:109:::0;:::o;22621:234::-;3151:19;3159:10;3151:7;:19::i;:::-;3143:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;22676:26:::1;22705:21;22676:50;;22761:1;22740:18;:22;22737:111;;;22796:10;;;;;;;;;;;22788:28;;:48;22817:18;22788:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22737:111;22665:190;22621:234::o:0;17423:78::-;17475:7;17493:5;;;;;;;;;;;17486:12;;17423:78;:::o;12126:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;17247:84::-;17297:13;17321:7;;;;;;;;;;;;;;;;;17314:14;;17247:84;:::o;15265:122::-;3151:19;3159:10;3151:7;:19::i;:::-;3143:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15373:6:::1;15351:11;:19;15363:6;15351:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;15265:122:::0;;:::o;12571:19::-;;;;;;;;;;;;;:::o;18117:152::-;18197:4;18221:40;18231:10;18243:9;18254:6;18221:9;:40::i;:::-;18214:47;;18117:152;;;;:::o;14201:166::-;3151:19;3159:10;3151:7;:19::i;:::-;3143:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14277:6:::1;14272:88;14293:5;:12;14289:1;:16;14272:88;;;14344:4;14327;:14;14332:5;14338:1;14332:8;;;;;;;;:::i;:::-;;;;;;;;14327:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14307:3;;;;;:::i;:::-;;;;14272:88;;;;14201:166:::0;:::o;15674:121::-;3151:19;3159:10;3151:7;:19::i;:::-;3143:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15773:14:::1;15760:10;;:27;;;;;;;;;;;;;;;;;;15674:121:::0;:::o;12239:25::-;;;;:::o;12597:22::-;;;;;;;;;;;;;:::o;12419:31::-;;;;:::o;14419:115::-;3151:19;3159:10;3151:7;:19::i;:::-;3143:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14485:12:::1;14472:10;:25;;;;14522:4;14508:11;;:18;;;;;;;;;;;;;;;;;;14419:115::o:0;12379:33::-;;;;:::o;15046:95::-;3151:19;3159:10;3151:7;:19::i;:::-;3143:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15125:8:::1;15117:5;:16;;;;15046:95:::0;:::o;23138:89::-;23187:7;;;;;;;;;;;:20;;;23208:10;23187:32;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23138:89::o;12915:29::-;;;;:::o;17618:133::-;17702:7;17720:11;:19;17732:6;17720:19;;;;;;;;;;;;;;;:28;17740:7;17720:28;;;;;;;;;;;;;;;;17713:35;;17618:133;;;;:::o;3363:136::-;3151:19;3159:10;3151:7;:19::i;:::-;3143:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3447:3:::1;3439:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3466:25;3487:3;3466:25;;;;;;:::i;:::-;;;;;;;;3363:136:::0;:::o;16652:132::-;3151:19;3159:10;3151:7;:19::i;:::-;3143:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16740:36:::1;16761:6;16769;16740:20;:36::i;:::-;16652:132:::0;;:::o;12540:24::-;;;;;;;;;;;;;:::o;13122:47::-;;;;:::o;15395:136::-;3151:19;3159:10;3151:7;:19::i;:::-;3143:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15517:6:::1;15491:15;:23;15507:6;15491:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;15395:136:::0;;:::o;12842:31::-;;;;;;;;;;;;;:::o;1451:132::-;1509:7;1536:39;1540:1;1543;1536:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1529:46;;1451:132;;;;:::o;997:192::-;1083:7;1116:1;1111;:6;;1119:12;1103:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1143:9;1159:1;1155;:5;;;;:::i;:::-;1143:17;;1180:1;1173:8;;;997:192;;;;;:::o;18651:1412::-;18739:4;18769:5;;;;;;;;;;;18760:14;;:6;:14;;;;:35;;;;;18790:5;;;;;;;;;;18778:17;;:9;:17;;;;18760:35;18756:88;;;18805:11;;;;;;;;;;;18797:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;18756:88;18906:4;:12;18911:6;18906:12;;;;;;;;;;;;;;;;;;;;;;;;;18905:13;:33;;;;;18923:4;:15;18928:9;18923:15;;;;;;;;;;;;;;;;;;;;;;;;;18922:16;18905:33;18897:42;;;;;;18955:16;;;;;;;;;;;18952:73;;;18981:41;18996:6;19004:9;19015:6;18981:14;:41::i;:::-;18974:48;;;;18952:73;19055:5;;19045:6;:15;;:42;;;;19064:15;:23;19080:6;19064:23;;;;;;;;;;;;;;;;;;;;;;;;;19045:42;19037:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;19111:15;:26;19127:9;19111:26;;;;;;;;;;;;;;;;;;;;;;;;;19110:27;:38;;;;;19141:7;;;;;;;;;;;19110:38;19107:143;;;19218:9;;19182:32;19207:6;19182:9;:20;19192:9;19182:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;:45;;19174:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19107:143;19279:4;;;;;;;;;;;19265:18;;:10;:18;;;;:39;;;;;19288:16;;;;;;;;;;;19287:17;19265:39;:64;;;;;19308:21;;;;;;;;;;;19265:64;:109;;;;;19361:13;;19333:9;:24;19351:4;19333:24;;;;;;;;;;;;;;;;:41;;19265:109;19262:128;;;19377:10;:8;:10::i;:::-;19262:128;19422:53;19444:6;19422:53;;;;;;;;;;;;;;;;;:9;:17;19432:6;19422:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;19402:9;:17;19412:6;19402:17;;;;;;;;;;;;;;;:73;;;;19496:19;19519:11;:19;19531:6;19519:19;;;;;;;;;;;;;;;;;;;;;;;;;19518:20;:47;;;;;19543:11;:22;19555:9;19543:22;;;;;;;;;;;;;;;;;;;;;;;;;19542:23;19518:47;:93;;19605:6;19518:93;;;19568:34;19576:6;19584:9;19595:6;19568:7;:34::i;:::-;19518:93;19496:115;;19645:37;19670:11;19645:9;:20;19655:9;19645:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;19622:9;:20;19632:9;19622:20;;;;;;;;;;;;;;;:60;;;;19728:16;:24;19745:6;19728:24;;;;;;;;;;;;;;;;;;;;;;;;;19724:115;;19773:7;;;;;;;;;;;:16;;;19790:6;19798:9;:17;19808:6;19798:17;;;;;;;;;;;;;;;;19773:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19769:59;19724:115;19855:16;:27;19872:9;19855:27;;;;;;;;;;;;;;;;;;;;;;;;;19851:125;;19903:7;;;;;;;;;;;:16;;;19920:9;19931;:20;19941:9;19931:20;;;;;;;;;;;;;;;;19903:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19899:65;19851:125;20010:9;19993:40;;20002:6;19993:40;;;20021:11;19993:40;;;;;;:::i;:::-;;;;;;;;20051:4;20044:11;;;18651:1412;;;;;;:::o;855:136::-;913:7;940:43;944:1;947;940:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;933:50;;855:136;;;;:::o;21613:918::-;13004:4;12985:16;;:23;;;;;;;;;;;;;;;;;;21671:20:::1;21694:9;:24;21712:4;21694:24;;;;;;;;;;;;;;;;21671:47;;21730:26;21759:45;21802:1;21759:38;21793:3;21759:29;21776:11;;21759:12;:16;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;:42;;:45;;;;:::i;:::-;21730:74;;21820:20;21843:36;21860:18;21843:12;:16;;:36;;;;:::i;:::-;21820:59;;21892:30;21909:12;21892:16;:30::i;:::-;21935:23;21961:21;21935:47;;21993:20;22016:43;22055:3;22016:34;22036:13;;22016:15;:19;;:34;;;;:::i;:::-;:38;;:43;;;;:::i;:::-;21993:66;;22070:18;22091:41;22128:3;22091:32;22111:11;;22091:15;:19;;:32;;;;:::i;:::-;:36;;:41;;;;:::i;:::-;22070:62;;22143:23;22169:48;22215:1;22169:41;22206:3;22169:32;22189:11;;22169:15;:19;;:32;;;;:::i;:::-;:36;;:41;;;;:::i;:::-;:45;;:48;;;;:::i;:::-;22143:74;;22258:1;22240:15;:19;22236:91;;;22283:10;;;;;;;;;;;22275:28;;:40;22304:10;22275:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22236:91;22351:7;;;;;;;;;;;:15;;;22374:12;22351:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;22347:54:::0;22446:1:::1;22425:18;:22;22421:103;;;22463:49;22476:18;22496:15;22463:12;:49::i;:::-;22421:103;21654:877;;;;;;;13050:5:::0;13031:16;;:24;;;;;;;;;;;;;;;;;;21613:918::o;16315:329::-;16420:4;16402:23;;:6;:23;;;;:41;;;;;16439:4;;;;;;;;;;;16429:14;;:6;:14;;;;16402:41;16394:50;;;;;;16482:6;16455:16;:24;16472:6;16455:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;16502:6;16499:138;;;16524:7;;;;;;;;;;;:16;;;16541:6;16549:1;16524:27;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16499:138;;;16582:7;;;;;;;;;;;:16;;;16599:6;16607:9;:17;16617:6;16607:17;;;;;;;;;;;;;;;;16582:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16499:138;16315:329;;:::o;1589:345::-;1675:7;1774:1;1770;:5;1777:12;1762:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1801:9;1817:1;1813;:5;;;;:::i;:::-;1801:17;;1925:1;1918:8;;;1589:345;;;;;:::o;20075:330::-;20168:4;20205:53;20227:6;20205:53;;;;;;;;;;;;;;;;;:9;:17;20215:6;20205:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;20185:9;:17;20195:6;20185:17;;;;;;;;;;;;;;;:73;;;;20292:32;20317:6;20292:9;:20;20302:9;20292:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;20269:9;:20;20279:9;20269:20;;;;;;;;;;;;;;;:55;;;;20357:9;20340:35;;20349:6;20340:35;;;20368:6;20340:35;;;;;;:::i;:::-;;;;;;;;20393:4;20386:11;;20075:330;;;;;:::o;668:181::-;726:7;746:9;762:1;758;:5;;;;:::i;:::-;746:17;;787:1;782;:6;;774:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;840:1;833:8;;;668:181;;;;:::o;20419:427::-;20505:7;20535:21;20567:9;20559:17;;:4;;;;;;;;;;;:17;;;:36;;20589:6;;20559:36;;;20579:7;;20559:36;20535:60;;20606:17;20626:34;20656:3;20626:25;20637:13;20626:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;20606:54;;20700:39;20729:9;20700;:24;20718:4;20700:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;20673:9;:24;20691:4;20673:24;;;;;;;;;;;;;;;:66;;;;20780:4;20755:42;;20764:6;20755:42;;;20787:9;20755:42;;;;;;:::i;:::-;;;;;;;;20817:21;20828:9;20817:6;:10;;:21;;;;:::i;:::-;20810:28;;;;20419:427;;;;;:::o;1195:250::-;1253:7;1282:1;1277;:6;1273:47;;1307:1;1300:8;;;;1273:47;1332:9;1348:1;1344;:5;;;;:::i;:::-;1332:17;;1377:1;1372;1368;:5;;;;:::i;:::-;:10;1360:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1436:1;1429:8;;;1195:250;;;;;:::o;20858:460::-;20926:21;20964:1;20950:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20926:40;;20995:4;20977;20982:1;20977:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21021:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21011:4;21016:1;21011:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21047:35;21063:4;21070:11;21047:7;:35::i;:::-;;21095:6;;;;;;;;;;;:57;;;21167:11;21193:1;21237:4;21264;21284:15;21095:215;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20913:405;20858:460;:::o;21326:279::-;21407:6;;;;;;;;;;;:22;;;21437:9;21470:4;21490:11;21516:1;21532;21548:8;;;;;;;;;;;21571:15;21407:190;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21326:279;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:60::-;167:3;188:5;181:12;;139:60;;;:::o;205:142::-;255:9;288:53;306:34;315:24;333:5;315:24;:::i;:::-;306:34;:::i;:::-;288:53;:::i;:::-;275:66;;205:142;;;:::o;353:134::-;411:9;444:37;475:5;444:37;:::i;:::-;431:50;;353:134;;;:::o;493:158::-;567:9;600:45;639:5;600:45;:::i;:::-;587:58;;493:158;;;:::o;657:179::-;768:61;823:5;768:61;:::i;:::-;763:3;756:74;657:179;;:::o;842:270::-;959:4;997:2;986:9;982:18;974:26;;1010:95;1102:1;1091:9;1087:17;1078:6;1010:95;:::i;:::-;842:270;;;;:::o;1118:77::-;1155:7;1184:5;1173:16;;1118:77;;;:::o;1201:118::-;1288:24;1306:5;1288:24;:::i;:::-;1283:3;1276:37;1201:118;;:::o;1325:222::-;1418:4;1456:2;1445:9;1441:18;1433:26;;1469:71;1537:1;1526:9;1522:17;1513:6;1469:71;:::i;:::-;1325:222;;;;:::o;1553:99::-;1605:6;1639:5;1633:12;1623:22;;1553:99;;;:::o;1658:169::-;1742:11;1776:6;1771:3;1764:19;1816:4;1811:3;1807:14;1792:29;;1658:169;;;;:::o;1833:307::-;1901:1;1911:113;1925:6;1922:1;1919:13;1911:113;;;2010:1;2005:3;2001:11;1995:18;1991:1;1986:3;1982:11;1975:39;1947:2;1944:1;1940:10;1935:15;;1911:113;;;2042:6;2039:1;2036:13;2033:101;;;2122:1;2113:6;2108:3;2104:16;2097:27;2033:101;1882:258;1833:307;;;:::o;2146:102::-;2187:6;2238:2;2234:7;2229:2;2222:5;2218:14;2214:28;2204:38;;2146:102;;;:::o;2254:364::-;2342:3;2370:39;2403:5;2370:39;:::i;:::-;2425:71;2489:6;2484:3;2425:71;:::i;:::-;2418:78;;2505:52;2550:6;2545:3;2538:4;2531:5;2527:16;2505:52;:::i;:::-;2582:29;2604:6;2582:29;:::i;:::-;2577:3;2573:39;2566:46;;2346:272;2254:364;;;;:::o;2624:313::-;2737:4;2775:2;2764:9;2760:18;2752:26;;2824:9;2818:4;2814:20;2810:1;2799:9;2795:17;2788:47;2852:78;2925:4;2916:6;2852:78;:::i;:::-;2844:86;;2624:313;;;;:::o;2943:75::-;2976:6;3009:2;3003:9;2993:19;;2943:75;:::o;3024:117::-;3133:1;3130;3123:12;3147:117;3256:1;3253;3246:12;3270:96;3307:7;3336:24;3354:5;3336:24;:::i;:::-;3325:35;;3270:96;;;:::o;3372:122::-;3445:24;3463:5;3445:24;:::i;:::-;3438:5;3435:35;3425:63;;3484:1;3481;3474:12;3425:63;3372:122;:::o;3500:139::-;3546:5;3584:6;3571:20;3562:29;;3600:33;3627:5;3600:33;:::i;:::-;3500:139;;;;:::o;3645:122::-;3718:24;3736:5;3718:24;:::i;:::-;3711:5;3708:35;3698:63;;3757:1;3754;3747:12;3698:63;3645:122;:::o;3773:139::-;3819:5;3857:6;3844:20;3835:29;;3873:33;3900:5;3873:33;:::i;:::-;3773:139;;;;:::o;3918:474::-;3986:6;3994;4043:2;4031:9;4022:7;4018:23;4014:32;4011:119;;;4049:79;;:::i;:::-;4011:119;4169:1;4194:53;4239:7;4230:6;4219:9;4215:22;4194:53;:::i;:::-;4184:63;;4140:117;4296:2;4322:53;4367:7;4358:6;4347:9;4343:22;4322:53;:::i;:::-;4312:63;;4267:118;3918:474;;;;;:::o;4398:90::-;4432:7;4475:5;4468:13;4461:21;4450:32;;4398:90;;;:::o;4494:109::-;4575:21;4590:5;4575:21;:::i;:::-;4570:3;4563:34;4494:109;;:::o;4609:210::-;4696:4;4734:2;4723:9;4719:18;4711:26;;4747:65;4809:1;4798:9;4794:17;4785:6;4747:65;:::i;:::-;4609:210;;;;:::o;4825:619::-;4902:6;4910;4918;4967:2;4955:9;4946:7;4942:23;4938:32;4935:119;;;4973:79;;:::i;:::-;4935:119;5093:1;5118:53;5163:7;5154:6;5143:9;5139:22;5118:53;:::i;:::-;5108:63;;5064:117;5220:2;5246:53;5291:7;5282:6;5271:9;5267:22;5246:53;:::i;:::-;5236:63;;5191:118;5348:2;5374:53;5419:7;5410:6;5399:9;5395:22;5374:53;:::i;:::-;5364:63;;5319:118;4825:619;;;;;:::o;5450:118::-;5537:24;5555:5;5537:24;:::i;:::-;5532:3;5525:37;5450:118;;:::o;5574:222::-;5667:4;5705:2;5694:9;5690:18;5682:26;;5718:71;5786:1;5775:9;5771:17;5762:6;5718:71;:::i;:::-;5574:222;;;;:::o;5802:329::-;5861:6;5910:2;5898:9;5889:7;5885:23;5881:32;5878:119;;;5916:79;;:::i;:::-;5878:119;6036:1;6061:53;6106:7;6097:6;6086:9;6082:22;6061:53;:::i;:::-;6051:63;;6007:117;5802:329;;;;:::o;6137:474::-;6205:6;6213;6262:2;6250:9;6241:7;6237:23;6233:32;6230:119;;;6268:79;;:::i;:::-;6230:119;6388:1;6413:53;6458:7;6449:6;6438:9;6434:22;6413:53;:::i;:::-;6403:63;;6359:117;6515:2;6541:53;6586:7;6577:6;6566:9;6562:22;6541:53;:::i;:::-;6531:63;;6486:118;6137:474;;;;;:::o;6617:619::-;6694:6;6702;6710;6759:2;6747:9;6738:7;6734:23;6730:32;6727:119;;;6765:79;;:::i;:::-;6727:119;6885:1;6910:53;6955:7;6946:6;6935:9;6931:22;6910:53;:::i;:::-;6900:63;;6856:117;7012:2;7038:53;7083:7;7074:6;7063:9;7059:22;7038:53;:::i;:::-;7028:63;;6983:118;7140:2;7166:53;7211:7;7202:6;7191:9;7187:22;7166:53;:::i;:::-;7156:63;;7111:118;6617:619;;;;;:::o;7242:86::-;7277:7;7317:4;7310:5;7306:16;7295:27;;7242:86;;;:::o;7334:112::-;7417:22;7433:5;7417:22;:::i;:::-;7412:3;7405:35;7334:112;;:::o;7452:214::-;7541:4;7579:2;7568:9;7564:18;7556:26;;7592:67;7656:1;7645:9;7641:17;7632:6;7592:67;:::i;:::-;7452:214;;;;:::o;7672:116::-;7742:21;7757:5;7742:21;:::i;:::-;7735:5;7732:32;7722:60;;7778:1;7775;7768:12;7722:60;7672:116;:::o;7794:133::-;7837:5;7875:6;7862:20;7853:29;;7891:30;7915:5;7891:30;:::i;:::-;7794:133;;;;:::o;7933:468::-;7998:6;8006;8055:2;8043:9;8034:7;8030:23;8026:32;8023:119;;;8061:79;;:::i;:::-;8023:119;8181:1;8206:50;8248:7;8239:6;8228:9;8224:22;8206:50;:::i;:::-;8196:60;;8152:114;8305:2;8331:53;8376:7;8367:6;8356:9;8352:22;8331:53;:::i;:::-;8321:63;;8276:118;7933:468;;;;;:::o;8407:104::-;8452:7;8481:24;8499:5;8481:24;:::i;:::-;8470:35;;8407:104;;;:::o;8517:138::-;8598:32;8624:5;8598:32;:::i;:::-;8591:5;8588:43;8578:71;;8645:1;8642;8635:12;8578:71;8517:138;:::o;8661:155::-;8715:5;8753:6;8740:20;8731:29;;8769:41;8804:5;8769:41;:::i;:::-;8661:155;;;;:::o;8822:345::-;8889:6;8938:2;8926:9;8917:7;8913:23;8909:32;8906:119;;;8944:79;;:::i;:::-;8906:119;9064:1;9089:61;9142:7;9133:6;9122:9;9118:22;9089:61;:::i;:::-;9079:71;;9035:125;8822:345;;;;:::o;9173:329::-;9232:6;9281:2;9269:9;9260:7;9256:23;9252:32;9249:119;;;9287:79;;:::i;:::-;9249:119;9407:1;9432:53;9477:7;9468:6;9457:9;9453:22;9432:53;:::i;:::-;9422:63;;9378:117;9173:329;;;;:::o;9508:468::-;9573:6;9581;9630:2;9618:9;9609:7;9605:23;9601:32;9598:119;;;9636:79;;:::i;:::-;9598:119;9756:1;9781:53;9826:7;9817:6;9806:9;9802:22;9781:53;:::i;:::-;9771:63;;9727:117;9883:2;9909:50;9951:7;9942:6;9931:9;9927:22;9909:50;:::i;:::-;9899:60;;9854:115;9508:468;;;;;:::o;9982:117::-;10091:1;10088;10081:12;10105:180;10153:77;10150:1;10143:88;10250:4;10247:1;10240:15;10274:4;10271:1;10264:15;10291:281;10374:27;10396:4;10374:27;:::i;:::-;10366:6;10362:40;10504:6;10492:10;10489:22;10468:18;10456:10;10453:34;10450:62;10447:88;;;10515:18;;:::i;:::-;10447:88;10555:10;10551:2;10544:22;10334:238;10291:281;;:::o;10578:129::-;10612:6;10639:20;;:::i;:::-;10629:30;;10668:33;10696:4;10688:6;10668:33;:::i;:::-;10578:129;;;:::o;10713:311::-;10790:4;10880:18;10872:6;10869:30;10866:56;;;10902:18;;:::i;:::-;10866:56;10952:4;10944:6;10940:17;10932:25;;11012:4;11006;11002:15;10994:23;;10713:311;;;:::o;11030:117::-;11139:1;11136;11129:12;11170:710;11266:5;11291:81;11307:64;11364:6;11307:64;:::i;:::-;11291:81;:::i;:::-;11282:90;;11392:5;11421:6;11414:5;11407:21;11455:4;11448:5;11444:16;11437:23;;11508:4;11500:6;11496:17;11488:6;11484:30;11537:3;11529:6;11526:15;11523:122;;;11556:79;;:::i;:::-;11523:122;11671:6;11654:220;11688:6;11683:3;11680:15;11654:220;;;11763:3;11792:37;11825:3;11813:10;11792:37;:::i;:::-;11787:3;11780:50;11859:4;11854:3;11850:14;11843:21;;11730:144;11714:4;11709:3;11705:14;11698:21;;11654:220;;;11658:21;11272:608;;11170:710;;;;;:::o;11903:370::-;11974:5;12023:3;12016:4;12008:6;12004:17;12000:27;11990:122;;12031:79;;:::i;:::-;11990:122;12148:6;12135:20;12173:94;12263:3;12255:6;12248:4;12240:6;12236:17;12173:94;:::i;:::-;12164:103;;11980:293;11903:370;;;;:::o;12279:539::-;12363:6;12412:2;12400:9;12391:7;12387:23;12383:32;12380:119;;;12418:79;;:::i;:::-;12380:119;12566:1;12555:9;12551:17;12538:31;12596:18;12588:6;12585:30;12582:117;;;12618:79;;:::i;:::-;12582:117;12723:78;12793:7;12784:6;12773:9;12769:22;12723:78;:::i;:::-;12713:88;;12509:302;12279:539;;;;:::o;12824:474::-;12892:6;12900;12949:2;12937:9;12928:7;12924:23;12920:32;12917:119;;;12955:79;;:::i;:::-;12917:119;13075:1;13100:53;13145:7;13136:6;13125:9;13121:22;13100:53;:::i;:::-;13090:63;;13046:117;13202:2;13228:53;13273:7;13264:6;13253:9;13249:22;13228:53;:::i;:::-;13218:63;;13173:118;12824:474;;;;;:::o;13304:126::-;13354:9;13387:37;13418:5;13387:37;:::i;:::-;13374:50;;13304:126;;;:::o;13436:144::-;13504:9;13537:37;13568:5;13537:37;:::i;:::-;13524:50;;13436:144;;;:::o;13586:167::-;13691:55;13740:5;13691:55;:::i;:::-;13686:3;13679:68;13586:167;;:::o;13759:258::-;13870:4;13908:2;13897:9;13893:18;13885:26;;13921:89;14007:1;13996:9;13992:17;13983:6;13921:89;:::i;:::-;13759:258;;;;:::o;14023:156::-;14163:8;14159:1;14151:6;14147:14;14140:32;14023:156;:::o;14185:365::-;14327:3;14348:66;14412:1;14407:3;14348:66;:::i;:::-;14341:73;;14423:93;14512:3;14423:93;:::i;:::-;14541:2;14536:3;14532:12;14525:19;;14185:365;;;:::o;14556:419::-;14722:4;14760:2;14749:9;14745:18;14737:26;;14809:9;14803:4;14799:20;14795:1;14784:9;14780:17;14773:47;14837:131;14963:4;14837:131;:::i;:::-;14829:139;;14556:419;;;:::o;14981:332::-;15102:4;15140:2;15129:9;15125:18;15117:26;;15153:71;15221:1;15210:9;15206:17;15197:6;15153:71;:::i;:::-;15234:72;15302:2;15291:9;15287:18;15278:6;15234:72;:::i;:::-;14981:332;;;;;:::o;15319:158::-;15459:10;15455:1;15447:6;15443:14;15436:34;15319:158;:::o;15483:365::-;15625:3;15646:66;15710:1;15705:3;15646:66;:::i;:::-;15639:73;;15721:93;15810:3;15721:93;:::i;:::-;15839:2;15834:3;15830:12;15823:19;;15483:365;;;:::o;15854:419::-;16020:4;16058:2;16047:9;16043:18;16035:26;;16107:9;16101:4;16097:20;16093:1;16082:9;16078:17;16071:47;16135:131;16261:4;16135:131;:::i;:::-;16127:139;;15854:419;;;:::o;16279:143::-;16336:5;16367:6;16361:13;16352:22;;16383:33;16410:5;16383:33;:::i;:::-;16279:143;;;;:::o;16428:351::-;16498:6;16547:2;16535:9;16526:7;16522:23;16518:32;16515:119;;;16553:79;;:::i;:::-;16515:119;16673:1;16698:64;16754:7;16745:6;16734:9;16730:22;16698:64;:::i;:::-;16688:74;;16644:128;16428:351;;;;:::o;16785:180::-;16833:77;16830:1;16823:88;16930:4;16927:1;16920:15;16954:4;16951:1;16944:15;16971:180;17019:77;17016:1;17009:88;17116:4;17113:1;17106:15;17140:4;17137:1;17130:15;17157:233;17196:3;17219:24;17237:5;17219:24;:::i;:::-;17210:33;;17265:66;17258:5;17255:77;17252:103;;17335:18;;:::i;:::-;17252:103;17382:1;17375:5;17371:13;17364:20;;17157:233;;;:::o;17396:134::-;17454:9;17487:37;17518:5;17487:37;:::i;:::-;17474:50;;17396:134;;;:::o;17536:147::-;17631:45;17670:5;17631:45;:::i;:::-;17626:3;17619:58;17536:147;;:::o;17689:238::-;17790:4;17828:2;17817:9;17813:18;17805:26;;17841:79;17917:1;17906:9;17902:17;17893:6;17841:79;:::i;:::-;17689:238;;;;:::o;17933:191::-;17973:4;17993:20;18011:1;17993:20;:::i;:::-;17988:25;;18027:20;18045:1;18027:20;:::i;:::-;18022:25;;18066:1;18063;18060:8;18057:34;;;18071:18;;:::i;:::-;18057:34;18116:1;18113;18109:9;18101:17;;17933:191;;;;:::o;18130:173::-;18270:25;18266:1;18258:6;18254:14;18247:49;18130:173;:::o;18309:366::-;18451:3;18472:67;18536:2;18531:3;18472:67;:::i;:::-;18465:74;;18548:93;18637:3;18548:93;:::i;:::-;18666:2;18661:3;18657:12;18650:19;;18309:366;;;:::o;18681:419::-;18847:4;18885:2;18874:9;18870:18;18862:26;;18934:9;18928:4;18924:20;18920:1;18909:9;18905:17;18898:47;18962:131;19088:4;18962:131;:::i;:::-;18954:139;;18681:419;;;:::o;19106:152::-;19246:4;19242:1;19234:6;19230:14;19223:28;19106:152;:::o;19264:365::-;19406:3;19427:66;19491:1;19486:3;19427:66;:::i;:::-;19420:73;;19502:93;19591:3;19502:93;:::i;:::-;19620:2;19615:3;19611:12;19604:19;;19264:365;;;:::o;19635:419::-;19801:4;19839:2;19828:9;19824:18;19816:26;;19888:9;19882:4;19878:20;19874:1;19863:9;19859:17;19852:47;19916:131;20042:4;19916:131;:::i;:::-;19908:139;;19635:419;;;:::o;20060:156::-;20200:8;20196:1;20188:6;20184:14;20177:32;20060:156;:::o;20222:365::-;20364:3;20385:66;20449:1;20444:3;20385:66;:::i;:::-;20378:73;;20460:93;20549:3;20460:93;:::i;:::-;20578:2;20573:3;20569:12;20562:19;;20222:365;;;:::o;20593:419::-;20759:4;20797:2;20786:9;20782:18;20774:26;;20846:9;20840:4;20836:20;20832:1;20821:9;20817:17;20810:47;20874:131;21000:4;20874:131;:::i;:::-;20866:139;;20593:419;;;:::o;21018:332::-;21139:4;21177:2;21166:9;21162:18;21154:26;;21190:71;21258:1;21247:9;21243:17;21234:6;21190:71;:::i;:::-;21271:72;21339:2;21328:9;21324:18;21315:6;21271:72;:::i;:::-;21018:332;;;;;:::o;21356:85::-;21401:7;21430:5;21419:16;;21356:85;;;:::o;21447:158::-;21505:9;21538:61;21556:42;21565:32;21591:5;21565:32;:::i;:::-;21556:42;:::i;:::-;21538:61;:::i;:::-;21525:74;;21447:158;;;:::o;21611:147::-;21706:45;21745:5;21706:45;:::i;:::-;21701:3;21694:58;21611:147;;:::o;21764:348::-;21893:4;21931:2;21920:9;21916:18;21908:26;;21944:71;22012:1;22001:9;21997:17;21988:6;21944:71;:::i;:::-;22025:80;22101:2;22090:9;22086:18;22077:6;22025:80;:::i;:::-;21764:348;;;;;:::o;22118:180::-;22166:77;22163:1;22156:88;22263:4;22260:1;22253:15;22287:4;22284:1;22277:15;22304:185;22344:1;22361:20;22379:1;22361:20;:::i;:::-;22356:25;;22395:20;22413:1;22395:20;:::i;:::-;22390:25;;22434:1;22424:35;;22439:18;;:::i;:::-;22424:35;22481:1;22478;22474:9;22469:14;;22304:185;;;;:::o;22495:305::-;22535:3;22554:20;22572:1;22554:20;:::i;:::-;22549:25;;22588:20;22606:1;22588:20;:::i;:::-;22583:25;;22742:1;22674:66;22670:74;22667:1;22664:81;22661:107;;;22748:18;;:::i;:::-;22661:107;22792:1;22789;22785:9;22778:16;;22495:305;;;;:::o;22806:177::-;22946:29;22942:1;22934:6;22930:14;22923:53;22806:177;:::o;22989:366::-;23131:3;23152:67;23216:2;23211:3;23152:67;:::i;:::-;23145:74;;23228:93;23317:3;23228:93;:::i;:::-;23346:2;23341:3;23337:12;23330:19;;22989:366;;;:::o;23361:419::-;23527:4;23565:2;23554:9;23550:18;23542:26;;23614:9;23608:4;23604:20;23600:1;23589:9;23585:17;23578:47;23642:131;23768:4;23642:131;:::i;:::-;23634:139;;23361:419;;;:::o;23786:348::-;23826:7;23849:20;23867:1;23849:20;:::i;:::-;23844:25;;23883:20;23901:1;23883:20;:::i;:::-;23878:25;;24071:1;24003:66;23999:74;23996:1;23993:81;23988:1;23981:9;23974:17;23970:105;23967:131;;;24078:18;;:::i;:::-;23967:131;24126:1;24123;24119:9;24108:20;;23786:348;;;;:::o;24140:220::-;24280:34;24276:1;24268:6;24264:14;24257:58;24349:3;24344:2;24336:6;24332:15;24325:28;24140:220;:::o;24366:366::-;24508:3;24529:67;24593:2;24588:3;24529:67;:::i;:::-;24522:74;;24605:93;24694:3;24605:93;:::i;:::-;24723:2;24718:3;24714:12;24707:19;;24366:366;;;:::o;24738:419::-;24904:4;24942:2;24931:9;24927:18;24919:26;;24991:9;24985:4;24981:20;24977:1;24966:9;24962:17;24955:47;25019:131;25145:4;25019:131;:::i;:::-;25011:139;;24738:419;;;:::o;25163:143::-;25220:5;25251:6;25245:13;25236:22;;25267:33;25294:5;25267:33;:::i;:::-;25163:143;;;;:::o;25312:351::-;25382:6;25431:2;25419:9;25410:7;25406:23;25402:32;25399:119;;;25437:79;;:::i;:::-;25399:119;25557:1;25582:64;25638:7;25629:6;25618:9;25614:22;25582:64;:::i;:::-;25572:74;;25528:128;25312:351;;;;:::o;25669:114::-;25736:6;25770:5;25764:12;25754:22;;25669:114;;;:::o;25789:184::-;25888:11;25922:6;25917:3;25910:19;25962:4;25957:3;25953:14;25938:29;;25789:184;;;;:::o;25979:132::-;26046:4;26069:3;26061:11;;26099:4;26094:3;26090:14;26082:22;;25979:132;;;:::o;26117:108::-;26194:24;26212:5;26194:24;:::i;:::-;26189:3;26182:37;26117:108;;:::o;26231:179::-;26300:10;26321:46;26363:3;26355:6;26321:46;:::i;:::-;26399:4;26394:3;26390:14;26376:28;;26231:179;;;;:::o;26416:113::-;26486:4;26518;26513:3;26509:14;26501:22;;26416:113;;;:::o;26565:732::-;26684:3;26713:54;26761:5;26713:54;:::i;:::-;26783:86;26862:6;26857:3;26783:86;:::i;:::-;26776:93;;26893:56;26943:5;26893:56;:::i;:::-;26972:7;27003:1;26988:284;27013:6;27010:1;27007:13;26988:284;;;27089:6;27083:13;27116:63;27175:3;27160:13;27116:63;:::i;:::-;27109:70;;27202:60;27255:6;27202:60;:::i;:::-;27192:70;;27048:224;27035:1;27032;27028:9;27023:14;;26988:284;;;26992:14;27288:3;27281:10;;26689:608;;;26565:732;;;;:::o;27303:831::-;27566:4;27604:3;27593:9;27589:19;27581:27;;27618:71;27686:1;27675:9;27671:17;27662:6;27618:71;:::i;:::-;27699:80;27775:2;27764:9;27760:18;27751:6;27699:80;:::i;:::-;27826:9;27820:4;27816:20;27811:2;27800:9;27796:18;27789:48;27854:108;27957:4;27948:6;27854:108;:::i;:::-;27846:116;;27972:72;28040:2;28029:9;28025:18;28016:6;27972:72;:::i;:::-;28054:73;28122:3;28111:9;28107:19;28098:6;28054:73;:::i;:::-;27303:831;;;;;;;;:::o;28140:807::-;28389:4;28427:3;28416:9;28412:19;28404:27;;28441:71;28509:1;28498:9;28494:17;28485:6;28441:71;:::i;:::-;28522:72;28590:2;28579:9;28575:18;28566:6;28522:72;:::i;:::-;28604:80;28680:2;28669:9;28665:18;28656:6;28604:80;:::i;:::-;28694;28770:2;28759:9;28755:18;28746:6;28694:80;:::i;:::-;28784:73;28852:3;28841:9;28837:19;28828:6;28784:73;:::i;:::-;28867;28935:3;28924:9;28920:19;28911:6;28867:73;:::i;:::-;28140:807;;;;;;;;;:::o;28953:663::-;29041:6;29049;29057;29106:2;29094:9;29085:7;29081:23;29077:32;29074:119;;;29112:79;;:::i;:::-;29074:119;29232:1;29257:64;29313:7;29304:6;29293:9;29289:22;29257:64;:::i;:::-;29247:74;;29203:128;29370:2;29396:64;29452:7;29443:6;29432:9;29428:22;29396:64;:::i;:::-;29386:74;;29341:129;29509:2;29535:64;29591:7;29582:6;29571:9;29567:22;29535:64;:::i;:::-;29525:74;;29480:129;28953:663;;;;;:::o

Swarm Source

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