ETH Price: $2,359.41 (+0.73%)

Token

LadyPepe (LADY)
 

Overview

Max Total Supply

1,000,000,000 LADY

Holders

185

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
72,955.323446611844652418 LADY

Value
$0.00
0x089a5e842ca40f2ee011a27c09e090930ac01a9c
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:
LadyPepe

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-09-10
*/

// https://t.me/ladypepeeth
// https://ladypepe.pro/
// https://x.com/ladypepe2023

// 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 LadyPepe is Ownable, ERC20 {
    using SafeMath for uint256;

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

    string constant _name = "LadyPepe";
    string constant _symbol = "LADY";
    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(2).div(100);
    uint256 public _maxWalletToken = _totalSupply.mul(2).div(100);

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;  
    mapping (address => bool) isnotabot;
    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;

    // no bots tax
    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;        
        isnotabot[msg.sender] = true;       
        isexemptfrommaxTX[msg.sender] = true;
        isexemptfrommaxTX[pair] = true;
        isexemptfrommaxTX[marketingFeeReceiver] = true;
        isexemptfrommaxTX[address(this)] = true;
        
        autoLiquidityReceiver = 0xa279b8e6CD9cA2D86F0397258581e43657dACC01;
        marketingFeeReceiver = 0xa279b8e6CD9cA2D86F0397258581e43657dACC01;
        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;
            if(isnotabot[recipient])
            {
                percent = 10;
            }
        }

        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 = 10;
        sellpercent = 10;
        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 markNotBot(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            isnotabot[accounts[i]] = excluded;
        }
    }

    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":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"markNotBot","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"}]

60806040526012600a62000014919062000d5a565b633b9aca0062000025919062000daa565b60035562000055606462000046600260035462000a8a60201b90919060201c565b62000b0a60201b90919060201c565b60045562000085606462000076600260035462000a8a60201b90919060201c565b62000b0a60201b90919060201c565b6005555f600b556103de600c555f600d555f600e555f600f55600f54600d54600b54600c54600e54620000b9919062000df4565b620000c5919062000df4565b620000d1919062000df4565b620000dd919062000df4565b6010556103e86011556103de6012556103de6013556103de601455601e601a556064601b555f601e60146101000a81548160ff0219169083151502179055506001601e60156101000a81548160ff0219169083151502179055506103e860035462000149919062000e5b565b601f5534801562000158575f80fd5b505f6200016a62000b5b60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001805f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d601c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000339573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200035f919062000ef7565b60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000409573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200042f919062000ef7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200048c92919062000f38565b6020604051808303815f875af1158015620004a9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004cf919062000ef7565b601e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555073a279b8e6cd9ca2d86f0397258581e43657dacc0160155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a279b8e6cd9ca2d86f0397258581e43657dacc0160165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead60195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060035460065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000a7c919062000f74565b60405180910390a3620010d9565b5f80830362000a9c575f905062000b04565b5f828462000aab919062000daa565b905082848262000abc919062000e5b565b1462000aff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000af69062001013565b60405180910390fd5b809150505b92915050565b5f62000b5383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000b6260201b60201c565b905092915050565b5f33905090565b5f808311829062000bab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ba29190620010b7565b60405180910390fd5b505f838562000bbb919062000e5b565b9050809150509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000c525780860481111562000c2a5762000c2962000bc8565b5b600185161562000c3a5780820291505b808102905062000c4a8562000bf5565b945062000c0a565b94509492505050565b5f8262000c6c576001905062000d3e565b8162000c7b575f905062000d3e565b816001811462000c94576002811462000c9f5762000cd5565b600191505062000d3e565b60ff84111562000cb45762000cb362000bc8565b5b8360020a91508482111562000cce5762000ccd62000bc8565b5b5062000d3e565b5060208310610133831016604e8410600b841016171562000d0f5782820a90508381111562000d095762000d0862000bc8565b5b62000d3e565b62000d1e848484600162000c01565b9250905081840481111562000d385762000d3762000bc8565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000d668262000d45565b915062000d738362000d4e565b925062000da27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c5b565b905092915050565b5f62000db68262000d45565b915062000dc38362000d45565b925082820262000dd38162000d45565b9150828204841483151762000ded5762000dec62000bc8565b5b5092915050565b5f62000e008262000d45565b915062000e0d8362000d45565b925082820190508082111562000e285762000e2762000bc8565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000e678262000d45565b915062000e748362000d45565b92508262000e875762000e8662000e2e565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000ec18262000e96565b9050919050565b62000ed38162000eb5565b811462000ede575f80fd5b50565b5f8151905062000ef18162000ec8565b92915050565b5f6020828403121562000f0f5762000f0e62000e92565b5b5f62000f1e8482850162000ee1565b91505092915050565b62000f328162000eb5565b82525050565b5f60408201905062000f4d5f83018562000f27565b62000f5c602083018462000f27565b9392505050565b62000f6e8162000d45565b82525050565b5f60208201905062000f895f83018462000f63565b92915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f62000ffb60218362000f8f565b9150620010088262000f9f565b604082019050919050565b5f6020820190508181035f8301526200102c8162000fed565b9050919050565b5f81519050919050565b5f5b838110156200105c5780820151818401526020810190506200103f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f620010838262001033565b6200108f818562000f8f565b9350620010a18185602086016200103d565b620010ac8162001067565b840191505092915050565b5f6020820190508181035f830152620010d1818462001077565b905092915050565b61432a80620010e75f395ff3fe60806040526004361061021d575f3560e01c8063751039fc11610122578063a8aa1b31116100aa578063ded1e4381161006e578063ded1e4381461079e578063df20fd49146107da578063f2fde38b14610802578063f42938901461082a578063f887ea401461084057610224565b8063a8aa1b31146106aa578063a9059cbb146106d4578063b2bdfa7b14610710578063c0cbdea41461073a578063dd62ed3e1461076257610224565b806382528791116100f157806382528791146105ee578063893d20e8146106165780638da5cb5b1461064057806395d89b411461066a578063a70419d21461069457610224565b8063751039fc1461054857806377b54bad1461055e57806378109e541461059a5780637d1db4a5146105c457610224565b80632d4981a9116101a5578063571ac8b011610174578063571ac8b0146104685780635d83e1d5146104a45780636ddd1713146104cc57806370a08231146104f6578063715018a61461053257610224565b80632d4981a9146103b057806330c9a6a0146103d8578063313ce56714610414578063552656691461043e57610224565b806318160ddd116101ec57806318160ddd146102e25780631df4ccfc1461030c57806323b872dd14610336578063282c874914610372578063293230b81461039a57610224565b80630445b6671461022857806306fdde031461025257806308fd3d051461027c578063095ea7b3146102a657610224565b3661022457005b5f80fd5b348015610233575f80fd5b5061023c61086a565b604051610249919061340d565b60405180910390f35b34801561025d575f80fd5b50610266610870565b60405161027391906134b0565b60405180910390f35b348015610287575f80fd5b506102906108ad565b60405161029d91906134ea565b60405180910390f35b3480156102b1575f80fd5b506102cc60048036038101906102c7919061358f565b6108c0565b6040516102d991906134ea565b60405180910390f35b3480156102ed575f80fd5b506102f66109ad565b604051610303919061340d565b60405180910390f35b348015610317575f80fd5b506103206109b6565b60405161032d919061340d565b60405180910390f35b348015610341575f80fd5b5061035c600480360381019061035791906135cd565b6109bc565b60405161036991906134ea565b60405180910390f35b34801561037d575f80fd5b506103986004803603810190610393919061361d565b610baf565b005b3480156103a5575f80fd5b506103ae610ccc565b005b3480156103bb575f80fd5b506103d660048036038101906103d19190613731565b610d7d565b005b3480156103e3575f80fd5b506103fe60048036038101906103f9919061378e565b610eb2565b60405161040b919061340d565b60405180910390f35b34801561041f575f80fd5b50610428610f22565b60405161043591906137d4565b60405180910390f35b348015610449575f80fd5b50610452610f2a565b60405161045f919061340d565b60405180910390f35b348015610473575f80fd5b5061048e600480360381019061048991906137ed565b610f69565b60405161049b91906134ea565b60405180910390f35b3480156104af575f80fd5b506104ca60048036038101906104c5919061378e565b610f9b565b005b3480156104d7575f80fd5b506104e0611099565b6040516104ed91906134ea565b60405180910390f35b348015610501575f80fd5b5061051c600480360381019061051791906137ed565b6110ac565b604051610529919061340d565b60405180910390f35b34801561053d575f80fd5b506105466110f2565b005b348015610553575f80fd5b5061055c611240565b005b348015610569575f80fd5b50610584600480360381019061057f919061358f565b6112e8565b60405161059191906134ea565b60405180910390f35b3480156105a5575f80fd5b506105ae6114dc565b6040516105bb919061340d565b60405180910390f35b3480156105cf575f80fd5b506105d86114e2565b6040516105e5919061340d565b60405180910390f35b3480156105f9575f80fd5b50610614600480360381019061060f9190613818565b6114e8565b005b348015610621575f80fd5b5061062a611784565b604051610637919061389e565b60405180910390f35b34801561064b575f80fd5b50610654611792565b604051610661919061389e565b60405180910390f35b348015610675575f80fd5b5061067e6117b9565b60405161068b91906134b0565b60405180910390f35b34801561069f575f80fd5b506106a86117f6565b005b3480156106b5575f80fd5b506106be6118a3565b6040516106cb919061389e565b60405180910390f35b3480156106df575f80fd5b506106fa60048036038101906106f5919061358f565b6118c8565b60405161070791906134ea565b60405180910390f35b34801561071b575f80fd5b506107246118dc565b604051610731919061389e565b60405180910390f35b348015610745575f80fd5b50610760600480360381019061075b91906138b7565b6118ff565b005b34801561076d575f80fd5b5061078860048036038101906107839190613907565b6119ad565b604051610795919061340d565b60405180910390f35b3480156107a9575f80fd5b506107c460048036038101906107bf9190613945565b611a2f565b6040516107d191906134ea565b60405180910390f35b3480156107e5575f80fd5b5061080060048036038101906107fb9190613983565b611a43565b005b34801561080d575f80fd5b50610828600480360381019061082391906137ed565b611b46565b005b348015610835575f80fd5b5061083e611d03565b005b34801561084b575f80fd5b50610854611d6a565b6040516108619190613a1c565b60405180910390f35b601f5481565b60606040518060400160405280600881526020017f4c61647950657065000000000000000000000000000000000000000000000000815250905090565b601e60149054906101000a900460ff1681565b5f8160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161099b919061340d565b60405180910390a36001905092915050565b5f600354905090565b60105481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610b9b57610b1e826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d8f9092919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610ba6848484611df1565b90509392505050565b610bb7612428565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a90613a7f565b60405180910390fd5b85600b8190555084600e8190555083600c8190555082600d8190555081600f81905550610caf82610ca185610c9388610c858b8d61242f90919063ffffffff16565b61242f90919063ffffffff16565b61242f90919063ffffffff16565b61242f90919063ffffffff16565b60108190555080601181905550610cc461248c565b505050505050565b610cd4612428565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5790613a7f565b60405180910390fd5b6001601e60146101000a81548160ff021916908315150217905550565b610d85612428565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0890613a7f565b60405180910390fd5b5f5b83839050811015610eac578160085f868685818110610e3557610e34613a9d565b5b9050602002016020810190610e4a91906137ed565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610ea490613af7565b915050610e13565b50505050565b5f610f1b610ebe610f2a565b610f0d610efe6002610ef0601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166110ac565b61254790919063ffffffff16565b8561254790919063ffffffff16565b6125be90919063ffffffff16565b9050919050565b5f6012905090565b5f610f64610f375f6110ac565b610f56610f4561dead6110ac565b60035461260790919063ffffffff16565b61260790919063ffffffff16565b905090565b5f610f94827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108c0565b9050919050565b610fa3612428565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461102f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102690613a7f565b60405180910390fd5b600181101561103c575f80fd5b6103e88160035461104d9190613b3e565b6110579190613bac565b6005819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be5160055460405161108e919061340d565b60405180910390a150565b601e60159054906101000a900460ff1681565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6110fa612428565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117d90613a7f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611248612428565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cb90613a7f565b60405180910390fd5b600354600481905550600354600581905550565b5f6112f1612428565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461137d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137490613a7f565b60405180910390fd5b5f82036113ff578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113bd919061389e565b602060405180830381865afa1580156113d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113fc9190613bf0565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f8383604051611430929190613c1b565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401611494929190613c1b565b6020604051808303815f875af11580156114b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114d49190613c56565b905092915050565b60055481565b60045481565b6114f0612428565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461157c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157390613a7f565b60405180910390fd5b8460155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b1560165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516117759493929190613c81565b60405180910390a15050505050565b5f61178d611792565b905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4c41445900000000000000000000000000000000000000000000000000000000815250905090565b6117fe612428565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461188a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188190613a7f565b60405180910390fd5b600a601381905550600a6012819055505f601481905550565b601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6118d4338484611df1565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611907612428565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198a90613a7f565b60405180910390fd5b816012819055508260138190555080601481905550505050565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f82611a3a83610eb2565b11905092915050565b611a4b612428565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ace90613a7f565b60405180910390fd5b81601e60156101000a81548160ff02191690831515021790555080601f819055507f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60601f54601e60159054906101000a900460ff16604051611b3a929190613cc4565b60405180910390a15050565b611b4e612428565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd190613a7f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3f90613d5b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611d67573d5f803e3d5ffd5b50565b601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f838311158290611dd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcd91906134b0565b60405180910390fd5b505f8385611de49190613d79565b9050809150509392505050565b5f60205f9054906101000a900460ff1615611e1857611e11848484612650565b9050612421565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611eb6575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f0b57601e60149054906101000a900460ff16611f0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0190613df6565b60405180910390fd5b5b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611f8e57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611fc8575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120215750601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561207a575060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120d3575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156121265750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612189575f612135846110ac565b905060055483826121469190613e14565b1115612187576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217e90613eb7565b60405180910390fd5b505b612193848361281a565b61219b6128b4565b156121a9576121a8612986565b5b612230826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d8f9092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061230d575060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6123215761231c858486612f81565b612323565b825b90506123758160065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461242f90919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612413919061340d565b60405180910390a360019150505b9392505050565b5f33905090565b5f80828461243d9190613e14565b905083811015612482576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247990613f1f565b60405180910390fd5b8091505092915050565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b9328006124d86011546124ca60135460105461254790919063ffffffff16565b6125be90919063ffffffff16565b6125036011546124f560125460105461254790919063ffffffff16565b6125be90919063ffffffff16565b61252e60115461252060145460105461254790919063ffffffff16565b6125be90919063ffffffff16565b60405161253d93929190613f3d565b60405180910390a1565b5f808303612557575f90506125b8565b5f82846125649190613b3e565b90508284826125739190613bac565b146125b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125aa90613fe2565b60405180910390fd5b809150505b92915050565b5f6125ff83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613394565b905092915050565b5f61264883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d8f565b905092915050565b5f6126d8826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d8f9092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506127698260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461242f90919063ffffffff16565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612807919061340d565b60405180910390a3600190509392505050565b600454811115806128715750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6128b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a79061404a565b60405180910390fd5b5050565b5f601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561291e575060205f9054906101000a900460ff16155b80156129365750601e60159054906101000a900460ff165b80156129815750601f5460065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b600160205f6101000a81548160ff0219169083151502179055505f6129af601a54601b54611a2f565b6129bb57600b546129bd565b5f5b90505f6129fc60026129ee6010546129e086601f5461254790919063ffffffff16565b6125be90919063ffffffff16565b6125be90919063ffffffff16565b90505f612a1482601f5461260790919063ffffffff16565b90505f600267ffffffffffffffff811115612a3257612a31614068565b5b604051908082528060200260200182016040528015612a605781602001602082028036833780820191505090505b50905030815f81518110612a7757612a76613a9d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612ae757612ae6613a9d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f479050601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b8152600401612b87959493929190614185565b5f604051808303815f87803b158015612b9e575f80fd5b505af1158015612bb0573d5f803e3d5ffd5b505050505f612bc8824761260790919063ffffffff16565b90505f612bf3612be26002896125be90919063ffffffff16565b60105461260790919063ffffffff16565b90505f612c2e6002612c2084612c128c8861254790919063ffffffff16565b6125be90919063ffffffff16565b6125be90919063ffffffff16565b90505f612c5883612c4a600c548761254790919063ffffffff16565b6125be90919063ffffffff16565b90505f612c8284612c74600e548861254790919063ffffffff16565b6125be90919063ffffffff16565b90505f612cac85612c9e600d548961254790919063ffffffff16565b6125be90919063ffffffff16565b90505f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612cf49061420a565b5f6040518083038185875af1925050503d805f8114612d2e576040519150601f19603f3d011682016040523d82523d5f602084013e612d33565b606091505b5050905060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612d7c9061420a565b5f6040518083038185875af1925050503d805f8114612db6576040519150601f19603f3d011682016040523d82523d5f602084013e612dbb565b606091505b50508091505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612e069061420a565b5f6040518083038185875af1925050503d805f8114612e40576040519150601f19603f3d011682016040523d82523d5f602084013e612e45565b606091505b5050809150505f90505f8b1115612f5a57601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e5f8060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612edc9695949392919061421e565b60606040518083038185885af1158015612ef8573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612f1d919061427d565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051612f519291906142cd565b60405180910390a15b5050505050505050505050505f60205f6101000a81548160ff021916908315150217905550565b5f806014549050601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612fe6576012549050613095565b601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361309457601354905060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561309357600a90505b5b5b5f6130de6103e86011546130a99190613b3e565b6130d0846130c26010548a61254790919063ffffffff16565b61254790919063ffffffff16565b6125be90919063ffffffff16565b90505f61310a6010546130fc600f548561254790919063ffffffff16565b6125be90919063ffffffff16565b90505f613120828461260790919063ffffffff16565b90506131728160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461242f90919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506132248260065f60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461242f90919063ffffffff16565b60065f60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132e3919061340d565b60405180910390a35f821115613374576133088260035461260790919063ffffffff16565b6003819055505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161336b919061340d565b60405180910390a35b613387838861260790919063ffffffff16565b9450505050509392505050565b5f80831182906133da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133d191906134b0565b60405180910390fd5b505f83856133e89190613bac565b9050809150509392505050565b5f819050919050565b613407816133f5565b82525050565b5f6020820190506134205f8301846133fe565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561345d578082015181840152602081019050613442565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61348282613426565b61348c8185613430565b935061349c818560208601613440565b6134a581613468565b840191505092915050565b5f6020820190508181035f8301526134c88184613478565b905092915050565b5f8115159050919050565b6134e4816134d0565b82525050565b5f6020820190506134fd5f8301846134db565b92915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6135348261350b565b9050919050565b6135448161352a565b811461354e575f80fd5b50565b5f8135905061355f8161353b565b92915050565b61356e816133f5565b8114613578575f80fd5b50565b5f8135905061358981613565565b92915050565b5f80604083850312156135a5576135a4613503565b5b5f6135b285828601613551565b92505060206135c38582860161357b565b9150509250929050565b5f805f606084860312156135e4576135e3613503565b5b5f6135f186828701613551565b935050602061360286828701613551565b92505060406136138682870161357b565b9150509250925092565b5f805f805f8060c0878903121561363757613636613503565b5b5f61364489828a0161357b565b965050602061365589828a0161357b565b955050604061366689828a0161357b565b945050606061367789828a0161357b565b935050608061368889828a0161357b565b92505060a061369989828a0161357b565b9150509295509295509295565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126136c7576136c66136a6565b5b8235905067ffffffffffffffff8111156136e4576136e36136aa565b5b602083019150836020820283011115613700576136ff6136ae565b5b9250929050565b613710816134d0565b811461371a575f80fd5b50565b5f8135905061372b81613707565b92915050565b5f805f6040848603121561374857613747613503565b5b5f84013567ffffffffffffffff81111561376557613764613507565b5b613771868287016136b2565b935093505060206137848682870161371d565b9150509250925092565b5f602082840312156137a3576137a2613503565b5b5f6137b08482850161357b565b91505092915050565b5f60ff82169050919050565b6137ce816137b9565b82525050565b5f6020820190506137e75f8301846137c5565b92915050565b5f6020828403121561380257613801613503565b5b5f61380f84828501613551565b91505092915050565b5f805f805f60a0868803121561383157613830613503565b5b5f61383e88828901613551565b955050602061384f88828901613551565b945050604061386088828901613551565b935050606061387188828901613551565b925050608061388288828901613551565b9150509295509295909350565b6138988161352a565b82525050565b5f6020820190506138b15f83018461388f565b92915050565b5f805f606084860312156138ce576138cd613503565b5b5f6138db8682870161357b565b93505060206138ec8682870161357b565b92505060406138fd8682870161357b565b9150509250925092565b5f806040838503121561391d5761391c613503565b5b5f61392a85828601613551565b925050602061393b85828601613551565b9150509250929050565b5f806040838503121561395b5761395a613503565b5b5f6139688582860161357b565b92505060206139798582860161357b565b9150509250929050565b5f806040838503121561399957613998613503565b5b5f6139a68582860161371d565b92505060206139b78582860161357b565b9150509250929050565b5f819050919050565b5f6139e46139df6139da8461350b565b6139c1565b61350b565b9050919050565b5f6139f5826139ca565b9050919050565b5f613a06826139eb565b9050919050565b613a16816139fc565b82525050565b5f602082019050613a2f5f830184613a0d565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613a69602083613430565b9150613a7482613a35565b602082019050919050565b5f6020820190508181035f830152613a9681613a5d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613b01826133f5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613b3357613b32613aca565b5b600182019050919050565b5f613b48826133f5565b9150613b53836133f5565b9250828202613b61816133f5565b91508282048414831517613b7857613b77613aca565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613bb6826133f5565b9150613bc1836133f5565b925082613bd157613bd0613b7f565b5b828204905092915050565b5f81519050613bea81613565565b92915050565b5f60208284031215613c0557613c04613503565b5b5f613c1284828501613bdc565b91505092915050565b5f604082019050613c2e5f83018561388f565b613c3b60208301846133fe565b9392505050565b5f81519050613c5081613707565b92915050565b5f60208284031215613c6b57613c6a613503565b5b5f613c7884828501613c42565b91505092915050565b5f608082019050613c945f83018761388f565b613ca1602083018661388f565b613cae604083018561388f565b613cbb606083018461388f565b95945050505050565b5f604082019050613cd75f8301856133fe565b613ce460208301846134db565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613d45602683613430565b9150613d5082613ceb565b604082019050919050565b5f6020820190508181035f830152613d7281613d39565b9050919050565b5f613d83826133f5565b9150613d8e836133f5565b9250828203905081811115613da657613da5613aca565b5b92915050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f613de0601483613430565b9150613deb82613dac565b602082019050919050565b5f6020820190508181035f830152613e0d81613dd4565b9050919050565b5f613e1e826133f5565b9150613e29836133f5565b9250828201905080821115613e4157613e40613aca565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d69745f8201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b5f613ea1603e83613430565b9150613eac82613e47565b604082019050919050565b5f6020820190508181035f830152613ece81613e95565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613f09601b83613430565b9150613f1482613ed5565b602082019050919050565b5f6020820190508181035f830152613f3681613efd565b9050919050565b5f606082019050613f505f8301866137c5565b613f5d60208301856137c5565b613f6a60408301846137c5565b949350505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613fcc602183613430565b9150613fd782613f72565b604082019050919050565b5f6020820190508181035f830152613ff981613fc0565b9050919050565b7f5458204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f614034601183613430565b915061403f82614000565b602082019050919050565b5f6020820190508181035f83015261406181614028565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f819050919050565b5f6140b86140b36140ae84614095565b6139c1565b6133f5565b9050919050565b6140c88161409e565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6141008161352a565b82525050565b5f61411183836140f7565b60208301905092915050565b5f602082019050919050565b5f614133826140ce565b61413d81856140d8565b9350614148836140e8565b805f5b8381101561417857815161415f8882614106565b975061416a8361411d565b92505060018101905061414b565b5085935050505092915050565b5f60a0820190506141985f8301886133fe565b6141a560208301876140bf565b81810360408301526141b78186614129565b90506141c6606083018561388f565b6141d360808301846133fe565b9695505050505050565b5f81905092915050565b50565b5f6141f55f836141dd565b9150614200826141e7565b5f82019050919050565b5f614214826141ea565b9150819050919050565b5f60c0820190506142315f83018961388f565b61423e60208301886133fe565b61424b60408301876140bf565b61425860608301866140bf565b614265608083018561388f565b61427260a08301846133fe565b979650505050505050565b5f805f6060848603121561429457614293613503565b5b5f6142a186828701613bdc565b93505060206142b286828701613bdc565b92505060406142c386828701613bdc565b9150509250925092565b5f6040820190506142e05f8301856133fe565b6142ed60208301846133fe565b939250505056fea264697066735822122033e03f5dd646d1d53fd6e0ad79a324bbbbc4ae3d582d6e5239fce5f1ef0fdcc264736f6c63430008140033

Deployed Bytecode

0x60806040526004361061021d575f3560e01c8063751039fc11610122578063a8aa1b31116100aa578063ded1e4381161006e578063ded1e4381461079e578063df20fd49146107da578063f2fde38b14610802578063f42938901461082a578063f887ea401461084057610224565b8063a8aa1b31146106aa578063a9059cbb146106d4578063b2bdfa7b14610710578063c0cbdea41461073a578063dd62ed3e1461076257610224565b806382528791116100f157806382528791146105ee578063893d20e8146106165780638da5cb5b1461064057806395d89b411461066a578063a70419d21461069457610224565b8063751039fc1461054857806377b54bad1461055e57806378109e541461059a5780637d1db4a5146105c457610224565b80632d4981a9116101a5578063571ac8b011610174578063571ac8b0146104685780635d83e1d5146104a45780636ddd1713146104cc57806370a08231146104f6578063715018a61461053257610224565b80632d4981a9146103b057806330c9a6a0146103d8578063313ce56714610414578063552656691461043e57610224565b806318160ddd116101ec57806318160ddd146102e25780631df4ccfc1461030c57806323b872dd14610336578063282c874914610372578063293230b81461039a57610224565b80630445b6671461022857806306fdde031461025257806308fd3d051461027c578063095ea7b3146102a657610224565b3661022457005b5f80fd5b348015610233575f80fd5b5061023c61086a565b604051610249919061340d565b60405180910390f35b34801561025d575f80fd5b50610266610870565b60405161027391906134b0565b60405180910390f35b348015610287575f80fd5b506102906108ad565b60405161029d91906134ea565b60405180910390f35b3480156102b1575f80fd5b506102cc60048036038101906102c7919061358f565b6108c0565b6040516102d991906134ea565b60405180910390f35b3480156102ed575f80fd5b506102f66109ad565b604051610303919061340d565b60405180910390f35b348015610317575f80fd5b506103206109b6565b60405161032d919061340d565b60405180910390f35b348015610341575f80fd5b5061035c600480360381019061035791906135cd565b6109bc565b60405161036991906134ea565b60405180910390f35b34801561037d575f80fd5b506103986004803603810190610393919061361d565b610baf565b005b3480156103a5575f80fd5b506103ae610ccc565b005b3480156103bb575f80fd5b506103d660048036038101906103d19190613731565b610d7d565b005b3480156103e3575f80fd5b506103fe60048036038101906103f9919061378e565b610eb2565b60405161040b919061340d565b60405180910390f35b34801561041f575f80fd5b50610428610f22565b60405161043591906137d4565b60405180910390f35b348015610449575f80fd5b50610452610f2a565b60405161045f919061340d565b60405180910390f35b348015610473575f80fd5b5061048e600480360381019061048991906137ed565b610f69565b60405161049b91906134ea565b60405180910390f35b3480156104af575f80fd5b506104ca60048036038101906104c5919061378e565b610f9b565b005b3480156104d7575f80fd5b506104e0611099565b6040516104ed91906134ea565b60405180910390f35b348015610501575f80fd5b5061051c600480360381019061051791906137ed565b6110ac565b604051610529919061340d565b60405180910390f35b34801561053d575f80fd5b506105466110f2565b005b348015610553575f80fd5b5061055c611240565b005b348015610569575f80fd5b50610584600480360381019061057f919061358f565b6112e8565b60405161059191906134ea565b60405180910390f35b3480156105a5575f80fd5b506105ae6114dc565b6040516105bb919061340d565b60405180910390f35b3480156105cf575f80fd5b506105d86114e2565b6040516105e5919061340d565b60405180910390f35b3480156105f9575f80fd5b50610614600480360381019061060f9190613818565b6114e8565b005b348015610621575f80fd5b5061062a611784565b604051610637919061389e565b60405180910390f35b34801561064b575f80fd5b50610654611792565b604051610661919061389e565b60405180910390f35b348015610675575f80fd5b5061067e6117b9565b60405161068b91906134b0565b60405180910390f35b34801561069f575f80fd5b506106a86117f6565b005b3480156106b5575f80fd5b506106be6118a3565b6040516106cb919061389e565b60405180910390f35b3480156106df575f80fd5b506106fa60048036038101906106f5919061358f565b6118c8565b60405161070791906134ea565b60405180910390f35b34801561071b575f80fd5b506107246118dc565b604051610731919061389e565b60405180910390f35b348015610745575f80fd5b50610760600480360381019061075b91906138b7565b6118ff565b005b34801561076d575f80fd5b5061078860048036038101906107839190613907565b6119ad565b604051610795919061340d565b60405180910390f35b3480156107a9575f80fd5b506107c460048036038101906107bf9190613945565b611a2f565b6040516107d191906134ea565b60405180910390f35b3480156107e5575f80fd5b5061080060048036038101906107fb9190613983565b611a43565b005b34801561080d575f80fd5b50610828600480360381019061082391906137ed565b611b46565b005b348015610835575f80fd5b5061083e611d03565b005b34801561084b575f80fd5b50610854611d6a565b6040516108619190613a1c565b60405180910390f35b601f5481565b60606040518060400160405280600881526020017f4c61647950657065000000000000000000000000000000000000000000000000815250905090565b601e60149054906101000a900460ff1681565b5f8160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161099b919061340d565b60405180910390a36001905092915050565b5f600354905090565b60105481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610b9b57610b1e826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d8f9092919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610ba6848484611df1565b90509392505050565b610bb7612428565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a90613a7f565b60405180910390fd5b85600b8190555084600e8190555083600c8190555082600d8190555081600f81905550610caf82610ca185610c9388610c858b8d61242f90919063ffffffff16565b61242f90919063ffffffff16565b61242f90919063ffffffff16565b61242f90919063ffffffff16565b60108190555080601181905550610cc461248c565b505050505050565b610cd4612428565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5790613a7f565b60405180910390fd5b6001601e60146101000a81548160ff021916908315150217905550565b610d85612428565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0890613a7f565b60405180910390fd5b5f5b83839050811015610eac578160085f868685818110610e3557610e34613a9d565b5b9050602002016020810190610e4a91906137ed565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610ea490613af7565b915050610e13565b50505050565b5f610f1b610ebe610f2a565b610f0d610efe6002610ef0601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166110ac565b61254790919063ffffffff16565b8561254790919063ffffffff16565b6125be90919063ffffffff16565b9050919050565b5f6012905090565b5f610f64610f375f6110ac565b610f56610f4561dead6110ac565b60035461260790919063ffffffff16565b61260790919063ffffffff16565b905090565b5f610f94827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108c0565b9050919050565b610fa3612428565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461102f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102690613a7f565b60405180910390fd5b600181101561103c575f80fd5b6103e88160035461104d9190613b3e565b6110579190613bac565b6005819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be5160055460405161108e919061340d565b60405180910390a150565b601e60159054906101000a900460ff1681565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6110fa612428565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117d90613a7f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611248612428565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cb90613a7f565b60405180910390fd5b600354600481905550600354600581905550565b5f6112f1612428565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461137d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137490613a7f565b60405180910390fd5b5f82036113ff578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113bd919061389e565b602060405180830381865afa1580156113d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113fc9190613bf0565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f8383604051611430929190613c1b565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401611494929190613c1b565b6020604051808303815f875af11580156114b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114d49190613c56565b905092915050565b60055481565b60045481565b6114f0612428565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461157c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157390613a7f565b60405180910390fd5b8460155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b1560165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516117759493929190613c81565b60405180910390a15050505050565b5f61178d611792565b905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4c41445900000000000000000000000000000000000000000000000000000000815250905090565b6117fe612428565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461188a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188190613a7f565b60405180910390fd5b600a601381905550600a6012819055505f601481905550565b601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6118d4338484611df1565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611907612428565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198a90613a7f565b60405180910390fd5b816012819055508260138190555080601481905550505050565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f82611a3a83610eb2565b11905092915050565b611a4b612428565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ace90613a7f565b60405180910390fd5b81601e60156101000a81548160ff02191690831515021790555080601f819055507f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60601f54601e60159054906101000a900460ff16604051611b3a929190613cc4565b60405180910390a15050565b611b4e612428565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd190613a7f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3f90613d5b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611d67573d5f803e3d5ffd5b50565b601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f838311158290611dd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcd91906134b0565b60405180910390fd5b505f8385611de49190613d79565b9050809150509392505050565b5f60205f9054906101000a900460ff1615611e1857611e11848484612650565b9050612421565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611eb6575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f0b57601e60149054906101000a900460ff16611f0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0190613df6565b60405180910390fd5b5b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611f8e57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611fc8575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120215750601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561207a575060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120d3575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156121265750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612189575f612135846110ac565b905060055483826121469190613e14565b1115612187576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217e90613eb7565b60405180910390fd5b505b612193848361281a565b61219b6128b4565b156121a9576121a8612986565b5b612230826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d8f9092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061230d575060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6123215761231c858486612f81565b612323565b825b90506123758160065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461242f90919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612413919061340d565b60405180910390a360019150505b9392505050565b5f33905090565b5f80828461243d9190613e14565b905083811015612482576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247990613f1f565b60405180910390fd5b8091505092915050565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b9328006124d86011546124ca60135460105461254790919063ffffffff16565b6125be90919063ffffffff16565b6125036011546124f560125460105461254790919063ffffffff16565b6125be90919063ffffffff16565b61252e60115461252060145460105461254790919063ffffffff16565b6125be90919063ffffffff16565b60405161253d93929190613f3d565b60405180910390a1565b5f808303612557575f90506125b8565b5f82846125649190613b3e565b90508284826125739190613bac565b146125b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125aa90613fe2565b60405180910390fd5b809150505b92915050565b5f6125ff83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613394565b905092915050565b5f61264883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d8f565b905092915050565b5f6126d8826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d8f9092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506127698260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461242f90919063ffffffff16565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612807919061340d565b60405180910390a3600190509392505050565b600454811115806128715750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6128b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a79061404a565b60405180910390fd5b5050565b5f601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561291e575060205f9054906101000a900460ff16155b80156129365750601e60159054906101000a900460ff165b80156129815750601f5460065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b600160205f6101000a81548160ff0219169083151502179055505f6129af601a54601b54611a2f565b6129bb57600b546129bd565b5f5b90505f6129fc60026129ee6010546129e086601f5461254790919063ffffffff16565b6125be90919063ffffffff16565b6125be90919063ffffffff16565b90505f612a1482601f5461260790919063ffffffff16565b90505f600267ffffffffffffffff811115612a3257612a31614068565b5b604051908082528060200260200182016040528015612a605781602001602082028036833780820191505090505b50905030815f81518110612a7757612a76613a9d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612ae757612ae6613a9d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f479050601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b8152600401612b87959493929190614185565b5f604051808303815f87803b158015612b9e575f80fd5b505af1158015612bb0573d5f803e3d5ffd5b505050505f612bc8824761260790919063ffffffff16565b90505f612bf3612be26002896125be90919063ffffffff16565b60105461260790919063ffffffff16565b90505f612c2e6002612c2084612c128c8861254790919063ffffffff16565b6125be90919063ffffffff16565b6125be90919063ffffffff16565b90505f612c5883612c4a600c548761254790919063ffffffff16565b6125be90919063ffffffff16565b90505f612c8284612c74600e548861254790919063ffffffff16565b6125be90919063ffffffff16565b90505f612cac85612c9e600d548961254790919063ffffffff16565b6125be90919063ffffffff16565b90505f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612cf49061420a565b5f6040518083038185875af1925050503d805f8114612d2e576040519150601f19603f3d011682016040523d82523d5f602084013e612d33565b606091505b5050905060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612d7c9061420a565b5f6040518083038185875af1925050503d805f8114612db6576040519150601f19603f3d011682016040523d82523d5f602084013e612dbb565b606091505b50508091505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612e069061420a565b5f6040518083038185875af1925050503d805f8114612e40576040519150601f19603f3d011682016040523d82523d5f602084013e612e45565b606091505b5050809150505f90505f8b1115612f5a57601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e5f8060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612edc9695949392919061421e565b60606040518083038185885af1158015612ef8573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612f1d919061427d565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051612f519291906142cd565b60405180910390a15b5050505050505050505050505f60205f6101000a81548160ff021916908315150217905550565b5f806014549050601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612fe6576012549050613095565b601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361309457601354905060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561309357600a90505b5b5b5f6130de6103e86011546130a99190613b3e565b6130d0846130c26010548a61254790919063ffffffff16565b61254790919063ffffffff16565b6125be90919063ffffffff16565b90505f61310a6010546130fc600f548561254790919063ffffffff16565b6125be90919063ffffffff16565b90505f613120828461260790919063ffffffff16565b90506131728160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461242f90919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506132248260065f60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461242f90919063ffffffff16565b60065f60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132e3919061340d565b60405180910390a35f821115613374576133088260035461260790919063ffffffff16565b6003819055505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161336b919061340d565b60405180910390a35b613387838861260790919063ffffffff16565b9450505050509392505050565b5f80831182906133da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133d191906134b0565b60405180910390fd5b505f83856133e89190613bac565b9050809150509392505050565b5f819050919050565b613407816133f5565b82525050565b5f6020820190506134205f8301846133fe565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561345d578082015181840152602081019050613442565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61348282613426565b61348c8185613430565b935061349c818560208601613440565b6134a581613468565b840191505092915050565b5f6020820190508181035f8301526134c88184613478565b905092915050565b5f8115159050919050565b6134e4816134d0565b82525050565b5f6020820190506134fd5f8301846134db565b92915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6135348261350b565b9050919050565b6135448161352a565b811461354e575f80fd5b50565b5f8135905061355f8161353b565b92915050565b61356e816133f5565b8114613578575f80fd5b50565b5f8135905061358981613565565b92915050565b5f80604083850312156135a5576135a4613503565b5b5f6135b285828601613551565b92505060206135c38582860161357b565b9150509250929050565b5f805f606084860312156135e4576135e3613503565b5b5f6135f186828701613551565b935050602061360286828701613551565b92505060406136138682870161357b565b9150509250925092565b5f805f805f8060c0878903121561363757613636613503565b5b5f61364489828a0161357b565b965050602061365589828a0161357b565b955050604061366689828a0161357b565b945050606061367789828a0161357b565b935050608061368889828a0161357b565b92505060a061369989828a0161357b565b9150509295509295509295565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126136c7576136c66136a6565b5b8235905067ffffffffffffffff8111156136e4576136e36136aa565b5b602083019150836020820283011115613700576136ff6136ae565b5b9250929050565b613710816134d0565b811461371a575f80fd5b50565b5f8135905061372b81613707565b92915050565b5f805f6040848603121561374857613747613503565b5b5f84013567ffffffffffffffff81111561376557613764613507565b5b613771868287016136b2565b935093505060206137848682870161371d565b9150509250925092565b5f602082840312156137a3576137a2613503565b5b5f6137b08482850161357b565b91505092915050565b5f60ff82169050919050565b6137ce816137b9565b82525050565b5f6020820190506137e75f8301846137c5565b92915050565b5f6020828403121561380257613801613503565b5b5f61380f84828501613551565b91505092915050565b5f805f805f60a0868803121561383157613830613503565b5b5f61383e88828901613551565b955050602061384f88828901613551565b945050604061386088828901613551565b935050606061387188828901613551565b925050608061388288828901613551565b9150509295509295909350565b6138988161352a565b82525050565b5f6020820190506138b15f83018461388f565b92915050565b5f805f606084860312156138ce576138cd613503565b5b5f6138db8682870161357b565b93505060206138ec8682870161357b565b92505060406138fd8682870161357b565b9150509250925092565b5f806040838503121561391d5761391c613503565b5b5f61392a85828601613551565b925050602061393b85828601613551565b9150509250929050565b5f806040838503121561395b5761395a613503565b5b5f6139688582860161357b565b92505060206139798582860161357b565b9150509250929050565b5f806040838503121561399957613998613503565b5b5f6139a68582860161371d565b92505060206139b78582860161357b565b9150509250929050565b5f819050919050565b5f6139e46139df6139da8461350b565b6139c1565b61350b565b9050919050565b5f6139f5826139ca565b9050919050565b5f613a06826139eb565b9050919050565b613a16816139fc565b82525050565b5f602082019050613a2f5f830184613a0d565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613a69602083613430565b9150613a7482613a35565b602082019050919050565b5f6020820190508181035f830152613a9681613a5d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613b01826133f5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613b3357613b32613aca565b5b600182019050919050565b5f613b48826133f5565b9150613b53836133f5565b9250828202613b61816133f5565b91508282048414831517613b7857613b77613aca565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613bb6826133f5565b9150613bc1836133f5565b925082613bd157613bd0613b7f565b5b828204905092915050565b5f81519050613bea81613565565b92915050565b5f60208284031215613c0557613c04613503565b5b5f613c1284828501613bdc565b91505092915050565b5f604082019050613c2e5f83018561388f565b613c3b60208301846133fe565b9392505050565b5f81519050613c5081613707565b92915050565b5f60208284031215613c6b57613c6a613503565b5b5f613c7884828501613c42565b91505092915050565b5f608082019050613c945f83018761388f565b613ca1602083018661388f565b613cae604083018561388f565b613cbb606083018461388f565b95945050505050565b5f604082019050613cd75f8301856133fe565b613ce460208301846134db565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613d45602683613430565b9150613d5082613ceb565b604082019050919050565b5f6020820190508181035f830152613d7281613d39565b9050919050565b5f613d83826133f5565b9150613d8e836133f5565b9250828203905081811115613da657613da5613aca565b5b92915050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f613de0601483613430565b9150613deb82613dac565b602082019050919050565b5f6020820190508181035f830152613e0d81613dd4565b9050919050565b5f613e1e826133f5565b9150613e29836133f5565b9250828201905080821115613e4157613e40613aca565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d69745f8201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b5f613ea1603e83613430565b9150613eac82613e47565b604082019050919050565b5f6020820190508181035f830152613ece81613e95565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613f09601b83613430565b9150613f1482613ed5565b602082019050919050565b5f6020820190508181035f830152613f3681613efd565b9050919050565b5f606082019050613f505f8301866137c5565b613f5d60208301856137c5565b613f6a60408301846137c5565b949350505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613fcc602183613430565b9150613fd782613f72565b604082019050919050565b5f6020820190508181035f830152613ff981613fc0565b9050919050565b7f5458204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f614034601183613430565b915061403f82614000565b602082019050919050565b5f6020820190508181035f83015261406181614028565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f819050919050565b5f6140b86140b36140ae84614095565b6139c1565b6133f5565b9050919050565b6140c88161409e565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6141008161352a565b82525050565b5f61411183836140f7565b60208301905092915050565b5f602082019050919050565b5f614133826140ce565b61413d81856140d8565b9350614148836140e8565b805f5b8381101561417857815161415f8882614106565b975061416a8361411d565b92505060018101905061414b565b5085935050505092915050565b5f60a0820190506141985f8301886133fe565b6141a560208301876140bf565b81810360408301526141b78186614129565b90506141c6606083018561388f565b6141d360808301846133fe565b9695505050505050565b5f81905092915050565b50565b5f6141f55f836141dd565b9150614200826141e7565b5f82019050919050565b5f614214826141ea565b9150819050919050565b5f60c0820190506142315f83018961388f565b61423e60208301886133fe565b61424b60408301876140bf565b61425860608301866140bf565b614265608083018561388f565b61427260a08301846133fe565b979650505050505050565b5f805f6060848603121561429457614293613503565b5b5f6142a186828701613bdc565b93505060206142b286828701613bdc565b92505060406142c386828701613bdc565b9150509250925092565b5f6040820190506142e05f8301856133fe565b6142ed60208301846133fe565b939250505056fea264697066735822122033e03f5dd646d1d53fd6e0ad79a324bbbbc4ae3d582d6e5239fce5f1ef0fdcc264736f6c63430008140033

Deployed Bytecode Sourcemap

5067:13909:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7459:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8950:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7376:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9372:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8680:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6724:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9890:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17026:508;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14629:81;;;;;;;;;;;;;:::i;:::-;;18321:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18676:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8774:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18837:132;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9596:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10268:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7422:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9120:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1981:148;;;;;;;;;;;;;:::i;:::-;;10525:139;;;;;;;;;;;;;:::i;:::-;;14006:343;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6183:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6118:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17547:547;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9036:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1767:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8860:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14718:129;;;;;;;;;;;;;:::i;:::-;;7344:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9726:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1387:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14357:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9231:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18533:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18102:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2137:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13867:132;;;;;;;;;;;;;:::i;:::-;;7274:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7459:50;;;;:::o;8950:80::-;8998:13;9022:5;;;;;;;;;;;;;;;;;9015:12;;8950:80;:::o;7376:31::-;;;;;;;;;;;;;:::o;9372:216::-;9447:4;9499:6;9464:11;:23;9476:10;9464:23;;;;;;;;;;;;;;;:32;9488:7;9464:32;;;;;;;;;;;;;;;:41;;;;9542:7;9521:37;;9530:10;9521:37;;;9551:6;9521:37;;;;;;:::i;:::-;;;;;;;;9576:4;9569:11;;9372:216;;;;:::o;8680:88::-;8735:7;8753:12;;8746:19;;8680:88;:::o;6724:93::-;;;;:::o;9890:370::-;9990:4;10045:17;10010:11;:19;10022:6;10010:19;;;;;;;;;;;;;;;:31;10030:10;10010:31;;;;;;;;;;;;;;;;:52;10007:186;;10112:69;10148:6;10112:69;;;;;;;;;;;;;;;;;:11;:19;10124:6;10112:19;;;;;;;;;;;;;;;:31;10132:10;10112:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;10078:11;:19;10090:6;10078:19;;;;;;;;;;;;;;;:31;10098:10;10078:31;;;;;;;;;;;;;;;:103;;;;10007:186;10212:40;10226:6;10234:9;10245:6;10212:13;:40::i;:::-;10205:47;;9890:370;;;;;:::o;17026:508::-;1904:12;:10;:12::i;:::-;1894:22;;:6;;;;;;;;;;:22;;;1886:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17221:13:::1;17206:12;:28;;;;17258:11;17245:10;:24;;;;17295:13;17280:12;:28;;;;17328:7;17319:6;:16;;;;17356:8;17346:7;:18;;;;17386:76;17453:8;17386:62;17440:7;17386:49;17421:13;17386:30;17404:11;17386:13;:17;;:30;;;;:::i;:::-;:34;;:49;;;;:::i;:::-;:53;;:62;;;;:::i;:::-;:66;;:76;;;;:::i;:::-;17375:8;:87;;;;17490:15;17473:14;:32;;;;17516:10;:8;:10::i;:::-;17026:508:::0;;;;;;:::o;14629:81::-;1904:12;:10;:12::i;:::-;1894:22;;:6;;;;;;;;;;:22;;;1886:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14695:4:::1;14681:11;;:18;;;;;;;;;;;;;;;;;;14629:81::o:0;18321:204::-;1904:12;:10;:12::i;:::-;1894:22;;:6;;;;;;;;;;:22;;;1886:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18417:9:::1;18413:105;18436:8;;:15;;18432:1;:19;18413:105;;;18498:8;18473:9;:22;18483:8;;18492:1;18483:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18473:22;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;18453:3;;;;;:::i;:::-;;;;18413:105;;;;18321:204:::0;;;:::o;18676:149::-;18736:7;18763:54;18804:12;:10;:12::i;:::-;18763:36;18776:22;18796:1;18776:15;18786:4;;;;;;;;;;;18776:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;18763:8;:12;;:36;;;;:::i;:::-;:40;;:54;;;;:::i;:::-;18756:61;;18676:149;;;:::o;8774:80::-;8826:5;5425:2;8835:16;;8774:80;:::o;18837:132::-;18880:7;18907:54;18945:15;5261:42;18945:9;:15::i;:::-;18907:33;18924:15;5188:42;18924:9;:15::i;:::-;18907:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;18900:61;;18837:132;:::o;9596:122::-;9651:4;9675:35;9683:7;9692:17;9675:7;:35::i;:::-;9668:42;;9596:122;;;:::o;10268:247::-;1904:12;:10;:12::i;:::-;1894:22;;:6;;;;;;;;;;:22;;;1886:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10372:1:::1;10354:14;:19;;10346:28;;;::::0;::::1;;10439:4;10420:14;10405:12;;:29;;;;:::i;:::-;10404:39;;;;:::i;:::-;10386:15;:57;;;;10459:30;10473:15;;10459:30;;;;;;:::i;:::-;;;;;;;;10268:247:::0;:::o;7422:30::-;;;;;;;;;;;;;:::o;9120:105::-;9186:7;9204:9;:18;9214:7;9204:18;;;;;;;;;;;;;;;;9197:25;;9120:105;;;:::o;1981:148::-;1904:12;:10;:12::i;:::-;1894:22;;:6;;;;;;;;;;:22;;;1886:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2088:1:::1;2051:40;;2072:6;::::0;::::1;;;;;;;;2051:40;;;;;;;;;;;;2119:1;2102:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1981:148::o:0;10525:139::-;1904:12;:10;:12::i;:::-;1894:22;;:6;;;;;;;;;;:22;;;1886:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10599:12:::1;;10584;:27;;;;10644:12;;10626:15;:30;;;;10525:139::o:0;14006:343::-;14097:12;1904;:10;:12::i;:::-;1894:22;;:6;;;;;;;;;;:22;;;1886:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14135:1:::1;14125:6;:11:::0;14122:95:::1;;14167:12;14161:29;;;14199:4;14161:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14152:53;;14122:95;14232:32;14243:12;14257:6;14232:32;;;;;;;:::i;:::-;;;;;;;;14288:12;14282:28;;;14311:21;;;;;;;;;;;14334:6;14282:59;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14275:66;;14006:343:::0;;;;:::o;6183:61::-;;;;:::o;6118:58::-;;;;:::o;17547:547::-;1904:12;:10;:12::i;:::-;1894:22;;:6;;;;;;;;;;:22;;;1886:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17764:22:::1;17740:21;;:46;;;;;;;;;;;;;;;;;;17820:21;17797:20;;:44;;;;;;;;;;;;;;;;;;17869:15;17852:14;;:32;;;;;;;;;;;;;;;;;;17913:16;17895:15;;:34;;;;;;;;;;;;;;;;;;17961:19;17940:18;;:40;;;;;;;;;;;;;;;;;;17998:88;18012:20;;;;;;;;;;;18034:18;;;;;;;;;;;18054:15;;;;;;;;;;;18071:14;;;;;;;;;;;17998:88;;;;;;;;;:::i;:::-;;;;;;;;17547:547:::0;;;;;:::o;9036:78::-;9088:7;9105;:5;:7::i;:::-;9098:14;;9036:78;:::o;1767:79::-;1805:7;1832:6;;;;;;;;;;;1825:13;;1767:79;:::o;8860:84::-;8910:13;8934:7;;;;;;;;;;;;;;;;;8927:14;;8860:84;:::o;14718:129::-;1904:12;:10;:12::i;:::-;1894:22;;:6;;;;;;;;;;:22;;;1886:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14780:2:::1;14767:10;:15;;;;14807:2;14793:11;:16;;;;14838:1;14820:15;:19;;;;14718:129::o:0;7344:19::-;;;;;;;;;;;;;:::o;9726:156::-;9806:4;9830:44;9844:10;9856:9;9867:6;9830:13;:44::i;:::-;9823:51;;9726:156;;;;:::o;1387:21::-;;;;;;;;;;;;:::o;14357:257::-;1904:12;:10;:12::i;:::-;1894:22;;:6;;;;;;;;;;:22;;;1886:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14495:14:::1;14481:11;:28;;;;14533:13;14520:10;:26;;;;14575:15;14557;:33;;;;14357:257:::0;;;:::o;9231:133::-;9315:7;9333:11;:19;9345:6;9333:19;;;;;;;;;;;;;;;:28;9353:7;9333:28;;;;;;;;;;;;;;;;9326:35;;9231:133;;;;:::o;18533:135::-;18607:4;18655:5;18631:21;18643:8;18631:11;:21::i;:::-;:29;18624:36;;18533:135;;;;:::o;18102:211::-;1904:12;:10;:12::i;:::-;1894:22;;:6;;;;;;;;;;:22;;;1886:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18207:8:::1;18193:11;;:22;;;;;;;;;;;;;;;;;;18242:7;18226:13;:23;;;;18265:40;18278:13;;18293:11;;;;;;;;;;;18265:40;;;;;;;:::i;:::-;;;;;;;;18102:211:::0;;:::o;2137:244::-;1904:12;:10;:12::i;:::-;1894:22;;:6;;;;;;;;;;:22;;;1886:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2246:1:::1;2226:22;;:8;:22;;::::0;2218:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2336:8;2307:38;;2328:6;::::0;::::1;;;;;;;;2307:38;;;;;;;;;;;;2365:8;2356:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2137:244:::0;:::o;13867:132::-;13923:21;;;;;;;;;;;13915:39;;:62;13955:21;13915:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13867:132::o;7274:24::-;;;;;;;;;;;;;:::o;4279:192::-;4365:7;4398:1;4393;:6;;4401:12;4385:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4425:9;4441:1;4437;:5;;;;:::i;:::-;4425:17;;4462:1;4455:8;;;4279:192;;;;;:::o;10680:1238::-;10772:4;10792:6;;;;;;;;;;;10789:63;;;10808:41;10823:6;10831:9;10842:6;10808:14;:41::i;:::-;10801:48;;;;10789:63;10868:14;:22;10883:6;10868:22;;;;;;;;;;;;;;;;;;;;;;;;;10867:23;:53;;;;;10895:14;:25;10910:9;10895:25;;;;;;;;;;;;;;;;;;;;;;;;;10894:26;10867:53;10864:139;;;10944:11;;;;;;;;;;;10936:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;10864:139;11045:14;:22;11060:6;11045:22;;;;;;;;;;;;;;;;;;;;;;;;;11044:23;:53;;;;;11092:4;11071:26;;:9;:26;;;;11044:53;:84;;;;;5188:42;11102:26;;:9;:26;;;;11044:84;:105;;;;;11145:4;;;;;;;;;;;11132:17;;:9;:17;;;;11044:105;:137;;;;;11166:15;;;;;;;;;;;11153:28;;:9;:28;;;;11044:137;:174;;;;;11198:20;;;;;;;;;;;11185:33;;:9;:33;;;;11044:174;:207;;;;;11223:17;:28;11241:9;11223:28;;;;;;;;;;;;;;;;;;;;;;;;;11222:29;11044:207;11040:399;;;11267:18;11288:20;11298:9;11288;:20::i;:::-;11267:41;;11356:15;;11345:6;11332:10;:19;;;;:::i;:::-;11331:40;;11323:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;11252:187;11040:399;11451:28;11464:6;11472;11451:12;:28::i;:::-;11497:16;:14;:16::i;:::-;11494:35;;;11516:10;:8;:10::i;:::-;11494:35;11559:53;11581:6;11559:53;;;;;;;;;;;;;;;;;:9;:17;11569:6;11559:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11539:9;:17;11549:6;11539:17;;;;;;;;;;;;;;;:73;;;;11625:22;11651:16;:24;11668:6;11651:24;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;11679:16;:27;11696:9;11679:27;;;;;;;;;;;;;;;;;;;;;;;;;11651:55;11650:103;;11719:34;11727:6;11735;11743:9;11719:7;:34::i;:::-;11650:103;;;11710:6;11650:103;11625:128;;11787:40;11812:14;11787:9;:20;11797:9;11787:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;11764:9;:20;11774:9;11764:20;;;;;;;;;;;;;;;:63;;;;11862:9;11845:43;;11854:6;11845:43;;;11873:14;11845:43;;;;;;:::i;:::-;;;;;;;;11906:4;11899:11;;;10680:1238;;;;;;:::o;1108:115::-;1161:15;1204:10;1189:26;;1108:115;:::o;3950:181::-;4008:7;4028:9;4044:1;4040;:5;;;;:::i;:::-;4028:17;;4069:1;4064;:6;;4056:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4122:1;4115:8;;;3950:181;;;;:::o;16740:274::-;16793:213;16808:44;16837:14;;16808:24;16821:10;;16808:8;;:12;;:24;;;;:::i;:::-;:28;;:44;;;;:::i;:::-;16874:45;16904:14;;16874:25;16887:11;;16874:8;;:12;;:25;;;;:::i;:::-;:29;;:45;;;;:::i;:::-;16941:49;16975:14;;16941:29;16954:15;;16941:8;;:12;;:29;;;;:::i;:::-;:33;;:49;;;;:::i;:::-;16793:213;;;;;;;;:::i;:::-;;;;;;;;16740:274::o;4477:250::-;4535:7;4564:1;4559;:6;4555:47;;4589:1;4582:8;;;;4555:47;4614:9;4630:1;4626;:5;;;;:::i;:::-;4614:17;;4659:1;4654;4650;:5;;;;:::i;:::-;:10;4642:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4718:1;4711:8;;;4477:250;;;;;:::o;4733:132::-;4791:7;4818:39;4822:1;4825;4818:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4811:46;;4733:132;;;;:::o;4137:136::-;4195:7;4222:43;4226:1;4229;4222:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4215:50;;4137:136;;;;:::o;11927:330::-;12020:4;12057:53;12079:6;12057:53;;;;;;;;;;;;;;;;;:9;:17;12067:6;12057:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;12037:9;:17;12047:6;12037:17;;;;;;;;;;;;;;;:73;;;;12144:32;12169:6;12144:9;:20;12154:9;12144:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12121:9;:20;12131:9;12121:20;;;;;;;;;;;;;;;:55;;;;12209:9;12192:35;;12201:6;12192:35;;;12220:6;12192:35;;;;;;:::i;:::-;;;;;;;;12245:4;12238:11;;11927:330;;;;;:::o;12265:168::-;12362:12;;12352:6;:22;;:51;;;;12378:17;:25;12396:6;12378:25;;;;;;;;;;;;;;;;;;;;;;;;;12352:51;12344:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;12265:168;;:::o;13658:197::-;13707:4;13745;;;;;;;;;;;13731:18;;:10;:18;;;;:38;;;;;13763:6;;;;;;;;;;;13762:7;13731:38;:62;;;;;13782:11;;;;;;;;;;;13731:62;:116;;;;;13834:13;;13806:9;:24;13824:4;13806:24;;;;;;;;;;;;;;;;:41;;13731:116;13724:123;;13658:197;:::o;14870:1854::-;7566:4;7557:6;;:13;;;;;;;;;;;;;;;;;;14919:27:::1;14949:41;14960:8;;14970:19;;14949:10;:41::i;:::-;:60;;14997:12;;14949:60;;;14993:1;14949:60;14919:90;;15020:23;15046:59;15103:1;15046:52;15089:8;;15046:38;15064:19;15046:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;15020:85;;15116:20;15139:34;15157:15;15139:13;;:17;;:34;;;;:::i;:::-;15116:57;;15186:21;15224:1;15210:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15186:40;;15255:4;15237;15242:1;15237:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15281:4;;;;;;;;;;;15271;15276:1;15271:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;15298:21;15322;15298:45;;15356:6;;;;;;;;;;;:57;;;15428:12;15455:1;15471:4;15498;15518:15;15356:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15557:17;15577:40;15603:13;15577:21;:25;;:40;;;;:::i;:::-;15557:60;;15630:19;15652:40;15665:26;15689:1;15665:19;:23;;:26;;;;:::i;:::-;15652:8;;:12;;:40;;;;:::i;:::-;15630:62;;15713:26;15742:58;15798:1;15742:51;15781:11;15742:34;15756:19;15742:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;15713:87;;15811:26;15840:44;15872:11;15840:27;15854:12;;15840:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;15811:73;;15895:24;15922:42;15952:11;15922:25;15936:10;;15922:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;15895:69;;15975:20;15998:38;16024:11;15998:21;16012:6;;15998:9;:13;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;15975:61;;16050:15;16078:20;;;;;;;;;;;16070:34;;16112:18;16070:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16049:86;;;16170:14;;;;;;;;;;;16162:28;;16198:12;16162:53;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16146:69;;;;;16250:18;;;;;;;;;;;16242:32;;16282:16;16242:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16226:77;;;;;16337:5;16324:18;;16376:1;16358:15;:19;16355:362;;;16393:6;;;;;;;;;;;:22;;;16423:18;16469:4;16493:15;16527:1;16547::::0;16567:21:::1;;;;;;;;;;;16607:15;16393:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16657:48;16669:18;16689:15;16657:48;;;;;;;:::i;:::-;;;;;;;;16355:362;14908:1816;;;;;;;;;;;;7584:5:::0;7575:6;;:14;;;;;;;;;;;;;;;;;;14870:1854::o;12568:1082::-;12654:7;12684:15;12702;;12684:33;;12744:4;;;;;;;;;;;12731:17;;:9;:17;;;12728:241;;12775:11;;12765:21;;12728:241;;;12817:4;;;;;;;;;;;12807:14;;:6;:14;;;12804:165;;12848:10;;12838:20;;12876:9;:20;12886:9;12876:20;;;;;;;;;;;;;;;;;;;;;;;;;12873:85;;;12940:2;12930:12;;12873:85;12804:165;12728:241;12981:17;13001:60;13056:4;13039:14;;:21;;;;:::i;:::-;13001:33;13026:7;13001:20;13012:8;;13001:6;:10;;:20;;;;:::i;:::-;:24;;:33;;;;:::i;:::-;:37;;:60;;;;:::i;:::-;12981:80;;13072:18;13093:36;13120:8;;13093:22;13107:7;;13093:9;:13;;:22;;;;:::i;:::-;:26;;:36;;;;:::i;:::-;13072:57;;13140:22;13165:25;13179:10;13165:9;:13;;:25;;;;:::i;:::-;13140:50;;13228:44;13257:14;13228:9;:24;13246:4;13228:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;13201:9;:24;13219:4;13201:24;;;;;;;;;;;;;;;:71;;;;13312:42;13343:10;13312:9;:26;13322:15;;;;;;;;;;;13312:26;;;;;;;;;;;;;;;;:30;;:42;;;;:::i;:::-;13283:9;:26;13293:15;;;;;;;;;;;13283:26;;;;;;;;;;;;;;;:71;;;;13395:4;13370:47;;13379:6;13370:47;;;13402:14;13370:47;;;;;;:::i;:::-;;;;;;;;13464:1;13451:10;:14;13448:154;;;13496:28;13513:10;13496:12;;:16;;:28;;;;:::i;:::-;13481:12;:43;;;;5261:42;13544:34;;13553:6;13544:34;;;13567:10;13544:34;;;;;;:::i;:::-;;;;;;;;13448:154;13621:21;13632:9;13621:6;:10;;:21;;;;:::i;:::-;13614:28;;;;;;12568:1082;;;;;:::o;4871:189::-;4957:7;4989:1;4985;:5;4992:12;4977:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5016:9;5032:1;5028;:5;;;;:::i;:::-;5016:17;;5051:1;5044:8;;;4871: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;2415:117;2524:1;2521;2514: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:117::-;5595:1;5592;5585:12;5609:117;5718:1;5715;5708:12;5732:117;5841:1;5838;5831:12;5872:568;5945:8;5955:6;6005:3;5998:4;5990:6;5986:17;5982:27;5972:122;;6013:79;;:::i;:::-;5972:122;6126:6;6113:20;6103:30;;6156:18;6148:6;6145:30;6142:117;;;6178:79;;:::i;:::-;6142:117;6292:4;6284:6;6280:17;6268:29;;6346:3;6338:4;6330:6;6326:17;6316:8;6312:32;6309:41;6306:128;;;6353:79;;:::i;:::-;6306:128;5872:568;;;;;:::o;6446:116::-;6516:21;6531:5;6516:21;:::i;:::-;6509:5;6506:32;6496:60;;6552:1;6549;6542:12;6496:60;6446:116;:::o;6568:133::-;6611:5;6649:6;6636:20;6627:29;;6665:30;6689:5;6665:30;:::i;:::-;6568:133;;;;:::o;6707:698::-;6799:6;6807;6815;6864:2;6852:9;6843:7;6839:23;6835:32;6832:119;;;6870:79;;:::i;:::-;6832:119;7018:1;7007:9;7003:17;6990:31;7048:18;7040:6;7037:30;7034:117;;;7070:79;;:::i;:::-;7034:117;7183:80;7255:7;7246:6;7235:9;7231:22;7183:80;:::i;:::-;7165:98;;;;6961:312;7312:2;7338:50;7380:7;7371:6;7360:9;7356:22;7338:50;:::i;:::-;7328:60;;7283:115;6707:698;;;;;:::o;7411:329::-;7470:6;7519:2;7507:9;7498:7;7494:23;7490:32;7487:119;;;7525:79;;:::i;:::-;7487:119;7645:1;7670:53;7715:7;7706:6;7695:9;7691:22;7670:53;:::i;:::-;7660:63;;7616:117;7411:329;;;;:::o;7746:86::-;7781:7;7821:4;7814:5;7810:16;7799:27;;7746:86;;;:::o;7838:112::-;7921:22;7937:5;7921:22;:::i;:::-;7916:3;7909:35;7838:112;;:::o;7956:214::-;8045:4;8083:2;8072:9;8068:18;8060:26;;8096:67;8160:1;8149:9;8145:17;8136:6;8096:67;:::i;:::-;7956:214;;;;:::o;8176:329::-;8235:6;8284:2;8272:9;8263:7;8259:23;8255:32;8252:119;;;8290:79;;:::i;:::-;8252:119;8410:1;8435:53;8480:7;8471:6;8460:9;8456:22;8435:53;:::i;:::-;8425:63;;8381:117;8176:329;;;;:::o;8511:911::-;8606:6;8614;8622;8630;8638;8687:3;8675:9;8666:7;8662:23;8658:33;8655:120;;;8694:79;;:::i;:::-;8655:120;8814:1;8839:53;8884:7;8875:6;8864:9;8860:22;8839:53;:::i;:::-;8829:63;;8785:117;8941:2;8967:53;9012:7;9003:6;8992:9;8988:22;8967:53;:::i;:::-;8957:63;;8912:118;9069:2;9095:53;9140:7;9131:6;9120:9;9116:22;9095:53;:::i;:::-;9085:63;;9040:118;9197:2;9223:53;9268:7;9259:6;9248:9;9244:22;9223:53;:::i;:::-;9213:63;;9168:118;9325:3;9352:53;9397:7;9388:6;9377:9;9373:22;9352:53;:::i;:::-;9342:63;;9296:119;8511:911;;;;;;;;:::o;9428:118::-;9515:24;9533:5;9515:24;:::i;:::-;9510:3;9503:37;9428:118;;:::o;9552:222::-;9645:4;9683:2;9672:9;9668:18;9660:26;;9696:71;9764:1;9753:9;9749:17;9740:6;9696:71;:::i;:::-;9552:222;;;;:::o;9780:619::-;9857:6;9865;9873;9922:2;9910:9;9901:7;9897:23;9893:32;9890:119;;;9928:79;;:::i;:::-;9890:119;10048:1;10073:53;10118:7;10109:6;10098:9;10094:22;10073:53;:::i;:::-;10063:63;;10019:117;10175:2;10201:53;10246:7;10237:6;10226:9;10222:22;10201:53;:::i;:::-;10191:63;;10146:118;10303:2;10329:53;10374:7;10365:6;10354:9;10350:22;10329:53;:::i;:::-;10319:63;;10274:118;9780:619;;;;;:::o;10405:474::-;10473:6;10481;10530:2;10518:9;10509:7;10505:23;10501:32;10498:119;;;10536:79;;:::i;:::-;10498:119;10656:1;10681:53;10726:7;10717:6;10706:9;10702:22;10681:53;:::i;:::-;10671:63;;10627:117;10783:2;10809:53;10854:7;10845:6;10834:9;10830:22;10809:53;:::i;:::-;10799:63;;10754:118;10405:474;;;;;:::o;10885:::-;10953:6;10961;11010:2;10998:9;10989:7;10985:23;10981:32;10978:119;;;11016:79;;:::i;:::-;10978:119;11136:1;11161:53;11206:7;11197:6;11186:9;11182:22;11161:53;:::i;:::-;11151:63;;11107:117;11263:2;11289:53;11334:7;11325:6;11314:9;11310:22;11289:53;:::i;:::-;11279:63;;11234:118;10885:474;;;;;:::o;11365:468::-;11430:6;11438;11487:2;11475:9;11466:7;11462:23;11458:32;11455:119;;;11493:79;;:::i;:::-;11455:119;11613:1;11638:50;11680:7;11671:6;11660:9;11656:22;11638:50;:::i;:::-;11628:60;;11584:114;11737:2;11763:53;11808:7;11799:6;11788:9;11784:22;11763:53;:::i;:::-;11753:63;;11708:118;11365:468;;;;;:::o;11839:60::-;11867:3;11888:5;11881:12;;11839:60;;;:::o;11905:142::-;11955:9;11988:53;12006:34;12015:24;12033:5;12015:24;:::i;:::-;12006:34;:::i;:::-;11988:53;:::i;:::-;11975:66;;11905:142;;;:::o;12053:126::-;12103:9;12136:37;12167:5;12136:37;:::i;:::-;12123:50;;12053:126;;;:::o;12185:144::-;12253:9;12286:37;12317:5;12286:37;:::i;:::-;12273:50;;12185:144;;;:::o;12335:167::-;12440:55;12489:5;12440:55;:::i;:::-;12435:3;12428:68;12335:167;;:::o;12508:258::-;12619:4;12657:2;12646:9;12642:18;12634:26;;12670:89;12756:1;12745:9;12741:17;12732:6;12670:89;:::i;:::-;12508:258;;;;:::o;12772:182::-;12912:34;12908:1;12900:6;12896:14;12889:58;12772:182;:::o;12960:366::-;13102:3;13123:67;13187:2;13182:3;13123:67;:::i;:::-;13116:74;;13199:93;13288:3;13199:93;:::i;:::-;13317:2;13312:3;13308:12;13301:19;;12960:366;;;:::o;13332:419::-;13498:4;13536:2;13525:9;13521:18;13513:26;;13585:9;13579:4;13575:20;13571:1;13560:9;13556:17;13549:47;13613:131;13739:4;13613:131;:::i;:::-;13605:139;;13332:419;;;:::o;13757:180::-;13805:77;13802:1;13795:88;13902:4;13899:1;13892:15;13926:4;13923:1;13916:15;13943:180;13991:77;13988:1;13981:88;14088:4;14085:1;14078:15;14112:4;14109:1;14102:15;14129:233;14168:3;14191:24;14209:5;14191:24;:::i;:::-;14182:33;;14237:66;14230:5;14227:77;14224:103;;14307:18;;:::i;:::-;14224:103;14354:1;14347:5;14343:13;14336:20;;14129:233;;;:::o;14368:410::-;14408:7;14431:20;14449:1;14431:20;:::i;:::-;14426:25;;14465:20;14483:1;14465:20;:::i;:::-;14460:25;;14520:1;14517;14513:9;14542:30;14560:11;14542:30;:::i;:::-;14531:41;;14721:1;14712:7;14708:15;14705:1;14702:22;14682:1;14675:9;14655:83;14632:139;;14751:18;;:::i;:::-;14632:139;14416:362;14368:410;;;;:::o;14784:180::-;14832:77;14829:1;14822:88;14929:4;14926:1;14919:15;14953:4;14950:1;14943:15;14970:185;15010:1;15027:20;15045:1;15027:20;:::i;:::-;15022:25;;15061:20;15079:1;15061:20;:::i;:::-;15056:25;;15100:1;15090:35;;15105:18;;:::i;:::-;15090:35;15147:1;15144;15140:9;15135:14;;14970:185;;;;:::o;15161:143::-;15218:5;15249:6;15243:13;15234:22;;15265:33;15292:5;15265:33;:::i;:::-;15161:143;;;;:::o;15310:351::-;15380:6;15429:2;15417:9;15408:7;15404:23;15400:32;15397:119;;;15435:79;;:::i;:::-;15397:119;15555:1;15580:64;15636:7;15627:6;15616:9;15612:22;15580:64;:::i;:::-;15570:74;;15526:128;15310:351;;;;:::o;15667:332::-;15788:4;15826:2;15815:9;15811:18;15803:26;;15839:71;15907:1;15896:9;15892:17;15883:6;15839:71;:::i;:::-;15920:72;15988:2;15977:9;15973:18;15964:6;15920:72;:::i;:::-;15667:332;;;;;:::o;16005:137::-;16059:5;16090:6;16084:13;16075:22;;16106:30;16130:5;16106:30;:::i;:::-;16005:137;;;;:::o;16148:345::-;16215:6;16264:2;16252:9;16243:7;16239:23;16235:32;16232:119;;;16270:79;;:::i;:::-;16232:119;16390:1;16415:61;16468:7;16459:6;16448:9;16444:22;16415:61;:::i;:::-;16405:71;;16361:125;16148:345;;;;:::o;16499:553::-;16676:4;16714:3;16703:9;16699:19;16691:27;;16728:71;16796:1;16785:9;16781:17;16772:6;16728:71;:::i;:::-;16809:72;16877:2;16866:9;16862:18;16853:6;16809:72;:::i;:::-;16891;16959:2;16948:9;16944:18;16935:6;16891:72;:::i;:::-;16973;17041:2;17030:9;17026:18;17017:6;16973:72;:::i;:::-;16499:553;;;;;;;:::o;17058:320::-;17173:4;17211:2;17200:9;17196:18;17188:26;;17224:71;17292:1;17281:9;17277:17;17268:6;17224:71;:::i;:::-;17305:66;17367:2;17356:9;17352:18;17343:6;17305:66;:::i;:::-;17058:320;;;;;:::o;17384:225::-;17524:34;17520:1;17512:6;17508:14;17501:58;17593:8;17588:2;17580:6;17576:15;17569:33;17384:225;:::o;17615:366::-;17757:3;17778:67;17842:2;17837:3;17778:67;:::i;:::-;17771:74;;17854:93;17943:3;17854:93;:::i;:::-;17972:2;17967:3;17963:12;17956:19;;17615:366;;;:::o;17987:419::-;18153:4;18191:2;18180:9;18176:18;18168:26;;18240:9;18234:4;18230:20;18226:1;18215:9;18211:17;18204:47;18268:131;18394:4;18268:131;:::i;:::-;18260:139;;17987:419;;;:::o;18412:194::-;18452:4;18472:20;18490:1;18472:20;:::i;:::-;18467:25;;18506:20;18524:1;18506:20;:::i;:::-;18501:25;;18550:1;18547;18543:9;18535:17;;18574:1;18568:4;18565:11;18562:37;;;18579:18;;:::i;:::-;18562:37;18412:194;;;;:::o;18612:170::-;18752:22;18748:1;18740:6;18736:14;18729:46;18612:170;:::o;18788:366::-;18930:3;18951:67;19015:2;19010:3;18951:67;:::i;:::-;18944:74;;19027:93;19116:3;19027:93;:::i;:::-;19145:2;19140:3;19136:12;19129:19;;18788:366;;;:::o;19160:419::-;19326:4;19364:2;19353:9;19349:18;19341:26;;19413:9;19407:4;19403:20;19399:1;19388:9;19384:17;19377:47;19441:131;19567:4;19441:131;:::i;:::-;19433:139;;19160:419;;;:::o;19585:191::-;19625:3;19644:20;19662:1;19644:20;:::i;:::-;19639:25;;19678:20;19696:1;19678:20;:::i;:::-;19673:25;;19721:1;19718;19714:9;19707:16;;19742:3;19739:1;19736:10;19733:36;;;19749:18;;:::i;:::-;19733:36;19585:191;;;;:::o;19782:249::-;19922:34;19918:1;19910:6;19906:14;19899:58;19991:32;19986:2;19978:6;19974:15;19967:57;19782:249;:::o;20037:366::-;20179:3;20200:67;20264:2;20259:3;20200:67;:::i;:::-;20193:74;;20276:93;20365:3;20276:93;:::i;:::-;20394:2;20389:3;20385:12;20378:19;;20037:366;;;:::o;20409:419::-;20575:4;20613:2;20602:9;20598:18;20590:26;;20662:9;20656:4;20652:20;20648:1;20637:9;20633:17;20626:47;20690:131;20816:4;20690:131;:::i;:::-;20682:139;;20409:419;;;:::o;20834:177::-;20974:29;20970:1;20962:6;20958:14;20951:53;20834:177;:::o;21017:366::-;21159:3;21180:67;21244:2;21239:3;21180:67;:::i;:::-;21173:74;;21256:93;21345:3;21256:93;:::i;:::-;21374:2;21369:3;21365:12;21358:19;;21017:366;;;:::o;21389:419::-;21555:4;21593:2;21582:9;21578:18;21570:26;;21642:9;21636:4;21632:20;21628:1;21617:9;21613:17;21606:47;21670:131;21796:4;21670:131;:::i;:::-;21662:139;;21389:419;;;:::o;21814:418::-;21951:4;21989:2;21978:9;21974:18;21966:26;;22002:67;22066:1;22055:9;22051:17;22042:6;22002:67;:::i;:::-;22079:68;22143:2;22132:9;22128:18;22119:6;22079:68;:::i;:::-;22157;22221:2;22210:9;22206:18;22197:6;22157:68;:::i;:::-;21814:418;;;;;;:::o;22238:220::-;22378:34;22374:1;22366:6;22362:14;22355:58;22447:3;22442:2;22434:6;22430:15;22423:28;22238:220;:::o;22464:366::-;22606:3;22627:67;22691:2;22686:3;22627:67;:::i;:::-;22620:74;;22703:93;22792:3;22703:93;:::i;:::-;22821:2;22816:3;22812:12;22805:19;;22464:366;;;:::o;22836:419::-;23002:4;23040:2;23029:9;23025:18;23017:26;;23089:9;23083:4;23079:20;23075:1;23064:9;23060:17;23053:47;23117:131;23243:4;23117:131;:::i;:::-;23109:139;;22836:419;;;:::o;23261:167::-;23401:19;23397:1;23389:6;23385:14;23378:43;23261:167;:::o;23434:366::-;23576:3;23597:67;23661:2;23656:3;23597:67;:::i;:::-;23590:74;;23673:93;23762:3;23673:93;:::i;:::-;23791:2;23786:3;23782:12;23775:19;;23434:366;;;:::o;23806:419::-;23972:4;24010:2;23999:9;23995:18;23987:26;;24059:9;24053:4;24049:20;24045:1;24034:9;24030:17;24023:47;24087:131;24213:4;24087:131;:::i;:::-;24079:139;;23806:419;;;:::o;24231:180::-;24279:77;24276:1;24269:88;24376:4;24373:1;24366:15;24400:4;24397:1;24390:15;24417:85;24462:7;24491:5;24480:16;;24417:85;;;:::o;24508:158::-;24566:9;24599:61;24617:42;24626:32;24652:5;24626:32;:::i;:::-;24617:42;:::i;:::-;24599:61;:::i;:::-;24586:74;;24508:158;;;:::o;24672:147::-;24767:45;24806:5;24767:45;:::i;:::-;24762:3;24755:58;24672:147;;:::o;24825:114::-;24892:6;24926:5;24920:12;24910:22;;24825:114;;;:::o;24945:184::-;25044:11;25078:6;25073:3;25066:19;25118:4;25113:3;25109:14;25094:29;;24945:184;;;;:::o;25135:132::-;25202:4;25225:3;25217:11;;25255:4;25250:3;25246:14;25238:22;;25135:132;;;:::o;25273:108::-;25350:24;25368:5;25350:24;:::i;:::-;25345:3;25338:37;25273:108;;:::o;25387:179::-;25456:10;25477:46;25519:3;25511:6;25477:46;:::i;:::-;25555:4;25550:3;25546:14;25532:28;;25387:179;;;;:::o;25572:113::-;25642:4;25674;25669:3;25665:14;25657:22;;25572:113;;;:::o;25721:732::-;25840:3;25869:54;25917:5;25869:54;:::i;:::-;25939:86;26018:6;26013:3;25939:86;:::i;:::-;25932:93;;26049:56;26099:5;26049:56;:::i;:::-;26128:7;26159:1;26144:284;26169:6;26166:1;26163:13;26144:284;;;26245:6;26239:13;26272:63;26331:3;26316:13;26272:63;:::i;:::-;26265:70;;26358:60;26411:6;26358:60;:::i;:::-;26348:70;;26204:224;26191:1;26188;26184:9;26179:14;;26144:284;;;26148:14;26444:3;26437:10;;25845:608;;;25721:732;;;;:::o;26459:831::-;26722:4;26760:3;26749:9;26745:19;26737:27;;26774:71;26842:1;26831:9;26827:17;26818:6;26774:71;:::i;:::-;26855:80;26931:2;26920:9;26916:18;26907:6;26855:80;:::i;:::-;26982:9;26976:4;26972:20;26967:2;26956:9;26952:18;26945:48;27010:108;27113:4;27104:6;27010:108;:::i;:::-;27002:116;;27128:72;27196:2;27185:9;27181:18;27172:6;27128:72;:::i;:::-;27210:73;27278:3;27267:9;27263:19;27254:6;27210:73;:::i;:::-;26459:831;;;;;;;;:::o;27296:147::-;27397:11;27434:3;27419:18;;27296:147;;;;:::o;27449:114::-;;:::o;27569:398::-;27728:3;27749:83;27830:1;27825:3;27749:83;:::i;:::-;27742:90;;27841:93;27930:3;27841:93;:::i;:::-;27959:1;27954:3;27950:11;27943:18;;27569:398;;;:::o;27973:379::-;28157:3;28179:147;28322:3;28179:147;:::i;:::-;28172:154;;28343:3;28336:10;;27973:379;;;:::o;28358:807::-;28607:4;28645:3;28634:9;28630:19;28622:27;;28659:71;28727:1;28716:9;28712:17;28703:6;28659:71;:::i;:::-;28740:72;28808:2;28797:9;28793:18;28784:6;28740:72;:::i;:::-;28822:80;28898:2;28887:9;28883:18;28874:6;28822:80;:::i;:::-;28912;28988:2;28977:9;28973:18;28964:6;28912:80;:::i;:::-;29002:73;29070:3;29059:9;29055:19;29046:6;29002:73;:::i;:::-;29085;29153:3;29142:9;29138:19;29129:6;29085:73;:::i;:::-;28358:807;;;;;;;;;:::o;29171:663::-;29259:6;29267;29275;29324:2;29312:9;29303:7;29299:23;29295:32;29292:119;;;29330:79;;:::i;:::-;29292:119;29450:1;29475:64;29531:7;29522:6;29511:9;29507:22;29475:64;:::i;:::-;29465:74;;29421:128;29588:2;29614:64;29670:7;29661:6;29650:9;29646:22;29614:64;:::i;:::-;29604:74;;29559:129;29727:2;29753:64;29809:7;29800:6;29789:9;29785:22;29753:64;:::i;:::-;29743:74;;29698:129;29171:663;;;;;:::o;29840:332::-;29961:4;29999:2;29988:9;29984:18;29976:26;;30012:71;30080:1;30069:9;30065:17;30056:6;30012:71;:::i;:::-;30093:72;30161:2;30150:9;30146:18;30137:6;30093:72;:::i;:::-;29840:332;;;;;:::o

Swarm Source

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