ETH Price: $3,490.05 (+3.68%)
Gas: 2 Gwei

Token

Letspumpthishoefortheculture (DILDO)
 

Overview

Max Total Supply

1,000,000,000 DILDO

Holders

300

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
69 DILDO

Value
$0.00
0xfa3e941d1f6b7b10ed84a0c211bfa8aee907965e
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:
GreenDILDO

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-06
*/

// Behold, the coin the world never asked for, but was shoved on live pairs anyway! Who made it? Irrelevant. 
// All you need to know is we’ve locked up liquidity tighter than a jeets butthole, 
// and donated some just for the fuck of it . Tax? Think of the rarest number: zero twice. 
// To the daring Telegram Chad and website warrior degen who wins the heart of the community, 
// a treasure awaits. All this coin craves is green dildos and mindless apes. As real as it gets, 
// with no hidden agendas. Venture if you wish, or fuck off but remember: this coin is as real as they come. 

// Lets pump this bitch!

// I didn’t make a logo so make one if you want one.

// https://x.com/justacoineth



// SPDX-License-Identifier: MIT


pragma solidity 0.8.20;

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



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

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

contract Ownable is Context {
    address public _owner;

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

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

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

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

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

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

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

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

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

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

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

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

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

interface InterfaceLP {
    function sync() external;
}


library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

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

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

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

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

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

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

    string constant _name = "Letspumpthishoefortheculture";
    string constant _symbol = "DILDO";
    uint8 constant _decimals = 18; 


    event AutoLiquify(uint256 amountETH, uint256 amountTokens);
    event EditTax(uint8 Buy, uint8 Sell, uint8 Transfer);
    event user_exemptfromfees(address Wallet, bool Exempt);
    event user_TxExempt(address Wallet, bool Exempt);
    event ClearStuck(uint256 amount);
    event ClearToken(address TokenAddressCleared, uint256 Amount);
    event set_Receivers(address marketingFeeReceiver, address buybackFeeReceiver,address burnFeeReceiver,address devFeeReceiver);
    event set_MaxWallet(uint256 maxWallet);
    event set_MaxTX(uint256 maxTX);
    event set_SwapBack(uint256 Amount, bool Enabled);
  
    uint256 _totalSupply =  1000000000 * 10**_decimals; 

    uint256 public _maxTxAmount = _totalSupply.mul(5).div(100);
    uint256 public _maxWalletToken = _totalSupply.mul(5).div(100);

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => bool) isexemptfromfees;
    mapping (address => bool) isexemptfrommaxTX;

    uint256 private liquidityFee    = 0;
    uint256 private marketingFee    = 990;
    uint256 private devFee          = 0;
    uint256 private buybackFee      = 0; 
    uint256 private burnFee         = 0;
    uint256 public totalFee         = buybackFee + marketingFee + liquidityFee + devFee + burnFee;
    uint256 private feeDenominator  = 1000;

    uint256 sellpercent = 990;
    uint256 buypercent = 990;
    uint256 transferpercent = 990; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;
    address private buybackFeeReceiver;
    address private burnFeeReceiver;

    uint256 setRatio = 30;
    uint256 setRatioDenominator = 100;
    

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

   
    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 1000; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    
    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);
       
        
        _allowances[address(this)][address(router)] = type(uint256).max;
  
        isexemptfromfees[msg.sender] = true;
        isexemptfromfees[marketingFeeReceiver] = true;
        isexemptfromfees[address(this)] = true;
        isexemptfromfees[DEAD] = true;     
        
        isexemptfrommaxTX[msg.sender] = true;
        isexemptfrommaxTX[pair] = true;
        isexemptfrommaxTX[marketingFeeReceiver] = true;
        isexemptfrommaxTX[address(this)] = true;
        isexemptfrommaxTX[DEAD] = true;
        
        autoLiquidityReceiver = 0x5B38700007375Ee282CA3817f07022a50D63C652;
        marketingFeeReceiver =  0x5B38700007375Ee282CA3817f07022a50D63C652;
        devFeeReceiver = msg.sender;
        buybackFeeReceiver = msg.sender;
        burnFeeReceiver = DEAD; 

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

    }

    receive() external payable { }

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

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

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

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

      function removeLimits () external onlyOwner {
            _maxTxAmount = _totalSupply;
            _maxWalletToken = _totalSupply;
    }

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

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

        checkTxLimit(sender, amount);  

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

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

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

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

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

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 percent = transferpercent;
        if(recipient == pair) {
            percent = sellpercent;
        } else if(sender == pair) {
            percent = buypercent;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(percent).div(feeDenominator * 1000);
        uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);
        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens);
        emit Transfer(sender, address(this), contractTokens);
        
        
        if(burnTokens > 0){
            _totalSupply = _totalSupply.sub(burnTokens);
            emit Transfer(sender, ZERO, burnTokens);  
        
        }

        return amount.sub(feeAmount);
    }

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

  
    function manualSend() external { 
             payable(autoLiquidityReceiver).transfer(address(this).balance);
            
    }

   function clearStuckToken(address tokenAddress, uint256 tokens) external onlyOwner returns (bool success) {
        if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        emit ClearToken(tokenAddress, tokens);
        return ERC20(tokenAddress).transfer(autoLiquidityReceiver, tokens);
    }

    function setStructure(uint256 _percentonbuy, uint256 _percentonsell, uint256 _wallettransfer) external onlyOwner {
        sellpercent = _percentonsell;
        buypercent = _percentonbuy;
        transferpercent = _wallettransfer;    
          
    }
       
    function startTrading() public onlyOwner {
        TradingOpen = true;   
    }

    function reduceFee() public onlyOwner {
        buypercent = 0;
        sellpercent = 0;
        transferpercent = 0;
    }

             
    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = checkRatio(setRatio, setRatioDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

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

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

        uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHbuyback = amountETH.mul(buybackFee).div(totalETHFee);
        uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}("");
        (tmpSuccess,) = payable(buybackFeeReceiver).call{value: amountETHbuyback}("");
        
        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }
    
  
    function set_fees() internal {
      
        emit EditTax( uint8(totalFee.mul(buypercent).div(feeDenominator)),
            uint8(totalFee.mul(sellpercent).div(feeDenominator)),
            uint8(totalFee.mul(transferpercent).div(feeDenominator))
            );
    }
    
    function setParameters(uint256 _liquidityFee, uint256 _buybackFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        buybackFee = _buybackFee;
        marketingFee = _marketingFee;
        devFee = _devFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_buybackFee).add(_marketingFee).add(_devFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        set_fees();
    }

   
    function setWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _buybackFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        buybackFeeReceiver = _buybackFeeReceiver;

        emit set_Receivers(marketingFeeReceiver, buybackFeeReceiver, burnFeeReceiver, devFeeReceiver);
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _amount;
        emit set_SwapBack(swapThreshold, swapEnabled);
    }

    function checkRatio(uint256 ratio, uint256 accuracy) public view returns (bool) {
        return showBacking(accuracy) > ratio;
    }

    function showBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(showSupply());
    }
    
    function showSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClearStuck","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"Buy","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Sell","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Transfer","type":"uint8"}],"name":"EditTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTX","type":"uint256"}],"name":"set_MaxTX","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"set_MaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketingFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"buybackFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"burnFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"devFeeReceiver","type":"address"}],"name":"set_Receivers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"Enabled","type":"bool"}],"name":"set_SwapBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_TxExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_exemptfromfees","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"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":[{"internalType":"uint256","name":"ratio","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"checkRatio","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"maxWalletRule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percentonbuy","type":"uint256"},{"internalType":"uint256","name":"_percentonsell","type":"uint256"},{"internalType":"uint256","name":"_wallettransfer","type":"uint256"}],"name":"setStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_buybackFeeReceiver","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"showBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526012600a62000014919062000e7e565b633b9aca0062000025919062000ece565b60035562000055606462000046600560035462000bae60201b90919060201c565b62000c2e60201b90919060201c565b60045562000085606462000076600560035462000bae60201b90919060201c565b62000c2e60201b90919060201c565b6005555f600a556103de600b555f600c555f600d555f600e55600e54600c54600a54600b54600d54620000b9919062000f18565b620000c5919062000f18565b620000d1919062000f18565b620000dd919062000f18565b600f556103e86010556103de6011556103de6012556103de601355601e6019556064601a555f601d60146101000a81548160ff0219169083151502179055506001601d60156101000a81548160ff0219169083151502179055506103e860035462000149919062000f7f565b601e5534801562000158575f80fd5b505f6200016a62000c7f60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001805f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d601b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000339573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200035f91906200101b565b60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000409573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200042f91906200101b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200048c9291906200105c565b6020604051808303815f875af1158015620004a9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004cf91906200101b565b601d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550735b38700007375ee282ca3817f07022a50d63c65260145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735b38700007375ee282ca3817f07022a50d63c65260155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead60185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060035460065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000ba0919062001098565b60405180910390a3620011fd565b5f80830362000bc0575f905062000c28565b5f828462000bcf919062000ece565b905082848262000be0919062000f7f565b1462000c23576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c1a9062001137565b60405180910390fd5b809150505b92915050565b5f62000c7783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000c8660201b60201c565b905092915050565b5f33905090565b5f808311829062000ccf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000cc69190620011db565b60405180910390fd5b505f838562000cdf919062000f7f565b9050809150509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000d765780860481111562000d4e5762000d4d62000cec565b5b600185161562000d5e5780820291505b808102905062000d6e8562000d19565b945062000d2e565b94509492505050565b5f8262000d90576001905062000e62565b8162000d9f575f905062000e62565b816001811462000db8576002811462000dc35762000df9565b600191505062000e62565b60ff84111562000dd85762000dd762000cec565b5b8360020a91508482111562000df25762000df162000cec565b5b5062000e62565b5060208310610133831016604e8410600b841016171562000e335782820a90508381111562000e2d5762000e2c62000cec565b5b62000e62565b62000e42848484600162000d25565b9250905081840481111562000e5c5762000e5b62000cec565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000e8a8262000e69565b915062000e978362000e72565b925062000ec67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000d7f565b905092915050565b5f62000eda8262000e69565b915062000ee78362000e69565b925082820262000ef78162000e69565b9150828204841483151762000f115762000f1062000cec565b5b5092915050565b5f62000f248262000e69565b915062000f318362000e69565b925082820190508082111562000f4c5762000f4b62000cec565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000f8b8262000e69565b915062000f988362000e69565b92508262000fab5762000faa62000f52565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000fe58262000fba565b9050919050565b62000ff78162000fd9565b811462001002575f80fd5b50565b5f81519050620010158162000fec565b92915050565b5f6020828403121562001033576200103262000fb6565b5b5f620010428482850162001005565b91505092915050565b620010568162000fd9565b82525050565b5f604082019050620010715f8301856200104b565b6200108060208301846200104b565b9392505050565b620010928162000e69565b82525050565b5f602082019050620010ad5f83018462001087565b92915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6200111f602183620010b3565b91506200112c82620010c3565b604082019050919050565b5f6020820190508181035f830152620011508162001111565b9050919050565b5f81519050919050565b5f5b838110156200118057808201518184015260208101905062001163565b5f8484015250505050565b5f601f19601f8301169050919050565b5f620011a78262001157565b620011b38185620010b3565b9350620011c581856020860162001161565b620011d0816200118b565b840191505092915050565b5f6020820190508181035f830152620011f581846200119b565b905092915050565b614063806200120b5f395ff3fe608060405260043610610212575f3560e01c806377b54bad11610117578063a9059cbb1161009f578063ded1e4381161006e578063ded1e4381461076b578063df20fd49146107a7578063f2fde38b146107cf578063f4293890146107f7578063f887ea401461080d57610219565b8063a9059cbb146106a1578063b2bdfa7b146106dd578063c0cbdea414610707578063dd62ed3e1461072f57610219565b8063893d20e8116100e6578063893d20e8146105e35780638da5cb5b1461060d57806395d89b4114610637578063a70419d214610661578063a8aa1b311461067757610219565b806377b54bad1461052b57806378109e54146105675780637d1db4a51461059157806382528791146105bb57610219565b806330c9a6a01161019a5780635d83e1d5116101695780635d83e1d5146104715780636ddd17131461049957806370a08231146104c3578063715018a6146104ff578063751039fc1461051557610219565b806330c9a6a0146103a5578063313ce567146103e1578063552656691461040b578063571ac8b01461043557610219565b806318160ddd116101e157806318160ddd146102d75780631df4ccfc1461030157806323b872dd1461032b578063282c874914610367578063293230b81461038f57610219565b80630445b6671461021d57806306fdde031461024757806308fd3d0514610271578063095ea7b31461029b57610219565b3661021957005b5f80fd5b348015610228575f80fd5b50610231610837565b60405161023e919061324f565b60405180910390f35b348015610252575f80fd5b5061025b61083d565b60405161026891906132f2565b60405180910390f35b34801561027c575f80fd5b5061028561087a565b604051610292919061332c565b60405180910390f35b3480156102a6575f80fd5b506102c160048036038101906102bc91906133cd565b61088d565b6040516102ce919061332c565b60405180910390f35b3480156102e2575f80fd5b506102eb61097a565b6040516102f8919061324f565b60405180910390f35b34801561030c575f80fd5b50610315610983565b604051610322919061324f565b60405180910390f35b348015610336575f80fd5b50610351600480360381019061034c919061340b565b610989565b60405161035e919061332c565b60405180910390f35b348015610372575f80fd5b5061038d6004803603810190610388919061345b565b610b7c565b005b34801561039a575f80fd5b506103a3610c99565b005b3480156103b0575f80fd5b506103cb60048036038101906103c691906134e4565b610d4a565b6040516103d8919061324f565b60405180910390f35b3480156103ec575f80fd5b506103f5610dba565b604051610402919061352a565b60405180910390f35b348015610416575f80fd5b5061041f610dc2565b60405161042c919061324f565b60405180910390f35b348015610440575f80fd5b5061045b60048036038101906104569190613543565b610e01565b604051610468919061332c565b60405180910390f35b34801561047c575f80fd5b50610497600480360381019061049291906134e4565b610e33565b005b3480156104a4575f80fd5b506104ad610f31565b6040516104ba919061332c565b60405180910390f35b3480156104ce575f80fd5b506104e960048036038101906104e49190613543565b610f44565b6040516104f6919061324f565b60405180910390f35b34801561050a575f80fd5b50610513610f8a565b005b348015610520575f80fd5b506105296110d8565b005b348015610536575f80fd5b50610551600480360381019061054c91906133cd565b611180565b60405161055e919061332c565b60405180910390f35b348015610572575f80fd5b5061057b611374565b604051610588919061324f565b60405180910390f35b34801561059c575f80fd5b506105a561137a565b6040516105b2919061324f565b60405180910390f35b3480156105c6575f80fd5b506105e160048036038101906105dc919061356e565b611380565b005b3480156105ee575f80fd5b506105f761161c565b60405161060491906135f4565b60405180910390f35b348015610618575f80fd5b5061062161162a565b60405161062e91906135f4565b60405180910390f35b348015610642575f80fd5b5061064b611651565b60405161065891906132f2565b60405180910390f35b34801561066c575f80fd5b5061067561168e565b005b348015610682575f80fd5b5061068b611739565b60405161069891906135f4565b60405180910390f35b3480156106ac575f80fd5b506106c760048036038101906106c291906133cd565b61175e565b6040516106d4919061332c565b60405180910390f35b3480156106e8575f80fd5b506106f1611772565b6040516106fe91906135f4565b60405180910390f35b348015610712575f80fd5b5061072d6004803603810190610728919061360d565b611795565b005b34801561073a575f80fd5b506107556004803603810190610750919061365d565b611843565b604051610762919061324f565b60405180910390f35b348015610776575f80fd5b50610791600480360381019061078c919061369b565b6118c5565b60405161079e919061332c565b60405180910390f35b3480156107b2575f80fd5b506107cd60048036038101906107c89190613703565b6118d9565b005b3480156107da575f80fd5b506107f560048036038101906107f09190613543565b6119dc565b005b348015610802575f80fd5b5061080b611b99565b005b348015610818575f80fd5b50610821611c00565b60405161082e919061379c565b60405180910390f35b601e5481565b60606040518060400160405280601c81526020017f4c65747370756d7074686973686f65666f7274686563756c7475726500000000815250905090565b601d60149054906101000a900460ff1681565b5f8160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610968919061324f565b60405180910390a36001905092915050565b5f600354905090565b600f5481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610b6857610aeb826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c259092919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610b73848484611c87565b90509392505050565b610b846122be565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c07906137ff565b60405180910390fd5b85600a8190555084600d8190555083600b8190555082600c8190555081600e81905550610c7c82610c6e85610c6088610c528b8d6122c590919063ffffffff16565b6122c590919063ffffffff16565b6122c590919063ffffffff16565b6122c590919063ffffffff16565b600f8190555080601081905550610c91612322565b505050505050565b610ca16122be565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d24906137ff565b60405180910390fd5b6001601d60146101000a81548160ff021916908315150217905550565b5f610db3610d56610dc2565b610da5610d966002610d88601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f44565b6123dd90919063ffffffff16565b856123dd90919063ffffffff16565b61245490919063ffffffff16565b9050919050565b5f6012905090565b5f610dfc610dcf5f610f44565b610dee610ddd61dead610f44565b60035461249d90919063ffffffff16565b61249d90919063ffffffff16565b905090565b5f610e2c827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61088d565b9050919050565b610e3b6122be565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ec7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebe906137ff565b60405180910390fd5b6001811015610ed4575f80fd5b6103e881600354610ee5919061384a565b610eef91906138b8565b6005819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be51600554604051610f26919061324f565b60405180910390a150565b601d60159054906101000a900460ff1681565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610f926122be565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461101e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611015906137ff565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6110e06122be565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461116c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611163906137ff565b60405180910390fd5b600354600481905550600354600581905550565b5f6111896122be565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611215576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120c906137ff565b60405180910390fd5b5f8203611297578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161125591906135f4565b602060405180830381865afa158015611270573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061129491906138fc565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f83836040516112c8929190613927565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b815260040161132c929190613927565b6020604051808303815f875af1158015611348573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061136c9190613962565b905092915050565b60055481565b60045481565b6113886122be565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140b906137ff565b60405180910390fd5b8460145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b1560155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161160d949392919061398d565b60405180910390a15050505050565b5f61162561162a565b905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f44494c444f000000000000000000000000000000000000000000000000000000815250905090565b6116966122be565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611722576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611719906137ff565b60405180910390fd5b5f6012819055505f6011819055505f601381905550565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61176a338484611c87565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61179d6122be565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611829576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611820906137ff565b60405180910390fd5b816011819055508260128190555080601381905550505050565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f826118d083610d4a565b11905092915050565b6118e16122be565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461196d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611964906137ff565b60405180910390fd5b81601d60156101000a81548160ff02191690831515021790555080601e819055507f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60601e54601d60159054906101000a900460ff166040516119d09291906139d0565b60405180910390a15050565b6119e46122be565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a67906137ff565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ade576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad590613a67565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611bfd573d5f803e3d5ffd5b50565b601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f838311158290611c6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6391906132f2565b60405180910390fd5b505f8385611c7a9190613a85565b9050809150509392505050565b5f601f5f9054906101000a900460ff1615611cae57611ca78484846124e6565b90506122b7565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611d4c575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611da157601d60149054906101000a900460ff16611da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9790613b02565b60405180910390fd5b5b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611e2457503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e5e575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611eb75750601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f10575060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f69575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611fbc575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561201f575f611fcb84610f44565b90506005548382611fdc9190613b20565b111561201d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201490613bc3565b60405180910390fd5b505b61202984836126b0565b61203161274a565b1561203f5761203e61281c565b5b6120c6826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c259092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806121a3575060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6121b7576121b2858486612e17565b6121b9565b825b905061220b8160065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122c590919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122a9919061324f565b60405180910390a360019150505b9392505050565b5f33905090565b5f8082846122d39190613b20565b905083811015612318576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230f90613c2b565b60405180910390fd5b8091505092915050565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b93280061236e601054612360601254600f546123dd90919063ffffffff16565b61245490919063ffffffff16565b61239960105461238b601154600f546123dd90919063ffffffff16565b61245490919063ffffffff16565b6123c46010546123b6601354600f546123dd90919063ffffffff16565b61245490919063ffffffff16565b6040516123d393929190613c49565b60405180910390a1565b5f8083036123ed575f905061244e565b5f82846123fa919061384a565b905082848261240991906138b8565b14612449576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244090613cee565b60405180910390fd5b809150505b92915050565b5f61249583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506131d6565b905092915050565b5f6124de83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c25565b905092915050565b5f61256e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c259092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506125ff8260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122c590919063ffffffff16565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161269d919061324f565b60405180910390a3600190509392505050565b60045481111580612707575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612746576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273d90613d56565b60405180910390fd5b5050565b5f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156127b45750601f5f9054906101000a900460ff16155b80156127cc5750601d60159054906101000a900460ff165b80156128175750601e5460065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b6001601f5f6101000a81548160ff0219169083151502179055505f612845601954601a546118c5565b61285157600a54612853565b5f5b90505f6128926002612884600f5461287686601e546123dd90919063ffffffff16565b61245490919063ffffffff16565b61245490919063ffffffff16565b90505f6128aa82601e5461249d90919063ffffffff16565b90505f600267ffffffffffffffff8111156128c8576128c7613d74565b5b6040519080825280602002602001820160405280156128f65781602001602082028036833780820191505090505b50905030815f8151811061290d5761290c613da1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061297d5761297c613da1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f479050601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b8152600401612a1d959493929190613ebe565b5f604051808303815f87803b158015612a34575f80fd5b505af1158015612a46573d5f803e3d5ffd5b505050505f612a5e824761249d90919063ffffffff16565b90505f612a89612a7860028961245490919063ffffffff16565b600f5461249d90919063ffffffff16565b90505f612ac46002612ab684612aa88c886123dd90919063ffffffff16565b61245490919063ffffffff16565b61245490919063ffffffff16565b90505f612aee83612ae0600b54876123dd90919063ffffffff16565b61245490919063ffffffff16565b90505f612b1884612b0a600d54886123dd90919063ffffffff16565b61245490919063ffffffff16565b90505f612b4285612b34600c54896123dd90919063ffffffff16565b61245490919063ffffffff16565b90505f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612b8a90613f43565b5f6040518083038185875af1925050503d805f8114612bc4576040519150601f19603f3d011682016040523d82523d5f602084013e612bc9565b606091505b5050905060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612c1290613f43565b5f6040518083038185875af1925050503d805f8114612c4c576040519150601f19603f3d011682016040523d82523d5f602084013e612c51565b606091505b50508091505060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612c9c90613f43565b5f6040518083038185875af1925050503d805f8114612cd6576040519150601f19603f3d011682016040523d82523d5f602084013e612cdb565b606091505b5050809150505f90505f8b1115612df057601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e5f8060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612d7296959493929190613f57565b60606040518083038185885af1158015612d8e573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612db39190613fb6565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051612de7929190614006565b60405180910390a15b5050505050505050505050505f601f5f6101000a81548160ff021916908315150217905550565b5f806013549050601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612e7c576011549050612ed7565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612ed65760125490505b5b5f612f206103e8601054612eeb919061384a565b612f1284612f04600f548a6123dd90919063ffffffff16565b6123dd90919063ffffffff16565b61245490919063ffffffff16565b90505f612f4c600f54612f3e600e54856123dd90919063ffffffff16565b61245490919063ffffffff16565b90505f612f62828461249d90919063ffffffff16565b9050612fb48160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122c590919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506130668260065f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122c590919063ffffffff16565b60065f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613125919061324f565b60405180910390a35f8211156131b65761314a8260035461249d90919063ffffffff16565b6003819055505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516131ad919061324f565b60405180910390a35b6131c9838861249d90919063ffffffff16565b9450505050509392505050565b5f808311829061321c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161321391906132f2565b60405180910390fd5b505f838561322a91906138b8565b9050809150509392505050565b5f819050919050565b61324981613237565b82525050565b5f6020820190506132625f830184613240565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561329f578082015181840152602081019050613284565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6132c482613268565b6132ce8185613272565b93506132de818560208601613282565b6132e7816132aa565b840191505092915050565b5f6020820190508181035f83015261330a81846132ba565b905092915050565b5f8115159050919050565b61332681613312565b82525050565b5f60208201905061333f5f83018461331d565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61337282613349565b9050919050565b61338281613368565b811461338c575f80fd5b50565b5f8135905061339d81613379565b92915050565b6133ac81613237565b81146133b6575f80fd5b50565b5f813590506133c7816133a3565b92915050565b5f80604083850312156133e3576133e2613345565b5b5f6133f08582860161338f565b9250506020613401858286016133b9565b9150509250929050565b5f805f6060848603121561342257613421613345565b5b5f61342f8682870161338f565b93505060206134408682870161338f565b9250506040613451868287016133b9565b9150509250925092565b5f805f805f8060c0878903121561347557613474613345565b5b5f61348289828a016133b9565b965050602061349389828a016133b9565b95505060406134a489828a016133b9565b94505060606134b589828a016133b9565b93505060806134c689828a016133b9565b92505060a06134d789828a016133b9565b9150509295509295509295565b5f602082840312156134f9576134f8613345565b5b5f613506848285016133b9565b91505092915050565b5f60ff82169050919050565b6135248161350f565b82525050565b5f60208201905061353d5f83018461351b565b92915050565b5f6020828403121561355857613557613345565b5b5f6135658482850161338f565b91505092915050565b5f805f805f60a0868803121561358757613586613345565b5b5f6135948882890161338f565b95505060206135a58882890161338f565b94505060406135b68882890161338f565b93505060606135c78882890161338f565b92505060806135d88882890161338f565b9150509295509295909350565b6135ee81613368565b82525050565b5f6020820190506136075f8301846135e5565b92915050565b5f805f6060848603121561362457613623613345565b5b5f613631868287016133b9565b9350506020613642868287016133b9565b9250506040613653868287016133b9565b9150509250925092565b5f806040838503121561367357613672613345565b5b5f6136808582860161338f565b92505060206136918582860161338f565b9150509250929050565b5f80604083850312156136b1576136b0613345565b5b5f6136be858286016133b9565b92505060206136cf858286016133b9565b9150509250929050565b6136e281613312565b81146136ec575f80fd5b50565b5f813590506136fd816136d9565b92915050565b5f806040838503121561371957613718613345565b5b5f613726858286016136ef565b9250506020613737858286016133b9565b9150509250929050565b5f819050919050565b5f61376461375f61375a84613349565b613741565b613349565b9050919050565b5f6137758261374a565b9050919050565b5f6137868261376b565b9050919050565b6137968161377c565b82525050565b5f6020820190506137af5f83018461378d565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6137e9602083613272565b91506137f4826137b5565b602082019050919050565b5f6020820190508181035f830152613816816137dd565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61385482613237565b915061385f83613237565b925082820261386d81613237565b915082820484148315176138845761388361381d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6138c282613237565b91506138cd83613237565b9250826138dd576138dc61388b565b5b828204905092915050565b5f815190506138f6816133a3565b92915050565b5f6020828403121561391157613910613345565b5b5f61391e848285016138e8565b91505092915050565b5f60408201905061393a5f8301856135e5565b6139476020830184613240565b9392505050565b5f8151905061395c816136d9565b92915050565b5f6020828403121561397757613976613345565b5b5f6139848482850161394e565b91505092915050565b5f6080820190506139a05f8301876135e5565b6139ad60208301866135e5565b6139ba60408301856135e5565b6139c760608301846135e5565b95945050505050565b5f6040820190506139e35f830185613240565b6139f0602083018461331d565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613a51602683613272565b9150613a5c826139f7565b604082019050919050565b5f6020820190508181035f830152613a7e81613a45565b9050919050565b5f613a8f82613237565b9150613a9a83613237565b9250828203905081811115613ab257613ab161381d565b5b92915050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f613aec601483613272565b9150613af782613ab8565b602082019050919050565b5f6020820190508181035f830152613b1981613ae0565b9050919050565b5f613b2a82613237565b9150613b3583613237565b9250828201905080821115613b4d57613b4c61381d565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d69745f8201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b5f613bad603e83613272565b9150613bb882613b53565b604082019050919050565b5f6020820190508181035f830152613bda81613ba1565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613c15601b83613272565b9150613c2082613be1565b602082019050919050565b5f6020820190508181035f830152613c4281613c09565b9050919050565b5f606082019050613c5c5f83018661351b565b613c69602083018561351b565b613c76604083018461351b565b949350505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613cd8602183613272565b9150613ce382613c7e565b604082019050919050565b5f6020820190508181035f830152613d0581613ccc565b9050919050565b7f5458204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f613d40601183613272565b9150613d4b82613d0c565b602082019050919050565b5f6020820190508181035f830152613d6d81613d34565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f613df1613dec613de784613dce565b613741565b613237565b9050919050565b613e0181613dd7565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613e3981613368565b82525050565b5f613e4a8383613e30565b60208301905092915050565b5f602082019050919050565b5f613e6c82613e07565b613e768185613e11565b9350613e8183613e21565b805f5b83811015613eb1578151613e988882613e3f565b9750613ea383613e56565b925050600181019050613e84565b5085935050505092915050565b5f60a082019050613ed15f830188613240565b613ede6020830187613df8565b8181036040830152613ef08186613e62565b9050613eff60608301856135e5565b613f0c6080830184613240565b9695505050505050565b5f81905092915050565b50565b5f613f2e5f83613f16565b9150613f3982613f20565b5f82019050919050565b5f613f4d82613f23565b9150819050919050565b5f60c082019050613f6a5f8301896135e5565b613f776020830188613240565b613f846040830187613df8565b613f916060830186613df8565b613f9e60808301856135e5565b613fab60a0830184613240565b979650505050505050565b5f805f60608486031215613fcd57613fcc613345565b5b5f613fda868287016138e8565b9350506020613feb868287016138e8565b9250506040613ffc868287016138e8565b9150509250925092565b5f6040820190506140195f830185613240565b6140266020830184613240565b939250505056fea2646970667358221220deb291508217934bd522c38d7bf044f90e2d7234af477312c69660b6cec0734264736f6c63430008140033

Deployed Bytecode

0x608060405260043610610212575f3560e01c806377b54bad11610117578063a9059cbb1161009f578063ded1e4381161006e578063ded1e4381461076b578063df20fd49146107a7578063f2fde38b146107cf578063f4293890146107f7578063f887ea401461080d57610219565b8063a9059cbb146106a1578063b2bdfa7b146106dd578063c0cbdea414610707578063dd62ed3e1461072f57610219565b8063893d20e8116100e6578063893d20e8146105e35780638da5cb5b1461060d57806395d89b4114610637578063a70419d214610661578063a8aa1b311461067757610219565b806377b54bad1461052b57806378109e54146105675780637d1db4a51461059157806382528791146105bb57610219565b806330c9a6a01161019a5780635d83e1d5116101695780635d83e1d5146104715780636ddd17131461049957806370a08231146104c3578063715018a6146104ff578063751039fc1461051557610219565b806330c9a6a0146103a5578063313ce567146103e1578063552656691461040b578063571ac8b01461043557610219565b806318160ddd116101e157806318160ddd146102d75780631df4ccfc1461030157806323b872dd1461032b578063282c874914610367578063293230b81461038f57610219565b80630445b6671461021d57806306fdde031461024757806308fd3d0514610271578063095ea7b31461029b57610219565b3661021957005b5f80fd5b348015610228575f80fd5b50610231610837565b60405161023e919061324f565b60405180910390f35b348015610252575f80fd5b5061025b61083d565b60405161026891906132f2565b60405180910390f35b34801561027c575f80fd5b5061028561087a565b604051610292919061332c565b60405180910390f35b3480156102a6575f80fd5b506102c160048036038101906102bc91906133cd565b61088d565b6040516102ce919061332c565b60405180910390f35b3480156102e2575f80fd5b506102eb61097a565b6040516102f8919061324f565b60405180910390f35b34801561030c575f80fd5b50610315610983565b604051610322919061324f565b60405180910390f35b348015610336575f80fd5b50610351600480360381019061034c919061340b565b610989565b60405161035e919061332c565b60405180910390f35b348015610372575f80fd5b5061038d6004803603810190610388919061345b565b610b7c565b005b34801561039a575f80fd5b506103a3610c99565b005b3480156103b0575f80fd5b506103cb60048036038101906103c691906134e4565b610d4a565b6040516103d8919061324f565b60405180910390f35b3480156103ec575f80fd5b506103f5610dba565b604051610402919061352a565b60405180910390f35b348015610416575f80fd5b5061041f610dc2565b60405161042c919061324f565b60405180910390f35b348015610440575f80fd5b5061045b60048036038101906104569190613543565b610e01565b604051610468919061332c565b60405180910390f35b34801561047c575f80fd5b50610497600480360381019061049291906134e4565b610e33565b005b3480156104a4575f80fd5b506104ad610f31565b6040516104ba919061332c565b60405180910390f35b3480156104ce575f80fd5b506104e960048036038101906104e49190613543565b610f44565b6040516104f6919061324f565b60405180910390f35b34801561050a575f80fd5b50610513610f8a565b005b348015610520575f80fd5b506105296110d8565b005b348015610536575f80fd5b50610551600480360381019061054c91906133cd565b611180565b60405161055e919061332c565b60405180910390f35b348015610572575f80fd5b5061057b611374565b604051610588919061324f565b60405180910390f35b34801561059c575f80fd5b506105a561137a565b6040516105b2919061324f565b60405180910390f35b3480156105c6575f80fd5b506105e160048036038101906105dc919061356e565b611380565b005b3480156105ee575f80fd5b506105f761161c565b60405161060491906135f4565b60405180910390f35b348015610618575f80fd5b5061062161162a565b60405161062e91906135f4565b60405180910390f35b348015610642575f80fd5b5061064b611651565b60405161065891906132f2565b60405180910390f35b34801561066c575f80fd5b5061067561168e565b005b348015610682575f80fd5b5061068b611739565b60405161069891906135f4565b60405180910390f35b3480156106ac575f80fd5b506106c760048036038101906106c291906133cd565b61175e565b6040516106d4919061332c565b60405180910390f35b3480156106e8575f80fd5b506106f1611772565b6040516106fe91906135f4565b60405180910390f35b348015610712575f80fd5b5061072d6004803603810190610728919061360d565b611795565b005b34801561073a575f80fd5b506107556004803603810190610750919061365d565b611843565b604051610762919061324f565b60405180910390f35b348015610776575f80fd5b50610791600480360381019061078c919061369b565b6118c5565b60405161079e919061332c565b60405180910390f35b3480156107b2575f80fd5b506107cd60048036038101906107c89190613703565b6118d9565b005b3480156107da575f80fd5b506107f560048036038101906107f09190613543565b6119dc565b005b348015610802575f80fd5b5061080b611b99565b005b348015610818575f80fd5b50610821611c00565b60405161082e919061379c565b60405180910390f35b601e5481565b60606040518060400160405280601c81526020017f4c65747370756d7074686973686f65666f7274686563756c7475726500000000815250905090565b601d60149054906101000a900460ff1681565b5f8160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610968919061324f565b60405180910390a36001905092915050565b5f600354905090565b600f5481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610b6857610aeb826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c259092919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610b73848484611c87565b90509392505050565b610b846122be565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c07906137ff565b60405180910390fd5b85600a8190555084600d8190555083600b8190555082600c8190555081600e81905550610c7c82610c6e85610c6088610c528b8d6122c590919063ffffffff16565b6122c590919063ffffffff16565b6122c590919063ffffffff16565b6122c590919063ffffffff16565b600f8190555080601081905550610c91612322565b505050505050565b610ca16122be565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d24906137ff565b60405180910390fd5b6001601d60146101000a81548160ff021916908315150217905550565b5f610db3610d56610dc2565b610da5610d966002610d88601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f44565b6123dd90919063ffffffff16565b856123dd90919063ffffffff16565b61245490919063ffffffff16565b9050919050565b5f6012905090565b5f610dfc610dcf5f610f44565b610dee610ddd61dead610f44565b60035461249d90919063ffffffff16565b61249d90919063ffffffff16565b905090565b5f610e2c827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61088d565b9050919050565b610e3b6122be565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ec7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebe906137ff565b60405180910390fd5b6001811015610ed4575f80fd5b6103e881600354610ee5919061384a565b610eef91906138b8565b6005819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be51600554604051610f26919061324f565b60405180910390a150565b601d60159054906101000a900460ff1681565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610f926122be565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461101e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611015906137ff565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6110e06122be565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461116c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611163906137ff565b60405180910390fd5b600354600481905550600354600581905550565b5f6111896122be565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611215576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120c906137ff565b60405180910390fd5b5f8203611297578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161125591906135f4565b602060405180830381865afa158015611270573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061129491906138fc565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f83836040516112c8929190613927565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b815260040161132c929190613927565b6020604051808303815f875af1158015611348573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061136c9190613962565b905092915050565b60055481565b60045481565b6113886122be565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140b906137ff565b60405180910390fd5b8460145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b1560155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161160d949392919061398d565b60405180910390a15050505050565b5f61162561162a565b905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f44494c444f000000000000000000000000000000000000000000000000000000815250905090565b6116966122be565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611722576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611719906137ff565b60405180910390fd5b5f6012819055505f6011819055505f601381905550565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61176a338484611c87565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61179d6122be565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611829576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611820906137ff565b60405180910390fd5b816011819055508260128190555080601381905550505050565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f826118d083610d4a565b11905092915050565b6118e16122be565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461196d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611964906137ff565b60405180910390fd5b81601d60156101000a81548160ff02191690831515021790555080601e819055507f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60601e54601d60159054906101000a900460ff166040516119d09291906139d0565b60405180910390a15050565b6119e46122be565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a67906137ff565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ade576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad590613a67565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611bfd573d5f803e3d5ffd5b50565b601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f838311158290611c6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6391906132f2565b60405180910390fd5b505f8385611c7a9190613a85565b9050809150509392505050565b5f601f5f9054906101000a900460ff1615611cae57611ca78484846124e6565b90506122b7565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611d4c575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611da157601d60149054906101000a900460ff16611da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9790613b02565b60405180910390fd5b5b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611e2457503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e5e575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611eb75750601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f10575060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f69575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611fbc575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561201f575f611fcb84610f44565b90506005548382611fdc9190613b20565b111561201d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201490613bc3565b60405180910390fd5b505b61202984836126b0565b61203161274a565b1561203f5761203e61281c565b5b6120c6826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c259092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806121a3575060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6121b7576121b2858486612e17565b6121b9565b825b905061220b8160065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122c590919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122a9919061324f565b60405180910390a360019150505b9392505050565b5f33905090565b5f8082846122d39190613b20565b905083811015612318576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230f90613c2b565b60405180910390fd5b8091505092915050565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b93280061236e601054612360601254600f546123dd90919063ffffffff16565b61245490919063ffffffff16565b61239960105461238b601154600f546123dd90919063ffffffff16565b61245490919063ffffffff16565b6123c46010546123b6601354600f546123dd90919063ffffffff16565b61245490919063ffffffff16565b6040516123d393929190613c49565b60405180910390a1565b5f8083036123ed575f905061244e565b5f82846123fa919061384a565b905082848261240991906138b8565b14612449576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244090613cee565b60405180910390fd5b809150505b92915050565b5f61249583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506131d6565b905092915050565b5f6124de83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c25565b905092915050565b5f61256e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c259092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506125ff8260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122c590919063ffffffff16565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161269d919061324f565b60405180910390a3600190509392505050565b60045481111580612707575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612746576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273d90613d56565b60405180910390fd5b5050565b5f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156127b45750601f5f9054906101000a900460ff16155b80156127cc5750601d60159054906101000a900460ff165b80156128175750601e5460065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b6001601f5f6101000a81548160ff0219169083151502179055505f612845601954601a546118c5565b61285157600a54612853565b5f5b90505f6128926002612884600f5461287686601e546123dd90919063ffffffff16565b61245490919063ffffffff16565b61245490919063ffffffff16565b90505f6128aa82601e5461249d90919063ffffffff16565b90505f600267ffffffffffffffff8111156128c8576128c7613d74565b5b6040519080825280602002602001820160405280156128f65781602001602082028036833780820191505090505b50905030815f8151811061290d5761290c613da1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061297d5761297c613da1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f479050601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b8152600401612a1d959493929190613ebe565b5f604051808303815f87803b158015612a34575f80fd5b505af1158015612a46573d5f803e3d5ffd5b505050505f612a5e824761249d90919063ffffffff16565b90505f612a89612a7860028961245490919063ffffffff16565b600f5461249d90919063ffffffff16565b90505f612ac46002612ab684612aa88c886123dd90919063ffffffff16565b61245490919063ffffffff16565b61245490919063ffffffff16565b90505f612aee83612ae0600b54876123dd90919063ffffffff16565b61245490919063ffffffff16565b90505f612b1884612b0a600d54886123dd90919063ffffffff16565b61245490919063ffffffff16565b90505f612b4285612b34600c54896123dd90919063ffffffff16565b61245490919063ffffffff16565b90505f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612b8a90613f43565b5f6040518083038185875af1925050503d805f8114612bc4576040519150601f19603f3d011682016040523d82523d5f602084013e612bc9565b606091505b5050905060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612c1290613f43565b5f6040518083038185875af1925050503d805f8114612c4c576040519150601f19603f3d011682016040523d82523d5f602084013e612c51565b606091505b50508091505060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612c9c90613f43565b5f6040518083038185875af1925050503d805f8114612cd6576040519150601f19603f3d011682016040523d82523d5f602084013e612cdb565b606091505b5050809150505f90505f8b1115612df057601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e5f8060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612d7296959493929190613f57565b60606040518083038185885af1158015612d8e573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612db39190613fb6565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051612de7929190614006565b60405180910390a15b5050505050505050505050505f601f5f6101000a81548160ff021916908315150217905550565b5f806013549050601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612e7c576011549050612ed7565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612ed65760125490505b5b5f612f206103e8601054612eeb919061384a565b612f1284612f04600f548a6123dd90919063ffffffff16565b6123dd90919063ffffffff16565b61245490919063ffffffff16565b90505f612f4c600f54612f3e600e54856123dd90919063ffffffff16565b61245490919063ffffffff16565b90505f612f62828461249d90919063ffffffff16565b9050612fb48160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122c590919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506130668260065f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122c590919063ffffffff16565b60065f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613125919061324f565b60405180910390a35f8211156131b65761314a8260035461249d90919063ffffffff16565b6003819055505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516131ad919061324f565b60405180910390a35b6131c9838861249d90919063ffffffff16565b9450505050509392505050565b5f808311829061321c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161321391906132f2565b60405180910390fd5b505f838561322a91906138b8565b9050809150509392505050565b5f819050919050565b61324981613237565b82525050565b5f6020820190506132625f830184613240565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561329f578082015181840152602081019050613284565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6132c482613268565b6132ce8185613272565b93506132de818560208601613282565b6132e7816132aa565b840191505092915050565b5f6020820190508181035f83015261330a81846132ba565b905092915050565b5f8115159050919050565b61332681613312565b82525050565b5f60208201905061333f5f83018461331d565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61337282613349565b9050919050565b61338281613368565b811461338c575f80fd5b50565b5f8135905061339d81613379565b92915050565b6133ac81613237565b81146133b6575f80fd5b50565b5f813590506133c7816133a3565b92915050565b5f80604083850312156133e3576133e2613345565b5b5f6133f08582860161338f565b9250506020613401858286016133b9565b9150509250929050565b5f805f6060848603121561342257613421613345565b5b5f61342f8682870161338f565b93505060206134408682870161338f565b9250506040613451868287016133b9565b9150509250925092565b5f805f805f8060c0878903121561347557613474613345565b5b5f61348289828a016133b9565b965050602061349389828a016133b9565b95505060406134a489828a016133b9565b94505060606134b589828a016133b9565b93505060806134c689828a016133b9565b92505060a06134d789828a016133b9565b9150509295509295509295565b5f602082840312156134f9576134f8613345565b5b5f613506848285016133b9565b91505092915050565b5f60ff82169050919050565b6135248161350f565b82525050565b5f60208201905061353d5f83018461351b565b92915050565b5f6020828403121561355857613557613345565b5b5f6135658482850161338f565b91505092915050565b5f805f805f60a0868803121561358757613586613345565b5b5f6135948882890161338f565b95505060206135a58882890161338f565b94505060406135b68882890161338f565b93505060606135c78882890161338f565b92505060806135d88882890161338f565b9150509295509295909350565b6135ee81613368565b82525050565b5f6020820190506136075f8301846135e5565b92915050565b5f805f6060848603121561362457613623613345565b5b5f613631868287016133b9565b9350506020613642868287016133b9565b9250506040613653868287016133b9565b9150509250925092565b5f806040838503121561367357613672613345565b5b5f6136808582860161338f565b92505060206136918582860161338f565b9150509250929050565b5f80604083850312156136b1576136b0613345565b5b5f6136be858286016133b9565b92505060206136cf858286016133b9565b9150509250929050565b6136e281613312565b81146136ec575f80fd5b50565b5f813590506136fd816136d9565b92915050565b5f806040838503121561371957613718613345565b5b5f613726858286016136ef565b9250506020613737858286016133b9565b9150509250929050565b5f819050919050565b5f61376461375f61375a84613349565b613741565b613349565b9050919050565b5f6137758261374a565b9050919050565b5f6137868261376b565b9050919050565b6137968161377c565b82525050565b5f6020820190506137af5f83018461378d565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6137e9602083613272565b91506137f4826137b5565b602082019050919050565b5f6020820190508181035f830152613816816137dd565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61385482613237565b915061385f83613237565b925082820261386d81613237565b915082820484148315176138845761388361381d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6138c282613237565b91506138cd83613237565b9250826138dd576138dc61388b565b5b828204905092915050565b5f815190506138f6816133a3565b92915050565b5f6020828403121561391157613910613345565b5b5f61391e848285016138e8565b91505092915050565b5f60408201905061393a5f8301856135e5565b6139476020830184613240565b9392505050565b5f8151905061395c816136d9565b92915050565b5f6020828403121561397757613976613345565b5b5f6139848482850161394e565b91505092915050565b5f6080820190506139a05f8301876135e5565b6139ad60208301866135e5565b6139ba60408301856135e5565b6139c760608301846135e5565b95945050505050565b5f6040820190506139e35f830185613240565b6139f0602083018461331d565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613a51602683613272565b9150613a5c826139f7565b604082019050919050565b5f6020820190508181035f830152613a7e81613a45565b9050919050565b5f613a8f82613237565b9150613a9a83613237565b9250828203905081811115613ab257613ab161381d565b5b92915050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f613aec601483613272565b9150613af782613ab8565b602082019050919050565b5f6020820190508181035f830152613b1981613ae0565b9050919050565b5f613b2a82613237565b9150613b3583613237565b9250828201905080821115613b4d57613b4c61381d565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d69745f8201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b5f613bad603e83613272565b9150613bb882613b53565b604082019050919050565b5f6020820190508181035f830152613bda81613ba1565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613c15601b83613272565b9150613c2082613be1565b602082019050919050565b5f6020820190508181035f830152613c4281613c09565b9050919050565b5f606082019050613c5c5f83018661351b565b613c69602083018561351b565b613c76604083018461351b565b949350505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613cd8602183613272565b9150613ce382613c7e565b604082019050919050565b5f6020820190508181035f830152613d0581613ccc565b9050919050565b7f5458204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f613d40601183613272565b9150613d4b82613d0c565b602082019050919050565b5f6020820190508181035f830152613d6d81613d34565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f613df1613dec613de784613dce565b613741565b613237565b9050919050565b613e0181613dd7565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613e3981613368565b82525050565b5f613e4a8383613e30565b60208301905092915050565b5f602082019050919050565b5f613e6c82613e07565b613e768185613e11565b9350613e8183613e21565b805f5b83811015613eb1578151613e988882613e3f565b9750613ea383613e56565b925050600181019050613e84565b5085935050505092915050565b5f60a082019050613ed15f830188613240565b613ede6020830187613df8565b8181036040830152613ef08186613e62565b9050613eff60608301856135e5565b613f0c6080830184613240565b9695505050505050565b5f81905092915050565b50565b5f613f2e5f83613f16565b9150613f3982613f20565b5f82019050919050565b5f613f4d82613f23565b9150819050919050565b5f60c082019050613f6a5f8301896135e5565b613f776020830188613240565b613f846040830187613df8565b613f916060830186613df8565b613f9e60808301856135e5565b613fab60a0830184613240565b979650505050505050565b5f805f60608486031215613fcd57613fcc613345565b5b5f613fda868287016138e8565b9350506020613feb868287016138e8565b9250506040613ffc868287016138e8565b9150509250925092565b5f6040820190506140195f830185613240565b6140266020830184613240565b939250505056fea2646970667358221220deb291508217934bd522c38d7bf044f90e2d7234af477312c69660b6cec0734264736f6c63430008140033

Deployed Bytecode Sourcemap

5703:13701:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8054:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9695:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7971:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10117:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9425:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7339:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10635:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17670:508;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15275:81;;;;;;;;;;;;;:::i;:::-;;19108:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9519:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19269:132;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10341:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11013:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8017:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9865:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2617:148;;;;;;;;;;;;;:::i;:::-;;11270:139;;;;;;;;;;;;;:::i;:::-;;14652:343;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6842:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6777:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18191:547;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9781:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2403:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9605:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15364:127;;;;;;;;;;;;;:::i;:::-;;7939:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10471:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2023:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15003:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9976:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18965:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18746:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2773:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14513:132;;;;;;;;;;;;;:::i;:::-;;7869:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8054:50;;;;:::o;9695:80::-;9743:13;9767:5;;;;;;;;;;;;;;;;;9760:12;;9695:80;:::o;7971:31::-;;;;;;;;;;;;;:::o;10117:216::-;10192:4;10244:6;10209:11;:23;10221:10;10209:23;;;;;;;;;;;;;;;:32;10233:7;10209:32;;;;;;;;;;;;;;;:41;;;;10287:7;10266:37;;10275:10;10266:37;;;10296:6;10266:37;;;;;;:::i;:::-;;;;;;;;10321:4;10314:11;;10117:216;;;;:::o;9425:88::-;9480:7;9498:12;;9491:19;;9425:88;:::o;7339:93::-;;;;:::o;10635:370::-;10735:4;10790:17;10755:11;:19;10767:6;10755:19;;;;;;;;;;;;;;;:31;10775:10;10755:31;;;;;;;;;;;;;;;;:52;10752:186;;10857:69;10893:6;10857:69;;;;;;;;;;;;;;;;;:11;:19;10869:6;10857:19;;;;;;;;;;;;;;;:31;10877:10;10857:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;10823:11;:19;10835:6;10823:19;;;;;;;;;;;;;;;:31;10843:10;10823:31;;;;;;;;;;;;;;;:103;;;;10752:186;10957:40;10971:6;10979:9;10990:6;10957:13;:40::i;:::-;10950:47;;10635:370;;;;;:::o;17670:508::-;2540:12;:10;:12::i;:::-;2530:22;;:6;;;;;;;;;;:22;;;2522:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17865:13:::1;17850:12;:28;;;;17902:11;17889:10;:24;;;;17939:13;17924:12;:28;;;;17972:7;17963:6;:16;;;;18000:8;17990:7;:18;;;;18030:76;18097:8;18030:62;18084:7;18030:49;18065:13;18030:30;18048:11;18030:13;:17;;:30;;;;:::i;:::-;:34;;:49;;;;:::i;:::-;:53;;:62;;;;:::i;:::-;:66;;:76;;;;:::i;:::-;18019:8;:87;;;;18134:15;18117:14;:32;;;;18160:10;:8;:10::i;:::-;17670:508:::0;;;;;;:::o;15275:81::-;2540:12;:10;:12::i;:::-;2530:22;;:6;;;;;;;;;;:22;;;2522:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15341:4:::1;15327:11;;:18;;;;;;;;;;;;;;;;;;15275:81::o:0;19108:149::-;19168:7;19195:54;19236:12;:10;:12::i;:::-;19195:36;19208:22;19228:1;19208:15;19218:4;;;;;;;;;;;19208:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;19195:8;:12;;:36;;;;:::i;:::-;:40;;:54;;;;:::i;:::-;19188:61;;19108:149;;;:::o;9519:80::-;9571:5;6084:2;9580:16;;9519:80;:::o;19269:132::-;19312:7;19339:54;19377:15;5899:42;19377:9;:15::i;:::-;19339:33;19356:15;5826:42;19356:9;:15::i;:::-;19339:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;19332:61;;19269:132;:::o;10341:122::-;10396:4;10420:35;10428:7;10437:17;10420:7;:35::i;:::-;10413:42;;10341:122;;;:::o;11013:247::-;2540:12;:10;:12::i;:::-;2530:22;;:6;;;;;;;;;;:22;;;2522:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11117:1:::1;11099:14;:19;;11091:28;;;::::0;::::1;;11184:4;11165:14;11150:12;;:29;;;;:::i;:::-;11149:39;;;;:::i;:::-;11131:15;:57;;;;11204:30;11218:15;;11204:30;;;;;;:::i;:::-;;;;;;;;11013:247:::0;:::o;8017:30::-;;;;;;;;;;;;;:::o;9865:105::-;9931:7;9949:9;:18;9959:7;9949:18;;;;;;;;;;;;;;;;9942:25;;9865:105;;;:::o;2617:148::-;2540:12;:10;:12::i;:::-;2530:22;;:6;;;;;;;;;;:22;;;2522:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2724:1:::1;2687:40;;2708:6;::::0;::::1;;;;;;;;2687:40;;;;;;;;;;;;2755:1;2738:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2617:148::o:0;11270:139::-;2540:12;:10;:12::i;:::-;2530:22;;:6;;;;;;;;;;:22;;;2522:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11344:12:::1;;11329;:27;;;;11389:12;;11371:15;:30;;;;11270:139::o:0;14652:343::-;14743:12;2540;:10;:12::i;:::-;2530:22;;:6;;;;;;;;;;:22;;;2522:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14781:1:::1;14771:6;:11:::0;14768:95:::1;;14813:12;14807:29;;;14845:4;14807:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14798:53;;14768:95;14878:32;14889:12;14903:6;14878:32;;;;;;;:::i;:::-;;;;;;;;14934:12;14928:28;;;14957:21;;;;;;;;;;;14980:6;14928:59;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14921:66;;14652:343:::0;;;;:::o;6842:61::-;;;;:::o;6777:58::-;;;;:::o;18191:547::-;2540:12;:10;:12::i;:::-;2530:22;;:6;;;;;;;;;;:22;;;2522:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18408:22:::1;18384:21;;:46;;;;;;;;;;;;;;;;;;18464:21;18441:20;;:44;;;;;;;;;;;;;;;;;;18513:15;18496:14;;:32;;;;;;;;;;;;;;;;;;18557:16;18539:15;;:34;;;;;;;;;;;;;;;;;;18605:19;18584:18;;:40;;;;;;;;;;;;;;;;;;18642:88;18656:20;;;;;;;;;;;18678:18;;;;;;;;;;;18698:15;;;;;;;;;;;18715:14;;;;;;;;;;;18642:88;;;;;;;;;:::i;:::-;;;;;;;;18191:547:::0;;;;;:::o;9781:78::-;9833:7;9850;:5;:7::i;:::-;9843:14;;9781:78;:::o;2403:79::-;2441:7;2468:6;;;;;;;;;;;2461:13;;2403:79;:::o;9605:84::-;9655:13;9679:7;;;;;;;;;;;;;;;;;9672:14;;9605:84;:::o;15364:127::-;2540:12;:10;:12::i;:::-;2530:22;;:6;;;;;;;;;;:22;;;2522:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15426:1:::1;15413:10;:14;;;;15452:1;15438:11;:15;;;;15482:1;15464:15;:19;;;;15364:127::o:0;7939:19::-;;;;;;;;;;;;;:::o;10471:156::-;10551:4;10575:44;10589:10;10601:9;10612:6;10575:13;:44::i;:::-;10568:51;;10471:156;;;;:::o;2023:21::-;;;;;;;;;;;;:::o;15003:257::-;2540:12;:10;:12::i;:::-;2530:22;;:6;;;;;;;;;;:22;;;2522:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15141:14:::1;15127:11;:28;;;;15179:13;15166:10;:26;;;;15221:15;15203;:33;;;;15003:257:::0;;;:::o;9976:133::-;10060:7;10078:11;:19;10090:6;10078:19;;;;;;;;;;;;;;;:28;10098:7;10078:28;;;;;;;;;;;;;;;;10071:35;;9976:133;;;;:::o;18965:135::-;19039:4;19087:5;19063:21;19075:8;19063:11;:21::i;:::-;:29;19056:36;;18965:135;;;;:::o;18746:211::-;2540:12;:10;:12::i;:::-;2530:22;;:6;;;;;;;;;;:22;;;2522:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18851:8:::1;18837:11;;:22;;;;;;;;;;;;;;;;;;18886:7;18870:13;:23;;;;18909:40;18922:13;;18937:11;;;;;;;;;;;18909:40;;;;;;;:::i;:::-;;;;;;;;18746:211:::0;;:::o;2773:244::-;2540:12;:10;:12::i;:::-;2530:22;;:6;;;;;;;;;;:22;;;2522:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2882:1:::1;2862:22;;:8;:22;;::::0;2854:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2972:8;2943:38;;2964:6;::::0;::::1;;;;;;;;2943:38;;;;;;;;;;;;3001:8;2992:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2773:244:::0;:::o;14513:132::-;14569:21;;;;;;;;;;;14561:39;;:62;14601:21;14561:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14513:132::o;7869:24::-;;;;;;;;;;;;;:::o;4915:192::-;5001:7;5034:1;5029;:6;;5037:12;5021:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5061:9;5077:1;5073;:5;;;;:::i;:::-;5061:17;;5098:1;5091:8;;;4915:192;;;;;:::o;11425:1238::-;11517:4;11537:6;;;;;;;;;;;11534:63;;;11553:41;11568:6;11576:9;11587:6;11553:14;:41::i;:::-;11546:48;;;;11534:63;11613:14;:22;11628:6;11613:22;;;;;;;;;;;;;;;;;;;;;;;;;11612:23;:53;;;;;11640:14;:25;11655:9;11640:25;;;;;;;;;;;;;;;;;;;;;;;;;11639:26;11612:53;11609:139;;;11689:11;;;;;;;;;;;11681:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;11609:139;11790:14;:22;11805:6;11790:22;;;;;;;;;;;;;;;;;;;;;;;;;11789:23;:53;;;;;11837:4;11816:26;;:9;:26;;;;11789:53;:84;;;;;5826:42;11847:26;;:9;:26;;;;11789:84;:105;;;;;11890:4;;;;;;;;;;;11877:17;;:9;:17;;;;11789:105;:137;;;;;11911:15;;;;;;;;;;;11898:28;;:9;:28;;;;11789:137;:174;;;;;11943:20;;;;;;;;;;;11930:33;;:9;:33;;;;11789:174;:207;;;;;11968:17;:28;11986:9;11968:28;;;;;;;;;;;;;;;;;;;;;;;;;11967:29;11789:207;11785:399;;;12012:18;12033:20;12043:9;12033;:20::i;:::-;12012:41;;12101:15;;12090:6;12077:10;:19;;;;:::i;:::-;12076:40;;12068:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;11997:187;11785:399;12196:28;12209:6;12217;12196:12;:28::i;:::-;12242:16;:14;:16::i;:::-;12239:35;;;12261:10;:8;:10::i;:::-;12239:35;12304:53;12326:6;12304:53;;;;;;;;;;;;;;;;;:9;:17;12314:6;12304:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;12284:9;:17;12294:6;12284:17;;;;;;;;;;;;;;;:73;;;;12370:22;12396:16;:24;12413:6;12396:24;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;12424:16;:27;12441:9;12424:27;;;;;;;;;;;;;;;;;;;;;;;;;12396:55;12395:103;;12464:34;12472:6;12480;12488:9;12464:7;:34::i;:::-;12395:103;;;12455:6;12395:103;12370:128;;12532:40;12557:14;12532:9;:20;12542:9;12532:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;12509:9;:20;12519:9;12509:20;;;;;;;;;;;;;;;:63;;;;12607:9;12590:43;;12599:6;12590:43;;;12618:14;12590:43;;;;;;:::i;:::-;;;;;;;;12651:4;12644:11;;;11425:1238;;;;;;:::o;1744:115::-;1797:15;1840:10;1825:26;;1744:115;:::o;4586:181::-;4644:7;4664:9;4680:1;4676;:5;;;;:::i;:::-;4664:17;;4705:1;4700;:6;;4692:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4758:1;4751:8;;;4586:181;;;;:::o;17384:274::-;17437:213;17452:44;17481:14;;17452:24;17465:10;;17452:8;;:12;;:24;;;;:::i;:::-;:28;;:44;;;;:::i;:::-;17518:45;17548:14;;17518:25;17531:11;;17518:8;;:12;;:25;;;;:::i;:::-;:29;;:45;;;;:::i;:::-;17585:49;17619:14;;17585:29;17598:15;;17585:8;;:12;;:29;;;;:::i;:::-;:33;;:49;;;;:::i;:::-;17437:213;;;;;;;;:::i;:::-;;;;;;;;17384:274::o;5113:250::-;5171:7;5200:1;5195;:6;5191:47;;5225:1;5218:8;;;;5191:47;5250:9;5266:1;5262;:5;;;;:::i;:::-;5250:17;;5295:1;5290;5286;:5;;;;:::i;:::-;:10;5278:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;5354:1;5347:8;;;5113:250;;;;;:::o;5369:132::-;5427:7;5454:39;5458:1;5461;5454:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;5447:46;;5369:132;;;;:::o;4773:136::-;4831:7;4858:43;4862:1;4865;4858:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4851:50;;4773:136;;;;:::o;12672:330::-;12765:4;12802:53;12824:6;12802:53;;;;;;;;;;;;;;;;;:9;:17;12812:6;12802:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;12782:9;:17;12792:6;12782:17;;;;;;;;;;;;;;;:73;;;;12889:32;12914:6;12889:9;:20;12899:9;12889:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12866:9;:20;12876:9;12866:20;;;;;;;;;;;;;;;:55;;;;12954:9;12937:35;;12946:6;12937:35;;;12965:6;12937:35;;;;;;:::i;:::-;;;;;;;;12990:4;12983:11;;12672:330;;;;;:::o;13010:168::-;13107:12;;13097:6;:22;;:51;;;;13123:17;:25;13141:6;13123:25;;;;;;;;;;;;;;;;;;;;;;;;;13097:51;13089:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;13010:168;;:::o;14304:197::-;14353:4;14391;;;;;;;;;;;14377:18;;:10;:18;;;;:38;;;;;14409:6;;;;;;;;;;;14408:7;14377:38;:62;;;;;14428:11;;;;;;;;;;;14377:62;:116;;;;;14480:13;;14452:9;:24;14470:4;14452:24;;;;;;;;;;;;;;;;:41;;14377:116;14370:123;;14304:197;:::o;15514:1854::-;8161:4;8152:6;;:13;;;;;;;;;;;;;;;;;;15563:27:::1;15593:41;15604:8;;15614:19;;15593:10;:41::i;:::-;:60;;15641:12;;15593:60;;;15637:1;15593:60;15563:90;;15664:23;15690:59;15747:1;15690:52;15733:8;;15690:38;15708:19;15690:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;15664:85;;15760:20;15783:34;15801:15;15783:13;;:17;;:34;;;;:::i;:::-;15760:57;;15830:21;15868:1;15854:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15830:40;;15899:4;15881;15886:1;15881:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15925:4;;;;;;;;;;;15915;15920:1;15915:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;15942:21;15966;15942:45;;16000:6;;;;;;;;;;;:57;;;16072:12;16099:1;16115:4;16142;16162:15;16000:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16201:17;16221:40;16247:13;16221:21;:25;;:40;;;;:::i;:::-;16201:60;;16274:19;16296:40;16309:26;16333:1;16309:19;:23;;:26;;;;:::i;:::-;16296:8;;:12;;:40;;;;:::i;:::-;16274:62;;16357:26;16386:58;16442:1;16386:51;16425:11;16386:34;16400:19;16386:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;16357:87;;16455:26;16484:44;16516:11;16484:27;16498:12;;16484:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;16455:73;;16539:24;16566:42;16596:11;16566:25;16580:10;;16566:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;16539:69;;16619:20;16642:38;16668:11;16642:21;16656:6;;16642:9;:13;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;16619:61;;16694:15;16722:20;;;;;;;;;;;16714:34;;16756:18;16714:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16693:86;;;16814:14;;;;;;;;;;;16806:28;;16842:12;16806:53;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16790:69;;;;;16894:18;;;;;;;;;;;16886:32;;16926:16;16886:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16870:77;;;;;16981:5;16968:18;;17020:1;17002:15;:19;16999:362;;;17037:6;;;;;;;;;;;:22;;;17067:18;17113:4;17137:15;17171:1;17191::::0;17211:21:::1;;;;;;;;;;;17251:15;17037:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17301:48;17313:18;17333:15;17301:48;;;;;;;:::i;:::-;;;;;;;;16999:362;15552:1816;;;;;;;;;;;;8179:5:::0;8170:6;;:14;;;;;;;;;;;;;;;;;;15514:1854::o;13313:983::-;13399:7;13429:15;13447;;13429:33;;13489:4;;;;;;;;;;;13476:17;;:9;:17;;;13473:142;;13520:11;;13510:21;;13473:142;;;13562:4;;;;;;;;;;;13552:14;;:6;:14;;;13549:66;;13593:10;;13583:20;;13549:66;13473:142;13627:17;13647:60;13702:4;13685:14;;:21;;;;:::i;:::-;13647:33;13672:7;13647:20;13658:8;;13647:6;:10;;:20;;;;:::i;:::-;:24;;:33;;;;:::i;:::-;:37;;:60;;;;:::i;:::-;13627:80;;13718:18;13739:36;13766:8;;13739:22;13753:7;;13739:9;:13;;:22;;;;:::i;:::-;:26;;:36;;;;:::i;:::-;13718:57;;13786:22;13811:25;13825:10;13811:9;:13;;:25;;;;:::i;:::-;13786:50;;13874:44;13903:14;13874:9;:24;13892:4;13874:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;13847:9;:24;13865:4;13847:24;;;;;;;;;;;;;;;:71;;;;13958:42;13989:10;13958:9;:26;13968:15;;;;;;;;;;;13958:26;;;;;;;;;;;;;;;;:30;;:42;;;;:::i;:::-;13929:9;:26;13939:15;;;;;;;;;;;13929:26;;;;;;;;;;;;;;;:71;;;;14041:4;14016:47;;14025:6;14016:47;;;14048:14;14016:47;;;;;;:::i;:::-;;;;;;;;14110:1;14097:10;:14;14094:154;;;14142:28;14159:10;14142:12;;:16;;:28;;;;:::i;:::-;14127:12;:43;;;;5899:42;14190:34;;14199:6;14190:34;;;14213:10;14190:34;;;;;;:::i;:::-;;;;;;;;14094:154;14267:21;14278:9;14267:6;:10;;:21;;;;:::i;:::-;14260:28;;;;;;13313:983;;;;;:::o;5507:189::-;5593:7;5625:1;5621;:5;5628:12;5613:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5652:9;5668:1;5664;:5;;;;:::i;:::-;5652:17;;5687:1;5680:8;;;5507:189;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1784:90::-;1818:7;1861:5;1854:13;1847:21;1836:32;;1784:90;;;:::o;1880:109::-;1961:21;1976:5;1961:21;:::i;:::-;1956:3;1949:34;1880:109;;:::o;1995:210::-;2082:4;2120:2;2109:9;2105:18;2097:26;;2133:65;2195:1;2184:9;2180:17;2171:6;2133:65;:::i;:::-;1995:210;;;;:::o;2292:117::-;2401:1;2398;2391:12;2538:126;2575:7;2615:42;2608:5;2604:54;2593:65;;2538:126;;;:::o;2670:96::-;2707:7;2736:24;2754:5;2736:24;:::i;:::-;2725:35;;2670:96;;;:::o;2772:122::-;2845:24;2863:5;2845:24;:::i;:::-;2838:5;2835:35;2825:63;;2884:1;2881;2874:12;2825:63;2772:122;:::o;2900:139::-;2946:5;2984:6;2971:20;2962:29;;3000:33;3027:5;3000:33;:::i;:::-;2900:139;;;;:::o;3045:122::-;3118:24;3136:5;3118:24;:::i;:::-;3111:5;3108:35;3098:63;;3157:1;3154;3147:12;3098:63;3045:122;:::o;3173:139::-;3219:5;3257:6;3244:20;3235:29;;3273:33;3300:5;3273:33;:::i;:::-;3173:139;;;;:::o;3318:474::-;3386:6;3394;3443:2;3431:9;3422:7;3418:23;3414:32;3411:119;;;3449:79;;:::i;:::-;3411:119;3569:1;3594:53;3639:7;3630:6;3619:9;3615:22;3594:53;:::i;:::-;3584:63;;3540:117;3696:2;3722:53;3767:7;3758:6;3747:9;3743:22;3722:53;:::i;:::-;3712:63;;3667:118;3318:474;;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:1057::-;4527:6;4535;4543;4551;4559;4567;4616:3;4604:9;4595:7;4591:23;4587:33;4584:120;;;4623:79;;:::i;:::-;4584:120;4743:1;4768:53;4813:7;4804:6;4793:9;4789:22;4768:53;:::i;:::-;4758:63;;4714:117;4870:2;4896:53;4941:7;4932:6;4921:9;4917:22;4896:53;:::i;:::-;4886:63;;4841:118;4998:2;5024:53;5069:7;5060:6;5049:9;5045:22;5024:53;:::i;:::-;5014:63;;4969:118;5126:2;5152:53;5197:7;5188:6;5177:9;5173:22;5152:53;:::i;:::-;5142:63;;5097:118;5254:3;5281:53;5326:7;5317:6;5306:9;5302:22;5281:53;:::i;:::-;5271:63;;5225:119;5383:3;5410:53;5455:7;5446:6;5435:9;5431:22;5410:53;:::i;:::-;5400:63;;5354:119;4423:1057;;;;;;;;:::o;5486:329::-;5545:6;5594:2;5582:9;5573:7;5569:23;5565:32;5562:119;;;5600:79;;:::i;:::-;5562:119;5720:1;5745:53;5790:7;5781:6;5770:9;5766:22;5745:53;:::i;:::-;5735:63;;5691:117;5486:329;;;;:::o;5821:86::-;5856:7;5896:4;5889:5;5885:16;5874:27;;5821:86;;;:::o;5913:112::-;5996:22;6012:5;5996:22;:::i;:::-;5991:3;5984:35;5913:112;;:::o;6031:214::-;6120:4;6158:2;6147:9;6143:18;6135:26;;6171:67;6235:1;6224:9;6220:17;6211:6;6171:67;:::i;:::-;6031:214;;;;:::o;6251:329::-;6310:6;6359:2;6347:9;6338:7;6334:23;6330:32;6327:119;;;6365:79;;:::i;:::-;6327:119;6485:1;6510:53;6555:7;6546:6;6535:9;6531:22;6510:53;:::i;:::-;6500:63;;6456:117;6251:329;;;;:::o;6586:911::-;6681:6;6689;6697;6705;6713;6762:3;6750:9;6741:7;6737:23;6733:33;6730:120;;;6769:79;;:::i;:::-;6730:120;6889:1;6914:53;6959:7;6950:6;6939:9;6935:22;6914:53;:::i;:::-;6904:63;;6860:117;7016:2;7042:53;7087:7;7078:6;7067:9;7063:22;7042:53;:::i;:::-;7032:63;;6987:118;7144:2;7170:53;7215:7;7206:6;7195:9;7191:22;7170:53;:::i;:::-;7160:63;;7115:118;7272:2;7298:53;7343:7;7334:6;7323:9;7319:22;7298:53;:::i;:::-;7288:63;;7243:118;7400:3;7427:53;7472:7;7463:6;7452:9;7448:22;7427:53;:::i;:::-;7417:63;;7371:119;6586:911;;;;;;;;:::o;7503:118::-;7590:24;7608:5;7590:24;:::i;:::-;7585:3;7578:37;7503:118;;:::o;7627:222::-;7720:4;7758:2;7747:9;7743:18;7735:26;;7771:71;7839:1;7828:9;7824:17;7815:6;7771:71;:::i;:::-;7627:222;;;;:::o;7855:619::-;7932:6;7940;7948;7997:2;7985:9;7976:7;7972:23;7968:32;7965:119;;;8003:79;;:::i;:::-;7965:119;8123:1;8148:53;8193:7;8184:6;8173:9;8169:22;8148:53;:::i;:::-;8138:63;;8094:117;8250:2;8276:53;8321:7;8312:6;8301:9;8297:22;8276:53;:::i;:::-;8266:63;;8221:118;8378:2;8404:53;8449:7;8440:6;8429:9;8425:22;8404:53;:::i;:::-;8394:63;;8349:118;7855:619;;;;;:::o;8480:474::-;8548:6;8556;8605:2;8593:9;8584:7;8580:23;8576:32;8573:119;;;8611:79;;:::i;:::-;8573:119;8731:1;8756:53;8801:7;8792:6;8781:9;8777:22;8756:53;:::i;:::-;8746:63;;8702:117;8858:2;8884:53;8929:7;8920:6;8909:9;8905:22;8884:53;:::i;:::-;8874:63;;8829:118;8480:474;;;;;:::o;8960:::-;9028:6;9036;9085:2;9073:9;9064:7;9060:23;9056:32;9053:119;;;9091:79;;:::i;:::-;9053:119;9211:1;9236:53;9281:7;9272:6;9261:9;9257:22;9236:53;:::i;:::-;9226:63;;9182:117;9338:2;9364:53;9409:7;9400:6;9389:9;9385:22;9364:53;:::i;:::-;9354:63;;9309:118;8960:474;;;;;:::o;9440:116::-;9510:21;9525:5;9510:21;:::i;:::-;9503:5;9500:32;9490:60;;9546:1;9543;9536:12;9490:60;9440:116;:::o;9562:133::-;9605:5;9643:6;9630:20;9621:29;;9659:30;9683:5;9659:30;:::i;:::-;9562:133;;;;:::o;9701:468::-;9766:6;9774;9823:2;9811:9;9802:7;9798:23;9794:32;9791:119;;;9829:79;;:::i;:::-;9791:119;9949:1;9974:50;10016:7;10007:6;9996:9;9992:22;9974:50;:::i;:::-;9964:60;;9920:114;10073:2;10099:53;10144:7;10135:6;10124:9;10120:22;10099:53;:::i;:::-;10089:63;;10044:118;9701:468;;;;;:::o;10175:60::-;10203:3;10224:5;10217:12;;10175:60;;;:::o;10241:142::-;10291:9;10324:53;10342:34;10351:24;10369:5;10351:24;:::i;:::-;10342:34;:::i;:::-;10324:53;:::i;:::-;10311:66;;10241:142;;;:::o;10389:126::-;10439:9;10472:37;10503:5;10472:37;:::i;:::-;10459:50;;10389:126;;;:::o;10521:144::-;10589:9;10622:37;10653:5;10622:37;:::i;:::-;10609:50;;10521:144;;;:::o;10671:167::-;10776:55;10825:5;10776:55;:::i;:::-;10771:3;10764:68;10671:167;;:::o;10844:258::-;10955:4;10993:2;10982:9;10978:18;10970:26;;11006:89;11092:1;11081:9;11077:17;11068:6;11006:89;:::i;:::-;10844:258;;;;:::o;11108:182::-;11248:34;11244:1;11236:6;11232:14;11225:58;11108:182;:::o;11296:366::-;11438:3;11459:67;11523:2;11518:3;11459:67;:::i;:::-;11452:74;;11535:93;11624:3;11535:93;:::i;:::-;11653:2;11648:3;11644:12;11637:19;;11296:366;;;:::o;11668:419::-;11834:4;11872:2;11861:9;11857:18;11849:26;;11921:9;11915:4;11911:20;11907:1;11896:9;11892:17;11885:47;11949:131;12075:4;11949:131;:::i;:::-;11941:139;;11668:419;;;:::o;12093:180::-;12141:77;12138:1;12131:88;12238:4;12235:1;12228:15;12262:4;12259:1;12252:15;12279:410;12319:7;12342:20;12360:1;12342:20;:::i;:::-;12337:25;;12376:20;12394:1;12376:20;:::i;:::-;12371:25;;12431:1;12428;12424:9;12453:30;12471:11;12453:30;:::i;:::-;12442:41;;12632:1;12623:7;12619:15;12616:1;12613:22;12593:1;12586:9;12566:83;12543:139;;12662:18;;:::i;:::-;12543:139;12327:362;12279:410;;;;:::o;12695:180::-;12743:77;12740:1;12733:88;12840:4;12837:1;12830:15;12864:4;12861:1;12854:15;12881:185;12921:1;12938:20;12956:1;12938:20;:::i;:::-;12933:25;;12972:20;12990:1;12972:20;:::i;:::-;12967:25;;13011:1;13001:35;;13016:18;;:::i;:::-;13001:35;13058:1;13055;13051:9;13046:14;;12881:185;;;;:::o;13072:143::-;13129:5;13160:6;13154:13;13145:22;;13176:33;13203:5;13176:33;:::i;:::-;13072:143;;;;:::o;13221:351::-;13291:6;13340:2;13328:9;13319:7;13315:23;13311:32;13308:119;;;13346:79;;:::i;:::-;13308:119;13466:1;13491:64;13547:7;13538:6;13527:9;13523:22;13491:64;:::i;:::-;13481:74;;13437:128;13221:351;;;;:::o;13578:332::-;13699:4;13737:2;13726:9;13722:18;13714:26;;13750:71;13818:1;13807:9;13803:17;13794:6;13750:71;:::i;:::-;13831:72;13899:2;13888:9;13884:18;13875:6;13831:72;:::i;:::-;13578:332;;;;;:::o;13916:137::-;13970:5;14001:6;13995:13;13986:22;;14017:30;14041:5;14017:30;:::i;:::-;13916:137;;;;:::o;14059:345::-;14126:6;14175:2;14163:9;14154:7;14150:23;14146:32;14143:119;;;14181:79;;:::i;:::-;14143:119;14301:1;14326:61;14379:7;14370:6;14359:9;14355:22;14326:61;:::i;:::-;14316:71;;14272:125;14059:345;;;;:::o;14410:553::-;14587:4;14625:3;14614:9;14610:19;14602:27;;14639:71;14707:1;14696:9;14692:17;14683:6;14639:71;:::i;:::-;14720:72;14788:2;14777:9;14773:18;14764:6;14720:72;:::i;:::-;14802;14870:2;14859:9;14855:18;14846:6;14802:72;:::i;:::-;14884;14952:2;14941:9;14937:18;14928:6;14884:72;:::i;:::-;14410:553;;;;;;;:::o;14969:320::-;15084:4;15122:2;15111:9;15107:18;15099:26;;15135:71;15203:1;15192:9;15188:17;15179:6;15135:71;:::i;:::-;15216:66;15278:2;15267:9;15263:18;15254:6;15216:66;:::i;:::-;14969:320;;;;;:::o;15295:225::-;15435:34;15431:1;15423:6;15419:14;15412:58;15504:8;15499:2;15491:6;15487:15;15480:33;15295:225;:::o;15526:366::-;15668:3;15689:67;15753:2;15748:3;15689:67;:::i;:::-;15682:74;;15765:93;15854:3;15765:93;:::i;:::-;15883:2;15878:3;15874:12;15867:19;;15526:366;;;:::o;15898:419::-;16064:4;16102:2;16091:9;16087:18;16079:26;;16151:9;16145:4;16141:20;16137:1;16126:9;16122:17;16115:47;16179:131;16305:4;16179:131;:::i;:::-;16171:139;;15898:419;;;:::o;16323:194::-;16363:4;16383:20;16401:1;16383:20;:::i;:::-;16378:25;;16417:20;16435:1;16417:20;:::i;:::-;16412:25;;16461:1;16458;16454:9;16446:17;;16485:1;16479:4;16476:11;16473:37;;;16490:18;;:::i;:::-;16473:37;16323:194;;;;:::o;16523:170::-;16663:22;16659:1;16651:6;16647:14;16640:46;16523:170;:::o;16699:366::-;16841:3;16862:67;16926:2;16921:3;16862:67;:::i;:::-;16855:74;;16938:93;17027:3;16938:93;:::i;:::-;17056:2;17051:3;17047:12;17040:19;;16699:366;;;:::o;17071:419::-;17237:4;17275:2;17264:9;17260:18;17252:26;;17324:9;17318:4;17314:20;17310:1;17299:9;17295:17;17288:47;17352:131;17478:4;17352:131;:::i;:::-;17344:139;;17071:419;;;:::o;17496:191::-;17536:3;17555:20;17573:1;17555:20;:::i;:::-;17550:25;;17589:20;17607:1;17589:20;:::i;:::-;17584:25;;17632:1;17629;17625:9;17618:16;;17653:3;17650:1;17647:10;17644:36;;;17660:18;;:::i;:::-;17644:36;17496:191;;;;:::o;17693:249::-;17833:34;17829:1;17821:6;17817:14;17810:58;17902:32;17897:2;17889:6;17885:15;17878:57;17693:249;:::o;17948:366::-;18090:3;18111:67;18175:2;18170:3;18111:67;:::i;:::-;18104:74;;18187:93;18276:3;18187:93;:::i;:::-;18305:2;18300:3;18296:12;18289:19;;17948:366;;;:::o;18320:419::-;18486:4;18524:2;18513:9;18509:18;18501:26;;18573:9;18567:4;18563:20;18559:1;18548:9;18544:17;18537:47;18601:131;18727:4;18601:131;:::i;:::-;18593:139;;18320:419;;;:::o;18745:177::-;18885:29;18881:1;18873:6;18869:14;18862:53;18745:177;:::o;18928:366::-;19070:3;19091:67;19155:2;19150:3;19091:67;:::i;:::-;19084:74;;19167:93;19256:3;19167:93;:::i;:::-;19285:2;19280:3;19276:12;19269:19;;18928:366;;;:::o;19300:419::-;19466:4;19504:2;19493:9;19489:18;19481:26;;19553:9;19547:4;19543:20;19539:1;19528:9;19524:17;19517:47;19581:131;19707:4;19581:131;:::i;:::-;19573:139;;19300:419;;;:::o;19725:418::-;19862:4;19900:2;19889:9;19885:18;19877:26;;19913:67;19977:1;19966:9;19962:17;19953:6;19913:67;:::i;:::-;19990:68;20054:2;20043:9;20039:18;20030:6;19990:68;:::i;:::-;20068;20132:2;20121:9;20117:18;20108:6;20068:68;:::i;:::-;19725:418;;;;;;:::o;20149:220::-;20289:34;20285:1;20277:6;20273:14;20266:58;20358:3;20353:2;20345:6;20341:15;20334:28;20149:220;:::o;20375:366::-;20517:3;20538:67;20602:2;20597:3;20538:67;:::i;:::-;20531:74;;20614:93;20703:3;20614:93;:::i;:::-;20732:2;20727:3;20723:12;20716:19;;20375:366;;;:::o;20747:419::-;20913:4;20951:2;20940:9;20936:18;20928:26;;21000:9;20994:4;20990:20;20986:1;20975:9;20971:17;20964:47;21028:131;21154:4;21028:131;:::i;:::-;21020:139;;20747:419;;;:::o;21172:167::-;21312:19;21308:1;21300:6;21296:14;21289:43;21172:167;:::o;21345:366::-;21487:3;21508:67;21572:2;21567:3;21508:67;:::i;:::-;21501:74;;21584:93;21673:3;21584:93;:::i;:::-;21702:2;21697:3;21693:12;21686:19;;21345:366;;;:::o;21717:419::-;21883:4;21921:2;21910:9;21906:18;21898:26;;21970:9;21964:4;21960:20;21956:1;21945:9;21941:17;21934:47;21998:131;22124:4;21998:131;:::i;:::-;21990:139;;21717:419;;;:::o;22142:180::-;22190:77;22187:1;22180:88;22287:4;22284:1;22277:15;22311:4;22308:1;22301:15;22328:180;22376:77;22373:1;22366:88;22473:4;22470:1;22463:15;22497:4;22494:1;22487:15;22514:85;22559:7;22588:5;22577:16;;22514:85;;;:::o;22605:158::-;22663:9;22696:61;22714:42;22723:32;22749:5;22723:32;:::i;:::-;22714:42;:::i;:::-;22696:61;:::i;:::-;22683:74;;22605:158;;;:::o;22769:147::-;22864:45;22903:5;22864:45;:::i;:::-;22859:3;22852:58;22769:147;;:::o;22922:114::-;22989:6;23023:5;23017:12;23007:22;;22922:114;;;:::o;23042:184::-;23141:11;23175:6;23170:3;23163:19;23215:4;23210:3;23206:14;23191:29;;23042:184;;;;:::o;23232:132::-;23299:4;23322:3;23314:11;;23352:4;23347:3;23343:14;23335:22;;23232:132;;;:::o;23370:108::-;23447:24;23465:5;23447:24;:::i;:::-;23442:3;23435:37;23370:108;;:::o;23484:179::-;23553:10;23574:46;23616:3;23608:6;23574:46;:::i;:::-;23652:4;23647:3;23643:14;23629:28;;23484:179;;;;:::o;23669:113::-;23739:4;23771;23766:3;23762:14;23754:22;;23669:113;;;:::o;23818:732::-;23937:3;23966:54;24014:5;23966:54;:::i;:::-;24036:86;24115:6;24110:3;24036:86;:::i;:::-;24029:93;;24146:56;24196:5;24146:56;:::i;:::-;24225:7;24256:1;24241:284;24266:6;24263:1;24260:13;24241:284;;;24342:6;24336:13;24369:63;24428:3;24413:13;24369:63;:::i;:::-;24362:70;;24455:60;24508:6;24455:60;:::i;:::-;24445:70;;24301:224;24288:1;24285;24281:9;24276:14;;24241:284;;;24245:14;24541:3;24534:10;;23942:608;;;23818:732;;;;:::o;24556:831::-;24819:4;24857:3;24846:9;24842:19;24834:27;;24871:71;24939:1;24928:9;24924:17;24915:6;24871:71;:::i;:::-;24952:80;25028:2;25017:9;25013:18;25004:6;24952:80;:::i;:::-;25079:9;25073:4;25069:20;25064:2;25053:9;25049:18;25042:48;25107:108;25210:4;25201:6;25107:108;:::i;:::-;25099:116;;25225:72;25293:2;25282:9;25278:18;25269:6;25225:72;:::i;:::-;25307:73;25375:3;25364:9;25360:19;25351:6;25307:73;:::i;:::-;24556:831;;;;;;;;:::o;25393:147::-;25494:11;25531:3;25516:18;;25393:147;;;;:::o;25546:114::-;;:::o;25666:398::-;25825:3;25846:83;25927:1;25922:3;25846:83;:::i;:::-;25839:90;;25938:93;26027:3;25938:93;:::i;:::-;26056:1;26051:3;26047:11;26040:18;;25666:398;;;:::o;26070:379::-;26254:3;26276:147;26419:3;26276:147;:::i;:::-;26269:154;;26440:3;26433:10;;26070:379;;;:::o;26455:807::-;26704:4;26742:3;26731:9;26727:19;26719:27;;26756:71;26824:1;26813:9;26809:17;26800:6;26756:71;:::i;:::-;26837:72;26905:2;26894:9;26890:18;26881:6;26837:72;:::i;:::-;26919:80;26995:2;26984:9;26980:18;26971:6;26919:80;:::i;:::-;27009;27085:2;27074:9;27070:18;27061:6;27009:80;:::i;:::-;27099:73;27167:3;27156:9;27152:19;27143:6;27099:73;:::i;:::-;27182;27250:3;27239:9;27235:19;27226:6;27182:73;:::i;:::-;26455:807;;;;;;;;;:::o;27268:663::-;27356:6;27364;27372;27421:2;27409:9;27400:7;27396:23;27392:32;27389:119;;;27427:79;;:::i;:::-;27389:119;27547:1;27572:64;27628:7;27619:6;27608:9;27604:22;27572:64;:::i;:::-;27562:74;;27518:128;27685:2;27711:64;27767:7;27758:6;27747:9;27743:22;27711:64;:::i;:::-;27701:74;;27656:129;27824:2;27850:64;27906:7;27897:6;27886:9;27882:22;27850:64;:::i;:::-;27840:74;;27795:129;27268:663;;;;;:::o;27937:332::-;28058:4;28096:2;28085:9;28081:18;28073:26;;28109:71;28177:1;28166:9;28162:17;28153:6;28109:71;:::i;:::-;28190:72;28258:2;28247:9;28243:18;28234:6;28190:72;:::i;:::-;27937:332;;;;;:::o

Swarm Source

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