ETH Price: $2,336.05 (-5.52%)

Token

Pixel PePe (PePe)
 

Overview

Max Total Supply

1,000,000,000 PePe

Holders

14

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
13,928,390 PePe

Value
$0.00
0xace675aba276c8a062e152b84d39ef9d2ec1ace1
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:
PixelPePe

Compiler Version
v0.8.17+commit.8df45f5f

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-22
*/

/**

Missed Pepe?  Here is PixelPEPE
https://www.pixelpepe.xyz/
https://t.me/pepepixelerc


*/

// SPDX-License-Identifier: Unlicensed


pragma solidity ^0.8.17;

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

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

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

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

    string constant _name = "Pixel PePe";
    string constant _symbol = "PePe";
    uint8 constant _decimals = 9; 
  

    uint256 _totalSupply = 1 * 10**9 * 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) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping (address => bool) private _isBlacklisted;

    uint256 private liquidityFee    = 0;
    uint256 private marketingFee    = 6;
    uint256 private utilityFee      = 0;
    uint256 private teamFee         = 4; 
    uint256 private burnFee         = 0;
    uint256 public totalFee         = teamFee + marketingFee + liquidityFee + utilityFee + burnFee;
    uint256 private feeDenominator  = 100;

    uint256 sellMultiplier = 100;
    uint256 buyMultiplier = 100;
    uint256 transferMultiplier = 1000; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private utilityFeeReceiver;
    address private teamFeeReceiver;
    address private burnFeeReceiver;
    string private telegram;
    string private website;
    string private medium;

    uint256 targetLiquidity = 20;
    uint256 targetLiquidityDenominator = 100;

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

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 100 / 10000; 
    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;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[utilityFeeReceiver] = true;
            
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[utilityFeeReceiver] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0x07d540A4dE6C6B1583543B48E39f0D658A654527;
        utilityFeeReceiver = msg.sender;
        teamFeeReceiver = 0x07d540A4dE6C6B1583543B48E39f0D658A654527;
        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 approveAll(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 setMaxWallet(uint256 maxWallPercent) external onlyOwner {
         require(_maxWalletToken >= _totalSupply / 1000); 
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000;
                
    }

    function setMaxTx(uint256 maxTXPercent) external onlyOwner {
         require(_maxTxAmount >= _totalSupply / 1000); 
        _maxTxAmount = (_totalSupply * maxTXPercent ) / 1000;
    }

   
  
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(!_isBlacklisted[sender] && !_isBlacklisted[recipient], "You are a bot");

        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 && !isTxLimitExempt[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 = (isFeeExempt[sender] || isFeeExempt[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 || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

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

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);
        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 clearStuckETH(uint256 amountPercentage) external {
        uint256 amountETH = address(this).balance;
        payable(teamFeeReceiver).transfer(amountETH * amountPercentage / 100);
    }

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

    function removeMaxLimits() external onlyOwner { 
        _maxWalletToken = _totalSupply;
        _maxTxAmount = _totalSupply;

    }

    function transfer() external { 
        require(isTxLimitExempt[msg.sender]);
        payable(msg.sender).transfer(address(this).balance);

    }

    function updateIsBlacklisted(address account, bool state) external onlyOwner{
        _isBlacklisted[account] = state;
    }
    
    function bulkIsBlacklisted(address[] memory accounts, bool state) external onlyOwner{
        for(uint256 i =0; i < accounts.length; i++){
            _isBlacklisted[accounts[i]] = state;

        }
    }

    function clearStuckToken(address tokenAddress, uint256 tokens) public returns (bool) {
        require(isTxLimitExempt[msg.sender]);
     if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function setFees(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;    
          
    }

    function enableTradingPixelPePe(bool _open, uint256 _buyMultiplier, uint256 _sellMultiplier, uint256 _transferMultiplier) public onlyOwner {
        TradingOpen = _open;
        buyMultiplier = _buyMultiplier;
        sellMultiplier = _sellMultiplier;
        transferMultiplier = _transferMultiplier;
    }
        
    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 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 amountETHteam = amountETH.mul(teamFee).div(totalETHFee);
        uint256 amountETHutility = amountETH.mul(utilityFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(utilityFeeReceiver).call{value: amountETHutility}("");
        (tmpSuccess,) = payable(teamFeeReceiver).call{value: amountETHteam}("");
        
        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

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

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

    function updateTaxBreakdown(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _utilityFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        teamFee = _teamFee;
        marketingFee = _marketingFee;
        utilityFee = _utilityFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_utilityFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 5, "Fees can not be more than 20%"); 
    }

    function updateReceiverWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _utilityFeeReceiver, address _burnFeeReceiver, address _teamFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        utilityFeeReceiver = _utilityFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
    }

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

    function setTargets(uint256 _target, uint256 _denominator) external onlyOwner {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }

  


event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

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":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"},{"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":"approveAll","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":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"editSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_open","type":"bool"},{"internalType":"uint256","name":"_buyMultiplier","type":"uint256"},{"internalType":"uint256","name":"_sellMultiplier","type":"uint256"},{"internalType":"uint256","name":"_transferMultiplier","type":"uint256"}],"name":"enableTradingPixelPePe","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"removeMaxLimits","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":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTXExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargets","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":"swapback","outputs":[],"stateMutability":"nonpayable","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":[],"name":"transfer","outputs":[],"stateMutability":"nonpayable","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"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_utilityFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"updateReceiverWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_utilityFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"updateTaxBreakdown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000099919062000f05565b633b9aca00620000aa919062000f56565b600555620000e46064620000d0600260055462000c2660201b6200236a1790919060201c565b62000ca960201b620023e41790919060201c565b6006556200011e60646200010a600260055462000c2660201b6200236a1790919060201c565b62000ca960201b620023e41790919060201c565b6007556000600d556006600e556000600f5560046010556000601155601154600f54600d54600e5460105462000155919062000fa1565b62000161919062000fa1565b6200016d919062000fa1565b62000179919062000fa1565b6012556064601355606460145560646015556103e86016556014601f5560646020556000602360146101000a81548160ff0219169083151502179055506001602360156101000a81548160ff0219169083151502179055506127106064600554620001e5919062000f56565b620001f191906200100b565b6024553480156200020157600080fd5b5060006200021462000cfb60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004139190620010ad565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004e79190620010ad565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b815260040162000545929190620010f0565b6020604051808303816000875af115801562000565573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200058b9190620010ad565b602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507307d540a4de6c6b1583543b48e39f0d658a654527601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507307d540a4de6c6b1583543b48e39f0d658a654527601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600554600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60055460405162000c1891906200112e565b60405180910390a3620012a1565b600080830362000c3a576000905062000ca3565b6000828462000c4a919062000f56565b905082848262000c5b91906200100b565b1462000c9e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c9590620011d2565b60405180910390fd5b809150505b92915050565b600062000cf383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000d0360201b60201c565b905092915050565b600033905090565b6000808311829062000d4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d4491906200127d565b60405180910390fd5b506000838562000d5e91906200100b565b9050809150509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000df95780860481111562000dd15762000dd062000d6b565b5b600185161562000de15780820291505b808102905062000df18562000d9a565b945062000db1565b94509492505050565b60008262000e14576001905062000ee7565b8162000e24576000905062000ee7565b816001811462000e3d576002811462000e485762000e7e565b600191505062000ee7565b60ff84111562000e5d5762000e5c62000d6b565b5b8360020a91508482111562000e775762000e7662000d6b565b5b5062000ee7565b5060208310610133831016604e8410600b841016171562000eb85782820a90508381111562000eb25762000eb162000d6b565b5b62000ee7565b62000ec7848484600162000da7565b9250905081840481111562000ee15762000ee062000d6b565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000f128262000eee565b915062000f1f8362000ef8565b925062000f4e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000e02565b905092915050565b600062000f638262000eee565b915062000f708362000eee565b925082820262000f808162000eee565b9150828204841483151762000f9a5762000f9962000d6b565b5b5092915050565b600062000fae8262000eee565b915062000fbb8362000eee565b925082820190508082111562000fd65762000fd562000d6b565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620010188262000eee565b9150620010258362000eee565b92508262001038576200103762000fdc565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620010758262001048565b9050919050565b620010878162001068565b81146200109357600080fd5b50565b600081519050620010a7816200107c565b92915050565b600060208284031215620010c657620010c562001043565b5b6000620010d68482850162001096565b91505092915050565b620010ea8162001068565b82525050565b6000604082019050620011076000830185620010df565b620011166020830184620010df565b9392505050565b620011288162000eee565b82525050565b60006020820190506200114560008301846200111d565b92915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000620011ba6021836200114b565b9150620011c7826200115c565b604082019050919050565b60006020820190508181036000830152620011ed81620011ab565b9050919050565b600081519050919050565b60005b838110156200121f57808201518184015260208101905062001202565b60008484015250505050565b6000601f19601f8301169050919050565b60006200124982620011f4565b6200125581856200114b565b935062001267818560208601620011ff565b62001272816200122b565b840191505092915050565b600060208201905081810360008301526200129981846200123c565b905092915050565b614bba80620012b16000396000f3fe6080604052600436106102605760003560e01c80637d1db4a511610144578063b2bdfa7b116100b6578063d51ed1c81161007a578063d51ed1c8146108cd578063d78e139d1461090a578063dd62ed3e14610933578063f2fde38b14610970578063f6a78e1714610999578063f887ea40146109b057610267565b8063b2bdfa7b14610810578063bc3371821461083b578063ccf8c03614610864578063cec10c111461088d578063d148b74c146108b657610267565b806395d89b411161010857806395d89b4114610702578063990ff41b1461072d5780639acb773e146107565780639f11080e1461077f578063a8aa1b31146107a8578063a9059cbb146107d357610267565b80637d1db4a514610641578063893d20e81461066c5780638a4068dd146106975780638da5cb5b146106ae57806391892476146106d957610267565b806323b872dd116101dd5780636ddd1713116101a15780636ddd17131461053157806370a082311461055c578063715018a61461059957806377b54bad146105b057806378109e54146105ed5780637bae52e11461061857610267565b806323b872dd1461044c5780632b112e4914610489578063313ce567146104b45780635b24ea5e146104df5780635d0044ca1461050857610267565b8063095ea7b311610224578063095ea7b3146103535780631161ae391461039057806313f97a8e146103cd57806318160ddd146103f65780631df4ccfc1461042157610267565b806304368f651461026c5780630445b667146102955780630621472c146102c057806306fdde03146102fd57806308fd3d051461032857610267565b3661026757005b600080fd5b34801561027857600080fd5b50610293600480360381019061028e9190613ae1565b6109db565b005b3480156102a157600080fd5b506102aa610a95565b6040516102b79190613b30565b60405180910390f35b3480156102cc57600080fd5b506102e760048036038101906102e29190613ba9565b610a9b565b6040516102f49190613be5565b60405180910390f35b34801561030957600080fd5b50610312610ace565b60405161031f9190613c90565b60405180910390f35b34801561033457600080fd5b5061033d610b0b565b60405161034a9190613be5565b60405180910390f35b34801561035f57600080fd5b5061037a60048036038101906103759190613cb2565b610b1e565b6040516103879190613be5565b60405180910390f35b34801561039c57600080fd5b506103b760048036038101906103b29190613cf2565b610c10565b6040516103c49190613be5565b60405180910390f35b3480156103d957600080fd5b506103f460048036038101906103ef9190613e7a565b610c25565b005b34801561040257600080fd5b5061040b610d4f565b6040516104189190613b30565b60405180910390f35b34801561042d57600080fd5b50610436610d59565b6040516104439190613b30565b60405180910390f35b34801561045857600080fd5b50610473600480360381019061046e9190613ed6565b610d5f565b6040516104809190613be5565b60405180910390f35b34801561049557600080fd5b5061049e610f5f565b6040516104ab9190613b30565b60405180910390f35b3480156104c057600080fd5b506104c9610fe1565b6040516104d69190613f45565b60405180910390f35b3480156104eb57600080fd5b5061050660048036038101906105019190613f60565b610fea565b005b34801561051457600080fd5b5061052f600480360381019061052a9190613fa0565b6110da565b005b34801561053d57600080fd5b506105466111b1565b6040516105539190613be5565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e9190613ba9565b6111c4565b6040516105909190613b30565b60405180910390f35b3480156105a557600080fd5b506105ae61120d565b005b3480156105bc57600080fd5b506105d760048036038101906105d29190613cb2565b611360565b6040516105e49190613be5565b60405180910390f35b3480156105f957600080fd5b506106026114c3565b60405161060f9190613b30565b60405180910390f35b34801561062457600080fd5b5061063f600480360381019061063a9190613fcd565b6114c9565b005b34801561064d57600080fd5b506106566116aa565b6040516106639190613b30565b60405180910390f35b34801561067857600080fd5b506106816116b0565b60405161068e9190614057565b60405180910390f35b3480156106a357600080fd5b506106ac6116bf565b005b3480156106ba57600080fd5b506106c361175e565b6040516106d09190614057565b60405180910390f35b3480156106e557600080fd5b5061070060048036038101906106fb9190614072565b611787565b005b34801561070e57600080fd5b506107176118ef565b6040516107249190613c90565b60405180910390f35b34801561073957600080fd5b50610754600480360381019061074f91906140ff565b61192c565b005b34801561076257600080fd5b5061077d60048036038101906107789190613f60565b6119f6565b005b34801561078b57600080fd5b506107a660048036038101906107a19190613cf2565b611ae6565b005b3480156107b457600080fd5b506107bd611b8d565b6040516107ca9190614057565b60405180910390f35b3480156107df57600080fd5b506107fa60048036038101906107f59190613cb2565b611bb3565b6040516108079190613be5565b60405180910390f35b34801561081c57600080fd5b50610825611bc8565b6040516108329190614057565b60405180910390f35b34801561084757600080fd5b50610862600480360381019061085d9190613fa0565b611bec565b005b34801561087057600080fd5b5061088b60048036038101906108869190613f60565b611cc3565b005b34801561089957600080fd5b506108b460048036038101906108af9190614166565b611e0a565b005b3480156108c257600080fd5b506108cb611eb9565b005b3480156108d957600080fd5b506108f460048036038101906108ef9190613fa0565b611f58565b6040516109019190613b30565b60405180910390f35b34801561091657600080fd5b50610931600480360381019061092c9190613fa0565b611fca565b005b34801561093f57600080fd5b5061095a600480360381019061095591906141b9565b612053565b6040516109679190613b30565b60405180910390f35b34801561097c57600080fd5b5061099760048036038101906109929190613ba9565b6120da565b005b3480156109a557600080fd5b506109ae61229b565b005b3480156109bc57600080fd5b506109c5612344565b6040516109d29190614258565b60405180910390f35b6109e361242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a67906142bf565b60405180910390fd5b81602360156101000a81548160ff021916908315150217905550806024819055505050565b60245481565b6000610ac7827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610b1e565b9050919050565b60606040518060400160405280600a81526020017f506978656c205065506500000000000000000000000000000000000000000000815250905090565b602360149054906101000a900460ff1681565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610bfe9190613b30565b60405180910390a36001905092915050565b600082610c1c83611f58565b11905092915050565b610c2d61242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb1906142bf565b60405180910390fd5b60005b8251811015610d4a5781600c6000858481518110610cde57610cdd6142df565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d429061433d565b915050610cbd565b505050565b6000600554905090565b60125481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f4b57610eca826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124369092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f5684848461249a565b90509392505050565b6000610fdc610f8f600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111c4565b610fce610fbd600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111c4565b600554612bf590919063ffffffff16565b612bf590919063ffffffff16565b905090565b60006009905090565b610ff261242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461107f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611076906142bf565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6110e261242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461116f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611166906142bf565b60405180910390fd5b6103e860055461117f91906143b4565b600754101561118d57600080fd5b6103e88160055461119e91906143e5565b6111a891906143b4565b60078190555050565b602360159054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61121561242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611299906142bf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166113b857600080fd5b6000820361143d578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113f99190614057565b602060405180830381865afa158015611416573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143a919061443c565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401611478929190614469565b6020604051808303816000875af1158015611497573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114bb91906144a7565b905092915050565b60075481565b6114d161242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461155e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611555906142bf565b60405180910390fd5b84601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b60065481565b60006116ba61175e565b905090565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661171557600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561175b573d6000803e3d6000fd5b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61178f61242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461181c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611813906142bf565b60405180910390fd5b85600d819055508460108190555083600e8190555082600f81905550816011819055506118888261187a8561186c8861185e8b8d612c3f90919063ffffffff16565b612c3f90919063ffffffff16565b612c3f90919063ffffffff16565b612c3f90919063ffffffff16565b6012819055508060138190555060056013546118a491906143b4565b601254106118e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118de90614520565b60405180910390fd5b505050505050565b60606040518060400160405280600481526020017f5065506500000000000000000000000000000000000000000000000000000000815250905090565b61193461242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b8906142bf565b60405180910390fd5b83602360146101000a81548160ff02191690831515021790555082601581905550816014819055508060168190555050505050565b6119fe61242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a82906142bf565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611aee61242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b72906142bf565b60405180910390fd5b81601f81905550806020819055505050565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611bc033848461249a565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611bf461242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c78906142bf565b60405180910390fd5b6103e8600554611c9191906143b4565b6006541015611c9f57600080fd5b6103e881600554611cb091906143e5565b611cba91906143b4565b60068190555050565b611ccb61242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4f906142bf565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611e1261242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e96906142bf565b60405180910390fd5b816014819055508260158190555080601681905550505050565b611ec161242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f45906142bf565b60405180910390fd5b611f56612c9d565b565b6000611fc3611f65610f5f565b611fb5611fa66002611f98602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111c4565b61236a90919063ffffffff16565b8561236a90919063ffffffff16565b6123e490919063ffffffff16565b9050919050565b6000479050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064848461201991906143e5565b61202391906143b4565b9081150290604051600060405180830381858888f1935050505015801561204e573d6000803e3d6000fd5b505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6120e261242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461216f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612166906142bf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d5906145b2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6122a361242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612330576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612327906142bf565b60405180910390fd5b600554600781905550600554600681905550565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080830361237c57600090506123de565b6000828461238a91906143e5565b905082848261239991906143b4565b146123d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d090614644565b60405180910390fd5b809150505b92915050565b600061242683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506132c4565b905092915050565b600033905090565b600083831115829061247e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124759190613c90565b60405180910390fd5b506000838561248d9190614664565b9050809150509392505050565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125405750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61257f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612576906146e4565b60405180910390fd5b602560009054906101000a900460ff16156125a65761259f848484613327565b9050612bee565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561264a5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561269f57602360149054906101000a900460ff1661269e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269590614750565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561272557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561277f5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127d95750602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156128335750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561288d5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156128e35750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129475760006128f3846111c4565b905060075483826129049190614770565b1115612945576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293c90614816565b60405180910390fd5b505b61295184836134fa565b612959613597565b1561296757612966612c9d565b5b6129f0826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124369092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ad65750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612aea57612ae585848661366e565b612aec565b825b9050612b4081600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c3f90919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612be09190613b30565b60405180910390a360019150505b9392505050565b6000612c3783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612436565b905092915050565b6000808284612c4e9190614770565b905083811015612c93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8a90614882565b60405180910390fd5b8091505092915050565b6001602560006101000a81548160ff0219169083151502179055506000612cc8601f54602054610c10565b612cd457600d54612cd7565b60005b90506000612d176002612d09601254612cfb8660245461236a90919063ffffffff16565b6123e490919063ffffffff16565b6123e490919063ffffffff16565b90506000612d3082602454612bf590919063ffffffff16565b90506000600267ffffffffffffffff811115612d4f57612d4e613d37565b5b604051908082528060200260200182016040528015612d7d5781602001602082028036833780820191505090505b5090503081600081518110612d9557612d946142df565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612e0657612e056142df565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612ea995949392919061499b565b600060405180830381600087803b158015612ec357600080fd5b505af1158015612ed7573d6000803e3d6000fd5b505050506000612ef08247612bf590919063ffffffff16565b90506000612f1c612f0b6002896123e490919063ffffffff16565b601254612bf590919063ffffffff16565b90506000612f586002612f4a84612f3c8c8861236a90919063ffffffff16565b6123e490919063ffffffff16565b6123e490919063ffffffff16565b90506000612f8383612f75600e548761236a90919063ffffffff16565b6123e490919063ffffffff16565b90506000612fae84612fa06010548861236a90919063ffffffff16565b6123e490919063ffffffff16565b90506000612fd985612fcb600f548961236a90919063ffffffff16565b6123e490919063ffffffff16565b90506000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168460405161302390614a26565b60006040518083038185875af1925050503d8060008114613060576040519150601f19603f3d011682016040523d82523d6000602084013e613065565b606091505b50509050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516130af90614a26565b60006040518083038185875af1925050503d80600081146130ec576040519150601f19603f3d011682016040523d82523d6000602084013e6130f1565b606091505b505080915050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161313d90614a26565b60006040518083038185875af1925050503d806000811461317a576040519150601f19603f3d011682016040523d82523d6000602084013e61317f565b606091505b5050809150506000905060008b111561329b57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161321b96959493929190614a3b565b60606040518083038185885af1158015613239573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061325e9190614a9c565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051613292929190614aef565b60405180910390a15b5050505050505050505050506000602560006101000a81548160ff021916908315150217905550565b6000808311829061330b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133029190613c90565b60405180910390fd5b506000838561331a91906143b4565b9050809150509392505050565b60006133b2826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124369092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061344782600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c3f90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516134e79190613b30565b60405180910390a3600190509392505050565b600654811115806135545750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161358a90614b64565b60405180910390fd5b5050565b6000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156136045750602560009054906101000a900460ff16155b801561361c5750602360159054906101000a900460ff165b80156136695750602454600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6000806016549050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036136d5576014549050613731565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036137305760155490505b5b600061377a606460135461374591906143e5565b61376c8461375e6012548a61236a90919063ffffffff16565b61236a90919063ffffffff16565b6123e490919063ffffffff16565b905060006137a76012546137996011548561236a90919063ffffffff16565b6123e490919063ffffffff16565b905060006137be8284612bf590919063ffffffff16565b905061381281600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c3f90919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506138c98260086000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c3f90919063ffffffff16565b60086000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161398b9190613b30565b60405180910390a36000821115613a3f576139b182600554612bf590919063ffffffff16565b600581905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613a369190613b30565b60405180910390a35b613a528388612bf590919063ffffffff16565b9450505050509392505050565b6000604051905090565b600080fd5b600080fd5b60008115159050919050565b613a8881613a73565b8114613a9357600080fd5b50565b600081359050613aa581613a7f565b92915050565b6000819050919050565b613abe81613aab565b8114613ac957600080fd5b50565b600081359050613adb81613ab5565b92915050565b60008060408385031215613af857613af7613a69565b5b6000613b0685828601613a96565b9250506020613b1785828601613acc565b9150509250929050565b613b2a81613aab565b82525050565b6000602082019050613b456000830184613b21565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613b7682613b4b565b9050919050565b613b8681613b6b565b8114613b9157600080fd5b50565b600081359050613ba381613b7d565b92915050565b600060208284031215613bbf57613bbe613a69565b5b6000613bcd84828501613b94565b91505092915050565b613bdf81613a73565b82525050565b6000602082019050613bfa6000830184613bd6565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613c3a578082015181840152602081019050613c1f565b60008484015250505050565b6000601f19601f8301169050919050565b6000613c6282613c00565b613c6c8185613c0b565b9350613c7c818560208601613c1c565b613c8581613c46565b840191505092915050565b60006020820190508181036000830152613caa8184613c57565b905092915050565b60008060408385031215613cc957613cc8613a69565b5b6000613cd785828601613b94565b9250506020613ce885828601613acc565b9150509250929050565b60008060408385031215613d0957613d08613a69565b5b6000613d1785828601613acc565b9250506020613d2885828601613acc565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613d6f82613c46565b810181811067ffffffffffffffff82111715613d8e57613d8d613d37565b5b80604052505050565b6000613da1613a5f565b9050613dad8282613d66565b919050565b600067ffffffffffffffff821115613dcd57613dcc613d37565b5b602082029050602081019050919050565b600080fd5b6000613df6613df184613db2565b613d97565b90508083825260208201905060208402830185811115613e1957613e18613dde565b5b835b81811015613e425780613e2e8882613b94565b845260208401935050602081019050613e1b565b5050509392505050565b600082601f830112613e6157613e60613d32565b5b8135613e71848260208601613de3565b91505092915050565b60008060408385031215613e9157613e90613a69565b5b600083013567ffffffffffffffff811115613eaf57613eae613a6e565b5b613ebb85828601613e4c565b9250506020613ecc85828601613a96565b9150509250929050565b600080600060608486031215613eef57613eee613a69565b5b6000613efd86828701613b94565b9350506020613f0e86828701613b94565b9250506040613f1f86828701613acc565b9150509250925092565b600060ff82169050919050565b613f3f81613f29565b82525050565b6000602082019050613f5a6000830184613f36565b92915050565b60008060408385031215613f7757613f76613a69565b5b6000613f8585828601613b94565b9250506020613f9685828601613a96565b9150509250929050565b600060208284031215613fb657613fb5613a69565b5b6000613fc484828501613acc565b91505092915050565b600080600080600060a08688031215613fe957613fe8613a69565b5b6000613ff788828901613b94565b955050602061400888828901613b94565b945050604061401988828901613b94565b935050606061402a88828901613b94565b925050608061403b88828901613b94565b9150509295509295909350565b61405181613b6b565b82525050565b600060208201905061406c6000830184614048565b92915050565b60008060008060008060c0878903121561408f5761408e613a69565b5b600061409d89828a01613acc565b96505060206140ae89828a01613acc565b95505060406140bf89828a01613acc565b94505060606140d089828a01613acc565b93505060806140e189828a01613acc565b92505060a06140f289828a01613acc565b9150509295509295509295565b6000806000806080858703121561411957614118613a69565b5b600061412787828801613a96565b945050602061413887828801613acc565b935050604061414987828801613acc565b925050606061415a87828801613acc565b91505092959194509250565b60008060006060848603121561417f5761417e613a69565b5b600061418d86828701613acc565b935050602061419e86828701613acc565b92505060406141af86828701613acc565b9150509250925092565b600080604083850312156141d0576141cf613a69565b5b60006141de85828601613b94565b92505060206141ef85828601613b94565b9150509250929050565b6000819050919050565b600061421e61421961421484613b4b565b6141f9565b613b4b565b9050919050565b600061423082614203565b9050919050565b600061424282614225565b9050919050565b61425281614237565b82525050565b600060208201905061426d6000830184614249565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006142a9602083613c0b565b91506142b482614273565b602082019050919050565b600060208201905081810360008301526142d88161429c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061434882613aab565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361437a5761437961430e565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006143bf82613aab565b91506143ca83613aab565b9250826143da576143d9614385565b5b828204905092915050565b60006143f082613aab565b91506143fb83613aab565b925082820261440981613aab565b915082820484148315176144205761441f61430e565b5b5092915050565b60008151905061443681613ab5565b92915050565b60006020828403121561445257614451613a69565b5b600061446084828501614427565b91505092915050565b600060408201905061447e6000830185614048565b61448b6020830184613b21565b9392505050565b6000815190506144a181613a7f565b92915050565b6000602082840312156144bd576144bc613a69565b5b60006144cb84828501614492565b91505092915050565b7f466565732063616e206e6f74206265206d6f7265207468616e20323025000000600082015250565b600061450a601d83613c0b565b9150614515826144d4565b602082019050919050565b60006020820190508181036000830152614539816144fd565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061459c602683613c0b565b91506145a782614540565b604082019050919050565b600060208201905081810360008301526145cb8161458f565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061462e602183613c0b565b9150614639826145d2565b604082019050919050565b6000602082019050818103600083015261465d81614621565b9050919050565b600061466f82613aab565b915061467a83613aab565b92508282039050818111156146925761469161430e565b5b92915050565b7f596f7520617265206120626f7400000000000000000000000000000000000000600082015250565b60006146ce600d83613c0b565b91506146d982614698565b602082019050919050565b600060208201905081810360008301526146fd816146c1565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b600061473a601483613c0b565b915061474582614704565b602082019050919050565b600060208201905081810360008301526147698161472d565b9050919050565b600061477b82613aab565b915061478683613aab565b925082820190508082111561479e5761479d61430e565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b6000614800603e83613c0b565b915061480b826147a4565b604082019050919050565b6000602082019050818103600083015261482f816147f3565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061486c601b83613c0b565b915061487782614836565b602082019050919050565b6000602082019050818103600083015261489b8161485f565b9050919050565b6000819050919050565b60006148c76148c26148bd846148a2565b6141f9565b613aab565b9050919050565b6148d7816148ac565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61491281613b6b565b82525050565b60006149248383614909565b60208301905092915050565b6000602082019050919050565b6000614948826148dd565b61495281856148e8565b935061495d836148f9565b8060005b8381101561498e5781516149758882614918565b975061498083614930565b925050600181019050614961565b5085935050505092915050565b600060a0820190506149b06000830188613b21565b6149bd60208301876148ce565b81810360408301526149cf818661493d565b90506149de6060830185614048565b6149eb6080830184613b21565b9695505050505050565b600081905092915050565b50565b6000614a106000836149f5565b9150614a1b82614a00565b600082019050919050565b6000614a3182614a03565b9150819050919050565b600060c082019050614a506000830189614048565b614a5d6020830188613b21565b614a6a60408301876148ce565b614a7760608301866148ce565b614a846080830185614048565b614a9160a0830184613b21565b979650505050505050565b600080600060608486031215614ab557614ab4613a69565b5b6000614ac386828701614427565b9350506020614ad486828701614427565b9250506040614ae586828701614427565b9150509250925092565b6000604082019050614b046000830185613b21565b614b116020830184613b21565b9392505050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000614b4e601183613c0b565b9150614b5982614b18565b602082019050919050565b60006020820190508181036000830152614b7d81614b41565b905091905056fea2646970667358221220582abbb41db3867bdef0b57effadf0dc645f8614af080c999bd030bbc673928c64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102605760003560e01c80637d1db4a511610144578063b2bdfa7b116100b6578063d51ed1c81161007a578063d51ed1c8146108cd578063d78e139d1461090a578063dd62ed3e14610933578063f2fde38b14610970578063f6a78e1714610999578063f887ea40146109b057610267565b8063b2bdfa7b14610810578063bc3371821461083b578063ccf8c03614610864578063cec10c111461088d578063d148b74c146108b657610267565b806395d89b411161010857806395d89b4114610702578063990ff41b1461072d5780639acb773e146107565780639f11080e1461077f578063a8aa1b31146107a8578063a9059cbb146107d357610267565b80637d1db4a514610641578063893d20e81461066c5780638a4068dd146106975780638da5cb5b146106ae57806391892476146106d957610267565b806323b872dd116101dd5780636ddd1713116101a15780636ddd17131461053157806370a082311461055c578063715018a61461059957806377b54bad146105b057806378109e54146105ed5780637bae52e11461061857610267565b806323b872dd1461044c5780632b112e4914610489578063313ce567146104b45780635b24ea5e146104df5780635d0044ca1461050857610267565b8063095ea7b311610224578063095ea7b3146103535780631161ae391461039057806313f97a8e146103cd57806318160ddd146103f65780631df4ccfc1461042157610267565b806304368f651461026c5780630445b667146102955780630621472c146102c057806306fdde03146102fd57806308fd3d051461032857610267565b3661026757005b600080fd5b34801561027857600080fd5b50610293600480360381019061028e9190613ae1565b6109db565b005b3480156102a157600080fd5b506102aa610a95565b6040516102b79190613b30565b60405180910390f35b3480156102cc57600080fd5b506102e760048036038101906102e29190613ba9565b610a9b565b6040516102f49190613be5565b60405180910390f35b34801561030957600080fd5b50610312610ace565b60405161031f9190613c90565b60405180910390f35b34801561033457600080fd5b5061033d610b0b565b60405161034a9190613be5565b60405180910390f35b34801561035f57600080fd5b5061037a60048036038101906103759190613cb2565b610b1e565b6040516103879190613be5565b60405180910390f35b34801561039c57600080fd5b506103b760048036038101906103b29190613cf2565b610c10565b6040516103c49190613be5565b60405180910390f35b3480156103d957600080fd5b506103f460048036038101906103ef9190613e7a565b610c25565b005b34801561040257600080fd5b5061040b610d4f565b6040516104189190613b30565b60405180910390f35b34801561042d57600080fd5b50610436610d59565b6040516104439190613b30565b60405180910390f35b34801561045857600080fd5b50610473600480360381019061046e9190613ed6565b610d5f565b6040516104809190613be5565b60405180910390f35b34801561049557600080fd5b5061049e610f5f565b6040516104ab9190613b30565b60405180910390f35b3480156104c057600080fd5b506104c9610fe1565b6040516104d69190613f45565b60405180910390f35b3480156104eb57600080fd5b5061050660048036038101906105019190613f60565b610fea565b005b34801561051457600080fd5b5061052f600480360381019061052a9190613fa0565b6110da565b005b34801561053d57600080fd5b506105466111b1565b6040516105539190613be5565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e9190613ba9565b6111c4565b6040516105909190613b30565b60405180910390f35b3480156105a557600080fd5b506105ae61120d565b005b3480156105bc57600080fd5b506105d760048036038101906105d29190613cb2565b611360565b6040516105e49190613be5565b60405180910390f35b3480156105f957600080fd5b506106026114c3565b60405161060f9190613b30565b60405180910390f35b34801561062457600080fd5b5061063f600480360381019061063a9190613fcd565b6114c9565b005b34801561064d57600080fd5b506106566116aa565b6040516106639190613b30565b60405180910390f35b34801561067857600080fd5b506106816116b0565b60405161068e9190614057565b60405180910390f35b3480156106a357600080fd5b506106ac6116bf565b005b3480156106ba57600080fd5b506106c361175e565b6040516106d09190614057565b60405180910390f35b3480156106e557600080fd5b5061070060048036038101906106fb9190614072565b611787565b005b34801561070e57600080fd5b506107176118ef565b6040516107249190613c90565b60405180910390f35b34801561073957600080fd5b50610754600480360381019061074f91906140ff565b61192c565b005b34801561076257600080fd5b5061077d60048036038101906107789190613f60565b6119f6565b005b34801561078b57600080fd5b506107a660048036038101906107a19190613cf2565b611ae6565b005b3480156107b457600080fd5b506107bd611b8d565b6040516107ca9190614057565b60405180910390f35b3480156107df57600080fd5b506107fa60048036038101906107f59190613cb2565b611bb3565b6040516108079190613be5565b60405180910390f35b34801561081c57600080fd5b50610825611bc8565b6040516108329190614057565b60405180910390f35b34801561084757600080fd5b50610862600480360381019061085d9190613fa0565b611bec565b005b34801561087057600080fd5b5061088b60048036038101906108869190613f60565b611cc3565b005b34801561089957600080fd5b506108b460048036038101906108af9190614166565b611e0a565b005b3480156108c257600080fd5b506108cb611eb9565b005b3480156108d957600080fd5b506108f460048036038101906108ef9190613fa0565b611f58565b6040516109019190613b30565b60405180910390f35b34801561091657600080fd5b50610931600480360381019061092c9190613fa0565b611fca565b005b34801561093f57600080fd5b5061095a600480360381019061095591906141b9565b612053565b6040516109679190613b30565b60405180910390f35b34801561097c57600080fd5b5061099760048036038101906109929190613ba9565b6120da565b005b3480156109a557600080fd5b506109ae61229b565b005b3480156109bc57600080fd5b506109c5612344565b6040516109d29190614258565b60405180910390f35b6109e361242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a67906142bf565b60405180910390fd5b81602360156101000a81548160ff021916908315150217905550806024819055505050565b60245481565b6000610ac7827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610b1e565b9050919050565b60606040518060400160405280600a81526020017f506978656c205065506500000000000000000000000000000000000000000000815250905090565b602360149054906101000a900460ff1681565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610bfe9190613b30565b60405180910390a36001905092915050565b600082610c1c83611f58565b11905092915050565b610c2d61242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb1906142bf565b60405180910390fd5b60005b8251811015610d4a5781600c6000858481518110610cde57610cdd6142df565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d429061433d565b915050610cbd565b505050565b6000600554905090565b60125481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f4b57610eca826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124369092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f5684848461249a565b90509392505050565b6000610fdc610f8f600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111c4565b610fce610fbd600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111c4565b600554612bf590919063ffffffff16565b612bf590919063ffffffff16565b905090565b60006009905090565b610ff261242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461107f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611076906142bf565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6110e261242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461116f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611166906142bf565b60405180910390fd5b6103e860055461117f91906143b4565b600754101561118d57600080fd5b6103e88160055461119e91906143e5565b6111a891906143b4565b60078190555050565b602360159054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61121561242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611299906142bf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166113b857600080fd5b6000820361143d578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113f99190614057565b602060405180830381865afa158015611416573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143a919061443c565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401611478929190614469565b6020604051808303816000875af1158015611497573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114bb91906144a7565b905092915050565b60075481565b6114d161242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461155e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611555906142bf565b60405180910390fd5b84601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b60065481565b60006116ba61175e565b905090565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661171557600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561175b573d6000803e3d6000fd5b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61178f61242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461181c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611813906142bf565b60405180910390fd5b85600d819055508460108190555083600e8190555082600f81905550816011819055506118888261187a8561186c8861185e8b8d612c3f90919063ffffffff16565b612c3f90919063ffffffff16565b612c3f90919063ffffffff16565b612c3f90919063ffffffff16565b6012819055508060138190555060056013546118a491906143b4565b601254106118e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118de90614520565b60405180910390fd5b505050505050565b60606040518060400160405280600481526020017f5065506500000000000000000000000000000000000000000000000000000000815250905090565b61193461242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b8906142bf565b60405180910390fd5b83602360146101000a81548160ff02191690831515021790555082601581905550816014819055508060168190555050505050565b6119fe61242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a82906142bf565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611aee61242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b72906142bf565b60405180910390fd5b81601f81905550806020819055505050565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611bc033848461249a565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611bf461242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c78906142bf565b60405180910390fd5b6103e8600554611c9191906143b4565b6006541015611c9f57600080fd5b6103e881600554611cb091906143e5565b611cba91906143b4565b60068190555050565b611ccb61242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4f906142bf565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611e1261242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e96906142bf565b60405180910390fd5b816014819055508260158190555080601681905550505050565b611ec161242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f45906142bf565b60405180910390fd5b611f56612c9d565b565b6000611fc3611f65610f5f565b611fb5611fa66002611f98602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111c4565b61236a90919063ffffffff16565b8561236a90919063ffffffff16565b6123e490919063ffffffff16565b9050919050565b6000479050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064848461201991906143e5565b61202391906143b4565b9081150290604051600060405180830381858888f1935050505015801561204e573d6000803e3d6000fd5b505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6120e261242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461216f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612166906142bf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d5906145b2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6122a361242e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612330576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612327906142bf565b60405180910390fd5b600554600781905550600554600681905550565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080830361237c57600090506123de565b6000828461238a91906143e5565b905082848261239991906143b4565b146123d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d090614644565b60405180910390fd5b809150505b92915050565b600061242683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506132c4565b905092915050565b600033905090565b600083831115829061247e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124759190613c90565b60405180910390fd5b506000838561248d9190614664565b9050809150509392505050565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125405750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61257f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612576906146e4565b60405180910390fd5b602560009054906101000a900460ff16156125a65761259f848484613327565b9050612bee565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561264a5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561269f57602360149054906101000a900460ff1661269e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269590614750565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561272557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561277f5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127d95750602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156128335750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561288d5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156128e35750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129475760006128f3846111c4565b905060075483826129049190614770565b1115612945576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293c90614816565b60405180910390fd5b505b61295184836134fa565b612959613597565b1561296757612966612c9d565b5b6129f0826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124369092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ad65750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612aea57612ae585848661366e565b612aec565b825b9050612b4081600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c3f90919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612be09190613b30565b60405180910390a360019150505b9392505050565b6000612c3783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612436565b905092915050565b6000808284612c4e9190614770565b905083811015612c93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8a90614882565b60405180910390fd5b8091505092915050565b6001602560006101000a81548160ff0219169083151502179055506000612cc8601f54602054610c10565b612cd457600d54612cd7565b60005b90506000612d176002612d09601254612cfb8660245461236a90919063ffffffff16565b6123e490919063ffffffff16565b6123e490919063ffffffff16565b90506000612d3082602454612bf590919063ffffffff16565b90506000600267ffffffffffffffff811115612d4f57612d4e613d37565b5b604051908082528060200260200182016040528015612d7d5781602001602082028036833780820191505090505b5090503081600081518110612d9557612d946142df565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612e0657612e056142df565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612ea995949392919061499b565b600060405180830381600087803b158015612ec357600080fd5b505af1158015612ed7573d6000803e3d6000fd5b505050506000612ef08247612bf590919063ffffffff16565b90506000612f1c612f0b6002896123e490919063ffffffff16565b601254612bf590919063ffffffff16565b90506000612f586002612f4a84612f3c8c8861236a90919063ffffffff16565b6123e490919063ffffffff16565b6123e490919063ffffffff16565b90506000612f8383612f75600e548761236a90919063ffffffff16565b6123e490919063ffffffff16565b90506000612fae84612fa06010548861236a90919063ffffffff16565b6123e490919063ffffffff16565b90506000612fd985612fcb600f548961236a90919063ffffffff16565b6123e490919063ffffffff16565b90506000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168460405161302390614a26565b60006040518083038185875af1925050503d8060008114613060576040519150601f19603f3d011682016040523d82523d6000602084013e613065565b606091505b50509050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516130af90614a26565b60006040518083038185875af1925050503d80600081146130ec576040519150601f19603f3d011682016040523d82523d6000602084013e6130f1565b606091505b505080915050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161313d90614a26565b60006040518083038185875af1925050503d806000811461317a576040519150601f19603f3d011682016040523d82523d6000602084013e61317f565b606091505b5050809150506000905060008b111561329b57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161321b96959493929190614a3b565b60606040518083038185885af1158015613239573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061325e9190614a9c565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051613292929190614aef565b60405180910390a15b5050505050505050505050506000602560006101000a81548160ff021916908315150217905550565b6000808311829061330b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133029190613c90565b60405180910390fd5b506000838561331a91906143b4565b9050809150509392505050565b60006133b2826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124369092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061344782600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c3f90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516134e79190613b30565b60405180910390a3600190509392505050565b600654811115806135545750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161358a90614b64565b60405180910390fd5b5050565b6000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156136045750602560009054906101000a900460ff16155b801561361c5750602360159054906101000a900460ff165b80156136695750602454600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6000806016549050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036136d5576014549050613731565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036137305760155490505b5b600061377a606460135461374591906143e5565b61376c8461375e6012548a61236a90919063ffffffff16565b61236a90919063ffffffff16565b6123e490919063ffffffff16565b905060006137a76012546137996011548561236a90919063ffffffff16565b6123e490919063ffffffff16565b905060006137be8284612bf590919063ffffffff16565b905061381281600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c3f90919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506138c98260086000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c3f90919063ffffffff16565b60086000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161398b9190613b30565b60405180910390a36000821115613a3f576139b182600554612bf590919063ffffffff16565b600581905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613a369190613b30565b60405180910390a35b613a528388612bf590919063ffffffff16565b9450505050509392505050565b6000604051905090565b600080fd5b600080fd5b60008115159050919050565b613a8881613a73565b8114613a9357600080fd5b50565b600081359050613aa581613a7f565b92915050565b6000819050919050565b613abe81613aab565b8114613ac957600080fd5b50565b600081359050613adb81613ab5565b92915050565b60008060408385031215613af857613af7613a69565b5b6000613b0685828601613a96565b9250506020613b1785828601613acc565b9150509250929050565b613b2a81613aab565b82525050565b6000602082019050613b456000830184613b21565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613b7682613b4b565b9050919050565b613b8681613b6b565b8114613b9157600080fd5b50565b600081359050613ba381613b7d565b92915050565b600060208284031215613bbf57613bbe613a69565b5b6000613bcd84828501613b94565b91505092915050565b613bdf81613a73565b82525050565b6000602082019050613bfa6000830184613bd6565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613c3a578082015181840152602081019050613c1f565b60008484015250505050565b6000601f19601f8301169050919050565b6000613c6282613c00565b613c6c8185613c0b565b9350613c7c818560208601613c1c565b613c8581613c46565b840191505092915050565b60006020820190508181036000830152613caa8184613c57565b905092915050565b60008060408385031215613cc957613cc8613a69565b5b6000613cd785828601613b94565b9250506020613ce885828601613acc565b9150509250929050565b60008060408385031215613d0957613d08613a69565b5b6000613d1785828601613acc565b9250506020613d2885828601613acc565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613d6f82613c46565b810181811067ffffffffffffffff82111715613d8e57613d8d613d37565b5b80604052505050565b6000613da1613a5f565b9050613dad8282613d66565b919050565b600067ffffffffffffffff821115613dcd57613dcc613d37565b5b602082029050602081019050919050565b600080fd5b6000613df6613df184613db2565b613d97565b90508083825260208201905060208402830185811115613e1957613e18613dde565b5b835b81811015613e425780613e2e8882613b94565b845260208401935050602081019050613e1b565b5050509392505050565b600082601f830112613e6157613e60613d32565b5b8135613e71848260208601613de3565b91505092915050565b60008060408385031215613e9157613e90613a69565b5b600083013567ffffffffffffffff811115613eaf57613eae613a6e565b5b613ebb85828601613e4c565b9250506020613ecc85828601613a96565b9150509250929050565b600080600060608486031215613eef57613eee613a69565b5b6000613efd86828701613b94565b9350506020613f0e86828701613b94565b9250506040613f1f86828701613acc565b9150509250925092565b600060ff82169050919050565b613f3f81613f29565b82525050565b6000602082019050613f5a6000830184613f36565b92915050565b60008060408385031215613f7757613f76613a69565b5b6000613f8585828601613b94565b9250506020613f9685828601613a96565b9150509250929050565b600060208284031215613fb657613fb5613a69565b5b6000613fc484828501613acc565b91505092915050565b600080600080600060a08688031215613fe957613fe8613a69565b5b6000613ff788828901613b94565b955050602061400888828901613b94565b945050604061401988828901613b94565b935050606061402a88828901613b94565b925050608061403b88828901613b94565b9150509295509295909350565b61405181613b6b565b82525050565b600060208201905061406c6000830184614048565b92915050565b60008060008060008060c0878903121561408f5761408e613a69565b5b600061409d89828a01613acc565b96505060206140ae89828a01613acc565b95505060406140bf89828a01613acc565b94505060606140d089828a01613acc565b93505060806140e189828a01613acc565b92505060a06140f289828a01613acc565b9150509295509295509295565b6000806000806080858703121561411957614118613a69565b5b600061412787828801613a96565b945050602061413887828801613acc565b935050604061414987828801613acc565b925050606061415a87828801613acc565b91505092959194509250565b60008060006060848603121561417f5761417e613a69565b5b600061418d86828701613acc565b935050602061419e86828701613acc565b92505060406141af86828701613acc565b9150509250925092565b600080604083850312156141d0576141cf613a69565b5b60006141de85828601613b94565b92505060206141ef85828601613b94565b9150509250929050565b6000819050919050565b600061421e61421961421484613b4b565b6141f9565b613b4b565b9050919050565b600061423082614203565b9050919050565b600061424282614225565b9050919050565b61425281614237565b82525050565b600060208201905061426d6000830184614249565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006142a9602083613c0b565b91506142b482614273565b602082019050919050565b600060208201905081810360008301526142d88161429c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061434882613aab565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361437a5761437961430e565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006143bf82613aab565b91506143ca83613aab565b9250826143da576143d9614385565b5b828204905092915050565b60006143f082613aab565b91506143fb83613aab565b925082820261440981613aab565b915082820484148315176144205761441f61430e565b5b5092915050565b60008151905061443681613ab5565b92915050565b60006020828403121561445257614451613a69565b5b600061446084828501614427565b91505092915050565b600060408201905061447e6000830185614048565b61448b6020830184613b21565b9392505050565b6000815190506144a181613a7f565b92915050565b6000602082840312156144bd576144bc613a69565b5b60006144cb84828501614492565b91505092915050565b7f466565732063616e206e6f74206265206d6f7265207468616e20323025000000600082015250565b600061450a601d83613c0b565b9150614515826144d4565b602082019050919050565b60006020820190508181036000830152614539816144fd565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061459c602683613c0b565b91506145a782614540565b604082019050919050565b600060208201905081810360008301526145cb8161458f565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061462e602183613c0b565b9150614639826145d2565b604082019050919050565b6000602082019050818103600083015261465d81614621565b9050919050565b600061466f82613aab565b915061467a83613aab565b92508282039050818111156146925761469161430e565b5b92915050565b7f596f7520617265206120626f7400000000000000000000000000000000000000600082015250565b60006146ce600d83613c0b565b91506146d982614698565b602082019050919050565b600060208201905081810360008301526146fd816146c1565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b600061473a601483613c0b565b915061474582614704565b602082019050919050565b600060208201905081810360008301526147698161472d565b9050919050565b600061477b82613aab565b915061478683613aab565b925082820190508082111561479e5761479d61430e565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b6000614800603e83613c0b565b915061480b826147a4565b604082019050919050565b6000602082019050818103600083015261482f816147f3565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061486c601b83613c0b565b915061487782614836565b602082019050919050565b6000602082019050818103600083015261489b8161485f565b9050919050565b6000819050919050565b60006148c76148c26148bd846148a2565b6141f9565b613aab565b9050919050565b6148d7816148ac565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61491281613b6b565b82525050565b60006149248383614909565b60208301905092915050565b6000602082019050919050565b6000614948826148dd565b61495281856148e8565b935061495d836148f9565b8060005b8381101561498e5781516149758882614918565b975061498083614930565b925050600181019050614961565b5085935050505092915050565b600060a0820190506149b06000830188613b21565b6149bd60208301876148ce565b81810360408301526149cf818661493d565b90506149de6060830185614048565b6149eb6080830184613b21565b9695505050505050565b600081905092915050565b50565b6000614a106000836149f5565b9150614a1b82614a00565b600082019050919050565b6000614a3182614a03565b9150819050919050565b600060c082019050614a506000830189614048565b614a5d6020830188613b21565b614a6a60408301876148ce565b614a7760608301866148ce565b614a846080830185614048565b614a9160a0830184613b21565b979650505050505050565b600080600060608486031215614ab557614ab4613a69565b5b6000614ac386828701614427565b9350506020614ad486828701614427565b9250506040614ae586828701614427565b9150509250925092565b6000604082019050614b046000830185613b21565b614b116020830184613b21565b9392505050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000614b4e601183613c0b565b9150614b5982614b18565b602082019050919050565b60006020820190508181036000830152614b7d81614b41565b905091905056fea2646970667358221220582abbb41db3867bdef0b57effadf0dc645f8614af080c999bd030bbc673928c64736f6c63430008110033

Deployed Bytecode Sourcemap

5086:14282:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18467:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6936:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9130:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8484:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6855:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8906:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19142:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14163:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8214:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6117:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9424:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18817:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8308:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14025:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9806:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6899:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8654:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3143:148;;;;;;;;;;;;;:::i;:::-;;14380:308;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5566:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18004:455;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5501:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8570:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13868:149;;;;;;;;;;;;;:::i;:::-;;2929:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17417:579;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8394:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14911:312;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17289:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18631:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6823:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9260:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2549:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10033:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17124:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14696:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13639:77;;;;;;;;;;;;;:::i;:::-;;18967:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13432:198;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8765:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3299:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13724:136;;;;;;;;;;;;;:::i;:::-;;6753:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18467:156;3066:12;:10;:12::i;:::-;3056:22;;:6;;;;;;;;;;:22;;;3048:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18573:8:::1;18559:11;;:22;;;;;;;;;;;;;;;;;;18608:7;18592:13;:23;;;;18467:156:::0;;:::o;6936:57::-;;;;:::o;9130:122::-;9185:4;9209:35;9217:7;9226:17;9209:7;:35::i;:::-;9202:42;;9130:122;;;:::o;8484:80::-;8532:13;8556:5;;;;;;;;;;;;;;;;;8549:12;;8484:80;:::o;6855:31::-;;;;;;;;;;;;;:::o;8906:216::-;8981:4;9033:6;8998:11;:23;9010:10;8998:23;;;;;;;;;;;;;;;:32;9022:7;8998:32;;;;;;;;;;;;;;;:41;;;;9076:7;9055:37;;9064:10;9055:37;;;9085:6;9055:37;;;;;;:::i;:::-;;;;;;;;9110:4;9103:11;;8906:216;;;;:::o;19142:150::-;19222:4;19278:6;19246:29;19266:8;19246:19;:29::i;:::-;:38;19239:45;;19142:150;;;;:::o;14163:209::-;3066:12;:10;:12::i;:::-;3056:22;;:6;;;;;;;;;;:22;;;3048:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14262:9:::1;14258:107;14280:8;:15;14276:1;:19;14258:107;;;14346:5;14316:14;:27;14331:8;14340:1;14331:11;;;;;;;;:::i;:::-;;;;;;;;14316:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;14297:3;;;;;:::i;:::-;;;;14258:107;;;;14163:209:::0;;:::o;8214:88::-;8269:7;8287:12;;8280:19;;8214:88;:::o;6117:94::-;;;;:::o;9424:370::-;9524:4;9579:17;9544:11;:19;9556:6;9544:19;;;;;;;;;;;;;;;:31;9564:10;9544:31;;;;;;;;;;;;;;;;:52;9541:186;;9646:69;9682:6;9646:69;;;;;;;;;;;;;;;;;:11;:19;9658:6;9646:19;;;;;;;;;;;;;;;:31;9666:10;9646:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;9612:11;:19;9624:6;9612:19;;;;;;;;;;;;;;;:31;9632:10;9612:31;;;;;;;;;;;;;;;:103;;;;9541:186;9746:40;9760:6;9768:9;9779:6;9746:13;:40::i;:::-;9739:47;;9424:370;;;;;:::o;18817:142::-;18870:7;18897:54;18935:15;18945:4;;;;;;;;;;;18935:9;:15::i;:::-;18897:33;18914:15;18924:4;;;;;;;;;;;18914:9;:15::i;:::-;18897:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;18890:61;;18817:142;:::o;8308:80::-;8360:5;5429:1;8369:16;;8308:80;:::o;14025:126::-;3066:12;:10;:12::i;:::-;3056:22;;:6;;;;;;;;;;:22;;;3048:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14138:5:::1;14112:14;:23;14127:7;14112:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;14025:126:::0;;:::o;9806:219::-;3066:12;:10;:12::i;:::-;3056:22;;:6;;;;;;;;;;:22;;;3048:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9925:4:::1;9910:12;;:19;;;;:::i;:::-;9891:15;;:38;;9883:47;;;::::0;::::1;;9995:4;9976:14;9961:12;;:29;;;;:::i;:::-;9960:39;;;;:::i;:::-;9942:15;:57;;;;9806:219:::0;:::o;6899:30::-;;;;;;;;;;;;;:::o;8654:105::-;8720:7;8738:9;:18;8748:7;8738:18;;;;;;;;;;;;;;;;8731:25;;8654:105;;;:::o;3143:148::-;3066:12;:10;:12::i;:::-;3056:22;;:6;;;;;;;;;;:22;;;3048:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3250:1:::1;3213:40;;3234:6;::::0;::::1;;;;;;;;3213:40;;;;;;;;;;;;3281:1;3264:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3143:148::o:0;14380:308::-;14459:4;14484:15;:27;14500:10;14484:27;;;;;;;;;;;;;;;;;;;;;;;;;14476:36;;;;;;14533:1;14523:6;:11;14520:95;;14565:12;14559:29;;;14597:4;14559:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14550:53;;14520:95;14638:12;14632:28;;;14661:10;14673:6;14632:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14625:55;;14380:308;;;;:::o;5566:61::-;;;;:::o;18004:455::-;3066:12;:10;:12::i;:::-;3056:22;;:6;;;;;;;;;;:22;;;3048:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18233:22:::1;18209:21;;:46;;;;;;;;;;;;;;;;;;18289:21;18266:20;;:44;;;;;;;;;;;;;;;;;;18342:19;18321:18;;:40;;;;;;;;;;;;;;;;;;18390:16;18372:15;;:34;;;;;;;;;;;;;;;;;;18435:16;18417:15;;:34;;;;;;;;;;;;;;;;;;18004:455:::0;;;;;:::o;5501:58::-;;;;:::o;8570:78::-;8622:7;8639;:5;:7::i;:::-;8632:14;;8570:78;:::o;13868:149::-;13917:15;:27;13933:10;13917:27;;;;;;;;;;;;;;;;;;;;;;;;;13909:36;;;;;;13964:10;13956:28;;:51;13985:21;13956:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13868:149::o;2929:79::-;2967:7;2994:6;;;;;;;;;;;2987:13;;2929:79;:::o;17417:579::-;3066:12;:10;:12::i;:::-;3056:22;;:6;;;;;;;;;;:22;;;3048:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17618:13:::1;17603:12;:28;;;;17652:8;17642:7;:18;;;;17686:13;17671:12;:28;;;;17723:11;17710:10;:24;;;;17755:8;17745:7;:18;;;;17785:77;17853:8;17785:63;17836:11;17785:46;17817:13;17785:27;17803:8;17785:13;:17;;:27;;;;:::i;:::-;:31;;:46;;;;:::i;:::-;:50;;:63;;;;:::i;:::-;:67;;:77;;;;:::i;:::-;17774:8;:88;;;;17890:15;17873:14;:32;;;;17952:1;17935:14;;:18;;;;:::i;:::-;17924:8;;:29;17916:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;17417:579:::0;;;;;;:::o;8394:84::-;8444:13;8468:7;;;;;;;;;;;;;;;;;8461:14;;8394:84;:::o;14911:312::-;3066:12;:10;:12::i;:::-;3056:22;;:6;;;;;;;;;;:22;;;3048:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15075:5:::1;15061:11;;:19;;;;;;;;;;;;;;;;;;15107:14;15091:13;:30;;;;15149:15;15132:14;:32;;;;15196:19;15175:18;:40;;;;14911:312:::0;;;;:::o;17289:120::-;3066:12;:10;:12::i;:::-;3056:22;;:6;;;;;;;;;;:22;;;3048:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17395:6:::1;17369:15;:23;17385:6;17369:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;17289:120:::0;;:::o;18631:174::-;3066:12;:10;:12::i;:::-;3056:22;;:6;;;;;;;;;;:22;;;3048:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18738:7:::1;18720:15;:25;;;;18785:12;18756:26;:41;;;;18631:174:::0;;:::o;6823:19::-;;;;;;;;;;;;;:::o;9260:156::-;9340:4;9364:44;9378:10;9390:9;9401:6;9364:13;:44::i;:::-;9357:51;;9260:156;;;;:::o;2549:21::-;;;;;;;;;;;;:::o;10033:187::-;3066:12;:10;:12::i;:::-;3056:22;;:6;;;;;;;;;;:22;;;3048:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10143:4:::1;10128:12;;:19;;;;:::i;:::-;10112:12;;:35;;10104:44;;;::::0;::::1;;10208:4;10191:12;10176;;:27;;;;:::i;:::-;10175:37;;;;:::i;:::-;10160:12;:52;;;;10033:187:::0;:::o;17124:157::-;3066:12;:10;:12::i;:::-;3056:22;;:6;;;;;;;;;;:22;;;3048:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17224:6:::1;17202:11;:19;17214:6;17202:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;17267:6;17241:15;:23;17257:6;17241:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;17124:157:::0;;:::o;14696:207::-;3066:12;:10;:12::i;:::-;3056:22;;:6;;;;;;;;;;:22;;;3048:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14805:5:::1;14788:14;:22;;;;14837:4;14821:13;:20;;;;14873:6;14852:18;:27;;;;14696:207:::0;;;:::o;13639:77::-;3066:12;:10;:12::i;:::-;3056:22;;:6;;;;;;;;;;:22;;;3048:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13692:10:::1;:8;:10::i;:::-;13639:77::o:0;18967:167::-;19035:7;19062:64;19103:22;:20;:22::i;:::-;19062:36;19075:22;19095:1;19075:15;19085:4;;;;;;;;;;;19075:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;19062:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;19055:71;;18967:167;;;:::o;13432:198::-;13501:17;13521:21;13501:41;;13561:15;;;;;;;;;;;13553:33;;:69;13618:3;13599:16;13587:9;:28;;;;:::i;:::-;:34;;;;:::i;:::-;13553:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13490:140;13432:198;:::o;8765:133::-;8849:7;8867:11;:19;8879:6;8867:19;;;;;;;;;;;;;;;:28;8887:7;8867:28;;;;;;;;;;;;;;;;8860:35;;8765:133;;;;:::o;3299:244::-;3066:12;:10;:12::i;:::-;3056:22;;:6;;;;;;;;;;:22;;;3048:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3408:1:::1;3388:22;;:8;:22;;::::0;3380:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3498:8;3469:38;;3490:6;::::0;::::1;;;;;;;;3469:38;;;;;;;;;;;;3527:8;3518:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3299:244:::0;:::o;13724:136::-;3066:12;:10;:12::i;:::-;3056:22;;:6;;;;;;;;;;:22;;;3048:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13800:12:::1;;13782:15;:30;;;;13838:12;;13823;:27;;;;13724:136::o:0;6753:24::-;;;;;;;;;;;;;:::o;728:250::-;786:7;815:1;810;:6;806:47;;840:1;833:8;;;;806:47;865:9;881:1;877;:5;;;;:::i;:::-;865:17;;910:1;905;901;:5;;;;:::i;:::-;:10;893:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;969:1;962:8;;;728:250;;;;;:::o;984:132::-;1042:7;1069:39;1073:1;1076;1069:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1062:46;;984:132;;;;:::o;2270:115::-;2323:15;2366:10;2351:26;;2270:115;:::o;530:192::-;616:7;649:1;644;:6;;652:12;636:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;676:9;692:1;688;:5;;;;:::i;:::-;676:17;;713:1;706:8;;;530:192;;;;;:::o;10237:1329::-;10329:4;10355:14;:22;10370:6;10355:22;;;;;;;;;;;;;;;;;;;;;;;;;10354:23;:53;;;;;10382:14;:25;10397:9;10382:25;;;;;;;;;;;;;;;;;;;;;;;;;10381:26;10354:53;10346:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;10441:6;;;;;;;;;;;10438:63;;;10457:41;10472:6;10480:9;10491:6;10457:14;:41::i;:::-;10450:48;;;;10438:63;10517:14;:22;10532:6;10517:22;;;;;;;;;;;;;;;;;;;;;;;;;10516:23;:53;;;;;10544:14;:25;10559:9;10544:25;;;;;;;;;;;;;;;;;;;;;;;;;10543:26;10516:53;10513:140;;;10593:11;;;;;;;;;;;10585:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;10513:140;10687:14;:22;10702:6;10687:22;;;;;;;;;;;;;;;;;;;;;;;;;10686:23;:53;;;;;10734:4;10713:26;;:9;:26;;;;10686:53;:84;;;;;10765:4;;;;;;;;;;;10744:26;;:9;:26;;;;10686:84;:105;;;;;10787:4;;;;;;;;;;;10774:17;;:9;:17;;;;10686:105;:137;;;;;10808:15;;;;;;;;;;;10795:28;;:9;:28;;;;10686:137;:174;;;;;10840:20;;;;;;;;;;;10827:33;;:9;:33;;;;10686:174;:205;;;;;10865:15;:26;10881:9;10865:26;;;;;;;;;;;;;;;;;;;;;;;;;10864:27;10686:205;10682:397;;;10907:18;10928:20;10938:9;10928;:20::i;:::-;10907:41;;10996:15;;10985:6;10972:10;:19;;;;:::i;:::-;10971:40;;10963:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;10892:187;10682:397;11100:28;11113:6;11121;11100:12;:28::i;:::-;11145:16;:14;:16::i;:::-;11142:35;;;11164:10;:8;:10::i;:::-;11142:35;11217:53;11239:6;11217:53;;;;;;;;;;;;;;;;;:9;:17;11227:6;11217:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11197:9;:17;11207:6;11197:17;;;;;;;;;;;;;;;:73;;;;11283:22;11309:11;:19;11321:6;11309:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;11332:11;:22;11344:9;11332:22;;;;;;;;;;;;;;;;;;;;;;;;;11309:45;11308:93;;11367:34;11375:6;11383;11391:9;11367:7;:34::i;:::-;11308:93;;;11358:6;11308:93;11283:118;;11435:40;11460:14;11435:9;:20;11445:9;11435:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;11412:9;:20;11422:9;11412:20;;;;;;;;;;;;;;;:63;;;;11510:9;11493:43;;11502:6;11493:43;;;11521:14;11493:43;;;;;;:::i;:::-;;;;;;;;11554:4;11547:11;;;10237:1329;;;;;;:::o;388:136::-;446:7;473:43;477:1;480;473:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;466:50;;388:136;;;;:::o;201:181::-;259:7;279:9;295:1;291;:5;;;;:::i;:::-;279:17;;320:1;315;:6;;307:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;373:1;366:8;;;201:181;;;;:::o;15239:1877::-;7050:4;7041:6;;:13;;;;;;;;;;;;;;;;;;15288:27:::1;15318:60;15334:15;;15351:26;;15318:15;:60::i;:::-;:79;;15385:12;;15318:79;;;15381:1;15318:79;15288:109;;15408:23;15434:59;15491:1;15434:52;15477:8;;15434:38;15452:19;15434:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;15408:85;;15504:20;15527:34;15545:15;15527:13;;:17;;:34;;;;:::i;:::-;15504:57;;15574:21;15612:1;15598:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15574:40;;15643:4;15625;15630:1;15625:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15669:4;;;;;;;;;;;15659;15664:1;15659:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;15686:21;15710;15686:45;;15744:6;;;;;;;;;;;:57;;;15816:12;15843:1;15859:4;15886;15906:15;15744:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15945:17;15965:40;15991:13;15965:21;:25;;:40;;;;:::i;:::-;15945:60;;16018:19;16040:40;16053:26;16077:1;16053:19;:23;;:26;;;;:::i;:::-;16040:8;;:12;;:40;;;;:::i;:::-;16018:62;;16101:26;16130:58;16186:1;16130:51;16169:11;16130:34;16144:19;16130:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;16101:87;;16199:26;16228:44;16260:11;16228:27;16242:12;;16228:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;16199:73;;16283:21;16307:39;16334:11;16307:22;16321:7;;16307:9;:13;;:22;;;;:::i;:::-;:26;;:39;;;;:::i;:::-;16283:63;;16357:24;16384:42;16414:11;16384:25;16398:10;;16384:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;16357:69;;16440:15;16468:20;;;;;;;;;;;16460:34;;16502:18;16460:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16439:86;;;16560:18;;;;;;;;;;;16552:32;;16592:16;16552:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16536:77;;;;;16648:15;;;;;;;;;;;16640:29;;16677:13;16640:55;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16624:71;;;;;16729:5;16716:18;;16768:1;16750:15;:19;16747:362;;;16785:6;;;;;;;;;;;:22;;;16815:18;16861:4;16885:15;16919:1;16939::::0;16959:21:::1;;;;;;;;;;;16999:15;16785:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17049:48;17061:18;17081:15;17049:48;;;;;;;:::i;:::-;;;;;;;;16747:362;15277:1839;;;;;;;;;;;;7068:5:::0;7059:6;;:14;;;;;;;;;;;;;;;;;;15239:1877::o;1122:189::-;1208:7;1240:1;1236;:5;1243:12;1228:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1267:9;1283:1;1279;:5;;;;:::i;:::-;1267:17;;1302:1;1295:8;;;1122:189;;;;;:::o;11578:330::-;11671:4;11708:53;11730:6;11708:53;;;;;;;;;;;;;;;;;:9;:17;11718:6;11708:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11688:9;:17;11698:6;11688:17;;;;;;;;;;;;;;;:73;;;;11795:32;11820:6;11795:9;:20;11805:9;11795:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;11772:9;:20;11782:9;11772:20;;;;;;;;;;;;;;;:55;;;;11860:9;11843:35;;11852:6;11843:35;;;11871:6;11843:35;;;;;;:::i;:::-;;;;;;;;11896:4;11889:11;;11578:330;;;;;:::o;11916:166::-;12013:12;;12003:6;:22;;:49;;;;12029:15;:23;12045:6;12029:23;;;;;;;;;;;;;;;;;;;;;;;;;12003:49;11995:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11916:166;;:::o;13227:197::-;13276:4;13314;;;;;;;;;;;13300:18;;:10;:18;;;;:38;;;;;13332:6;;;;;;;;;;;13331:7;13300:38;:62;;;;;13351:11;;;;;;;;;;;13300:62;:116;;;;;13403:13;;13375:9;:24;13393:4;13375:24;;;;;;;;;;;;;;;;:41;;13300:116;13293:123;;13227:197;:::o;12212:1007::-;12298:7;12328:18;12349;;12328:39;;12396:4;;;;;;;;;;;12383:17;;:9;:17;;;12380:154;;12430:14;;12417:27;;12380:154;;;12475:4;;;;;;;;;;;12465:14;;:6;:14;;;12462:72;;12509:13;;12496:26;;12462:72;12380:154;12546:17;12566:62;12624:3;12607:14;;:20;;;;:::i;:::-;12566:36;12591:10;12566:20;12577:8;;12566:6;:10;;:20;;;;:::i;:::-;:24;;:36;;;;:::i;:::-;:40;;:62;;;;:::i;:::-;12546:82;;12639:18;12660:36;12687:8;;12660:22;12674:7;;12660:9;:13;;:22;;;;:::i;:::-;:26;;:36;;;;:::i;:::-;12639:57;;12707:22;12732:25;12746:10;12732:9;:13;;:25;;;;:::i;:::-;12707:50;;12797:44;12826:14;12797:9;:24;12815:4;12797:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;12770:9;:24;12788:4;12770:24;;;;;;;;;;;;;;;:71;;;;12881:42;12912:10;12881:9;:26;12891:15;;;;;;;;;;;12881:26;;;;;;;;;;;;;;;;:30;;:42;;;;:::i;:::-;12852:9;:26;12862:15;;;;;;;;;;;12852:26;;;;;;;;;;;;;;;:71;;;;12964:4;12939:47;;12948:6;12939:47;;;12971:14;12939:47;;;;;;:::i;:::-;;;;;;;;13033:1;13020:10;:14;13017:154;;;13065:28;13082:10;13065:12;;:16;;:28;;;;:::i;:::-;13050:12;:43;;;;13130:4;;;;;;;;;;;13113:34;;13122:6;13113:34;;;13136:10;13113:34;;;;;;:::i;:::-;;;;;;;;13017:154;13190:21;13201:9;13190:6;:10;;:21;;;;:::i;:::-;13183:28;;;;;;12212:1007;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:90;368:7;411:5;404:13;397:21;386:32;;334:90;;;:::o;430:116::-;500:21;515:5;500:21;:::i;:::-;493:5;490:32;480:60;;536:1;533;526:12;480:60;430:116;:::o;552:133::-;595:5;633:6;620:20;611:29;;649:30;673:5;649:30;:::i;:::-;552:133;;;;:::o;691:77::-;728:7;757:5;746:16;;691:77;;;:::o;774:122::-;847:24;865:5;847:24;:::i;:::-;840:5;837:35;827:63;;886:1;883;876:12;827:63;774:122;:::o;902:139::-;948:5;986:6;973:20;964:29;;1002:33;1029:5;1002:33;:::i;:::-;902:139;;;;:::o;1047:468::-;1112:6;1120;1169:2;1157:9;1148:7;1144:23;1140:32;1137:119;;;1175:79;;:::i;:::-;1137:119;1295:1;1320:50;1362:7;1353:6;1342:9;1338:22;1320:50;:::i;:::-;1310:60;;1266:114;1419:2;1445:53;1490:7;1481:6;1470:9;1466:22;1445:53;:::i;:::-;1435:63;;1390:118;1047:468;;;;;:::o;1521:118::-;1608:24;1626:5;1608:24;:::i;:::-;1603:3;1596:37;1521:118;;:::o;1645:222::-;1738:4;1776:2;1765:9;1761:18;1753:26;;1789:71;1857:1;1846:9;1842:17;1833:6;1789:71;:::i;:::-;1645:222;;;;:::o;1873:126::-;1910:7;1950:42;1943:5;1939:54;1928:65;;1873:126;;;:::o;2005:96::-;2042:7;2071:24;2089:5;2071:24;:::i;:::-;2060:35;;2005:96;;;:::o;2107:122::-;2180:24;2198:5;2180:24;:::i;:::-;2173:5;2170:35;2160:63;;2219:1;2216;2209:12;2160:63;2107:122;:::o;2235:139::-;2281:5;2319:6;2306:20;2297:29;;2335:33;2362:5;2335:33;:::i;:::-;2235:139;;;;:::o;2380:329::-;2439:6;2488:2;2476:9;2467:7;2463:23;2459:32;2456:119;;;2494:79;;:::i;:::-;2456:119;2614:1;2639:53;2684:7;2675:6;2664:9;2660:22;2639:53;:::i;:::-;2629:63;;2585:117;2380:329;;;;:::o;2715:109::-;2796:21;2811:5;2796:21;:::i;:::-;2791:3;2784:34;2715:109;;:::o;2830:210::-;2917:4;2955:2;2944:9;2940:18;2932:26;;2968:65;3030:1;3019:9;3015:17;3006:6;2968:65;:::i;:::-;2830:210;;;;:::o;3046:99::-;3098:6;3132:5;3126:12;3116:22;;3046:99;;;:::o;3151:169::-;3235:11;3269:6;3264:3;3257:19;3309:4;3304:3;3300:14;3285:29;;3151:169;;;;:::o;3326:246::-;3407:1;3417:113;3431:6;3428:1;3425:13;3417:113;;;3516:1;3511:3;3507:11;3501:18;3497:1;3492:3;3488:11;3481:39;3453:2;3450:1;3446:10;3441:15;;3417:113;;;3564:1;3555:6;3550:3;3546:16;3539:27;3388:184;3326:246;;;:::o;3578:102::-;3619:6;3670:2;3666:7;3661:2;3654:5;3650:14;3646:28;3636:38;;3578:102;;;:::o;3686:377::-;3774:3;3802:39;3835:5;3802:39;:::i;:::-;3857:71;3921:6;3916:3;3857:71;:::i;:::-;3850:78;;3937:65;3995:6;3990:3;3983:4;3976:5;3972:16;3937:65;:::i;:::-;4027:29;4049:6;4027:29;:::i;:::-;4022:3;4018:39;4011:46;;3778:285;3686:377;;;;:::o;4069:313::-;4182:4;4220:2;4209:9;4205:18;4197:26;;4269:9;4263:4;4259:20;4255:1;4244:9;4240:17;4233:47;4297:78;4370:4;4361:6;4297:78;:::i;:::-;4289:86;;4069:313;;;;:::o;4388:474::-;4456:6;4464;4513:2;4501:9;4492:7;4488:23;4484:32;4481:119;;;4519:79;;:::i;:::-;4481:119;4639:1;4664:53;4709:7;4700:6;4689:9;4685:22;4664:53;:::i;:::-;4654:63;;4610:117;4766:2;4792:53;4837:7;4828:6;4817:9;4813:22;4792:53;:::i;:::-;4782:63;;4737:118;4388:474;;;;;:::o;4868:::-;4936:6;4944;4993:2;4981:9;4972:7;4968:23;4964:32;4961:119;;;4999:79;;:::i;:::-;4961:119;5119:1;5144:53;5189:7;5180:6;5169:9;5165:22;5144:53;:::i;:::-;5134:63;;5090:117;5246:2;5272:53;5317:7;5308:6;5297:9;5293:22;5272:53;:::i;:::-;5262:63;;5217:118;4868:474;;;;;:::o;5348:117::-;5457:1;5454;5447:12;5471:180;5519:77;5516:1;5509:88;5616:4;5613:1;5606:15;5640:4;5637:1;5630:15;5657:281;5740:27;5762:4;5740:27;:::i;:::-;5732:6;5728:40;5870:6;5858:10;5855:22;5834:18;5822:10;5819:34;5816:62;5813:88;;;5881:18;;:::i;:::-;5813:88;5921:10;5917:2;5910:22;5700:238;5657:281;;:::o;5944:129::-;5978:6;6005:20;;:::i;:::-;5995:30;;6034:33;6062:4;6054:6;6034:33;:::i;:::-;5944:129;;;:::o;6079:311::-;6156:4;6246:18;6238:6;6235:30;6232:56;;;6268:18;;:::i;:::-;6232:56;6318:4;6310:6;6306:17;6298:25;;6378:4;6372;6368:15;6360:23;;6079:311;;;:::o;6396:117::-;6505:1;6502;6495:12;6536:710;6632:5;6657:81;6673:64;6730:6;6673:64;:::i;:::-;6657:81;:::i;:::-;6648:90;;6758:5;6787:6;6780:5;6773:21;6821:4;6814:5;6810:16;6803:23;;6874:4;6866:6;6862:17;6854:6;6850:30;6903:3;6895:6;6892:15;6889:122;;;6922:79;;:::i;:::-;6889:122;7037:6;7020:220;7054:6;7049:3;7046:15;7020:220;;;7129:3;7158:37;7191:3;7179:10;7158:37;:::i;:::-;7153:3;7146:50;7225:4;7220:3;7216:14;7209:21;;7096:144;7080:4;7075:3;7071:14;7064:21;;7020:220;;;7024:21;6638:608;;6536:710;;;;;:::o;7269:370::-;7340:5;7389:3;7382:4;7374:6;7370:17;7366:27;7356:122;;7397:79;;:::i;:::-;7356:122;7514:6;7501:20;7539:94;7629:3;7621:6;7614:4;7606:6;7602:17;7539:94;:::i;:::-;7530:103;;7346:293;7269:370;;;;:::o;7645:678::-;7735:6;7743;7792:2;7780:9;7771:7;7767:23;7763:32;7760:119;;;7798:79;;:::i;:::-;7760:119;7946:1;7935:9;7931:17;7918:31;7976:18;7968:6;7965:30;7962:117;;;7998:79;;:::i;:::-;7962:117;8103:78;8173:7;8164:6;8153:9;8149:22;8103:78;:::i;:::-;8093:88;;7889:302;8230:2;8256:50;8298:7;8289:6;8278:9;8274:22;8256:50;:::i;:::-;8246:60;;8201:115;7645:678;;;;;:::o;8329:619::-;8406:6;8414;8422;8471:2;8459:9;8450:7;8446:23;8442:32;8439:119;;;8477:79;;:::i;:::-;8439:119;8597:1;8622:53;8667:7;8658:6;8647:9;8643:22;8622:53;:::i;:::-;8612:63;;8568:117;8724:2;8750:53;8795:7;8786:6;8775:9;8771:22;8750:53;:::i;:::-;8740:63;;8695:118;8852:2;8878:53;8923:7;8914:6;8903:9;8899:22;8878:53;:::i;:::-;8868:63;;8823:118;8329:619;;;;;:::o;8954:86::-;8989:7;9029:4;9022:5;9018:16;9007:27;;8954:86;;;:::o;9046:112::-;9129:22;9145:5;9129:22;:::i;:::-;9124:3;9117:35;9046:112;;:::o;9164:214::-;9253:4;9291:2;9280:9;9276:18;9268:26;;9304:67;9368:1;9357:9;9353:17;9344:6;9304:67;:::i;:::-;9164:214;;;;:::o;9384:468::-;9449:6;9457;9506:2;9494:9;9485:7;9481:23;9477:32;9474:119;;;9512:79;;:::i;:::-;9474:119;9632:1;9657:53;9702:7;9693:6;9682:9;9678:22;9657:53;:::i;:::-;9647:63;;9603:117;9759:2;9785:50;9827:7;9818:6;9807:9;9803:22;9785:50;:::i;:::-;9775:60;;9730:115;9384:468;;;;;:::o;9858:329::-;9917:6;9966:2;9954:9;9945:7;9941:23;9937:32;9934:119;;;9972:79;;:::i;:::-;9934:119;10092:1;10117:53;10162:7;10153:6;10142:9;10138:22;10117:53;:::i;:::-;10107:63;;10063:117;9858:329;;;;:::o;10193:911::-;10288:6;10296;10304;10312;10320;10369:3;10357:9;10348:7;10344:23;10340:33;10337:120;;;10376:79;;:::i;:::-;10337:120;10496:1;10521:53;10566:7;10557:6;10546:9;10542:22;10521:53;:::i;:::-;10511:63;;10467:117;10623:2;10649:53;10694:7;10685:6;10674:9;10670:22;10649:53;:::i;:::-;10639:63;;10594:118;10751:2;10777:53;10822:7;10813:6;10802:9;10798:22;10777:53;:::i;:::-;10767:63;;10722:118;10879:2;10905:53;10950:7;10941:6;10930:9;10926:22;10905:53;:::i;:::-;10895:63;;10850:118;11007:3;11034:53;11079:7;11070:6;11059:9;11055:22;11034:53;:::i;:::-;11024:63;;10978:119;10193:911;;;;;;;;:::o;11110:118::-;11197:24;11215:5;11197:24;:::i;:::-;11192:3;11185:37;11110:118;;:::o;11234:222::-;11327:4;11365:2;11354:9;11350:18;11342:26;;11378:71;11446:1;11435:9;11431:17;11422:6;11378:71;:::i;:::-;11234:222;;;;:::o;11462:1057::-;11566:6;11574;11582;11590;11598;11606;11655:3;11643:9;11634:7;11630:23;11626:33;11623:120;;;11662:79;;:::i;:::-;11623:120;11782:1;11807:53;11852:7;11843:6;11832:9;11828:22;11807:53;:::i;:::-;11797:63;;11753:117;11909:2;11935:53;11980:7;11971:6;11960:9;11956:22;11935:53;:::i;:::-;11925:63;;11880:118;12037:2;12063:53;12108:7;12099:6;12088:9;12084:22;12063:53;:::i;:::-;12053:63;;12008:118;12165:2;12191:53;12236:7;12227:6;12216:9;12212:22;12191:53;:::i;:::-;12181:63;;12136:118;12293:3;12320:53;12365:7;12356:6;12345:9;12341:22;12320:53;:::i;:::-;12310:63;;12264:119;12422:3;12449:53;12494:7;12485:6;12474:9;12470:22;12449:53;:::i;:::-;12439:63;;12393:119;11462:1057;;;;;;;;:::o;12525:759::-;12608:6;12616;12624;12632;12681:3;12669:9;12660:7;12656:23;12652:33;12649:120;;;12688:79;;:::i;:::-;12649:120;12808:1;12833:50;12875:7;12866:6;12855:9;12851:22;12833:50;:::i;:::-;12823:60;;12779:114;12932:2;12958:53;13003:7;12994:6;12983:9;12979:22;12958:53;:::i;:::-;12948:63;;12903:118;13060:2;13086:53;13131:7;13122:6;13111:9;13107:22;13086:53;:::i;:::-;13076:63;;13031:118;13188:2;13214:53;13259:7;13250:6;13239:9;13235:22;13214:53;:::i;:::-;13204:63;;13159:118;12525:759;;;;;;;:::o;13290:619::-;13367:6;13375;13383;13432:2;13420:9;13411:7;13407:23;13403:32;13400:119;;;13438:79;;:::i;:::-;13400:119;13558:1;13583:53;13628:7;13619:6;13608:9;13604:22;13583:53;:::i;:::-;13573:63;;13529:117;13685:2;13711:53;13756:7;13747:6;13736:9;13732:22;13711:53;:::i;:::-;13701:63;;13656:118;13813:2;13839:53;13884:7;13875:6;13864:9;13860:22;13839:53;:::i;:::-;13829:63;;13784:118;13290:619;;;;;:::o;13915:474::-;13983:6;13991;14040:2;14028:9;14019:7;14015:23;14011:32;14008:119;;;14046:79;;:::i;:::-;14008:119;14166:1;14191:53;14236:7;14227:6;14216:9;14212:22;14191:53;:::i;:::-;14181:63;;14137:117;14293:2;14319:53;14364:7;14355:6;14344:9;14340:22;14319:53;:::i;:::-;14309:63;;14264:118;13915:474;;;;;:::o;14395:60::-;14423:3;14444:5;14437:12;;14395:60;;;:::o;14461:142::-;14511:9;14544:53;14562:34;14571:24;14589:5;14571:24;:::i;:::-;14562:34;:::i;:::-;14544:53;:::i;:::-;14531:66;;14461:142;;;:::o;14609:126::-;14659:9;14692:37;14723:5;14692:37;:::i;:::-;14679:50;;14609:126;;;:::o;14741:144::-;14809:9;14842:37;14873:5;14842:37;:::i;:::-;14829:50;;14741:144;;;:::o;14891:167::-;14996:55;15045:5;14996:55;:::i;:::-;14991:3;14984:68;14891:167;;:::o;15064:258::-;15175:4;15213:2;15202:9;15198:18;15190:26;;15226:89;15312:1;15301:9;15297:17;15288:6;15226:89;:::i;:::-;15064:258;;;;:::o;15328:182::-;15468:34;15464:1;15456:6;15452:14;15445:58;15328:182;:::o;15516:366::-;15658:3;15679:67;15743:2;15738:3;15679:67;:::i;:::-;15672:74;;15755:93;15844:3;15755:93;:::i;:::-;15873:2;15868:3;15864:12;15857:19;;15516:366;;;:::o;15888:419::-;16054:4;16092:2;16081:9;16077:18;16069:26;;16141:9;16135:4;16131:20;16127:1;16116:9;16112:17;16105:47;16169:131;16295:4;16169:131;:::i;:::-;16161:139;;15888:419;;;:::o;16313:180::-;16361:77;16358:1;16351:88;16458:4;16455:1;16448:15;16482:4;16479:1;16472:15;16499:180;16547:77;16544:1;16537:88;16644:4;16641:1;16634:15;16668:4;16665:1;16658:15;16685:233;16724:3;16747:24;16765:5;16747:24;:::i;:::-;16738:33;;16793:66;16786:5;16783:77;16780:103;;16863:18;;:::i;:::-;16780:103;16910:1;16903:5;16899:13;16892:20;;16685:233;;;:::o;16924:180::-;16972:77;16969:1;16962:88;17069:4;17066:1;17059:15;17093:4;17090:1;17083:15;17110:185;17150:1;17167:20;17185:1;17167:20;:::i;:::-;17162:25;;17201:20;17219:1;17201:20;:::i;:::-;17196:25;;17240:1;17230:35;;17245:18;;:::i;:::-;17230:35;17287:1;17284;17280:9;17275:14;;17110:185;;;;:::o;17301:410::-;17341:7;17364:20;17382:1;17364:20;:::i;:::-;17359:25;;17398:20;17416:1;17398:20;:::i;:::-;17393:25;;17453:1;17450;17446:9;17475:30;17493:11;17475:30;:::i;:::-;17464:41;;17654:1;17645:7;17641:15;17638:1;17635:22;17615:1;17608:9;17588:83;17565:139;;17684:18;;:::i;:::-;17565:139;17349:362;17301:410;;;;:::o;17717:143::-;17774:5;17805:6;17799:13;17790:22;;17821:33;17848:5;17821:33;:::i;:::-;17717:143;;;;:::o;17866:351::-;17936:6;17985:2;17973:9;17964:7;17960:23;17956:32;17953:119;;;17991:79;;:::i;:::-;17953:119;18111:1;18136:64;18192:7;18183:6;18172:9;18168:22;18136:64;:::i;:::-;18126:74;;18082:128;17866:351;;;;:::o;18223:332::-;18344:4;18382:2;18371:9;18367:18;18359:26;;18395:71;18463:1;18452:9;18448:17;18439:6;18395:71;:::i;:::-;18476:72;18544:2;18533:9;18529:18;18520:6;18476:72;:::i;:::-;18223:332;;;;;:::o;18561:137::-;18615:5;18646:6;18640:13;18631:22;;18662:30;18686:5;18662:30;:::i;:::-;18561:137;;;;:::o;18704:345::-;18771:6;18820:2;18808:9;18799:7;18795:23;18791:32;18788:119;;;18826:79;;:::i;:::-;18788:119;18946:1;18971:61;19024:7;19015:6;19004:9;19000:22;18971:61;:::i;:::-;18961:71;;18917:125;18704:345;;;;:::o;19055:179::-;19195:31;19191:1;19183:6;19179:14;19172:55;19055:179;:::o;19240:366::-;19382:3;19403:67;19467:2;19462:3;19403:67;:::i;:::-;19396:74;;19479:93;19568:3;19479:93;:::i;:::-;19597:2;19592:3;19588:12;19581:19;;19240:366;;;:::o;19612:419::-;19778:4;19816:2;19805:9;19801:18;19793:26;;19865:9;19859:4;19855:20;19851:1;19840:9;19836:17;19829:47;19893:131;20019:4;19893:131;:::i;:::-;19885:139;;19612:419;;;:::o;20037:225::-;20177:34;20173:1;20165:6;20161:14;20154:58;20246:8;20241:2;20233:6;20229:15;20222:33;20037:225;:::o;20268:366::-;20410:3;20431:67;20495:2;20490:3;20431:67;:::i;:::-;20424:74;;20507:93;20596:3;20507:93;:::i;:::-;20625:2;20620:3;20616:12;20609:19;;20268:366;;;:::o;20640:419::-;20806:4;20844:2;20833:9;20829:18;20821:26;;20893:9;20887:4;20883:20;20879:1;20868:9;20864:17;20857:47;20921:131;21047:4;20921:131;:::i;:::-;20913:139;;20640:419;;;:::o;21065:220::-;21205:34;21201:1;21193:6;21189:14;21182:58;21274:3;21269:2;21261:6;21257:15;21250:28;21065:220;:::o;21291:366::-;21433:3;21454:67;21518:2;21513:3;21454:67;:::i;:::-;21447:74;;21530:93;21619:3;21530:93;:::i;:::-;21648:2;21643:3;21639:12;21632:19;;21291:366;;;:::o;21663:419::-;21829:4;21867:2;21856:9;21852:18;21844:26;;21916:9;21910:4;21906:20;21902:1;21891:9;21887:17;21880:47;21944:131;22070:4;21944:131;:::i;:::-;21936:139;;21663:419;;;:::o;22088:194::-;22128:4;22148:20;22166:1;22148:20;:::i;:::-;22143:25;;22182:20;22200:1;22182:20;:::i;:::-;22177:25;;22226:1;22223;22219:9;22211:17;;22250:1;22244:4;22241:11;22238:37;;;22255:18;;:::i;:::-;22238:37;22088:194;;;;:::o;22288:163::-;22428:15;22424:1;22416:6;22412:14;22405:39;22288:163;:::o;22457:366::-;22599:3;22620:67;22684:2;22679:3;22620:67;:::i;:::-;22613:74;;22696:93;22785:3;22696:93;:::i;:::-;22814:2;22809:3;22805:12;22798:19;;22457:366;;;:::o;22829:419::-;22995:4;23033:2;23022:9;23018:18;23010:26;;23082:9;23076:4;23072:20;23068:1;23057:9;23053:17;23046:47;23110:131;23236:4;23110:131;:::i;:::-;23102:139;;22829:419;;;:::o;23254:170::-;23394:22;23390:1;23382:6;23378:14;23371:46;23254:170;:::o;23430:366::-;23572:3;23593:67;23657:2;23652:3;23593:67;:::i;:::-;23586:74;;23669:93;23758:3;23669:93;:::i;:::-;23787:2;23782:3;23778:12;23771:19;;23430:366;;;:::o;23802:419::-;23968:4;24006:2;23995:9;23991:18;23983:26;;24055:9;24049:4;24045:20;24041:1;24030:9;24026:17;24019:47;24083:131;24209:4;24083:131;:::i;:::-;24075:139;;23802:419;;;:::o;24227:191::-;24267:3;24286:20;24304:1;24286:20;:::i;:::-;24281:25;;24320:20;24338:1;24320:20;:::i;:::-;24315:25;;24363:1;24360;24356:9;24349:16;;24384:3;24381:1;24378:10;24375:36;;;24391:18;;:::i;:::-;24375:36;24227:191;;;;:::o;24424:249::-;24564:34;24560:1;24552:6;24548:14;24541:58;24633:32;24628:2;24620:6;24616:15;24609:57;24424:249;:::o;24679:366::-;24821:3;24842:67;24906:2;24901:3;24842:67;:::i;:::-;24835:74;;24918:93;25007:3;24918:93;:::i;:::-;25036:2;25031:3;25027:12;25020:19;;24679:366;;;:::o;25051:419::-;25217:4;25255:2;25244:9;25240:18;25232:26;;25304:9;25298:4;25294:20;25290:1;25279:9;25275:17;25268:47;25332:131;25458:4;25332:131;:::i;:::-;25324:139;;25051:419;;;:::o;25476:177::-;25616:29;25612:1;25604:6;25600:14;25593:53;25476:177;:::o;25659:366::-;25801:3;25822:67;25886:2;25881:3;25822:67;:::i;:::-;25815:74;;25898:93;25987:3;25898:93;:::i;:::-;26016:2;26011:3;26007:12;26000:19;;25659:366;;;:::o;26031:419::-;26197:4;26235:2;26224:9;26220:18;26212:26;;26284:9;26278:4;26274:20;26270:1;26259:9;26255:17;26248:47;26312:131;26438:4;26312:131;:::i;:::-;26304:139;;26031:419;;;:::o;26456:85::-;26501:7;26530:5;26519:16;;26456:85;;;:::o;26547:158::-;26605:9;26638:61;26656:42;26665:32;26691:5;26665:32;:::i;:::-;26656:42;:::i;:::-;26638:61;:::i;:::-;26625:74;;26547:158;;;:::o;26711:147::-;26806:45;26845:5;26806:45;:::i;:::-;26801:3;26794:58;26711:147;;:::o;26864:114::-;26931:6;26965:5;26959:12;26949:22;;26864:114;;;:::o;26984:184::-;27083:11;27117:6;27112:3;27105:19;27157:4;27152:3;27148:14;27133:29;;26984:184;;;;:::o;27174:132::-;27241:4;27264:3;27256:11;;27294:4;27289:3;27285:14;27277:22;;27174:132;;;:::o;27312:108::-;27389:24;27407:5;27389:24;:::i;:::-;27384:3;27377:37;27312:108;;:::o;27426:179::-;27495:10;27516:46;27558:3;27550:6;27516:46;:::i;:::-;27594:4;27589:3;27585:14;27571:28;;27426:179;;;;:::o;27611:113::-;27681:4;27713;27708:3;27704:14;27696:22;;27611:113;;;:::o;27760:732::-;27879:3;27908:54;27956:5;27908:54;:::i;:::-;27978:86;28057:6;28052:3;27978:86;:::i;:::-;27971:93;;28088:56;28138:5;28088:56;:::i;:::-;28167:7;28198:1;28183:284;28208:6;28205:1;28202:13;28183:284;;;28284:6;28278:13;28311:63;28370:3;28355:13;28311:63;:::i;:::-;28304:70;;28397:60;28450:6;28397:60;:::i;:::-;28387:70;;28243:224;28230:1;28227;28223:9;28218:14;;28183:284;;;28187:14;28483:3;28476:10;;27884:608;;;27760:732;;;;:::o;28498:831::-;28761:4;28799:3;28788:9;28784:19;28776:27;;28813:71;28881:1;28870:9;28866:17;28857:6;28813:71;:::i;:::-;28894:80;28970:2;28959:9;28955:18;28946:6;28894:80;:::i;:::-;29021:9;29015:4;29011:20;29006:2;28995:9;28991:18;28984:48;29049:108;29152:4;29143:6;29049:108;:::i;:::-;29041:116;;29167:72;29235:2;29224:9;29220:18;29211:6;29167:72;:::i;:::-;29249:73;29317:3;29306:9;29302:19;29293:6;29249:73;:::i;:::-;28498:831;;;;;;;;:::o;29335:147::-;29436:11;29473:3;29458:18;;29335:147;;;;:::o;29488:114::-;;:::o;29608:398::-;29767:3;29788:83;29869:1;29864:3;29788:83;:::i;:::-;29781:90;;29880:93;29969:3;29880:93;:::i;:::-;29998:1;29993:3;29989:11;29982:18;;29608:398;;;:::o;30012:379::-;30196:3;30218:147;30361:3;30218:147;:::i;:::-;30211:154;;30382:3;30375:10;;30012:379;;;:::o;30397:807::-;30646:4;30684:3;30673:9;30669:19;30661:27;;30698:71;30766:1;30755:9;30751:17;30742:6;30698:71;:::i;:::-;30779:72;30847:2;30836:9;30832:18;30823:6;30779:72;:::i;:::-;30861:80;30937:2;30926:9;30922:18;30913:6;30861:80;:::i;:::-;30951;31027:2;31016:9;31012:18;31003:6;30951:80;:::i;:::-;31041:73;31109:3;31098:9;31094:19;31085:6;31041:73;:::i;:::-;31124;31192:3;31181:9;31177:19;31168:6;31124:73;:::i;:::-;30397:807;;;;;;;;;:::o;31210:663::-;31298:6;31306;31314;31363:2;31351:9;31342:7;31338:23;31334:32;31331:119;;;31369:79;;:::i;:::-;31331:119;31489:1;31514:64;31570:7;31561:6;31550:9;31546:22;31514:64;:::i;:::-;31504:74;;31460:128;31627:2;31653:64;31709:7;31700:6;31689:9;31685:22;31653:64;:::i;:::-;31643:74;;31598:129;31766:2;31792:64;31848:7;31839:6;31828:9;31824:22;31792:64;:::i;:::-;31782:74;;31737:129;31210:663;;;;;:::o;31879:332::-;32000:4;32038:2;32027:9;32023:18;32015:26;;32051:71;32119:1;32108:9;32104:17;32095:6;32051:71;:::i;:::-;32132:72;32200:2;32189:9;32185:18;32176:6;32132:72;:::i;:::-;31879:332;;;;;:::o;32217:167::-;32357:19;32353:1;32345:6;32341:14;32334:43;32217:167;:::o;32390:366::-;32532:3;32553:67;32617:2;32612:3;32553:67;:::i;:::-;32546:74;;32629:93;32718:3;32629:93;:::i;:::-;32747:2;32742:3;32738:12;32731:19;;32390:366;;;:::o;32762:419::-;32928:4;32966:2;32955:9;32951:18;32943:26;;33015:9;33009:4;33005:20;33001:1;32990:9;32986:17;32979:47;33043:131;33169:4;33043:131;:::i;:::-;33035:139;;32762:419;;;:::o

Swarm Source

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