ETH Price: $3,635.49 (-0.66%)
 

Overview

Max Total Supply

100,000,000 KIBBLE

Holders

49

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
7,219.548268317778790931 KIBBLE

Value
$0.00
0xe385c7587aaf517d1cda1473d3f5725a6a105663
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:
FeedTheInu

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-04
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.13;

/**
FEED THE INU - $KIBBLE
t.me/kibbleETH

In support of Inu. All taxes generated from $KIBBLE are hardcoded to contribute directly to INU through:
1. Buying and reflecting $INU to all $KIBBLE hodlers
2. Sending ETH directly to $INU marketing wallet
3. Adding and burning $KIBBLE liquidity to encourage trading
*/

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

    /**
     * Transfer ownership to new address. Caller must be deployer. Leaves old deployer authorized
     */
    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 IKibbleDist {
    function setInu (address inuAddress) external;
    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external;
    function setShare(address shareholder, uint256 amount) external;
    function deposit() external payable;
    function process(uint256 gas) external;
    function feedDogs(address shareholder) external;
}


contract DogFood is IKibbleDist {

    using SafeMath for uint256;
    address _token;

    address public INU;

    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);
        INU = 0x050D94685c6B0477E1Fc555888AF6e2bB8dFBda5;
    }
    
    receive() external payable {
        deposit();
    }

    function setInu(address inuAddress) external override onlyToken {
        INU = inuAddress;
    }

    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(INU).balanceOf(address(this));

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

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}(
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amount = IERC20(INU).balanceOf(address(this)).sub(balanceBefore);
        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(INU).transfer(shareholder, amount);
            shareholderClaims[shareholder] = block.timestamp;
            shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
        }
    }
    
    function feedDogs(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 FeedTheInu is IERC20, Auth {
    using SafeMath for uint256;

    address public INU = 0x050D94685c6B0477E1Fc555888AF6e2bB8dFBda5; //INU token

    string private constant _name = "Feed The Inu";
    string private constant _symbol = "KIBBLE";
    uint8 private constant _decimals = 18;
    
    uint256 private _totalSupply = 100000000 * (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 private lpWallet = DEAD;

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

    uint256 public toReflections = 20;
    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 inuMarketingWallet = payable(0xc5b1350F8d5E841376fc88706A7915034a50FF3a);

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public tradingOpen = false;
    
    DogFood public dogFood;
    uint256 public dogFoodGas = 0;

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

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

    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;

        dogFood = new DogFood();
        
        isFeeExempt[_owner] = true;
        isFeeExempt[inuMarketingWallet] = true;             

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

        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD] = true;    


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

    receive() external payable { }

    function _setInu(address inuAddress) internal {
        dogFood.setInu(inuAddress);
    }

    function setInu(address inuAddress) external onlyOwner {
        INU = inuAddress;
        _setInu(inuAddress);
    }

    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 setMarketingWallet(address payable newMarketingWallet) external onlyOwner {
        inuMarketingWallet = payable(newMarketingWallet);
    }

    function setLpWallet(address newLpWallet) external onlyOwner {
        lpWallet = newLpWallet;
    }    

    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 {
        dogFood.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){
            dogFood.setShare(holder, 0);
        }else{
            dogFood.setShare(holder, _balances[holder]);
        }
    }

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

    function changeMoneyPrinterGas(uint256 newGas) external onlyOwner {
        dogFoodGas = 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 dogFood.setShare(sender, _balances[sender]) {} catch {}
        }

        if(!isDividendExempt[recipient]) {
            try dogFood.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 ethForInu = totalEthBalance.mul(toReflections).div(100);
        uint256 ethForInuMarketing = totalEthBalance.mul(toMarketing).div(100);
        uint256 ethForLiquidity = totalEthBalance.mul(toLiquidity).div(100).div(2);
      
        if (totalEthBalance > 0){
            payable(inuMarketingWallet).transfer(ethForInuMarketing);
        }
        
        try dogFood.deposit{value: ethForInu}() {} 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(address(this)).transfer(contractETHBalance);
        }
    }

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

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

    function manualClaim() external {
        dogFood.feedDogs(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":"INU","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":"uint256","name":"newGas","type":"uint256"}],"name":"changeMoneyPrinterGas","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":"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":"dogFood","outputs":[{"internalType":"contract DogFood","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dogFoodGas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inuMarketingWallet","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":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualClaim","outputs":[],"stateMutability":"nonpayable","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":"inuAddress","type":"address"}],"name":"setInu","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","name":"newLpWallet","type":"address"}],"name":"setLpWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMarketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwnerWallet","type":"address"}],"name":"setOwnerWallet","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":"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"}]

6080604052600180546001600160a01b03191673050d94685c6b0477e1fc555888af6e2bb8dfbda5179055620000386012600a62000631565b62000048906305f5e10062000642565b6002819055600780546001600160a01b031990811661dead908117909255600880546001600160a81b031916600160a01b179055600e80549091169091179055600a600f81905560105560146011819055601281905560326013819055606490915560198054600162ffff0160a01b031916750100c5b1350f8d5e841376fc88706a7915034a50ff3a1790556000601b55620000f49190620014ca62000478602090811b91909117901c565b601c556200011460326002546200047860201b620014ca1790919060201c565b601d556200013460646002546200047860201b620014ca1790919060201c565b601e553480156200014457600080fd5b5060405162003e3538038062003e35833981016040819052620001679162000664565b600080546001600160a01b03199081166001600160a01b0384161790915560158054737a250d5630b4cf539739df2c5dacb4c659f2488d921682179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015620001e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000206919062000664565b600680546001600160a01b0319166001600160a01b039283161790556015546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000265573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028b919062000664565b6006546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af1158015620002dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000303919062000664565b601680546001600160a01b0319166001600160a01b039283161790553060009081526004602090815260408083206015549094168352929052819020600019905551620003509062000510565b604051809103906000f0801580156200036d573d6000803e3d6000fd5b50601a80546001600160a01b0319166001600160a01b039283161790558181166000818152600a60209081526040808320805460ff1990811660019081179092556019548716855282852080548216831790556016805488168652600c85528386208054831684179055308652838620805483168417905560078054891687528487208054841685179055878752600b865284872080548416851790559054881686528386208054831684179055549096168452818420805490961617909455600254838352600382528483208190559351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000711565b6000620004c283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620004cb60201b60201c565b90505b92915050565b60008183620004f85760405162461bcd60e51b8152600401620004ef919062000696565b60405180910390fd5b506000620005078486620006ee565b95945050505050565b6111018062002d3483390190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005755781600019048211156200055957620005596200051e565b808516156200056757918102915b93841c939080029062000539565b509250929050565b6000826200058e57506001620004c5565b816200059d57506000620004c5565b8160018114620005b65760028114620005c157620005e1565b6001915050620004c5565b60ff841115620005d557620005d56200051e565b50506001821b620004c5565b5060208310610133831016604e8410600b841016171562000606575081810a620004c5565b62000612838362000534565b80600019048211156200062957620006296200051e565b029392505050565b6000620004c260ff8416836200057d565b60008160001904831182151516156200065f576200065f6200051e565b500290565b6000602082840312156200067757600080fd5b81516001600160a01b03811681146200068f57600080fd5b9392505050565b600060208083528351808285015260005b81811015620006c557858101830151858201604001528201620006a7565b81811115620006d8576000604083870101525b50601f01601f1916929092016040019392505050565b6000826200070c57634e487b7160e01b600052601260045260246000fd5b500490565b61261380620007216000396000f3fe6080604052600436106103905760003560e01c806377359aa7116101dc578063c407caa311610102578063dd62ed3e116100a0578063f887ea401161006f578063f887ea4014610ab7578063f8b45b0514610ad7578063fabe628314610aed578063ffb54a9914610b0d57600080fd5b8063dd62ed3e14610a11578063f257418314610a57578063f2fde38b14610a77578063f708a64f14610a9757600080fd5b8063c9567bf9116100dc578063c9567bf9146109b0578063caa5581b146109c5578063caf576e7146109db578063d920334e146109f157600080fd5b8063c407caa31461095a578063c45a01551461097a578063c8d1293d1461099a57600080fd5b80638b42507f1161017a578063a9059cbb11610149578063a9059cbb146108e4578063b515566a14610904578063bb542ef014610924578063bf56b3711461094457600080fd5b80638b42507f1461084557806395d89b4114610875578063a3a2e89e146108a4578063a8aa1b31146108c457600080fd5b806381934031116101b657806381934031146107dd57806384e9bd42146107fd57806389291a8f14610812578063893d20e81461082757600080fd5b806377359aa71461077c5780637db1342c1461079c5780637dfcbe34146107bc57600080fd5b80633d562f7a116102c15780634a74bb021161025f57806366eb37851161022e57806366eb37851461070557806370a082311461071a5780637437681e1461075057806375df13051461076657600080fd5b80634a74bb021461068457806352999e23146106a5578063571ac8b0146106c55780635d098b38146106e557600080fd5b80634355855a1161029b5780634355855a146106085780634543437714610638578063468c7ee21461064e578063470624021461066e57600080fd5b80633d562f7a146105805780633dab5269146105b85780633f4218e0146105d857600080fd5b80632b112e491161032e5780632dbea2e1116103085780632dbea2e1146104f55780632f54bf6e1461051557806330ca34ee14610544578063313ce5671461056457600080fd5b80632b112e49146104aa5780632b14ca56146104bf5780632d48e896146104d557600080fd5b80630bdb28781161036a5780630bdb28781461043357806318160ddd1461045557806323b872dd1461046a578063273123b71461048a57600080fd5b80630445b6671461039c57806306fdde03146103c5578063095ea7b31461040357600080fd5b3661039757005b600080fd5b3480156103a857600080fd5b506103b2601e5481565b6040519081526020015b60405180910390f35b3480156103d157600080fd5b5060408051808201909152600c81526b466565642054686520496e7560a01b60208201525b6040516103bc9190612153565b34801561040f57600080fd5b5061042361041e3660046121cd565b610b2e565b60405190151581526020016103bc565b34801561043f57600080fd5b5061045361044e3660046121f9565b610b9b565b005b34801561046157600080fd5b506002546103b2565b34801561047657600080fd5b50610423610485366004612212565b610bd3565b34801561049657600080fd5b506104536104a5366004612253565b610c95565b3480156104b657600080fd5b506103b2610ce0565b3480156104cb57600080fd5b506103b260105481565b3480156104e157600080fd5b506104536104f0366004612270565b610d32565b34801561050157600080fd5b50610453610510366004612292565b610dc6565b34801561052157600080fd5b50610423610530366004612253565b6000546001600160a01b0391821691161490565b34801561055057600080fd5b5061045361055f366004612270565b610dfe565b34801561057057600080fd5b50604051601281526020016103bc565b34801561058c57600080fd5b50601a546105a0906001600160a01b031681565b6040516001600160a01b0390911681526020016103bc565b3480156105c457600080fd5b506104536105d33660046122ce565b610eb0565b3480156105e457600080fd5b506104236105f3366004612253565b600a6020526000908152604090205460ff1681565b34801561061457600080fd5b50610423610623366004612253565b600c6020526000908152604090205460ff1681565b34801561064457600080fd5b506103b260145481565b34801561065a57600080fd5b50610453610669366004612253565b610efc565b34801561067a57600080fd5b506103b2600f5481565b34801561069057600080fd5b5060195461042390600160a81b900460ff1681565b3480156106b157600080fd5b506104536106c0366004612253565b610f48565b3480156106d157600080fd5b506104236106e0366004612253565b610f99565b3480156106f157600080fd5b50610453610700366004612253565b610fa7565b34801561071157600080fd5b50610453610ff3565b34801561072657600080fd5b506103b2610735366004612253565b6001600160a01b031660009081526003602052604090205490565b34801561075c57600080fd5b506103b2601c5481565b34801561077257600080fd5b506103b260135481565b34801561078857600080fd5b506103b2610797366004612253565b611027565b3480156107a857600080fd5b506104536107b73660046121f9565b611096565b3480156107c857600080fd5b5060085461042390600160a01b900460ff1681565b3480156107e957600080fd5b506104536107f83660046121f9565b6110c5565b34801561080957600080fd5b50610453611154565b34801561081e57600080fd5b506104536111b3565b34801561083357600080fd5b506000546001600160a01b03166105a0565b34801561085157600080fd5b50610423610860366004612253565b600b6020526000908152604090205460ff1681565b34801561088157600080fd5b506040805180820190915260068152654b4942424c4560d01b60208201526103f6565b3480156108b057600080fd5b506104536108bf3660046122ea565b611211565b3480156108d057600080fd5b506016546105a0906001600160a01b031681565b3480156108f057600080fd5b506104236108ff3660046121cd565b611266565b34801561091057600080fd5b5061045361091f366004612335565b611273565b34801561093057600080fd5b5061045361093f366004612253565b611305565b34801561095057600080fd5b506103b2600d5481565b34801561096657600080fd5b506019546105a0906001600160a01b031681565b34801561098657600080fd5b506017546105a0906001600160a01b031681565b3480156109a657600080fd5b506103b260125481565b3480156109bc57600080fd5b50610453611351565b3480156109d157600080fd5b506103b260115481565b3480156109e757600080fd5b506103b2601b5481565b3480156109fd57600080fd5b50610453610a0c3660046121f9565b611394565b348015610a1d57600080fd5b506103b2610a2c3660046123fa565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b348015610a6357600080fd5b506001546105a0906001600160a01b031681565b348015610a8357600080fd5b50610453610a92366004612253565b6113c3565b348015610aa357600080fd5b50610453610ab23660046122ea565b611441565b348015610ac357600080fd5b506015546105a0906001600160a01b031681565b348015610ae357600080fd5b506103b2601d5481565b348015610af957600080fd5b50610453610b083660046122ea565b611475565b348015610b1957600080fd5b5060195461042390600160b01b900460ff1681565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b899086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610bce5760405162461bcd60e51b8152600401610bc590612433565b60405180910390fd5b601b55565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610c80576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600482528381203382529091529190912054610c5b91849061150c565b6001600160a01b03851660009081526004602090815260408083203384529091529020555b610c8b848484611546565b90505b9392505050565b6000546001600160a01b03163314610cbf5760405162461bcd60e51b8152600401610bc590612433565b6001600160a01b03166000908152600960205260409020805460ff19169055565b6008546001600160a01b0316600090815260036020526040812054610d2d906007546001600160a01b0316600090815260036020526040902054610d2790600254906119fc565b906119fc565b905090565b6000546001600160a01b03163314610d5c5760405162461bcd60e51b8152600401610bc590612433565b601a546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e896906044015b600060405180830381600087803b158015610daa57600080fd5b505af1158015610dbe573d6000803e3d6000fd5b505050505050565b6000546001600160a01b03163314610df05760405162461bcd60e51b8152600401610bc590612433565b601192909255601255601355565b6000546001600160a01b03163314610e285760405162461bcd60e51b8152600401610bc590612433565b600f8290556010819055600a821115610e6e5760405162461bcd60e51b81526020600482015260086024820152670e8dede40d0d2ced60c31b6044820152606401610bc5565b600a6010541115610eac5760405162461bcd60e51b81526020600482015260086024820152670e8dede40d0d2ced60c31b6044820152606401610bc5565b5050565b6000546001600160a01b03163314610eda5760405162461bcd60e51b8152600401610bc590612433565b60198054921515600160a81b0260ff60a81b1990931692909217909155601e55565b6000546001600160a01b03163314610f265760405162461bcd60e51b8152600401610bc590612433565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610f725760405162461bcd60e51b8152600401610bc590612433565b600180546001600160a01b0319166001600160a01b038316179055610f9681611a3e565b50565b6000610b9582600019610b2e565b6000546001600160a01b03163314610fd15760405162461bcd60e51b8152600401610bc590612433565b601980546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461101d5760405162461bcd60e51b8152600401610bc590612433565b611025611a70565b565b601a5460405163051fa63360e31b81526001600160a01b03838116600483015260009216906328fd319890602401602060405180830381865afa158015611072573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b959190612453565b6000546001600160a01b031633146110c05760405162461bcd60e51b8152600401610bc590612433565b601d55565b6000546001600160a01b031633146110ef5760405162461bcd60e51b8152600401610bc590612433565b601a546040516001624d3b8760e01b03198152600481018390526001600160a01b039091169063ffb2c479906024015b600060405180830381600087803b15801561113957600080fd5b505af115801561114d573d6000803e3d6000fd5b5050505050565b601a54604051636eddd51f60e01b81523360048201526001600160a01b0390911690636eddd51f90602401600060405180830381600087803b15801561119957600080fd5b505af11580156111ad573d6000803e3d6000fd5b50505050565b6000546001600160a01b031633146111dd5760405162461bcd60e51b8152600401610bc590612433565b478015610f9657604051309082156108fc029083906000818181858888f19350505050158015610eac573d6000803e3d6000fd5b6000546001600160a01b0316331461123b5760405162461bcd60e51b8152600401610bc590612433565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000610c8e338484611546565b6000546001600160a01b0316331461129d5760405162461bcd60e51b8152600401610bc590612433565b60005b8151811015610eac576001600960008484815181106112c1576112c161246c565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806112fd81612498565b9150506112a0565b6000546001600160a01b0316331461132f5760405162461bcd60e51b8152600401610bc590612433565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461137b5760405162461bcd60e51b8152600401610bc590612433565b43600d556019805460ff60b01b1916600160b01b179055565b6000546001600160a01b031633146113be5760405162461bcd60e51b8152600401610bc590612433565b601c55565b6000546001600160a01b031633146113ed5760405162461bcd60e51b8152600401610bc590612433565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b0316331461146b5760405162461bcd60e51b8152600401610bc590612433565b610eac8282611bfe565b6000546001600160a01b0316331461149f5760405162461bcd60e51b8152600401610bc590612433565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000610c8e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611cdd565b600081848411156115305760405162461bcd60e51b8152600401610bc59190612153565b50600061153d84866124b1565b95945050505050565b600080546001600160a01b0385811691161480159061157357506000546001600160a01b03848116911614155b156115d157601954600160b01b900460ff166115d15760405162461bcd60e51b815260206004820152601760248201527f686f6c6420757220686f7273657320626967206775792e0000000000000000006044820152606401610bc5565b6001600160a01b03841660009081526009602052604090205460ff1615801561161357506001600160a01b03831660009081526009602052604090205460ff16155b61161c57600080fd5b601954600160a01b900460ff161561164057611639848484611d0b565b9050610c8e565b601c548211158061166957506001600160a01b0384166000908152600b602052604090205460ff165b61169a5760405162461bcd60e51b81526020600482015260026024820152610e8f60f31b6044820152606401610bc5565b6001600160a01b0383166000908152600b602052604090205460ff161580156116cc5750600854600160a01b900460ff165b1561172e57601d546001600160a01b0384166000908152600360205260409020546116f79084611df1565b111561172e5760405162461bcd60e51b81526020600482015260066024820152651dd85b1b195d60d21b6044820152606401610bc5565b6016546001600160a01b031633148015906117535750601954600160a01b900460ff16155b80156117685750601954600160a81b900460ff165b80156117855750601e543060009081526003602052604090205410155b1561179257611792611a70565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600390915291909120546117e491849061150c565b6001600160a01b038516600090815260036020908152604080832093909355600a90529081205460ff1615801561183457506001600160a01b0384166000908152600a602052604090205460ff16155b61183e5782611849565b611849858585611e50565b6001600160a01b03851660009081526003602052604090205490915061186f9082611df1565b6001600160a01b038086166000908152600360209081526040808320949094559188168152600c909152205460ff1661191357601a546001600160a01b0386811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561190057600080fd5b505af1925050508015611911575060015b505b6001600160a01b0384166000908152600c602052604090205460ff166119a457601a546001600160a01b0385811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561199157600080fd5b505af19250505080156119a2575060015b505b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119e991815260200190565b60405180910390a3506001949350505050565b6000610c8e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061150c565b601a546040516352999e2360e01b81526001600160a01b038381166004830152909116906352999e239060240161111f565b6019805460ff60a01b1916600160a01b17905530600090815260036020526040812054601254909190611ab690600290611ab09060649082908790611f13565b906114ca565b90506000611ac483836119fc565b9050611acf81611f95565b60004790506000611af06064611ab060115485611f1390919063ffffffff16565b90506000611b0e6064611ab060135486611f1390919063ffffffff16565b90506000611b316002611ab06064611ab060125489611f1390919063ffffffff16565b90508315611b75576019546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611b73573d6000803e3d6000fd5b505b601a60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015611bc557600080fd5b505af193505050508015611bd7575060015b508515611be857611be886826120be565b50506019805460ff60a01b191690555050505050565b6001600160a01b0382163014801590611c2557506016546001600160a01b03838116911614155b611c2e57600080fd5b6001600160a01b0382166000908152600c60205260409020805460ff19168215801591909117909155611c9457601a54604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca9690604401610d90565b601a546001600160a01b0383811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401610d90565b60008183611cfe5760405162461bcd60e51b8152600401610bc59190612153565b50600061153d84866124c8565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600390915291822054611d5c91849061150c565b6001600160a01b038086166000908152600360205260408082209390935590851681522054611d8b9083611df1565b6001600160a01b0380851660008181526003602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ddf9086815260200190565b60405180910390a35060019392505050565b600080611dfe83856124ea565b905083811015610c8e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610bc5565b60165460009081906001600160a01b03858116911614611e7257600f54611e76565b6010545b90506000611e896064611ab08685611f13565b30600090815260036020526040902054909150611ea69082611df1565b30600081815260036020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ef79085815260200190565b60405180910390a3611f0984826119fc565b9695505050505050565b600082600003611f2557506000610b95565b6000611f318385612502565b905082611f3e85836124c8565b14610c8e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610bc5565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611fca57611fca61246c565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612023573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120479190612521565b8160018151811061205a5761205a61246c565b60200260200101906001600160a01b031690816001600160a01b0316815250506120843083610b2e565b5060155460405163791ac94760e01b81526001600160a01b039091169063791ac94790610d9090859060009086903090429060040161253e565b601554600e5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af115801561212e573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061114d91906125af565b600060208083528351808285015260005b8181101561218057858101830151858201604001528201612164565b81811115612192576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610f9657600080fd5b80356121c8816121a8565b919050565b600080604083850312156121e057600080fd5b82356121eb816121a8565b946020939093013593505050565b60006020828403121561220b57600080fd5b5035919050565b60008060006060848603121561222757600080fd5b8335612232816121a8565b92506020840135612242816121a8565b929592945050506040919091013590565b60006020828403121561226557600080fd5b8135610c8e816121a8565b6000806040838503121561228357600080fd5b50508035926020909101359150565b6000806000606084860312156122a757600080fd5b505081359360208301359350604090920135919050565b803580151581146121c857600080fd5b600080604083850312156122e157600080fd5b6121eb836122be565b600080604083850312156122fd57600080fd5b8235612308816121a8565b9150612316602084016122be565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561234857600080fd5b823567ffffffffffffffff8082111561236057600080fd5b818501915085601f83011261237457600080fd5b8135818111156123865761238661231f565b8060051b604051601f19603f830116810181811085821117156123ab576123ab61231f565b6040529182528482019250838101850191888311156123c957600080fd5b938501935b828510156123ee576123df856121bd565b845293850193928501926123ce565b98975050505050505050565b6000806040838503121561240d57600080fd5b8235612418816121a8565b91506020830135612428816121a8565b809150509250929050565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b60006020828403121561246557600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016124aa576124aa612482565b5060010190565b6000828210156124c3576124c3612482565b500390565b6000826124e557634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156124fd576124fd612482565b500190565b600081600019048311821515161561251c5761251c612482565b500290565b60006020828403121561253357600080fd5b8151610c8e816121a8565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561258e5784516001600160a01b031683529383019391830191600101612569565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156125c457600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220415dcb164cb2e940133399c582f4f968b1876bee6ea6d9259b74c5462262105b64736f6c634300080d003360806040526ec097ce7bc90715b34b9f1000000000600b55610708600c556000600d5534801561002e57600080fd5b50600080546001600160a01b03199081163317909155600280548216737a250d5630b4cf539739df2c5dacb4c659f2488d1790556001805490911673050d94685c6b0477e1fc555888af6e2bb8dfbda5179055611071806100906000396000f3fe60806040526004361061010d5760003560e01c80638c21cd5211610095578063e2d2e21911610064578063e2d2e219146102d1578063efca2eed146102e7578063f2574183146102fd578063ffb2c47914610335578063ffd49c841461035557600080fd5b80638c21cd521461022c578063997664d71461025c578063ce7c2ac214610272578063d0e30db0146102c957600080fd5b80632d48e896116100dc5780632d48e896146101a05780633a98ef39146101c05780634fab0ae8146101d657806352999e23146101ec5780636eddd51f1461020c57600080fd5b806311ce023d1461012157806314b6ca961461014a57806326987b601461016a57806328fd31981461018057600080fd5b3661011c5761011a61036b565b005b600080fd5b34801561012d57600080fd5b50610137600b5481565b6040519081526020015b60405180910390f35b34801561015657600080fd5b5061011a610165366004610dd5565b6105e3565b34801561017657600080fd5b50610137600e5481565b34801561018c57600080fd5b5061013761019b366004610e01565b61075b565b3480156101ac57600080fd5b5061011a6101bb366004610e1e565b6107e6565b3480156101cc57600080fd5b5061013760075481565b3480156101e257600080fd5b50610137600d5481565b3480156101f857600080fd5b5061011a610207366004610e01565b610808565b34801561021857600080fd5b5061011a610227366004610e01565b610841565b34801561023857600080fd5b5061024c610247366004610e01565b610864565b6040519015158152602001610141565b34801561026857600080fd5b5061013760085481565b34801561027e57600080fd5b506102ae61028d366004610e01565b60066020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610141565b61011a61036b565b3480156102dd57600080fd5b50610137600a5481565b3480156102f357600080fd5b5061013760095481565b34801561030957600080fd5b5060015461031d906001600160a01b031681565b6040516001600160a01b039091168152602001610141565b34801561034157600080fd5b5061011a610350366004610e40565b6108aa565b34801561036157600080fd5b50610137600c5481565b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156103b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d89190610e59565b60408051600280825260608201835292935060009290916020830190803683375050600254604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015610447573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061046b9190610e72565b8160008151811061047e5761047e610e8f565b6001600160a01b03928316602091820292909201015260018054835192169183919081106104ae576104ae610e8f565b6001600160a01b03928316602091820292909201015260025460405163b6f9de9560e01b815291169063b6f9de959034906104f490600090869030904290600401610ea5565b6000604051808303818588803b15801561050d57600080fd5b505af1158015610521573d6000803e3d6000fd5b50506001546040516370a0823160e01b8152306004820152600094506105a193508692506001600160a01b03909116906370a0823190602401602060405180830381865afa158015610577573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059b9190610e59565b90610997565b6008549091506105b190826109e0565b600855600754600b546105db916105d2916105cc9085610a44565b90610ac6565b600a54906109e0565b600a55505050565b6000546001600160a01b031633146105fa57600080fd5b6001600160a01b038216600090815260066020526040902054156106215761062182610b08565b60008111801561064757506001600160a01b038216600090815260066020526040902054155b156106ad57600380546001600160a01b0384166000818152600460205260408120839055600183018455929092527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b03191690911790556106e0565b801580156106d257506001600160a01b03821660009081526006602052604090205415155b156106e0576106e082610c26565b6001600160a01b03821660009081526006602052604090205460075461071191839161070b91610997565b906109e0565b6007556001600160a01b038216600090815260066020526040902081905561073881610d3b565b6001600160a01b0390921660009081526006602052604090206001019190915550565b6001600160a01b038116600090815260066020526040812054810361078257506000919050565b6001600160a01b0382166000908152600660205260408120546107a490610d3b565b6001600160a01b0384166000908152600660205260409020600101549091508082116107d4575060009392505050565b6107de8282610997565b949350505050565b6000546001600160a01b031633146107fd57600080fd5b600c91909155600d55565b6000546001600160a01b0316331461081f57600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461085857600080fd5b61086181610b08565b50565b600c546001600160a01b0382166000908152600560205260408120549091429161088e9190610f25565b1080156108a45750600d546108a28361075b565b115b92915050565b60035460008190036108ba575050565b60008060005a90505b84821080156108d157508383105b156109905783600e54106108e5576000600e555b6109176003600e54815481106108fd576108fd610e8f565b6000918252602090912001546001600160a01b0316610864565b1561094e5761094e6003600e548154811061093457610934610e8f565b6000918252602090912001546001600160a01b0316610b08565b61096361095c5a8390610997565b83906109e0565b91505a600e8054919250600061097883610f3d565b9190505550828061098890610f3d565b9350506108c3565b5050505050565b60006109d983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d58565b9392505050565b6000806109ed8385610f25565b9050838110156109d95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064015b60405180910390fd5b600082600003610a56575060006108a4565b6000610a628385610f56565b905082610a6f8583610f75565b146109d95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a3b565b60006109d983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610d92565b6001600160a01b0381166000908152600660205260408120549003610b2a5750565b6000610b358261075b565b90508015610c2257600954610b4a90826109e0565b60095560015460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015610ba0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc49190610f97565b506001600160a01b03821660009081526005602090815260408083204290556006909152902060020154610bf890826109e0565b6001600160a01b038316600090815260066020526040902060028101919091555461073890610d3b565b5050565b60038054610c3690600190610fb9565b81548110610c4657610c46610e8f565b60009182526020808320909101546001600160a01b0384811684526004909252604090922054600380549290931692918110610c8457610c84610e8f565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260049182905260408120546003805491939291610cd090600190610fb9565b81548110610ce057610ce0610e8f565b60009182526020808320909101546001600160a01b031683528201929092526040019020556003805480610d1657610d16610fd0565b600082815260209020810160001990810180546001600160a01b031916905501905550565b60006108a4600b546105cc600a5485610a4490919063ffffffff16565b60008184841115610d7c5760405162461bcd60e51b8152600401610a3b9190610fe6565b506000610d898486610fb9565b95945050505050565b60008183610db35760405162461bcd60e51b8152600401610a3b9190610fe6565b506000610d898486610f75565b6001600160a01b038116811461086157600080fd5b60008060408385031215610de857600080fd5b8235610df381610dc0565b946020939093013593505050565b600060208284031215610e1357600080fd5b81356109d981610dc0565b60008060408385031215610e3157600080fd5b50508035926020909101359150565b600060208284031215610e5257600080fd5b5035919050565b600060208284031215610e6b57600080fd5b5051919050565b600060208284031215610e8457600080fd5b81516109d981610dc0565b634e487b7160e01b600052603260045260246000fd5b600060808201868352602060808185015281875180845260a086019150828901935060005b81811015610eef5784516001600160a01b031683529383019391830191600101610eca565b50506001600160a01b039690961660408501525050506060015292915050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610f3857610f38610f0f565b500190565b600060018201610f4f57610f4f610f0f565b5060010190565b6000816000190483118215151615610f7057610f70610f0f565b500290565b600082610f9257634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215610fa957600080fd5b815180151581146109d957600080fd5b600082821015610fcb57610fcb610f0f565b500390565b634e487b7160e01b600052603160045260246000fd5b600060208083528351808285015260005b8181101561101357858101830151858201604001528201610ff7565b81811115611025576000604083870101525b50601f01601f191692909201604001939250505056fea2646970667358221220f6852dd3561d34260789b0204913d6ea2ad7fa302165c1d4d70a471188a603a864736f6c634300080d00330000000000000000000000006c7aa9229e2f0734d1fe01b2af6a61a7fd5323af

Deployed Bytecode

0x6080604052600436106103905760003560e01c806377359aa7116101dc578063c407caa311610102578063dd62ed3e116100a0578063f887ea401161006f578063f887ea4014610ab7578063f8b45b0514610ad7578063fabe628314610aed578063ffb54a9914610b0d57600080fd5b8063dd62ed3e14610a11578063f257418314610a57578063f2fde38b14610a77578063f708a64f14610a9757600080fd5b8063c9567bf9116100dc578063c9567bf9146109b0578063caa5581b146109c5578063caf576e7146109db578063d920334e146109f157600080fd5b8063c407caa31461095a578063c45a01551461097a578063c8d1293d1461099a57600080fd5b80638b42507f1161017a578063a9059cbb11610149578063a9059cbb146108e4578063b515566a14610904578063bb542ef014610924578063bf56b3711461094457600080fd5b80638b42507f1461084557806395d89b4114610875578063a3a2e89e146108a4578063a8aa1b31146108c457600080fd5b806381934031116101b657806381934031146107dd57806384e9bd42146107fd57806389291a8f14610812578063893d20e81461082757600080fd5b806377359aa71461077c5780637db1342c1461079c5780637dfcbe34146107bc57600080fd5b80633d562f7a116102c15780634a74bb021161025f57806366eb37851161022e57806366eb37851461070557806370a082311461071a5780637437681e1461075057806375df13051461076657600080fd5b80634a74bb021461068457806352999e23146106a5578063571ac8b0146106c55780635d098b38146106e557600080fd5b80634355855a1161029b5780634355855a146106085780634543437714610638578063468c7ee21461064e578063470624021461066e57600080fd5b80633d562f7a146105805780633dab5269146105b85780633f4218e0146105d857600080fd5b80632b112e491161032e5780632dbea2e1116103085780632dbea2e1146104f55780632f54bf6e1461051557806330ca34ee14610544578063313ce5671461056457600080fd5b80632b112e49146104aa5780632b14ca56146104bf5780632d48e896146104d557600080fd5b80630bdb28781161036a5780630bdb28781461043357806318160ddd1461045557806323b872dd1461046a578063273123b71461048a57600080fd5b80630445b6671461039c57806306fdde03146103c5578063095ea7b31461040357600080fd5b3661039757005b600080fd5b3480156103a857600080fd5b506103b2601e5481565b6040519081526020015b60405180910390f35b3480156103d157600080fd5b5060408051808201909152600c81526b466565642054686520496e7560a01b60208201525b6040516103bc9190612153565b34801561040f57600080fd5b5061042361041e3660046121cd565b610b2e565b60405190151581526020016103bc565b34801561043f57600080fd5b5061045361044e3660046121f9565b610b9b565b005b34801561046157600080fd5b506002546103b2565b34801561047657600080fd5b50610423610485366004612212565b610bd3565b34801561049657600080fd5b506104536104a5366004612253565b610c95565b3480156104b657600080fd5b506103b2610ce0565b3480156104cb57600080fd5b506103b260105481565b3480156104e157600080fd5b506104536104f0366004612270565b610d32565b34801561050157600080fd5b50610453610510366004612292565b610dc6565b34801561052157600080fd5b50610423610530366004612253565b6000546001600160a01b0391821691161490565b34801561055057600080fd5b5061045361055f366004612270565b610dfe565b34801561057057600080fd5b50604051601281526020016103bc565b34801561058c57600080fd5b50601a546105a0906001600160a01b031681565b6040516001600160a01b0390911681526020016103bc565b3480156105c457600080fd5b506104536105d33660046122ce565b610eb0565b3480156105e457600080fd5b506104236105f3366004612253565b600a6020526000908152604090205460ff1681565b34801561061457600080fd5b50610423610623366004612253565b600c6020526000908152604090205460ff1681565b34801561064457600080fd5b506103b260145481565b34801561065a57600080fd5b50610453610669366004612253565b610efc565b34801561067a57600080fd5b506103b2600f5481565b34801561069057600080fd5b5060195461042390600160a81b900460ff1681565b3480156106b157600080fd5b506104536106c0366004612253565b610f48565b3480156106d157600080fd5b506104236106e0366004612253565b610f99565b3480156106f157600080fd5b50610453610700366004612253565b610fa7565b34801561071157600080fd5b50610453610ff3565b34801561072657600080fd5b506103b2610735366004612253565b6001600160a01b031660009081526003602052604090205490565b34801561075c57600080fd5b506103b2601c5481565b34801561077257600080fd5b506103b260135481565b34801561078857600080fd5b506103b2610797366004612253565b611027565b3480156107a857600080fd5b506104536107b73660046121f9565b611096565b3480156107c857600080fd5b5060085461042390600160a01b900460ff1681565b3480156107e957600080fd5b506104536107f83660046121f9565b6110c5565b34801561080957600080fd5b50610453611154565b34801561081e57600080fd5b506104536111b3565b34801561083357600080fd5b506000546001600160a01b03166105a0565b34801561085157600080fd5b50610423610860366004612253565b600b6020526000908152604090205460ff1681565b34801561088157600080fd5b506040805180820190915260068152654b4942424c4560d01b60208201526103f6565b3480156108b057600080fd5b506104536108bf3660046122ea565b611211565b3480156108d057600080fd5b506016546105a0906001600160a01b031681565b3480156108f057600080fd5b506104236108ff3660046121cd565b611266565b34801561091057600080fd5b5061045361091f366004612335565b611273565b34801561093057600080fd5b5061045361093f366004612253565b611305565b34801561095057600080fd5b506103b2600d5481565b34801561096657600080fd5b506019546105a0906001600160a01b031681565b34801561098657600080fd5b506017546105a0906001600160a01b031681565b3480156109a657600080fd5b506103b260125481565b3480156109bc57600080fd5b50610453611351565b3480156109d157600080fd5b506103b260115481565b3480156109e757600080fd5b506103b2601b5481565b3480156109fd57600080fd5b50610453610a0c3660046121f9565b611394565b348015610a1d57600080fd5b506103b2610a2c3660046123fa565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b348015610a6357600080fd5b506001546105a0906001600160a01b031681565b348015610a8357600080fd5b50610453610a92366004612253565b6113c3565b348015610aa357600080fd5b50610453610ab23660046122ea565b611441565b348015610ac357600080fd5b506015546105a0906001600160a01b031681565b348015610ae357600080fd5b506103b2601d5481565b348015610af957600080fd5b50610453610b083660046122ea565b611475565b348015610b1957600080fd5b5060195461042390600160b01b900460ff1681565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b899086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610bce5760405162461bcd60e51b8152600401610bc590612433565b60405180910390fd5b601b55565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610c80576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600482528381203382529091529190912054610c5b91849061150c565b6001600160a01b03851660009081526004602090815260408083203384529091529020555b610c8b848484611546565b90505b9392505050565b6000546001600160a01b03163314610cbf5760405162461bcd60e51b8152600401610bc590612433565b6001600160a01b03166000908152600960205260409020805460ff19169055565b6008546001600160a01b0316600090815260036020526040812054610d2d906007546001600160a01b0316600090815260036020526040902054610d2790600254906119fc565b906119fc565b905090565b6000546001600160a01b03163314610d5c5760405162461bcd60e51b8152600401610bc590612433565b601a546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e896906044015b600060405180830381600087803b158015610daa57600080fd5b505af1158015610dbe573d6000803e3d6000fd5b505050505050565b6000546001600160a01b03163314610df05760405162461bcd60e51b8152600401610bc590612433565b601192909255601255601355565b6000546001600160a01b03163314610e285760405162461bcd60e51b8152600401610bc590612433565b600f8290556010819055600a821115610e6e5760405162461bcd60e51b81526020600482015260086024820152670e8dede40d0d2ced60c31b6044820152606401610bc5565b600a6010541115610eac5760405162461bcd60e51b81526020600482015260086024820152670e8dede40d0d2ced60c31b6044820152606401610bc5565b5050565b6000546001600160a01b03163314610eda5760405162461bcd60e51b8152600401610bc590612433565b60198054921515600160a81b0260ff60a81b1990931692909217909155601e55565b6000546001600160a01b03163314610f265760405162461bcd60e51b8152600401610bc590612433565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610f725760405162461bcd60e51b8152600401610bc590612433565b600180546001600160a01b0319166001600160a01b038316179055610f9681611a3e565b50565b6000610b9582600019610b2e565b6000546001600160a01b03163314610fd15760405162461bcd60e51b8152600401610bc590612433565b601980546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461101d5760405162461bcd60e51b8152600401610bc590612433565b611025611a70565b565b601a5460405163051fa63360e31b81526001600160a01b03838116600483015260009216906328fd319890602401602060405180830381865afa158015611072573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b959190612453565b6000546001600160a01b031633146110c05760405162461bcd60e51b8152600401610bc590612433565b601d55565b6000546001600160a01b031633146110ef5760405162461bcd60e51b8152600401610bc590612433565b601a546040516001624d3b8760e01b03198152600481018390526001600160a01b039091169063ffb2c479906024015b600060405180830381600087803b15801561113957600080fd5b505af115801561114d573d6000803e3d6000fd5b5050505050565b601a54604051636eddd51f60e01b81523360048201526001600160a01b0390911690636eddd51f90602401600060405180830381600087803b15801561119957600080fd5b505af11580156111ad573d6000803e3d6000fd5b50505050565b6000546001600160a01b031633146111dd5760405162461bcd60e51b8152600401610bc590612433565b478015610f9657604051309082156108fc029083906000818181858888f19350505050158015610eac573d6000803e3d6000fd5b6000546001600160a01b0316331461123b5760405162461bcd60e51b8152600401610bc590612433565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000610c8e338484611546565b6000546001600160a01b0316331461129d5760405162461bcd60e51b8152600401610bc590612433565b60005b8151811015610eac576001600960008484815181106112c1576112c161246c565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806112fd81612498565b9150506112a0565b6000546001600160a01b0316331461132f5760405162461bcd60e51b8152600401610bc590612433565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461137b5760405162461bcd60e51b8152600401610bc590612433565b43600d556019805460ff60b01b1916600160b01b179055565b6000546001600160a01b031633146113be5760405162461bcd60e51b8152600401610bc590612433565b601c55565b6000546001600160a01b031633146113ed5760405162461bcd60e51b8152600401610bc590612433565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b0316331461146b5760405162461bcd60e51b8152600401610bc590612433565b610eac8282611bfe565b6000546001600160a01b0316331461149f5760405162461bcd60e51b8152600401610bc590612433565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000610c8e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611cdd565b600081848411156115305760405162461bcd60e51b8152600401610bc59190612153565b50600061153d84866124b1565b95945050505050565b600080546001600160a01b0385811691161480159061157357506000546001600160a01b03848116911614155b156115d157601954600160b01b900460ff166115d15760405162461bcd60e51b815260206004820152601760248201527f686f6c6420757220686f7273657320626967206775792e0000000000000000006044820152606401610bc5565b6001600160a01b03841660009081526009602052604090205460ff1615801561161357506001600160a01b03831660009081526009602052604090205460ff16155b61161c57600080fd5b601954600160a01b900460ff161561164057611639848484611d0b565b9050610c8e565b601c548211158061166957506001600160a01b0384166000908152600b602052604090205460ff165b61169a5760405162461bcd60e51b81526020600482015260026024820152610e8f60f31b6044820152606401610bc5565b6001600160a01b0383166000908152600b602052604090205460ff161580156116cc5750600854600160a01b900460ff165b1561172e57601d546001600160a01b0384166000908152600360205260409020546116f79084611df1565b111561172e5760405162461bcd60e51b81526020600482015260066024820152651dd85b1b195d60d21b6044820152606401610bc5565b6016546001600160a01b031633148015906117535750601954600160a01b900460ff16155b80156117685750601954600160a81b900460ff165b80156117855750601e543060009081526003602052604090205410155b1561179257611792611a70565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600390915291909120546117e491849061150c565b6001600160a01b038516600090815260036020908152604080832093909355600a90529081205460ff1615801561183457506001600160a01b0384166000908152600a602052604090205460ff16155b61183e5782611849565b611849858585611e50565b6001600160a01b03851660009081526003602052604090205490915061186f9082611df1565b6001600160a01b038086166000908152600360209081526040808320949094559188168152600c909152205460ff1661191357601a546001600160a01b0386811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561190057600080fd5b505af1925050508015611911575060015b505b6001600160a01b0384166000908152600c602052604090205460ff166119a457601a546001600160a01b0385811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561199157600080fd5b505af19250505080156119a2575060015b505b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119e991815260200190565b60405180910390a3506001949350505050565b6000610c8e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061150c565b601a546040516352999e2360e01b81526001600160a01b038381166004830152909116906352999e239060240161111f565b6019805460ff60a01b1916600160a01b17905530600090815260036020526040812054601254909190611ab690600290611ab09060649082908790611f13565b906114ca565b90506000611ac483836119fc565b9050611acf81611f95565b60004790506000611af06064611ab060115485611f1390919063ffffffff16565b90506000611b0e6064611ab060135486611f1390919063ffffffff16565b90506000611b316002611ab06064611ab060125489611f1390919063ffffffff16565b90508315611b75576019546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611b73573d6000803e3d6000fd5b505b601a60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015611bc557600080fd5b505af193505050508015611bd7575060015b508515611be857611be886826120be565b50506019805460ff60a01b191690555050505050565b6001600160a01b0382163014801590611c2557506016546001600160a01b03838116911614155b611c2e57600080fd5b6001600160a01b0382166000908152600c60205260409020805460ff19168215801591909117909155611c9457601a54604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca9690604401610d90565b601a546001600160a01b0383811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401610d90565b60008183611cfe5760405162461bcd60e51b8152600401610bc59190612153565b50600061153d84866124c8565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600390915291822054611d5c91849061150c565b6001600160a01b038086166000908152600360205260408082209390935590851681522054611d8b9083611df1565b6001600160a01b0380851660008181526003602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ddf9086815260200190565b60405180910390a35060019392505050565b600080611dfe83856124ea565b905083811015610c8e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610bc5565b60165460009081906001600160a01b03858116911614611e7257600f54611e76565b6010545b90506000611e896064611ab08685611f13565b30600090815260036020526040902054909150611ea69082611df1565b30600081815260036020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ef79085815260200190565b60405180910390a3611f0984826119fc565b9695505050505050565b600082600003611f2557506000610b95565b6000611f318385612502565b905082611f3e85836124c8565b14610c8e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610bc5565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611fca57611fca61246c565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612023573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120479190612521565b8160018151811061205a5761205a61246c565b60200260200101906001600160a01b031690816001600160a01b0316815250506120843083610b2e565b5060155460405163791ac94760e01b81526001600160a01b039091169063791ac94790610d9090859060009086903090429060040161253e565b601554600e5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af115801561212e573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061114d91906125af565b600060208083528351808285015260005b8181101561218057858101830151858201604001528201612164565b81811115612192576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610f9657600080fd5b80356121c8816121a8565b919050565b600080604083850312156121e057600080fd5b82356121eb816121a8565b946020939093013593505050565b60006020828403121561220b57600080fd5b5035919050565b60008060006060848603121561222757600080fd5b8335612232816121a8565b92506020840135612242816121a8565b929592945050506040919091013590565b60006020828403121561226557600080fd5b8135610c8e816121a8565b6000806040838503121561228357600080fd5b50508035926020909101359150565b6000806000606084860312156122a757600080fd5b505081359360208301359350604090920135919050565b803580151581146121c857600080fd5b600080604083850312156122e157600080fd5b6121eb836122be565b600080604083850312156122fd57600080fd5b8235612308816121a8565b9150612316602084016122be565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561234857600080fd5b823567ffffffffffffffff8082111561236057600080fd5b818501915085601f83011261237457600080fd5b8135818111156123865761238661231f565b8060051b604051601f19603f830116810181811085821117156123ab576123ab61231f565b6040529182528482019250838101850191888311156123c957600080fd5b938501935b828510156123ee576123df856121bd565b845293850193928501926123ce565b98975050505050505050565b6000806040838503121561240d57600080fd5b8235612418816121a8565b91506020830135612428816121a8565b809150509250929050565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b60006020828403121561246557600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016124aa576124aa612482565b5060010190565b6000828210156124c3576124c3612482565b500390565b6000826124e557634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156124fd576124fd612482565b500190565b600081600019048311821515161561251c5761251c612482565b500290565b60006020828403121561253357600080fd5b8151610c8e816121a8565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561258e5784516001600160a01b031683529383019391830191600101612569565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156125c457600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220415dcb164cb2e940133399c582f4f968b1876bee6ea6d9259b74c5462262105b64736f6c634300080d0033

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

0000000000000000000000006c7aa9229e2f0734d1fe01b2af6a61a7fd5323af

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000006c7aa9229e2f0734d1fe01b2af6a61a7fd5323af


Deployed Bytecode Sourcemap

11138:12281:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13028:52;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;13028:52:0;;;;;;;;17515:80;;;;;;;;;;-1:-1:-1;17587:5:0;;;;;;;;;;;;-1:-1:-1;;;17587:5:0;;;;17515:80;;;;;;;:::i;17941:216::-;;;;;;;;;;-1:-1:-1;17941:216:0;;;;;:::i;:::-;;:::i;:::-;;;1558:14:1;;1551:22;1533:41;;1521:2;1506:18;17941:216:0;1393:187:1;16972:104:0;;;;;;;;;;-1:-1:-1;16972:104:0;;;;;:::i;:::-;;:::i;:::-;;17245:88;;;;;;;;;;-1:-1:-1;17318:12:0;;17245:88;;18455:366;;;;;;;;;;-1:-1:-1;18455:366:0;;;;;:::i;:::-;;:::i;16397:90::-;;;;;;;;;;-1:-1:-1;16397:90:0;;;;;:::i;:::-;;:::i;17095:142::-;;;;;;;;;;;;;:::i;12208:27::-;;;;;;;;;;;;;;;;16195:194;;;;;;;;;;-1:-1:-1;16195:194:0;;;;;:::i;:::-;;:::i;14848:233::-;;;;;;;;;;-1:-1:-1;14848:233:0;;;;;:::i;:::-;;:::i;3073:103::-;;;;;;;;;;-1:-1:-1;3073:103:0;;;;;:::i;:::-;3128:4;3163:5;-1:-1:-1;;;;;3152:16:0;;;3163:5;;3152:16;;3073:103;14591:244;;;;;;;;;;-1:-1:-1;14591:244:0;;;;;:::i;:::-;;:::i;17339:80::-;;;;;;;;;;-1:-1:-1;17339:80:0;;11437:2;3199:36:1;;3187:2;3172:18;17339:80:0;3057:184:1;12739:22:0;;;;;;;;;;-1:-1:-1;12739:22:0;;;;-1:-1:-1;;;;;12739:22:0;;;;;;-1:-1:-1;;;;;3434:32:1;;;3416:51;;3404:2;3389:18;12739:22:0;3246:227:1;15988:199:0;;;;;;;;;;-1:-1:-1;15988:199:0;;;;;:::i;:::-;;:::i;11939:44::-;;;;;;;;;;-1:-1:-1;11939:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12045:49;;;;;;;;;;-1:-1:-1;12045:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12362:34;;;;;;;;;;;;;;;;15740:102;;;;;;;;;;-1:-1:-1;15740:102:0;;;;;:::i;:::-;;:::i;12175:26::-;;;;;;;;;;;;;;;;12648:40;;;;;;;;;;-1:-1:-1;12648:40:0;;;;-1:-1:-1;;;12648:40:0;;;;;;14116:120;;;;;;;;;;-1:-1:-1;14116:120:0;;;;;:::i;:::-;;:::i;18165:122::-;;;;;;;;;;-1:-1:-1;18165:122:0;;;;;:::i;:::-;;:::i;15582:150::-;;;;;;;;;;-1:-1:-1;15582:150:0;;;;;:::i;:::-;;:::i;22735:74::-;;;;;;;;;;;;;:::i;17685:105::-;;;;;;;;;;-1:-1:-1;17685:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;17769:18:0;17751:7;17769:18;;;:9;:18;;;;;;;17685:105;12924:43;;;;;;;;;;;;;;;;12322:31;;;;;;;;;;;;;;;;23179:150;;;;;;;;;;-1:-1:-1;23179:150:0;;;;;:::i;:::-;;:::i;15192:104::-;;;;;;;;;;-1:-1:-1;15192:104:0;;;;;:::i;:::-;;:::i;11858:26::-;;;;;;;;;;-1:-1:-1;11858:26:0;;;;-1:-1:-1;;;11858:26:0;;;;;;23062:109;;;;;;;;;;-1:-1:-1;23062:109:0;;;;;:::i;:::-;;:::i;23337:79::-;;;;;;;;;;;;;:::i;22817:237::-;;;;;;;;;;;;;:::i;17601:78::-;;;;;;;;;;-1:-1:-1;17653:7:0;17671:5;-1:-1:-1;;;;;17671:5:0;17601:78;;11990:48;;;;;;;;;;-1:-1:-1;11990:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17425:84;;;;;;;;;;-1:-1:-1;17499:7:0;;;;;;;;;;;;-1:-1:-1;;;17499:7:0;;;;17425:84;;15308:122;;;;;;;;;;-1:-1:-1;15308:122:0;;;;;:::i;:::-;;:::i;12436:19::-;;;;;;;;;;-1:-1:-1;12436:19:0;;;;-1:-1:-1;;;;;12436:19:0;;;18295:152;;;;;;;;;;-1:-1:-1;18295:152:0;;;;;:::i;:::-;;:::i;14244:166::-;;;;;;;;;;-1:-1:-1;14244:166:0;;;;;:::i;:::-;;:::i;15854:121::-;;;;;;;;;;-1:-1:-1;15854:121:0;;;;;:::i;:::-;;:::i;12103:25::-;;;;;;;;;;;;;;;;12524:87;;;;;;;;;;-1:-1:-1;12524:87:0;;;;-1:-1:-1;;;;;12524:87:0;;;12462:22;;;;;;;;;;-1:-1:-1;12462:22:0;;;;-1:-1:-1;;;;;12462:22:0;;;12284:31;;;;;;;;;;;;;;;;14462:115;;;;;;;;;;;;;:::i;12244:33::-;;;;;;;;;;;;;;;;12768:29;;;;;;;;;;;;;;;;15089:95;;;;;;;;;;-1:-1:-1;15089:95:0;;;;;:::i;:::-;;:::i;17796:133::-;;;;;;;;;;-1:-1:-1;17796:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;17898:19:0;;;17880:7;17898:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;17796:133;11216:63;;;;;;;;;;-1:-1:-1;11216:63:0;;;;-1:-1:-1;;;;;11216:63:0;;;3301:136;;;;;;;;;;-1:-1:-1;3301:136:0;;;;;:::i;:::-;;:::i;16832:132::-;;;;;;;;;;-1:-1:-1;16832:132:0;;;;;:::i;:::-;;:::i;12405:24::-;;;;;;;;;;-1:-1:-1;12405:24:0;;;;-1:-1:-1;;;;;12405:24:0;;;12974:47;;;;;;;;;;;;;;;;15438:136;;;;;;;;;;-1:-1:-1;15438:136:0;;;;;:::i;:::-;;:::i;12695:31::-;;;;;;;;;;-1:-1:-1;12695:31:0;;;;-1:-1:-1;;;12695:31:0;;;;;;17941:216;18045:10;18016:4;18033:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;18033:32:0;;;;;;;;;;:41;;;18090:37;18016:4;;18033:32;;18090:37;;;;18068:6;160:25:1;;148:2;133:18;;14:177;18090:37:0;;;;;;;;-1:-1:-1;18145:4:0;17941:216;;;;;:::o;16972:104::-;3128:4;3163:5;-1:-1:-1;;;;;3163:5:0;2980:10;3152:16;2964:38;;;;-1:-1:-1;;;2964:38:0;;;;;;;:::i;:::-;;;;;;;;;17049:10:::1;:19:::0;16972:104::o;18455:366::-;-1:-1:-1;;;;;18575:19:0;;18555:4;18575:19;;;:11;:19;;;;;;;;18595:10;18575:31;;;;;;;;-1:-1:-1;;18575:52:0;18572:186;;18677:69;;;;;;;;;;;-1:-1:-1;;;18677:69:0;;;;;;;;-1:-1:-1;;;;;18677:19:0;;-1:-1:-1;18677:19:0;;;:11;:19;;;;;18697:10;18677:31;;;;;;;;;;:69;;18713:6;;18677:35;:69::i;:::-;-1:-1:-1;;;;;18643:19:0;;;;;;:11;:19;;;;;;;;18663:10;18643:31;;;;;;;:103;18572:186;18777:36;18787:6;18795:9;18806:6;18777:9;:36::i;:::-;18770:43;;18455:366;;;;;;:::o;16397:90::-;3128:4;3163:5;-1:-1:-1;;;;;3163:5:0;2980:10;3152:16;2964:38;;;;-1:-1:-1;;;2964:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16459:12:0::1;16474:5;16459:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;16459:20:0::1;::::0;;16397:90::o;17095:142::-;17223:4;;-1:-1:-1;;;;;17223:4:0;17148:7;17769:18;;;:9;:18;;;;;;17175:54;;17202:4;;-1:-1:-1;;;;;17202:4:0;17751:7;17769:18;;;:9;:18;;;;;;17175:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;17168:61;;17095:142;:::o;16195:194::-;3128:4;3163:5;-1:-1:-1;;;;;3163:5:0;2980:10;3152:16;2964:38;;;;-1:-1:-1;;;2964:38:0;;;;;;;:::i;:::-;16308:7:::1;::::0;:65:::1;::::0;-1:-1:-1;;;16308:65:0;;::::1;::::0;::::1;7069:25:1::0;;;7110:18;;;7103:34;;;-1:-1:-1;;;;;16308:7:0;;::::1;::::0;:31:::1;::::0;7042:18:1;;16308:65:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16195:194:::0;;:::o;14848:233::-;3128:4;3163:5;-1:-1:-1;;;;;3163:5:0;2980:10;3152:16;2964:38;;;;-1:-1:-1;;;2964:38:0;;;;;;;:::i;:::-;14972:13:::1;:28:::0;;;;15011:11:::1;:22:::0;15044:11:::1;:29:::0;14848:233::o;14591:244::-;3128:4;3163:5;-1:-1:-1;;;;;3163:5:0;2980:10;3152:16;2964:38;;;;-1:-1:-1;;;2964:38:0;;;;;;;:::i;:::-;14687:6:::1;:18:::0;;;14716:7:::1;:20:::0;;;14767:2:::1;14757:12:::0;::::1;;14749:33;;;::::0;-1:-1:-1;;;14749:33:0;;7350:2:1;14749:33:0::1;::::0;::::1;7332:21:1::0;7389:1;7369:18;;;7362:29;-1:-1:-1;;;7407:18:1;;;7400:38;7455:18;;14749:33:0::1;7148:331:1::0;14749:33:0::1;14812:2;14801:7;;:13;;14793:34;;;::::0;-1:-1:-1;;;14793:34:0;;7350:2:1;14793:34:0::1;::::0;::::1;7332:21:1::0;7389:1;7369:18;;;7362:29;-1:-1:-1;;;7407:18:1;;;7400:38;7455:18;;14793:34:0::1;7148:331:1::0;14793:34:0::1;14591:244:::0;;:::o;15988:199::-;3128:4;3163:5;-1:-1:-1;;;;;3163:5:0;2980:10;3152:16;2964:38;;;;-1:-1:-1;;;2964:38:0;;;;;;;:::i;:::-;16097:21:::1;:39:::0;;;::::1;;-1:-1:-1::0;;;16097:39:0::1;-1:-1:-1::0;;;;16097:39:0;;::::1;::::0;;;::::1;::::0;;;16147:13:::1;:32:::0;15988:199::o;15740:102::-;3128:4;3163:5;-1:-1:-1;;;;;3163:5:0;2980:10;3152:16;2964:38;;;;-1:-1:-1;;;2964:38:0;;;;;;;:::i;:::-;15812:8:::1;:22:::0;;-1:-1:-1;;;;;;15812:22:0::1;-1:-1:-1::0;;;;;15812:22:0;;;::::1;::::0;;;::::1;::::0;;15740:102::o;14116:120::-;3128:4;3163:5;-1:-1:-1;;;;;3163:5:0;2980:10;3152:16;2964:38;;;;-1:-1:-1;;;2964:38:0;;;;;;;:::i;:::-;14182:3:::1;:16:::0;;-1:-1:-1;;;;;;14182:16:0::1;-1:-1:-1::0;;;;;14182:16:0;::::1;;::::0;;14209:19:::1;14182:16:::0;14209:7:::1;:19::i;:::-;14116:120:::0;:::o;18165:122::-;18220:4;18244:35;18252:7;-1:-1:-1;;18244:7:0;:35::i;15582:150::-;3128:4;3163:5;-1:-1:-1;;;;;3163:5:0;2980:10;3152:16;2964:38;;;;-1:-1:-1;;;2964:38:0;;;;;;;:::i;:::-;15676:18:::1;:48:::0;;-1:-1:-1;;;;;;15676:48:0::1;-1:-1:-1::0;;;;;15676:48:0;;;::::1;::::0;;;::::1;::::0;;15582:150::o;22735:74::-;3128:4;3163:5;-1:-1:-1;;;;;3163:5:0;2980:10;3152:16;2964:38;;;;-1:-1:-1;;;2964:38:0;;;;;;;:::i;:::-;22791:10:::1;:8;:10::i;:::-;22735:74::o:0;23179:150::-;23283:7;;:38;;-1:-1:-1;;;23283:38:0;;-1:-1:-1;;;;;3434:32:1;;;23283:38:0;;;3416:51:1;23256:7:0;;23283;;:25;;3389:18:1;;23283:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15192:104::-;3128:4;3163:5;-1:-1:-1;;;;;3163:5:0;2980:10;3152:16;2964:38;;;;-1:-1:-1;;;2964:38:0;;;;;;;:::i;:::-;15267:9:::1;:21:::0;15192:104::o;23062:109::-;3128:4;3163:5;-1:-1:-1;;;;;3163:5:0;2980:10;3152:16;2964:38;;;;-1:-1:-1;;;2964:38:0;;;;;;;:::i;:::-;23137:7:::1;::::0;:26:::1;::::0;-1:-1:-1;;;;;;23137:26:0;;::::1;::::0;::::1;160:25:1::0;;;-1:-1:-1;;;;;23137:7:0;;::::1;::::0;:15:::1;::::0;133:18:1;;23137:26:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;23062:109:::0;:::o;23337:79::-;23380:7;;:28;;-1:-1:-1;;;23380:28:0;;23397:10;23380:28;;;3416:51:1;-1:-1:-1;;;;;23380:7:0;;;;:16;;3389:18:1;;23380:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23337:79::o;22817:237::-;3128:4;3163:5;-1:-1:-1;;;;;3163:5:0;2980:10;3152:16;2964:38;;;;-1:-1:-1;;;2964:38:0;;;;;;;:::i;:::-;22901:21:::1;22936:22:::0;;22933:114:::1;;22984:51;::::0;23000:4:::1;::::0;22984:51;::::1;;;::::0;23016:18;;22984:51:::1;::::0;;;23016:18;23000:4;22984:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;15308:122:::0;3128:4;3163:5;-1:-1:-1;;;;;3163:5:0;2980:10;3152:16;2964:38;;;;-1:-1:-1;;;2964:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15394:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;15394:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15308:122::o;18295:152::-;18375:4;18399:40;18409:10;18421:9;18432:6;18399:9;:40::i;14244:166::-;3128:4;3163:5;-1:-1:-1;;;;;3163:5:0;2980:10;3152:16;2964:38;;;;-1:-1:-1;;;2964:38:0;;;;;;;:::i;:::-;14320:6:::1;14315:88;14336:5;:12;14332:1;:16;14315:88;;;14387:4;14370;:14;14375:5;14381:1;14375:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14370:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14370:14:0;:21;;-1:-1:-1;;14370:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14350:3;::::1;::::0;::::1;:::i;:::-;;;;14315:88;;15854:121:::0;3128:4;3163:5;-1:-1:-1;;;;;3163:5:0;2980:10;3152:16;2964:38;;;;-1:-1:-1;;;2964:38:0;;;;;;;:::i;:::-;15940:10:::1;:27:::0;;-1:-1:-1;;;;;;15940:27:0::1;-1:-1:-1::0;;;;;15940:27:0;;;::::1;::::0;;;::::1;::::0;;15854:121::o;14462:115::-;3128:4;3163:5;-1:-1:-1;;;;;3163:5:0;2980:10;3152:16;2964:38;;;;-1:-1:-1;;;2964:38:0;;;;;;;:::i;:::-;14528:12:::1;14515:10;:25:::0;14551:11:::1;:18:::0;;-1:-1:-1;;;;14551:18:0::1;-1:-1:-1::0;;;14551:18:0::1;::::0;;14462:115::o;15089:95::-;3128:4;3163:5;-1:-1:-1;;;;;3163:5:0;2980:10;3152:16;2964:38;;;;-1:-1:-1;;;2964:38:0;;;;;;;:::i;:::-;15160:5:::1;:16:::0;15089:95::o;3301:136::-;3128:4;3163:5;-1:-1:-1;;;;;3163:5:0;2980:10;3152:16;2964:38;;;;-1:-1:-1;;;2964:38:0;;;;;;;:::i;:::-;3377:5:::1;:11:::0;;-1:-1:-1;;;;;;3377:11:0::1;-1:-1:-1::0;;;;;3377:11:0;::::1;::::0;;::::1;::::0;;;3404:25:::1;::::0;3416:51:1;;;3404:25:0::1;::::0;:2:1;3389:18;3404:25:0::1;;;;;;;3301:136:::0;:::o;16832:132::-;3128:4;3163:5;-1:-1:-1;;;;;3163:5:0;2980:10;3152:16;2964:38;;;;-1:-1:-1;;;2964:38:0;;;;;;;:::i;:::-;16920:36:::1;16941:6;16949;16920:20;:36::i;15438:136::-:0;3128:4;3163:5;-1:-1:-1;;;;;3163:5:0;2980:10;3152:16;2964:38;;;;-1:-1:-1;;;2964:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15534:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;15534:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15438:136::o;1272:132::-;1330:7;1357:39;1361:1;1364;1357:39;;;;;;;;;;;;;;;;;:3;:39::i;818:192::-;904:7;940:12;932:6;;;;924:29;;;;-1:-1:-1;;;924:29:0;;;;;;;;:::i;:::-;-1:-1:-1;964:9:0;976:5;980:1;976;:5;:::i;:::-;964:17;818:192;-1:-1:-1;;;;;818:192:0:o;18829:1412::-;18917:4;18947:5;;-1:-1:-1;;;;;18938:14:0;;;18947:5;;18938:14;;;;:35;;-1:-1:-1;18968:5:0;;-1:-1:-1;;;;;18956:17:0;;;18968:5;;18956:17;;18938:35;18934:88;;;18983:11;;-1:-1:-1;;;18983:11:0;;;;18975:47;;;;-1:-1:-1;;;18975:47:0;;8625:2:1;18975:47:0;;;8607:21:1;8664:2;8644:18;;;8637:30;8703:25;8683:18;;;8676:53;8746:18;;18975:47:0;8423:347:1;18975:47:0;-1:-1:-1;;;;;19084:12:0;;;;;;:4;:12;;;;;;;;19083:13;:33;;;;-1:-1:-1;;;;;;19101:15:0;;;;;;:4;:15;;;;;;;;19100:16;19083:33;19075:42;;;;;;19133:16;;-1:-1:-1;;;19133:16:0;;;;19130:73;;;19159:41;19174:6;19182:9;19193:6;19159:14;:41::i;:::-;19152:48;;;;19130:73;19233:5;;19223:6;:15;;:42;;;-1:-1:-1;;;;;;19242:23:0;;;;;;:15;:23;;;;;;;;19223:42;19215:57;;;;-1:-1:-1;;;19215:57:0;;8977:2:1;19215:57:0;;;8959:21:1;9016:1;8996:18;;;8989:29;-1:-1:-1;;;9034:18:1;;;9027:32;9076:18;;19215:57:0;8775:325:1;19215:57:0;-1:-1:-1;;;;;19289:26:0;;;;;;:15;:26;;;;;;;;19288:27;:38;;;;-1:-1:-1;19319:7:0;;-1:-1:-1;;;19319:7:0;;;;19288:38;19285:143;;;19396:9;;-1:-1:-1;;;;;19360:20:0;;;;;;:9;:20;;;;;;:32;;19385:6;19360:24;:32::i;:::-;:45;;19352:64;;;;-1:-1:-1;;;19352:64:0;;9307:2:1;19352:64:0;;;9289:21:1;9346:1;9326:18;;;9319:29;-1:-1:-1;;;9364:18:1;;;9357:36;9410:18;;19352:64:0;9105:329:1;19352:64:0;19457:4;;-1:-1:-1;;;;;19457:4:0;19443:10;:18;;;;:39;;-1:-1:-1;19466:16:0;;-1:-1:-1;;;19466:16:0;;;;19465:17;19443:39;:64;;;;-1:-1:-1;19486:21:0;;-1:-1:-1;;;19486:21:0;;;;19443:64;:109;;;;-1:-1:-1;19539:13:0;;19529:4;19511:24;;;;:9;:24;;;;;;:41;;19443:109;19440:128;;;19555:10;:8;:10::i;:::-;19600:53;;;;;;;;;;;-1:-1:-1;;;19600:53:0;;;;;;;;-1:-1:-1;;;;;19600:17:0;;-1:-1:-1;19600:17:0;;;:9;:17;;;;;;;;:53;;19622:6;;19600:21;:53::i;:::-;-1:-1:-1;;;;;19580:17:0;;;;;;:9;:17;;;;;;;;:73;;;;19697:11;:19;;;;;;;;19696:20;:47;;;;-1:-1:-1;;;;;;19721:22:0;;;;;;:11;:22;;;;;;;;19720:23;19696:47;:93;;19783:6;19696:93;;;19746:34;19754:6;19762:9;19773:6;19746:7;:34::i;:::-;-1:-1:-1;;;;;19823:20:0;;;;;;:9;:20;;;;;;19674:115;;-1:-1:-1;19823:37:0;;19674:115;19823:24;:37::i;:::-;-1:-1:-1;;;;;19800:20:0;;;;;;;:9;:20;;;;;;;;:60;;;;19906:24;;;;;:16;:24;;;;;;;19902:115;;19951:7;;-1:-1:-1;;;;;19976:17:0;;;19951:7;19976:17;;;:9;:17;;;;;;;;19951:43;;-1:-1:-1;;;19951:43:0;;;;;9613:51:1;;;;9680:18;;;9673:34;19951:7:0;;;:16;;9586:18:1;;19951:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19947:59;;-1:-1:-1;;;;;20033:27:0;;;;;;:16;:27;;;;;;;;20029:125;;20081:7;;-1:-1:-1;;;;;20109:20:0;;;20081:7;20109:20;;;:9;:20;;;;;;;;20081:49;;-1:-1:-1;;;20081:49:0;;;;;9613:51:1;;;;9680:18;;;9673:34;20081:7:0;;;:16;;9586:18:1;;20081:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20077:65;;20188:9;-1:-1:-1;;;;;20171:40:0;20180:6;-1:-1:-1;;;;;20171:40:0;;20199:11;20171:40;;;;160:25:1;;148:2;133:18;;14:177;20171:40:0;;;;;;;;-1:-1:-1;20229:4:0;;18829:1412;-1:-1:-1;;;;18829:1412:0:o;676:136::-;734:7;761:43;765:1;768;761:43;;;;;;;;;;;;;;;;;:3;:43::i;14017:91::-;14074:7;;:26;;-1:-1:-1;;;14074:26:0;;-1:-1:-1;;;;;3434:32:1;;;14074:26:0;;;3416:51:1;14074:7:0;;;;:14;;3389:18:1;;14074:26:0;3246:227:1;21791:936:0;12838:16;:23;;-1:-1:-1;;;;12838:23:0;-1:-1:-1;;;12838:23:0;;;21890:4:::1;12838:23:::0;21872:24;;;:9:::1;:24;::::0;;;;;21954:11:::1;::::0;21872:24;;12838:23;21937:45:::1;::::0;21980:1:::1;::::0;21937:38:::1;::::0;21971:3:::1;::::0;21937:38;;21872:24;;21937:16:::1;:29::i;:::-;:33:::0;::::1;:38::i;:45::-;21908:74:::0;-1:-1:-1;21998:20:0::1;22021:36;:12:::0;21908:74;22021:16:::1;:36::i;:::-;21998:59;;22070:30;22087:12;22070:16;:30::i;:::-;22113:23;22139:21;22113:47;;22171:17;22191:43;22230:3;22191:34;22211:13;;22191:15;:19;;:34;;;;:::i;:43::-;22171:63;;22245:26;22274:41;22311:3;22274:32;22294:11;;22274:15;:19;;:32;;;;:::i;:41::-;22245:70;;22326:23;22352:48;22398:1;22352:41;22389:3;22352:32;22372:11;;22352:15;:19;;:32;;;;:::i;:48::-;22326:74:::0;-1:-1:-1;22423:19:0;;22419:107:::1;;22466:18;::::0;22458:56:::1;::::0;-1:-1:-1;;;;;22466:18:0;;::::1;::::0;22458:56;::::1;;;::::0;22495:18;;22466::::1;22458:56:::0;22466:18;22458:56;22495:18;22466;22458:56;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22419:107;22550:7;;;;;;;;;-1:-1:-1::0;;;;;22550:7:0::1;-1:-1:-1::0;;;;;22550:15:0::1;;22573:9;22550:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;22546:51:::0;22621:22;;22617:103:::1;;22659:49;22672:18;22692:15;22659:12;:49::i;:::-;-1:-1:-1::0;;12884:16:0;:24;;-1:-1:-1;;;;12884:24:0;;;-1:-1:-1;;;;;21791:936:0:o;16495:329::-;-1:-1:-1;;;;;16582:23:0;;16600:4;16582:23;;;;:41;;-1:-1:-1;16619:4:0;;-1:-1:-1;;;;;16609:14:0;;;16619:4;;16609:14;;16582:41;16574:50;;;;;;-1:-1:-1;;;;;16635:24:0;;;;;;:16;:24;;;;;:33;;-1:-1:-1;;16635:33:0;;;;;;;;;;;;16679:138;;16704:7;;:27;;-1:-1:-1;;;16704:27:0;;-1:-1:-1;;;;;9631:32:1;;;16704:27:0;;;9613:51:1;16704:7:0;9680:18:1;;;9673:34;16704:7:0;;;;:16;;9586:18:1;;16704:27:0;9439:274:1;16679:138:0;16762:7;;-1:-1:-1;;;;;16787:17:0;;;16762:7;16787:17;;;:9;:17;;;;;;;;16762:43;;-1:-1:-1;;;16762:43:0;;;;;9613:51:1;;;;9680:18;;;9673:34;16762:7:0;;;:16;;9586:18:1;;16762:43:0;9439:274:1;1410:345:0;1496:7;1598:12;1591:5;1583:28;;;;-1:-1:-1;;;1583:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1622:9:0;1634:5;1638:1;1634;:5;:::i;20253:330::-;20383:53;;;;;;;;;;;-1:-1:-1;;;20383:53:0;;;;;;;;-1:-1:-1;;;;;20383:17:0;;20346:4;20383:17;;;:9;:17;;;;;;;:53;;20405:6;;20383:21;:53::i;:::-;-1:-1:-1;;;;;20363:17:0;;;;;;;:9;:17;;;;;;:73;;;;20470:20;;;;;;;:32;;20495:6;20470:24;:32::i;:::-;-1:-1:-1;;;;;20447:20:0;;;;;;;:9;:20;;;;;;;:55;;;;20518:35;;;;;;;;;;20546:6;160:25:1;;148:2;133:18;;14:177;20518:35:0;;;;;;;;-1:-1:-1;20571:4:0;20253:330;;;;;:::o;489:181::-;547:7;;579:5;583:1;579;:5;:::i;:::-;567:17;;608:1;603;:6;;595:46;;;;-1:-1:-1;;;595:46:0;;10562:2:1;595:46:0;;;10544:21:1;10601:2;10581:18;;;10574:30;10640:29;10620:18;;;10613:57;10687:18;;595:46:0;10360:351:1;20597:427:0;20737:4;;20683:7;;;;-1:-1:-1;;;;;20737:17:0;;;:4;;:17;:36;;20767:6;;20737:36;;;20757:7;;20737:36;20713:60;-1:-1:-1;20784:17:0;20804:34;20834:3;20804:25;:6;20713:60;20804:10;:25::i;:34::-;20896:4;20878:24;;;;:9;:24;;;;;;20784:54;;-1:-1:-1;20878:39:0;;20784:54;20878:28;:39::i;:::-;20869:4;20851:24;;;;:9;:24;;;;;;;:66;;;;20933:42;;-1:-1:-1;;;;;20933:42:0;;;;;;;20965:9;160:25:1;;148:2;133:18;;14:177;20933:42:0;;;;;;;;20995:21;:6;21006:9;20995:10;:21::i;:::-;20988:28;20597:427;-1:-1:-1;;;;;;20597:427:0:o;1016:250::-;1074:7;1098:1;1103;1098:6;1094:47;;-1:-1:-1;1128:1:0;1121:8;;1094:47;1153:9;1165:5;1169:1;1165;:5;:::i;:::-;1153:17;-1:-1:-1;1198:1:0;1189:5;1193:1;1153:17;1189:5;:::i;:::-;:10;1181:56;;;;-1:-1:-1;;;1181:56:0;;11091:2:1;1181:56:0;;;11073:21:1;11130:2;11110:18;;;11103:30;11169:34;11149:18;;;11142:62;-1:-1:-1;;;11220:18:1;;;11213:31;11261:19;;1181:56:0;10889:397:1;21036:460:0;21128:16;;;21142:1;21128:16;;;;;;;;21104:21;;21128:16;;;;;;;;;;-1:-1:-1;21128:16:0;21104:40;;21173:4;21155;21160:1;21155:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21155:23:0;;;:7;;;;;;;;;;:23;;;;21199:6;;:13;;;-1:-1:-1;;;21199:13:0;;;;:6;;;;;:11;;:13;;;;;21155:7;;21199:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21189:4;21194:1;21189:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;21189:23:0;;;-1:-1:-1;;;;;21189:23:0;;;;;21225:35;21241:4;21248:11;21225:7;:35::i;:::-;-1:-1:-1;21273:6:0;;:215;;-1:-1:-1;;;21273:215:0;;-1:-1:-1;;;;;21273:6:0;;;;:57;;:215;;21345:11;;21273:6;;21415:4;;21442;;21462:15;;21273:215;;;:::i;21504:279::-;21585:6;;21726:8;;21585:190;;-1:-1:-1;;;21585:190:0;;21648:4;21585:190;;;12873:34:1;12923:18;;;12916:34;;;21585:6:0;12966:18:1;;;12959:34;;;13009:18;;;13002:34;-1:-1:-1;;;;;21726:8:0;;;13052:19:1;;;13045:44;21749:15:0;13105:19:1;;;13098:35;21585:6:0;;;:22;;21615:9;;12807:19:1;;21585:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;196:597:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:131::-;-1:-1:-1;;;;;873:31:1;;863:42;;853:70;;919:1;916;909:12;934:134;1002:20;;1031:31;1002:20;1031:31;:::i;:::-;934:134;;;:::o;1073:315::-;1141:6;1149;1202:2;1190:9;1181:7;1177:23;1173:32;1170:52;;;1218:1;1215;1208:12;1170:52;1257:9;1244:23;1276:31;1301:5;1276:31;:::i;:::-;1326:5;1378:2;1363:18;;;;1350:32;;-1:-1:-1;;;1073:315:1:o;1585:180::-;1644:6;1697:2;1685:9;1676:7;1672:23;1668:32;1665:52;;;1713:1;1710;1703:12;1665:52;-1:-1:-1;1736:23:1;;1585:180;-1:-1:-1;1585:180:1:o;1770:456::-;1847:6;1855;1863;1916:2;1904:9;1895:7;1891:23;1887:32;1884:52;;;1932:1;1929;1922:12;1884:52;1971:9;1958:23;1990:31;2015:5;1990:31;:::i;:::-;2040:5;-1:-1:-1;2097:2:1;2082:18;;2069:32;2110:33;2069:32;2110:33;:::i;:::-;1770:456;;2162:7;;-1:-1:-1;;;2216:2:1;2201:18;;;;2188:32;;1770:456::o;2231:247::-;2290:6;2343:2;2331:9;2322:7;2318:23;2314:32;2311:52;;;2359:1;2356;2349:12;2311:52;2398:9;2385:23;2417:31;2442:5;2417:31;:::i;2483:248::-;2551:6;2559;2612:2;2600:9;2591:7;2587:23;2583:32;2580:52;;;2628:1;2625;2618:12;2580:52;-1:-1:-1;;2651:23:1;;;2721:2;2706:18;;;2693:32;;-1:-1:-1;2483:248:1:o;2736:316::-;2813:6;2821;2829;2882:2;2870:9;2861:7;2857:23;2853:32;2850:52;;;2898:1;2895;2888:12;2850:52;-1:-1:-1;;2921:23:1;;;2991:2;2976:18;;2963:32;;-1:-1:-1;3042:2:1;3027:18;;;3014:32;;2736:316;-1:-1:-1;2736:316:1:o;3478:160::-;3543:20;;3599:13;;3592:21;3582:32;;3572:60;;3628:1;3625;3618:12;3643:248;3708:6;3716;3769:2;3757:9;3748:7;3744:23;3740:32;3737:52;;;3785:1;3782;3775:12;3737:52;3808:26;3824:9;3808:26;:::i;4364:315::-;4429:6;4437;4490:2;4478:9;4469:7;4465:23;4461:32;4458:52;;;4506:1;4503;4496:12;4458:52;4545:9;4532:23;4564:31;4589:5;4564:31;:::i;:::-;4614:5;-1:-1:-1;4638:35:1;4669:2;4654:18;;4638:35;:::i;:::-;4628:45;;4364:315;;;;;:::o;4684:127::-;4745:10;4740:3;4736:20;4733:1;4726:31;4776:4;4773:1;4766:15;4800:4;4797:1;4790:15;4816:1121;4900:6;4931:2;4974;4962:9;4953:7;4949:23;4945:32;4942:52;;;4990:1;4987;4980:12;4942:52;5030:9;5017:23;5059:18;5100:2;5092:6;5089:14;5086:34;;;5116:1;5113;5106:12;5086:34;5154:6;5143:9;5139:22;5129:32;;5199:7;5192:4;5188:2;5184:13;5180:27;5170:55;;5221:1;5218;5211:12;5170:55;5257:2;5244:16;5279:2;5275;5272:10;5269:36;;;5285:18;;:::i;:::-;5331:2;5328:1;5324:10;5363:2;5357:9;5426:2;5422:7;5417:2;5413;5409:11;5405:25;5397:6;5393:38;5481:6;5469:10;5466:22;5461:2;5449:10;5446:18;5443:46;5440:72;;;5492:18;;:::i;:::-;5528:2;5521:22;5578:18;;;5612:15;;;;-1:-1:-1;5654:11:1;;;5650:20;;;5682:19;;;5679:39;;;5714:1;5711;5704:12;5679:39;5738:11;;;;5758:148;5774:6;5769:3;5766:15;5758:148;;;5840:23;5859:3;5840:23;:::i;:::-;5828:36;;5791:12;;;;5884;;;;5758:148;;;5925:6;4816:1121;-1:-1:-1;;;;;;;;4816:1121:1:o;5942:388::-;6010:6;6018;6071:2;6059:9;6050:7;6046:23;6042:32;6039:52;;;6087:1;6084;6077:12;6039:52;6126:9;6113:23;6145:31;6170:5;6145:31;:::i;:::-;6195:5;-1:-1:-1;6252:2:1;6237:18;;6224:32;6265:33;6224:32;6265:33;:::i;:::-;6317:7;6307:17;;;5942:388;;;;;:::o;6561:329::-;6763:2;6745:21;;;6802:1;6782:18;;;6775:29;-1:-1:-1;;;6835:2:1;6820:18;;6813:36;6881:2;6866:18;;6561:329::o;7484:184::-;7554:6;7607:2;7595:9;7586:7;7582:23;7578:32;7575:52;;;7623:1;7620;7613:12;7575:52;-1:-1:-1;7646:16:1;;7484:184;-1:-1:-1;7484:184:1:o;7673:127::-;7734:10;7729:3;7725:20;7722:1;7715:31;7765:4;7762:1;7755:15;7789:4;7786:1;7779:15;7805:127;7866:10;7861:3;7857:20;7854:1;7847:31;7897:4;7894:1;7887:15;7921:4;7918:1;7911:15;7937:135;7976:3;7997:17;;;7994:43;;8017:18;;:::i;:::-;-1:-1:-1;8064:1:1;8053:13;;7937:135::o;8293:125::-;8333:4;8361:1;8358;8355:8;8352:34;;;8366:18;;:::i;:::-;-1:-1:-1;8403:9:1;;8293:125::o;10005:217::-;10045:1;10071;10061:132;;10115:10;10110:3;10106:20;10103:1;10096:31;10150:4;10147:1;10140:15;10178:4;10175:1;10168:15;10061:132;-1:-1:-1;10207:9:1;;10005:217::o;10227:128::-;10267:3;10298:1;10294:6;10291:1;10288:13;10285:39;;;10304:18;;:::i;:::-;-1:-1:-1;10340:9:1;;10227:128::o;10716:168::-;10756:7;10822:1;10818;10814:6;10810:14;10807:1;10804:21;10799:1;10792:9;10785:17;10781:45;10778:71;;;10829:18;;:::i;:::-;-1:-1:-1;10869:9:1;;10716:168::o;11291:251::-;11361:6;11414:2;11402:9;11393:7;11389:23;11385:32;11382:52;;;11430:1;11427;11420:12;11382:52;11462:9;11456:16;11481:31;11506:5;11481:31;:::i;11547:980::-;11809:4;11857:3;11846:9;11842:19;11888:6;11877:9;11870:25;11914:2;11952:6;11947:2;11936:9;11932:18;11925:34;11995:3;11990:2;11979:9;11975:18;11968:31;12019:6;12054;12048:13;12085:6;12077;12070:22;12123:3;12112:9;12108:19;12101:26;;12162:2;12154:6;12150:15;12136:29;;12183:1;12193:195;12207:6;12204:1;12201:13;12193:195;;;12272:13;;-1:-1:-1;;;;;12268:39:1;12256:52;;12363:15;;;;12328:12;;;;12304:1;12222:9;12193:195;;;-1:-1:-1;;;;;;;12444:32:1;;;;12439:2;12424:18;;12417:60;-1:-1:-1;;;12508:3:1;12493:19;12486:35;12405:3;11547:980;-1:-1:-1;;;11547:980:1:o;13144:306::-;13232:6;13240;13248;13301:2;13289:9;13280:7;13276:23;13272:32;13269:52;;;13317:1;13314;13307:12;13269:52;13346:9;13340:16;13330:26;;13396:2;13385:9;13381:18;13375:25;13365:35;;13440:2;13429:9;13425:18;13419:25;13409:35;;13144:306;;;;;:::o

Swarm Source

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