ETH Price: $3,487.78 (+0.76%)
Gas: 5 Gwei

Token

Sierra Tools (STOOLS)
 

Overview

Max Total Supply

1,000,000 STOOLS

Holders

162

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
447.251714107 STOOLS

Value
$0.00
0xbf38e4a45a41deff5efd2056f6b20b8bf56d827d
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:
stools

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-31
*/

// SPDX-License-Identifier: MIT
/**

░██████╗██╗███████╗██████╗░██████╗░░█████╗░  ████████╗░█████╗░░█████╗░██╗░░░░░░██████╗
██╔════╝██║██╔════╝██╔══██╗██╔══██╗██╔══██╗  ╚══██╔══╝██╔══██╗██╔══██╗██║░░░░░██╔════╝
╚█████╗░██║█████╗░░██████╔╝██████╔╝███████║  ░░░██║░░░██║░░██║██║░░██║██║░░░░░╚█████╗░
░╚═══██╗██║██╔══╝░░██╔══██╗██╔══██╗██╔══██║  ░░░██║░░░██║░░██║██║░░██║██║░░░░░░╚═══██╗
██████╔╝██║███████╗██║░░██║██║░░██║██║░░██║  ░░░██║░░░╚█████╔╝╚█████╔╝███████╗██████╔╝
╚═════╝░╚═╝╚══════╝╚═╝░░╚═╝╚═╝░░╚═╝╚═╝░░╚═╝  ░░░╚═╝░░░░╚════╝░░╚════╝░╚══════╝╚═════╝░
https://t.me/sierratools
https://sierratools.app
https://x.com/sierra_tools

**/

pragma solidity 0.8.19;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function 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);
}

interface IUniswapV2Factory {  
    
    function createPair(address tokenA, address tokenB) external returns (address pair); 
}
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
    function WETH() external pure returns (address);
    function factory() external pure returns (address);
    function addLiquidityETH(address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

abstract contract Auth {
    address internal _owner;
    constructor(address creatorOwner) { 
        _owner = creatorOwner; 
    }
    modifier onlyOwner() { 
        require(msg.sender == _owner, "Only owner can call this"); 
        _; 
    }
    function owner() public view returns (address) { 
        return _owner; 
    }
    function transferOwnership(address payable newOwner) external onlyOwner { 
        _owner = newOwner; 
        emit OwnershipTransferred(newOwner); 
    }
    function renounceOwnership() external onlyOwner { 
        _owner = address(0); 
        emit OwnershipTransferred(address(0)); 
    }
    event OwnershipTransferred(address _owner);
}

contract stools is IERC20, Auth {
    uint8 private constant _decimals      = 9;
    uint256 private constant _totalSupply = 1_000_000 * (10**_decimals);
    string private constant _name         = "Sierra Tools";
    string private  constant _symbol       = "STOOLS";

    uint8 private InitialTaxes1 = 2;
    uint8 private InitialTaxes2 = 1;
    uint8 private LaunchBlocksDelay1 = 1;
    uint8 private LaunchBlocksDelay2 = 1;
    uint256 private _antiMevBlock = 2;

    uint8 private _buyTaxRate  = 0;
    uint8 private _sellTaxRate = 3;

    uint16 private _taxSharesMarketing   = 75;
    uint16 private _taxSharesDevelop = 25;
    uint16 private _taxSharesLP          = 0;
    uint16 private _totalTaxShares = _taxSharesMarketing + _taxSharesDevelop + _taxSharesLP;

    address payable private _walletMarketing = payable(0xE50C2A51194B1AAA0B5b035d8220CE0D06D15C81); 
    address payable private _walletDevelop = payable(0x7c412C53B0593D5aB6da0C002501d286a2e3674d); 

    uint256 private _launchBlock;
    uint256 private _maxTxAmount     = _totalSupply; 
    uint256 private _maxWalletAmount = _totalSupply;
    uint256 private _taxSwapMin = _totalSupply * 10 / 100000;
    uint256 private _taxSwapMax = _totalSupply * 800 / 100000;
    uint256 private _swapLimit = _taxSwapMin * 60 * 100;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _noFees;
    mapping (address => bool) private _noLimits;

    address private _lpOwner;

    address private constant _swapRouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    IUniswapV2Router02 private _primarySwapRouter = IUniswapV2Router02(_swapRouterAddress);
    address private _primaryLP;
    mapping (address => bool) private _isLP;

    bool private _tradingOpen;

    bool private _inTaxSwap = false;
    modifier lockTaxSwap { 
        _inTaxSwap = true; 
        _; 
        _inTaxSwap = false; 
    }

    event TokensBurned(address indexed burnedByWallet, uint256 tokenAmount);

    constructor() Auth(msg.sender) {
        _lpOwner = msg.sender;

        uint256 airdropAmount = _totalSupply * 1 / 100;
        
        _balances[address(this)] =  _totalSupply - airdropAmount;
        emit Transfer(address(0), address(this), _balances[address(this)]);

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

        _noFees[_owner] = true;
        _noFees[address(this)] = true;
        _noFees[_swapRouterAddress] = true;
        _noFees[_walletMarketing] = true;
        _noFees[_walletDevelop] = true;
        _noLimits[_owner] = true;
        _noLimits[address(this)] = true;
        _noLimits[_swapRouterAddress] = true;
        _noLimits[_walletMarketing] = true;
        _noLimits[_walletDevelop] = true;
    }

    receive() external payable {}
    
    function totalSupply() external pure 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 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 transfer(address recipient, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(msg.sender), "Trading not open");
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(sender), "Trading not open");
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }
        return _transferFrom(sender, recipient, amount);
    }

    function _approveRouter(uint256 _tokenAmount) internal {
        if ( _allowances[address(this)][_swapRouterAddress] < _tokenAmount ) {
            _allowances[address(this)][_swapRouterAddress] = type(uint256).max;
            emit Approval(address(this), _swapRouterAddress, type(uint256).max);
        }
    }

    function addLiquidity() external payable onlyOwner lockTaxSwap {
        require(_primaryLP == address(0), "LP exists");
        require(!_tradingOpen, "trading is open");
        require(msg.value > 0 || address(this).balance>0, "No ETH in contract or message");
        require(_balances[address(this)]>0, "No tokens in contract");
        _primaryLP = IUniswapV2Factory(_primarySwapRouter.factory()).createPair(address(this), _primarySwapRouter.WETH());
        _addLiquidity(_balances[address(this)], address(this).balance, false);
        _balances[_primaryLP] -= _swapLimit;
        (bool lpAddSuccess,) = _primaryLP.call(abi.encodeWithSignature("sync()"));
        require(lpAddSuccess, "Failed adding liquidity");
        _isLP[_primaryLP] = lpAddSuccess;
        _openTrading();
    }

    function _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei, bool autoburn) internal {
        address lpTokenRecipient = _lpOwner;
        if ( autoburn ) { lpTokenRecipient = address(0); }
        _approveRouter(_tokenAmount);
        _primarySwapRouter.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, lpTokenRecipient, block.timestamp );
    }

    function _openTrading() internal {
        _maxTxAmount     = _totalSupply * 2 / 100; 
        _maxWalletAmount = _totalSupply * 2 / 100;
        _tradingOpen = true;
        _launchBlock = block.number;
        _antiMevBlock = _antiMevBlock + _launchBlock + LaunchBlocksDelay1 + LaunchBlocksDelay2;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(sender != address(0), "No transfers from Zero wallet");
        if (!_tradingOpen) { require(_noFees[sender] && _noLimits[sender], "Trading not open"); }
        if ( !_inTaxSwap && _isLP[recipient] ) { _swapTaxAndLiquify(); }
        if ( block.number < _antiMevBlock && block.number >= _launchBlock && _isLP[sender] ) {
            require(recipient == tx.origin, "MEV blocked");
        }
        if ( sender != address(this) && recipient != address(this) && sender != _owner ) { 
            require(_checkLimits(sender, recipient, amount), "TX exceeds limits"); 
        }
        uint256 _taxAmount = _calculateTax(sender, recipient, amount);
        uint256 _transferAmount = amount - _taxAmount;
        _balances[sender] = _balances[sender] - amount;
        _swapLimit += _taxAmount;
        _balances[recipient] = _balances[recipient] + _transferAmount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function _checkLimits(address sender, address recipient, uint256 transferAmount) internal view returns (bool) {
        bool limitCheckPassed = true;
        if ( _tradingOpen && !_noLimits[sender] && !_noLimits[recipient] ) {
            if ( transferAmount > _maxTxAmount ) { limitCheckPassed = false; }
            else if ( !_isLP[recipient] && (_balances[recipient] + transferAmount > _maxWalletAmount) ) { limitCheckPassed = false; }
        }
        return limitCheckPassed;
    }

    function _checkTradingOpen(address sender) private view returns (bool){
        bool checkResult = false;
        if ( _tradingOpen ) { checkResult = true; } 
        else if (_noFees[sender] && _noLimits[sender]) { checkResult = true; } 

        return checkResult;
    }

    function _calculateTax(address sender, address recipient, uint256 amount) internal view returns (uint256) {
        uint256 taxAmount;
        
        if ( !_tradingOpen || _noFees[sender] || _noFees[recipient] ) { 
            taxAmount = 0; 
        } else if ( _isLP[sender] ) { 
            if ( block.number >= _launchBlock + LaunchBlocksDelay1 + LaunchBlocksDelay2 ) {
                taxAmount = amount * _buyTaxRate / 100; 
            } else if ( block.number >= _launchBlock + LaunchBlocksDelay1 ) {
                taxAmount = amount * InitialTaxes2 / 100;
            } else if ( block.number >= _launchBlock) {
                taxAmount = amount * InitialTaxes1 / 100;
            }
        } else if ( _isLP[recipient] ) { 
            taxAmount = amount * _sellTaxRate / 100; 
        }

        return taxAmount;
    }


    function exemptFromFees(address wallet) external view returns (bool) {
        return _noFees[wallet];
    } 
    function exemptFromLimits(address wallet) external view returns (bool) {
        return _noLimits[wallet];
    } 
    function setExempt(address wallet, bool noFees, bool noLimits) external onlyOwner {
        if (noLimits || noFees) { require(!_isLP[wallet], "Cannot exempt LP"); }
        _noFees[ wallet ] = noFees;
        _noLimits[ wallet ] = noLimits;
    }

    function buyFee() external view returns(uint8) {
        return _buyTaxRate;
    }
    function sellFee() external view returns(uint8) {
        return _sellTaxRate;
    }

    function feeSplit() external view returns (uint16 marketing, uint16 Develop, uint16 LP ) {
        return ( _taxSharesMarketing, _taxSharesDevelop, _taxSharesLP);
    }
    function setFees(uint8 buy, uint8 sell) external onlyOwner {
        require(buy + sell <= 5, "Roundtrip too high");
        _buyTaxRate = buy;
        _sellTaxRate = sell;
    }  
    function setFeeSplit(uint16 sharesAutoLP, uint16 sharesMarketing, uint16 sharesDevelop) external onlyOwner {
        uint16 totalShares = sharesAutoLP + sharesMarketing + sharesDevelop;
        require( totalShares > 0, "All cannot be 0");
        _taxSharesLP = sharesAutoLP;
        _taxSharesMarketing = sharesMarketing;
        _taxSharesDevelop = sharesDevelop;
        _totalTaxShares = totalShares;
    }

    function marketingWallet() external view returns (address) {
        return _walletMarketing;
    }
    function DevelopWallet() external view returns (address) {
        return _walletDevelop;
    }

    function updateWallets(address marketing, address Develop, address LPtokens) external onlyOwner {
        require(!_isLP[marketing] && !_isLP[Develop] && !_isLP[LPtokens], "LP cannot be tax wallet");
        
        _walletMarketing = payable(marketing);
        _walletDevelop = payable(Develop);
        _lpOwner = LPtokens;
        
        _noFees[marketing] = true;
        _noLimits[marketing] = true;
        
        _noFees[Develop] = true;        
        _noLimits[Develop] = true;
    }

    function maxWallet() external view returns (uint256) {
        return _maxWalletAmount;
    }
    function maxTransaction() external view returns (uint256) {
        return _maxTxAmount;
    }

    function swapAtMin() external view returns (uint256) {
        return _taxSwapMin;
    }
    function swapAtMax() external view returns (uint256) {
        return _taxSwapMax;
    }

    function setLimits(uint16 maxTransactionPermille, uint16 maxWalletPermille) external onlyOwner {
        uint256 newTxAmt = _totalSupply * maxTransactionPermille / 1000 + 1;
        require(newTxAmt >= _maxTxAmount, "tx too low");
        _maxTxAmount = newTxAmt;
        uint256 newWalletAmt = _totalSupply * maxWalletPermille / 1000 + 1;
        require(newWalletAmt >= _maxWalletAmount, "wallet too low");
        _maxWalletAmount = newWalletAmt;
    }

    function setTaxSwap(uint32 minValue, uint32 minDivider, uint32 maxValue, uint32 maxDivider) external onlyOwner {
        _taxSwapMin = _totalSupply * minValue / minDivider;
        _taxSwapMax = _totalSupply * maxValue / maxDivider;
        require(_taxSwapMax>=_taxSwapMin, "Min/Max error");
        require(_taxSwapMax>_totalSupply / 100000, "Max too low");
        require(_taxSwapMax<_totalSupply / 100, "Max too high");
    }

    function _burnTokens(address fromWallet, uint256 amount) private {
        if ( amount > 0 ) {
            _balances[fromWallet] -= amount;
            _balances[address(0)] += amount;
            emit Transfer(fromWallet, address(0), amount);
        }
    }

    function _swapTaxAndLiquify() private lockTaxSwap {
        uint256 _taxTokensAvailable = _swapLimit;
        if ( _taxTokensAvailable >= _taxSwapMin && _tradingOpen ) {
            if ( _taxTokensAvailable >= _taxSwapMax ) { _taxTokensAvailable = _taxSwapMax; }
            uint256 _tokensForLP = _taxTokensAvailable * _taxSharesLP / _totalTaxShares / 2;
            
            uint256 _tokensToSwap = _taxTokensAvailable - _tokensForLP;
            if( _tokensToSwap > 10**_decimals ) {
                uint256 _ethPreSwap = address(this).balance;
                _balances[address(this)] += _taxTokensAvailable;
                _swapTaxTokensForEth(_tokensToSwap);
                _swapLimit -= _taxTokensAvailable;
                uint256 _ethSwapped = address(this).balance - _ethPreSwap;
                if ( _taxSharesLP > 0 ) {
                    uint256 _ethWeiAmount = _ethSwapped * _taxSharesLP / _totalTaxShares ;
                    _approveRouter(_tokensForLP);
                    _addLiquidity(_tokensForLP, _ethWeiAmount, false);
                }
            }
            uint256 _contractETHBalance = address(this).balance;
            if(_contractETHBalance > 0) { _distributeTaxEth(_contractETHBalance); }
        }
    }

    function _swapTaxTokensForEth(uint256 tokenAmount) private {
        _approveRouter(tokenAmount);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _primarySwapRouter.WETH();
        _primarySwapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp);
    }

    function _distributeTaxEth(uint256 amount) private {
        uint16 _taxShareTotal = _taxSharesMarketing + _taxSharesDevelop;
        if (_taxShareTotal > 0) {
            uint256 marketingAmount = amount * _taxSharesMarketing / _taxShareTotal;
            uint256 DevelopAmount = amount * _taxSharesDevelop / _taxShareTotal;
            if ( marketingAmount > 0 ) { _walletMarketing.transfer(marketingAmount); }
            if ( DevelopAmount > 0 ) { _walletDevelop.transfer(DevelopAmount); }
        }
    }

    function manualTaxSwapAndSend(uint8 swapTokenPercent, bool sendEth) external onlyOwner lockTaxSwap {
        require(swapTokenPercent <= 100, "Cannot swap more than 100%");
        uint256 tokensToSwap = _balances[address(this)] * swapTokenPercent / 100;
        if (tokensToSwap > 10 ** _decimals) {
            _swapTaxTokensForEth(tokensToSwap);
        }
        if (sendEth) { 
            uint256 ethBalance = address(this).balance;
            require(ethBalance > 0, "No ETH");
            _distributeTaxEth(address(this).balance); 
        }
    }

    function burn(uint256 amount) external {
        uint256 _tokensAvailable = balanceOf(msg.sender);
        require(amount <= _tokensAvailable, "balance too low");
        _burnTokens(msg.sender, amount);
        emit TokensBurned(msg.sender, amount);
    }
}

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":"address","name":"_owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"burnedByWallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"TokensBurned","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":"DevelopWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"payable","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"exemptFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"exemptFromLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeSplit","outputs":[{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"Develop","type":"uint16"},{"internalType":"uint16","name":"LP","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"swapTokenPercent","type":"uint8"},{"internalType":"bool","name":"sendEth","type":"bool"}],"name":"manualTaxSwapAndSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"noFees","type":"bool"},{"internalType":"bool","name":"noLimits","type":"bool"}],"name":"setExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"sharesAutoLP","type":"uint16"},{"internalType":"uint16","name":"sharesMarketing","type":"uint16"},{"internalType":"uint16","name":"sharesDevelop","type":"uint16"}],"name":"setFeeSplit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"buy","type":"uint8"},{"internalType":"uint8","name":"sell","type":"uint8"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxTransactionPermille","type":"uint16"},{"internalType":"uint16","name":"maxWalletPermille","type":"uint16"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"minValue","type":"uint32"},{"internalType":"uint32","name":"minDivider","type":"uint32"},{"internalType":"uint32","name":"maxValue","type":"uint32"},{"internalType":"uint32","name":"maxDivider","type":"uint32"}],"name":"setTaxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAtMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAtMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketing","type":"address"},{"internalType":"address","name":"Develop","type":"address"},{"internalType":"address","name":"LPtokens","type":"address"}],"name":"updateWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526002600060146101000a81548160ff021916908360ff1602179055506001600060156101000a81548160ff021916908360ff1602179055506001600060166101000a81548160ff021916908360ff1602179055506001600060176101000a81548160ff021916908360ff16021790555060026001556000600260006101000a81548160ff021916908360ff1602179055506003600260016101000a81548160ff021916908360ff160217905550604b6002806101000a81548161ffff021916908361ffff1602179055506019600260046101000a81548161ffff021916908361ffff1602179055506000600260066101000a81548161ffff021916908361ffff160217905550600260069054906101000a900461ffff16600260049054906101000a900461ffff1660028054906101000a900461ffff1662000147919062000b4f565b62000153919062000b4f565b600260086101000a81548161ffff021916908361ffff16021790555073e50c2a51194b1aaa0b5b035d8220ce0d06d15c816002600a6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737c412c53b0593d5ab6da0c002501d286a2e3674d600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000229919062000cf7565b620f424062000239919062000d48565b6005556009600a6200024c919062000cf7565b620f42406200025c919062000d48565b600655620186a0600a6009600a62000275919062000cf7565b620f424062000285919062000d48565b62000291919062000d48565b6200029d919062000dc2565b600755620186a06103206009600a620002b7919062000cf7565b620f4240620002c7919062000d48565b620002d3919062000d48565b620002df919062000dc2565b6008556064603c600754620002f5919062000d48565b62000301919062000d48565b600955737a250d5630b4cf539739df2c5dacb4c659f2488d600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601260016101000a81548160ff0219169083151502179055503480156200038157600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505033600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000606460016009600a6200041b919062000cf7565b620f42406200042b919062000d48565b62000437919062000d48565b62000443919062000dc2565b9050806009600a62000456919062000cf7565b620f424062000466919062000d48565b62000472919062000dfa565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405162000554919062000e46565b60405180910390a380600a60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051620006a1919062000e46565b60405180910390a36001600c60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60006002600a9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60006002600a9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505062000e63565b600061ffff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000b5c8262000b12565b915062000b698362000b12565b9250828201905061ffff81111562000b865762000b8562000b20565b5b92915050565b60008160011c9050919050565b6000808291508390505b600185111562000beb5780860481111562000bc35762000bc262000b20565b5b600185161562000bd35780820291505b808102905062000be38562000b8c565b945062000ba3565b94509492505050565b60008262000c06576001905062000cd9565b8162000c16576000905062000cd9565b816001811462000c2f576002811462000c3a5762000c70565b600191505062000cd9565b60ff84111562000c4f5762000c4e62000b20565b5b8360020a91508482111562000c695762000c6862000b20565b5b5062000cd9565b5060208310610133831016604e8410600b841016171562000caa5782820a90508381111562000ca45762000ca362000b20565b5b62000cd9565b62000cb9848484600162000b99565b9250905081840481111562000cd35762000cd262000b20565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000d048262000ce0565b915062000d118362000cea565b925062000d407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bf4565b905092915050565b600062000d558262000ce0565b915062000d628362000ce0565b925082820262000d728162000ce0565b9150828204841483151762000d8c5762000d8b62000b20565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000dcf8262000ce0565b915062000ddc8362000ce0565b92508262000def5762000dee62000d93565b5b828204905092915050565b600062000e078262000ce0565b915062000e148362000ce0565b925082820390508181111562000e2f5762000e2e62000b20565b5b92915050565b62000e408162000ce0565b82525050565b600060208201905062000e5d600083018462000e35565b92915050565b6152678062000e736000396000f3fe6080604052600436106101e75760003560e01c80635a90a49e1161010257806395d89b4111610095578063dd62ed3e11610064578063dd62ed3e146106f1578063e8078d941461072e578063f2fde38b14610738578063f8b45b0514610761576101ee565b806395d89b4114610635578063a6097b0a14610660578063a9059cbb14610689578063c3f70b52146106c6576101ee565b806375f0a874116100d157806375f0a8741461057957806376a39c28146105a45780638d3e6e40146105cd5780638da5cb5b1461060a576101ee565b80635a90a49e146104bb5780636373ea69146104f857806370a0823114610525578063715018a614610562576101ee565b8063313ce5671161017a578063470624021161014957806347062402146104135780634d4ce9351461043e5780634fcd24461461046957806357ff135a14610492576101ee565b8063313ce5671461036b578063368f48001461039657806342966c68146103bf57806346b89834146103e8576101ee565b80631e03e705116101b65780631e03e705146102af57806323b872dd146102da5780632b14ca56146103175780632fb528ba14610342576101ee565b806306fdde03146101f3578063095ea7b31461021e578063147c9f6d1461025b57806318160ddd14610284576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020861078c565b6040516102159190613bc2565b60405180910390f35b34801561022a57600080fd5b5061024560048036038101906102409190613c7d565b6107c9565b6040516102529190613cd8565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d9190613cf3565b6108bb565b005b34801561029057600080fd5b50610299610caa565b6040516102a69190613d55565b60405180910390f35b3480156102bb57600080fd5b506102c4610ccd565b6040516102d19190613d7f565b60405180910390f35b3480156102e657600080fd5b5061030160048036038101906102fc9190613d9a565b610cf7565b60405161030e9190613cd8565b60405180910390f35b34801561032357600080fd5b5061032c610f01565b6040516103399190613e09565b60405180910390f35b34801561034e57600080fd5b5061036960048036038101906103649190613e7c565b610f18565b005b34801561037757600080fd5b506103806110fe565b60405161038d9190613e09565b60405180910390f35b3480156103a257600080fd5b506103bd60048036038101906103b89190613ef6565b611107565b005b3480156103cb57600080fd5b506103e660048036038101906103e19190613f36565b6112c3565b005b3480156103f457600080fd5b506103fd61136f565b60405161040a9190613d55565b60405180910390f35b34801561041f57600080fd5b50610428611379565b6040516104359190613e09565b60405180910390f35b34801561044a57600080fd5b50610453611390565b6040516104609190613d55565b60405180910390f35b34801561047557600080fd5b50610490600480360381019061048b9190613f63565b61139a565b005b34801561049e57600080fd5b506104b960048036038101906104b49190613fa3565b6114b4565b005b3480156104c757600080fd5b506104e260048036038101906104dd9190613ff6565b611691565b6040516104ef9190613cd8565b60405180910390f35b34801561050457600080fd5b5061050d6116e7565b60405161051c93929190614032565b60405180910390f35b34801561053157600080fd5b5061054c60048036038101906105479190613ff6565b611728565b6040516105599190613d55565b60405180910390f35b34801561056e57600080fd5b50610577611771565b005b34801561058557600080fd5b5061058e61187a565b60405161059b9190613d7f565b60405180910390f35b3480156105b057600080fd5b506105cb60048036038101906105c69190614069565b6118a4565b005b3480156105d957600080fd5b506105f460048036038101906105ef9190613ff6565b611a0d565b6040516106019190613cd8565b60405180910390f35b34801561061657600080fd5b5061061f611a63565b60405161062c9190613d7f565b60405180910390f35b34801561064157600080fd5b5061064a611a8c565b6040516106579190613bc2565b60405180910390f35b34801561066c57600080fd5b50610687600480360381019061068291906140f8565b611ac9565b005b34801561069557600080fd5b506106b060048036038101906106ab9190613c7d565b611d04565b6040516106bd9190613cd8565b60405180910390f35b3480156106d257600080fd5b506106db611d61565b6040516106e89190613d55565b60405180910390f35b3480156106fd57600080fd5b506107186004803603810190610713919061415f565b611d6b565b6040516107259190613d55565b60405180910390f35b610736611df2565b005b34801561074457600080fd5b5061075f600480360381019061075a91906141dd565b6124df565b005b34801561076d57600080fd5b506107766125e7565b6040516107839190613d55565b60405180910390f35b60606040518060400160405280600c81526020017f53696572726120546f6f6c730000000000000000000000000000000000000000815250905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108a99190613d55565b60405180910390a36001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610949576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094090614256565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156109ed5750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610a435750601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b610a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a79906142c2565b60405180910390fd5b826002600a6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60006009600a610cba9190614444565b620f4240610cc8919061448f565b905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610d02846125f1565b610d41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d389061451d565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610eed5781600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6c919061453d565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610ef88484846126cc565b90509392505050565b6000600260019054906101000a900460ff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9d90614256565b60405180910390fd5b6001601260016101000a81548160ff02191690831515021790555060648260ff161115611008576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fff906145bd565b60405180910390fd5b600060648360ff16600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461105a919061448f565b611064919061460c565b90506009600a6110749190614444565b8111156110855761108481612c58565b5b81156110de576000479050600081116110d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ca90614689565b60405180910390fd5b6110dc47612e77565b505b506000601260016101000a81548160ff0219169083151502179055505050565b60006009905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611195576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118c90614256565b60405180910390fd5b600060016103e88461ffff166009600a6111af9190614444565b620f42406111bd919061448f565b6111c7919061448f565b6111d1919061460c565b6111db91906146a9565b9050600554811015611222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121990614729565b60405180910390fd5b80600581905550600060016103e88461ffff166009600a6112439190614444565b620f4240611251919061448f565b61125b919061448f565b611265919061460c565b61126f91906146a9565b90506006548110156112b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ad90614795565b60405180910390fd5b8060068190555050505050565b60006112ce33611728565b905080821115611313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130a90614801565b60405180910390fd5b61131d3383613003565b3373ffffffffffffffffffffffffffffffffffffffff167ffd38818f5291bf0bb3a2a48aadc06ba8757865d1dabd804585338aab3009dcb6836040516113639190613d55565b60405180910390a25050565b6000600754905090565b6000600260009054906101000a900460ff16905090565b6000600854905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611428576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141f90614256565b60405180910390fd5b600581836114369190614821565b60ff16111561147a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611471906148a2565b60405180910390fd5b81600260006101000a81548160ff021916908360ff16021790555080600260016101000a81548160ff021916908360ff1602179055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611542576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153990614256565b60405180910390fd5b808061154b5750815b156115de57601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156115dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d49061490e565b60405180910390fd5b5b81600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080600060028054906101000a900461ffff16600260049054906101000a900461ffff16600260069054906101000a900461ffff16925092509250909192565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f690614256565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616360006040516118709190613d7f565b60405180910390a1565b60006002600a9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611932576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192990614256565b60405180910390fd5b6000818385611941919061492e565b61194b919061492e565b905060008161ffff1611611994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198b906149b0565b60405180910390fd5b83600260066101000a81548161ffff021916908361ffff160217905550826002806101000a81548161ffff021916908361ffff16021790555081600260046101000a81548161ffff021916908361ffff16021790555080600260086101000a81548161ffff021916908361ffff16021790555050505050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f53544f4f4c530000000000000000000000000000000000000000000000000000815250905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4e90614256565b60405180910390fd5b8263ffffffff168463ffffffff166009600a611b739190614444565b620f4240611b81919061448f565b611b8b919061448f565b611b95919061460c565b6007819055508063ffffffff168263ffffffff166009600a611bb79190614444565b620f4240611bc5919061448f565b611bcf919061448f565b611bd9919061460c565b6008819055506007546008541015611c26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1d90614a1c565b60405180910390fd5b620186a06009600a611c389190614444565b620f4240611c46919061448f565b611c50919061460c565b60085411611c93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8a90614a88565b60405180910390fd5b60646009600a611ca39190614444565b620f4240611cb1919061448f565b611cbb919061460c565b60085410611cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf590614af4565b60405180910390fd5b50505050565b6000611d0f336125f1565b611d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d459061451d565b60405180910390fd5b611d593384846126cc565b905092915050565b6000600554905090565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7790614256565b60405180910390fd5b6001601260016101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2390614b60565b60405180910390fd5b601260009054906101000a900460ff1615611f7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7390614bcc565b60405180910390fd5b6000341180611f8b5750600047115b611fca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc190614c38565b60405180910390fd5b6000600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161204c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204390614ca4565b60405180910390fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120dd9190614cd9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612166573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218a9190614cd9565b6040518363ffffffff1660e01b81526004016121a7929190614d06565b6020604051808303816000875af11580156121c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ea9190614cd9565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612275600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054476000613123565b600954600a6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122e8919061453d565b925050819055506000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527ffff6cae9000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516123ba9190614d76565b6000604051808303816000865af19150503d80600081146123f7576040519150601f19603f3d011682016040523d82523d6000602084013e6123fc565b606091505b5050905080612440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243790614dd9565b60405180910390fd5b8060116000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506124c1613211565b506000601260016101000a81548160ff021916908315150217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461256d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256490614256565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516125dc9190614e58565b60405180910390a150565b6000600654905090565b60008060009050601260009054906101000a900460ff161561261657600190506126c3565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156126b85750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156126c257600190505b5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361273c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273390614ebf565b60405180910390fd5b601260009054906101000a900460ff1661283257600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127f25750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612831576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128289061451d565b60405180910390fd5b5b601260019054906101000a900460ff161580156128985750601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156128a6576128a56132f9565b5b600154431080156128b957506004544310155b801561290e5750601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612982573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612981576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297890614f2b565b60405180910390fd5b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156129ea57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612a42575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612a9257612a52848484613501565b612a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8890614f97565b60405180910390fd5b5b6000612a9f858585613698565b905060008184612aaf919061453d565b905083600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afc919061453d565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160096000828254612b5191906146a9565b9250508190555080600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ba391906146a9565b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051612c439190613d55565b60405180910390a36001925050509392505050565b612c6181613948565b6000600267ffffffffffffffff811115612c7e57612c7d614fb7565b5b604051908082528060200260200182016040528015612cac5781602001602082028036833780820191505090505b5090503081600081518110612cc457612cc3614fe6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d8f9190614cd9565b81600181518110612da357612da2614fe6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612e4195949392919061510e565b600060405180830381600087803b158015612e5b57600080fd5b505af1158015612e6f573d6000803e3d6000fd5b505050505050565b6000600260049054906101000a900461ffff1660028054906101000a900461ffff16612ea3919061492e565b905060008161ffff161115612fff5760008161ffff1660028054906101000a900461ffff1661ffff1684612ed7919061448f565b612ee1919061460c565b905060008261ffff16600260049054906101000a900461ffff1661ffff1685612f0a919061448f565b612f14919061460c565b90506000821115612f89576002600a9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612f87573d6000803e3d6000fd5b505b6000811115612ffc57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612ffa573d6000803e3d6000fd5b505b50505b5050565b600081111561311f5780600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461305b919061453d565b9250508190555080600a60008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130b191906146a9565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131169190613d55565b60405180910390a35b5050565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050811561315557600090505b61315e84613948565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b81526004016131c596959493929190615168565b60606040518083038185885af11580156131e3573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061320891906151de565b50505050505050565b606460026009600a6132239190614444565b620f4240613231919061448f565b61323b919061448f565b613245919061460c565b600581905550606460026009600a61325d9190614444565b620f424061326b919061448f565b613275919061448f565b61327f919061460c565b6006819055506001601260006101000a81548160ff02191690831515021790555043600481905550600060179054906101000a900460ff1660ff16600060169054906101000a900460ff1660ff166004546001546132dd91906146a9565b6132e791906146a9565b6132f191906146a9565b600181905550565b6001601260016101000a81548160ff0219169083151502179055506000600954905060075481101580156133395750601260009054906101000a900460ff165b156134e357600854811061334d5760085490505b600060028060089054906101000a900461ffff1661ffff16600260069054906101000a900461ffff1661ffff1684613385919061448f565b61338f919061460c565b613399919061460c565b9050600081836133a9919061453d565b90506009600a6133b99190614444565b8111156134c757600047905083600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461341491906146a9565b9250508190555061342482612c58565b8360096000828254613436919061453d565b925050819055506000814761344b919061453d565b90506000600260069054906101000a900461ffff1661ffff1611156134c4576000600260089054906101000a900461ffff1661ffff16600260069054906101000a900461ffff1661ffff16836134a1919061448f565b6134ab919061460c565b90506134b685613948565b6134c285826000613123565b505b50505b600047905060008111156134df576134de81612e77565b5b5050505b506000601260016101000a81548160ff021916908315150217905550565b60008060019050601260009054906101000a900460ff16801561356e5750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135c45750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561368d576005548311156135dc576000905061368c565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613681575060065483600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461367f91906146a9565b115b1561368b57600090505b5b5b809150509392505050565b600080601260009054906101000a900460ff1615806137005750600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806137545750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613762576000905061393d565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156138bc57600060179054906101000a900460ff1660ff16600060169054906101000a900460ff1660ff166004546137e791906146a9565b6137f191906146a9565b4310613828576064600260009054906101000a900460ff1660ff1684613817919061448f565b613821919061460c565b90506138b7565b600060169054906101000a900460ff1660ff1660045461384891906146a9565b431061387f576064600060159054906101000a900460ff1660ff168461386e919061448f565b613878919061460c565b90506138b6565b60045443106138b5576064600060149054906101000a900460ff1660ff16846138a8919061448f565b6138b2919061460c565b90505b5b5b61393c565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561393b576064600260019054906101000a900460ff1660ff168461392e919061448f565b613938919061460c565b90505b5b5b809150509392505050565b80600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613b2f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051613b269190613d55565b60405180910390a35b50565b600081519050919050565b600082825260208201905092915050565b60005b83811015613b6c578082015181840152602081019050613b51565b60008484015250505050565b6000601f19601f8301169050919050565b6000613b9482613b32565b613b9e8185613b3d565b9350613bae818560208601613b4e565b613bb781613b78565b840191505092915050565b60006020820190508181036000830152613bdc8184613b89565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613c1482613be9565b9050919050565b613c2481613c09565b8114613c2f57600080fd5b50565b600081359050613c4181613c1b565b92915050565b6000819050919050565b613c5a81613c47565b8114613c6557600080fd5b50565b600081359050613c7781613c51565b92915050565b60008060408385031215613c9457613c93613be4565b5b6000613ca285828601613c32565b9250506020613cb385828601613c68565b9150509250929050565b60008115159050919050565b613cd281613cbd565b82525050565b6000602082019050613ced6000830184613cc9565b92915050565b600080600060608486031215613d0c57613d0b613be4565b5b6000613d1a86828701613c32565b9350506020613d2b86828701613c32565b9250506040613d3c86828701613c32565b9150509250925092565b613d4f81613c47565b82525050565b6000602082019050613d6a6000830184613d46565b92915050565b613d7981613c09565b82525050565b6000602082019050613d946000830184613d70565b92915050565b600080600060608486031215613db357613db2613be4565b5b6000613dc186828701613c32565b9350506020613dd286828701613c32565b9250506040613de386828701613c68565b9150509250925092565b600060ff82169050919050565b613e0381613ded565b82525050565b6000602082019050613e1e6000830184613dfa565b92915050565b613e2d81613ded565b8114613e3857600080fd5b50565b600081359050613e4a81613e24565b92915050565b613e5981613cbd565b8114613e6457600080fd5b50565b600081359050613e7681613e50565b92915050565b60008060408385031215613e9357613e92613be4565b5b6000613ea185828601613e3b565b9250506020613eb285828601613e67565b9150509250929050565b600061ffff82169050919050565b613ed381613ebc565b8114613ede57600080fd5b50565b600081359050613ef081613eca565b92915050565b60008060408385031215613f0d57613f0c613be4565b5b6000613f1b85828601613ee1565b9250506020613f2c85828601613ee1565b9150509250929050565b600060208284031215613f4c57613f4b613be4565b5b6000613f5a84828501613c68565b91505092915050565b60008060408385031215613f7a57613f79613be4565b5b6000613f8885828601613e3b565b9250506020613f9985828601613e3b565b9150509250929050565b600080600060608486031215613fbc57613fbb613be4565b5b6000613fca86828701613c32565b9350506020613fdb86828701613e67565b9250506040613fec86828701613e67565b9150509250925092565b60006020828403121561400c5761400b613be4565b5b600061401a84828501613c32565b91505092915050565b61402c81613ebc565b82525050565b60006060820190506140476000830186614023565b6140546020830185614023565b6140616040830184614023565b949350505050565b60008060006060848603121561408257614081613be4565b5b600061409086828701613ee1565b93505060206140a186828701613ee1565b92505060406140b286828701613ee1565b9150509250925092565b600063ffffffff82169050919050565b6140d5816140bc565b81146140e057600080fd5b50565b6000813590506140f2816140cc565b92915050565b6000806000806080858703121561411257614111613be4565b5b6000614120878288016140e3565b9450506020614131878288016140e3565b9350506040614142878288016140e3565b9250506060614153878288016140e3565b91505092959194509250565b6000806040838503121561417657614175613be4565b5b600061418485828601613c32565b925050602061419585828601613c32565b9150509250929050565b60006141aa82613be9565b9050919050565b6141ba8161419f565b81146141c557600080fd5b50565b6000813590506141d7816141b1565b92915050565b6000602082840312156141f3576141f2613be4565b5b6000614201848285016141c8565b91505092915050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000600082015250565b6000614240601883613b3d565b915061424b8261420a565b602082019050919050565b6000602082019050818103600083015261426f81614233565b9050919050565b7f4c502063616e6e6f74206265207461782077616c6c6574000000000000000000600082015250565b60006142ac601783613b3d565b91506142b782614276565b602082019050919050565b600060208201905081810360008301526142db8161429f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561436857808604811115614344576143436142e2565b5b60018516156143535780820291505b808102905061436185614311565b9450614328565b94509492505050565b600082614381576001905061443d565b8161438f576000905061443d565b81600181146143a557600281146143af576143de565b600191505061443d565b60ff8411156143c1576143c06142e2565b5b8360020a9150848211156143d8576143d76142e2565b5b5061443d565b5060208310610133831016604e8410600b84101617156144135782820a90508381111561440e5761440d6142e2565b5b61443d565b614420848484600161431e565b92509050818404811115614437576144366142e2565b5b81810290505b9392505050565b600061444f82613c47565b915061445a83613ded565b92506144877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614371565b905092915050565b600061449a82613c47565b91506144a583613c47565b92508282026144b381613c47565b915082820484148315176144ca576144c96142e2565b5b5092915050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000614507601083613b3d565b9150614512826144d1565b602082019050919050565b60006020820190508181036000830152614536816144fa565b9050919050565b600061454882613c47565b915061455383613c47565b925082820390508181111561456b5761456a6142e2565b5b92915050565b7f43616e6e6f742073776170206d6f7265207468616e2031303025000000000000600082015250565b60006145a7601a83613b3d565b91506145b282614571565b602082019050919050565b600060208201905081810360008301526145d68161459a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061461782613c47565b915061462283613c47565b925082614632576146316145dd565b5b828204905092915050565b7f4e6f204554480000000000000000000000000000000000000000000000000000600082015250565b6000614673600683613b3d565b915061467e8261463d565b602082019050919050565b600060208201905081810360008301526146a281614666565b9050919050565b60006146b482613c47565b91506146bf83613c47565b92508282019050808211156146d7576146d66142e2565b5b92915050565b7f747820746f6f206c6f7700000000000000000000000000000000000000000000600082015250565b6000614713600a83613b3d565b915061471e826146dd565b602082019050919050565b6000602082019050818103600083015261474281614706565b9050919050565b7f77616c6c657420746f6f206c6f77000000000000000000000000000000000000600082015250565b600061477f600e83613b3d565b915061478a82614749565b602082019050919050565b600060208201905081810360008301526147ae81614772565b9050919050565b7f62616c616e636520746f6f206c6f770000000000000000000000000000000000600082015250565b60006147eb600f83613b3d565b91506147f6826147b5565b602082019050919050565b6000602082019050818103600083015261481a816147de565b9050919050565b600061482c82613ded565b915061483783613ded565b9250828201905060ff8111156148505761484f6142e2565b5b92915050565b7f526f756e647472697020746f6f20686967680000000000000000000000000000600082015250565b600061488c601283613b3d565b915061489782614856565b602082019050919050565b600060208201905081810360008301526148bb8161487f565b9050919050565b7f43616e6e6f74206578656d7074204c5000000000000000000000000000000000600082015250565b60006148f8601083613b3d565b9150614903826148c2565b602082019050919050565b60006020820190508181036000830152614927816148eb565b9050919050565b600061493982613ebc565b915061494483613ebc565b9250828201905061ffff81111561495e5761495d6142e2565b5b92915050565b7f416c6c2063616e6e6f7420626520300000000000000000000000000000000000600082015250565b600061499a600f83613b3d565b91506149a582614964565b602082019050919050565b600060208201905081810360008301526149c98161498d565b9050919050565b7f4d696e2f4d6178206572726f7200000000000000000000000000000000000000600082015250565b6000614a06600d83613b3d565b9150614a11826149d0565b602082019050919050565b60006020820190508181036000830152614a35816149f9565b9050919050565b7f4d617820746f6f206c6f77000000000000000000000000000000000000000000600082015250565b6000614a72600b83613b3d565b9150614a7d82614a3c565b602082019050919050565b60006020820190508181036000830152614aa181614a65565b9050919050565b7f4d617820746f6f20686967680000000000000000000000000000000000000000600082015250565b6000614ade600c83613b3d565b9150614ae982614aa8565b602082019050919050565b60006020820190508181036000830152614b0d81614ad1565b9050919050565b7f4c50206578697374730000000000000000000000000000000000000000000000600082015250565b6000614b4a600983613b3d565b9150614b5582614b14565b602082019050919050565b60006020820190508181036000830152614b7981614b3d565b9050919050565b7f74726164696e67206973206f70656e0000000000000000000000000000000000600082015250565b6000614bb6600f83613b3d565b9150614bc182614b80565b602082019050919050565b60006020820190508181036000830152614be581614ba9565b9050919050565b7f4e6f2045544820696e20636f6e7472616374206f72206d657373616765000000600082015250565b6000614c22601d83613b3d565b9150614c2d82614bec565b602082019050919050565b60006020820190508181036000830152614c5181614c15565b9050919050565b7f4e6f20746f6b656e7320696e20636f6e74726163740000000000000000000000600082015250565b6000614c8e601583613b3d565b9150614c9982614c58565b602082019050919050565b60006020820190508181036000830152614cbd81614c81565b9050919050565b600081519050614cd381613c1b565b92915050565b600060208284031215614cef57614cee613be4565b5b6000614cfd84828501614cc4565b91505092915050565b6000604082019050614d1b6000830185613d70565b614d286020830184613d70565b9392505050565b600081519050919050565b600081905092915050565b6000614d5082614d2f565b614d5a8185614d3a565b9350614d6a818560208601613b4e565b80840191505092915050565b6000614d828284614d45565b915081905092915050565b7f4661696c656420616464696e67206c6971756964697479000000000000000000600082015250565b6000614dc3601783613b3d565b9150614dce82614d8d565b602082019050919050565b60006020820190508181036000830152614df281614db6565b9050919050565b6000819050919050565b6000614e1e614e19614e1484613be9565b614df9565b613be9565b9050919050565b6000614e3082614e03565b9050919050565b6000614e4282614e25565b9050919050565b614e5281614e37565b82525050565b6000602082019050614e6d6000830184614e49565b92915050565b7f4e6f207472616e73666572732066726f6d205a65726f2077616c6c6574000000600082015250565b6000614ea9601d83613b3d565b9150614eb482614e73565b602082019050919050565b60006020820190508181036000830152614ed881614e9c565b9050919050565b7f4d455620626c6f636b6564000000000000000000000000000000000000000000600082015250565b6000614f15600b83613b3d565b9150614f2082614edf565b602082019050919050565b60006020820190508181036000830152614f4481614f08565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b6000614f81601183613b3d565b9150614f8c82614f4b565b602082019050919050565b60006020820190508181036000830152614fb081614f74565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b600061503a61503561503084615015565b614df9565b613c47565b9050919050565b61504a8161501f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61508581613c09565b82525050565b6000615097838361507c565b60208301905092915050565b6000602082019050919050565b60006150bb82615050565b6150c5818561505b565b93506150d08361506c565b8060005b838110156151015781516150e8888261508b565b97506150f3836150a3565b9250506001810190506150d4565b5085935050505092915050565b600060a0820190506151236000830188613d46565b6151306020830187615041565b818103604083015261514281866150b0565b90506151516060830185613d70565b61515e6080830184613d46565b9695505050505050565b600060c08201905061517d6000830189613d70565b61518a6020830188613d46565b6151976040830187615041565b6151a46060830186615041565b6151b16080830185613d70565b6151be60a0830184613d46565b979650505050505050565b6000815190506151d881613c51565b92915050565b6000806000606084860312156151f7576151f6613be4565b5b6000615205868287016151c9565b9350506020615216868287016151c9565b9250506040615227868287016151c9565b915050925092509256fea264697066735822122083fcaa2639e2255a2f5b77fb6692d8a51e9b2950fb708769080d8ffba89d2ed364736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101e75760003560e01c80635a90a49e1161010257806395d89b4111610095578063dd62ed3e11610064578063dd62ed3e146106f1578063e8078d941461072e578063f2fde38b14610738578063f8b45b0514610761576101ee565b806395d89b4114610635578063a6097b0a14610660578063a9059cbb14610689578063c3f70b52146106c6576101ee565b806375f0a874116100d157806375f0a8741461057957806376a39c28146105a45780638d3e6e40146105cd5780638da5cb5b1461060a576101ee565b80635a90a49e146104bb5780636373ea69146104f857806370a0823114610525578063715018a614610562576101ee565b8063313ce5671161017a578063470624021161014957806347062402146104135780634d4ce9351461043e5780634fcd24461461046957806357ff135a14610492576101ee565b8063313ce5671461036b578063368f48001461039657806342966c68146103bf57806346b89834146103e8576101ee565b80631e03e705116101b65780631e03e705146102af57806323b872dd146102da5780632b14ca56146103175780632fb528ba14610342576101ee565b806306fdde03146101f3578063095ea7b31461021e578063147c9f6d1461025b57806318160ddd14610284576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020861078c565b6040516102159190613bc2565b60405180910390f35b34801561022a57600080fd5b5061024560048036038101906102409190613c7d565b6107c9565b6040516102529190613cd8565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d9190613cf3565b6108bb565b005b34801561029057600080fd5b50610299610caa565b6040516102a69190613d55565b60405180910390f35b3480156102bb57600080fd5b506102c4610ccd565b6040516102d19190613d7f565b60405180910390f35b3480156102e657600080fd5b5061030160048036038101906102fc9190613d9a565b610cf7565b60405161030e9190613cd8565b60405180910390f35b34801561032357600080fd5b5061032c610f01565b6040516103399190613e09565b60405180910390f35b34801561034e57600080fd5b5061036960048036038101906103649190613e7c565b610f18565b005b34801561037757600080fd5b506103806110fe565b60405161038d9190613e09565b60405180910390f35b3480156103a257600080fd5b506103bd60048036038101906103b89190613ef6565b611107565b005b3480156103cb57600080fd5b506103e660048036038101906103e19190613f36565b6112c3565b005b3480156103f457600080fd5b506103fd61136f565b60405161040a9190613d55565b60405180910390f35b34801561041f57600080fd5b50610428611379565b6040516104359190613e09565b60405180910390f35b34801561044a57600080fd5b50610453611390565b6040516104609190613d55565b60405180910390f35b34801561047557600080fd5b50610490600480360381019061048b9190613f63565b61139a565b005b34801561049e57600080fd5b506104b960048036038101906104b49190613fa3565b6114b4565b005b3480156104c757600080fd5b506104e260048036038101906104dd9190613ff6565b611691565b6040516104ef9190613cd8565b60405180910390f35b34801561050457600080fd5b5061050d6116e7565b60405161051c93929190614032565b60405180910390f35b34801561053157600080fd5b5061054c60048036038101906105479190613ff6565b611728565b6040516105599190613d55565b60405180910390f35b34801561056e57600080fd5b50610577611771565b005b34801561058557600080fd5b5061058e61187a565b60405161059b9190613d7f565b60405180910390f35b3480156105b057600080fd5b506105cb60048036038101906105c69190614069565b6118a4565b005b3480156105d957600080fd5b506105f460048036038101906105ef9190613ff6565b611a0d565b6040516106019190613cd8565b60405180910390f35b34801561061657600080fd5b5061061f611a63565b60405161062c9190613d7f565b60405180910390f35b34801561064157600080fd5b5061064a611a8c565b6040516106579190613bc2565b60405180910390f35b34801561066c57600080fd5b50610687600480360381019061068291906140f8565b611ac9565b005b34801561069557600080fd5b506106b060048036038101906106ab9190613c7d565b611d04565b6040516106bd9190613cd8565b60405180910390f35b3480156106d257600080fd5b506106db611d61565b6040516106e89190613d55565b60405180910390f35b3480156106fd57600080fd5b506107186004803603810190610713919061415f565b611d6b565b6040516107259190613d55565b60405180910390f35b610736611df2565b005b34801561074457600080fd5b5061075f600480360381019061075a91906141dd565b6124df565b005b34801561076d57600080fd5b506107766125e7565b6040516107839190613d55565b60405180910390f35b60606040518060400160405280600c81526020017f53696572726120546f6f6c730000000000000000000000000000000000000000815250905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108a99190613d55565b60405180910390a36001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610949576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094090614256565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156109ed5750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610a435750601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b610a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a79906142c2565b60405180910390fd5b826002600a6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60006009600a610cba9190614444565b620f4240610cc8919061448f565b905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610d02846125f1565b610d41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d389061451d565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610eed5781600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6c919061453d565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610ef88484846126cc565b90509392505050565b6000600260019054906101000a900460ff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9d90614256565b60405180910390fd5b6001601260016101000a81548160ff02191690831515021790555060648260ff161115611008576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fff906145bd565b60405180910390fd5b600060648360ff16600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461105a919061448f565b611064919061460c565b90506009600a6110749190614444565b8111156110855761108481612c58565b5b81156110de576000479050600081116110d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ca90614689565b60405180910390fd5b6110dc47612e77565b505b506000601260016101000a81548160ff0219169083151502179055505050565b60006009905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611195576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118c90614256565b60405180910390fd5b600060016103e88461ffff166009600a6111af9190614444565b620f42406111bd919061448f565b6111c7919061448f565b6111d1919061460c565b6111db91906146a9565b9050600554811015611222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121990614729565b60405180910390fd5b80600581905550600060016103e88461ffff166009600a6112439190614444565b620f4240611251919061448f565b61125b919061448f565b611265919061460c565b61126f91906146a9565b90506006548110156112b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ad90614795565b60405180910390fd5b8060068190555050505050565b60006112ce33611728565b905080821115611313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130a90614801565b60405180910390fd5b61131d3383613003565b3373ffffffffffffffffffffffffffffffffffffffff167ffd38818f5291bf0bb3a2a48aadc06ba8757865d1dabd804585338aab3009dcb6836040516113639190613d55565b60405180910390a25050565b6000600754905090565b6000600260009054906101000a900460ff16905090565b6000600854905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611428576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141f90614256565b60405180910390fd5b600581836114369190614821565b60ff16111561147a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611471906148a2565b60405180910390fd5b81600260006101000a81548160ff021916908360ff16021790555080600260016101000a81548160ff021916908360ff1602179055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611542576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153990614256565b60405180910390fd5b808061154b5750815b156115de57601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156115dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d49061490e565b60405180910390fd5b5b81600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080600060028054906101000a900461ffff16600260049054906101000a900461ffff16600260069054906101000a900461ffff16925092509250909192565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f690614256565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616360006040516118709190613d7f565b60405180910390a1565b60006002600a9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611932576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192990614256565b60405180910390fd5b6000818385611941919061492e565b61194b919061492e565b905060008161ffff1611611994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198b906149b0565b60405180910390fd5b83600260066101000a81548161ffff021916908361ffff160217905550826002806101000a81548161ffff021916908361ffff16021790555081600260046101000a81548161ffff021916908361ffff16021790555080600260086101000a81548161ffff021916908361ffff16021790555050505050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f53544f4f4c530000000000000000000000000000000000000000000000000000815250905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4e90614256565b60405180910390fd5b8263ffffffff168463ffffffff166009600a611b739190614444565b620f4240611b81919061448f565b611b8b919061448f565b611b95919061460c565b6007819055508063ffffffff168263ffffffff166009600a611bb79190614444565b620f4240611bc5919061448f565b611bcf919061448f565b611bd9919061460c565b6008819055506007546008541015611c26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1d90614a1c565b60405180910390fd5b620186a06009600a611c389190614444565b620f4240611c46919061448f565b611c50919061460c565b60085411611c93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8a90614a88565b60405180910390fd5b60646009600a611ca39190614444565b620f4240611cb1919061448f565b611cbb919061460c565b60085410611cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf590614af4565b60405180910390fd5b50505050565b6000611d0f336125f1565b611d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d459061451d565b60405180910390fd5b611d593384846126cc565b905092915050565b6000600554905090565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7790614256565b60405180910390fd5b6001601260016101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2390614b60565b60405180910390fd5b601260009054906101000a900460ff1615611f7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7390614bcc565b60405180910390fd5b6000341180611f8b5750600047115b611fca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc190614c38565b60405180910390fd5b6000600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161204c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204390614ca4565b60405180910390fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120dd9190614cd9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612166573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218a9190614cd9565b6040518363ffffffff1660e01b81526004016121a7929190614d06565b6020604051808303816000875af11580156121c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ea9190614cd9565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612275600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054476000613123565b600954600a6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122e8919061453d565b925050819055506000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527ffff6cae9000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516123ba9190614d76565b6000604051808303816000865af19150503d80600081146123f7576040519150601f19603f3d011682016040523d82523d6000602084013e6123fc565b606091505b5050905080612440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243790614dd9565b60405180910390fd5b8060116000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506124c1613211565b506000601260016101000a81548160ff021916908315150217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461256d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256490614256565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516125dc9190614e58565b60405180910390a150565b6000600654905090565b60008060009050601260009054906101000a900460ff161561261657600190506126c3565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156126b85750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156126c257600190505b5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361273c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273390614ebf565b60405180910390fd5b601260009054906101000a900460ff1661283257600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127f25750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612831576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128289061451d565b60405180910390fd5b5b601260019054906101000a900460ff161580156128985750601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156128a6576128a56132f9565b5b600154431080156128b957506004544310155b801561290e5750601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612982573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612981576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297890614f2b565b60405180910390fd5b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156129ea57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612a42575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612a9257612a52848484613501565b612a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8890614f97565b60405180910390fd5b5b6000612a9f858585613698565b905060008184612aaf919061453d565b905083600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afc919061453d565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160096000828254612b5191906146a9565b9250508190555080600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ba391906146a9565b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051612c439190613d55565b60405180910390a36001925050509392505050565b612c6181613948565b6000600267ffffffffffffffff811115612c7e57612c7d614fb7565b5b604051908082528060200260200182016040528015612cac5781602001602082028036833780820191505090505b5090503081600081518110612cc457612cc3614fe6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d8f9190614cd9565b81600181518110612da357612da2614fe6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612e4195949392919061510e565b600060405180830381600087803b158015612e5b57600080fd5b505af1158015612e6f573d6000803e3d6000fd5b505050505050565b6000600260049054906101000a900461ffff1660028054906101000a900461ffff16612ea3919061492e565b905060008161ffff161115612fff5760008161ffff1660028054906101000a900461ffff1661ffff1684612ed7919061448f565b612ee1919061460c565b905060008261ffff16600260049054906101000a900461ffff1661ffff1685612f0a919061448f565b612f14919061460c565b90506000821115612f89576002600a9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612f87573d6000803e3d6000fd5b505b6000811115612ffc57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612ffa573d6000803e3d6000fd5b505b50505b5050565b600081111561311f5780600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461305b919061453d565b9250508190555080600a60008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130b191906146a9565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131169190613d55565b60405180910390a35b5050565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050811561315557600090505b61315e84613948565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b81526004016131c596959493929190615168565b60606040518083038185885af11580156131e3573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061320891906151de565b50505050505050565b606460026009600a6132239190614444565b620f4240613231919061448f565b61323b919061448f565b613245919061460c565b600581905550606460026009600a61325d9190614444565b620f424061326b919061448f565b613275919061448f565b61327f919061460c565b6006819055506001601260006101000a81548160ff02191690831515021790555043600481905550600060179054906101000a900460ff1660ff16600060169054906101000a900460ff1660ff166004546001546132dd91906146a9565b6132e791906146a9565b6132f191906146a9565b600181905550565b6001601260016101000a81548160ff0219169083151502179055506000600954905060075481101580156133395750601260009054906101000a900460ff165b156134e357600854811061334d5760085490505b600060028060089054906101000a900461ffff1661ffff16600260069054906101000a900461ffff1661ffff1684613385919061448f565b61338f919061460c565b613399919061460c565b9050600081836133a9919061453d565b90506009600a6133b99190614444565b8111156134c757600047905083600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461341491906146a9565b9250508190555061342482612c58565b8360096000828254613436919061453d565b925050819055506000814761344b919061453d565b90506000600260069054906101000a900461ffff1661ffff1611156134c4576000600260089054906101000a900461ffff1661ffff16600260069054906101000a900461ffff1661ffff16836134a1919061448f565b6134ab919061460c565b90506134b685613948565b6134c285826000613123565b505b50505b600047905060008111156134df576134de81612e77565b5b5050505b506000601260016101000a81548160ff021916908315150217905550565b60008060019050601260009054906101000a900460ff16801561356e5750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135c45750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561368d576005548311156135dc576000905061368c565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613681575060065483600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461367f91906146a9565b115b1561368b57600090505b5b5b809150509392505050565b600080601260009054906101000a900460ff1615806137005750600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806137545750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613762576000905061393d565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156138bc57600060179054906101000a900460ff1660ff16600060169054906101000a900460ff1660ff166004546137e791906146a9565b6137f191906146a9565b4310613828576064600260009054906101000a900460ff1660ff1684613817919061448f565b613821919061460c565b90506138b7565b600060169054906101000a900460ff1660ff1660045461384891906146a9565b431061387f576064600060159054906101000a900460ff1660ff168461386e919061448f565b613878919061460c565b90506138b6565b60045443106138b5576064600060149054906101000a900460ff1660ff16846138a8919061448f565b6138b2919061460c565b90505b5b5b61393c565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561393b576064600260019054906101000a900460ff1660ff168461392e919061448f565b613938919061460c565b90505b5b5b809150509392505050565b80600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613b2f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051613b269190613d55565b60405180910390a35b50565b600081519050919050565b600082825260208201905092915050565b60005b83811015613b6c578082015181840152602081019050613b51565b60008484015250505050565b6000601f19601f8301169050919050565b6000613b9482613b32565b613b9e8185613b3d565b9350613bae818560208601613b4e565b613bb781613b78565b840191505092915050565b60006020820190508181036000830152613bdc8184613b89565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613c1482613be9565b9050919050565b613c2481613c09565b8114613c2f57600080fd5b50565b600081359050613c4181613c1b565b92915050565b6000819050919050565b613c5a81613c47565b8114613c6557600080fd5b50565b600081359050613c7781613c51565b92915050565b60008060408385031215613c9457613c93613be4565b5b6000613ca285828601613c32565b9250506020613cb385828601613c68565b9150509250929050565b60008115159050919050565b613cd281613cbd565b82525050565b6000602082019050613ced6000830184613cc9565b92915050565b600080600060608486031215613d0c57613d0b613be4565b5b6000613d1a86828701613c32565b9350506020613d2b86828701613c32565b9250506040613d3c86828701613c32565b9150509250925092565b613d4f81613c47565b82525050565b6000602082019050613d6a6000830184613d46565b92915050565b613d7981613c09565b82525050565b6000602082019050613d946000830184613d70565b92915050565b600080600060608486031215613db357613db2613be4565b5b6000613dc186828701613c32565b9350506020613dd286828701613c32565b9250506040613de386828701613c68565b9150509250925092565b600060ff82169050919050565b613e0381613ded565b82525050565b6000602082019050613e1e6000830184613dfa565b92915050565b613e2d81613ded565b8114613e3857600080fd5b50565b600081359050613e4a81613e24565b92915050565b613e5981613cbd565b8114613e6457600080fd5b50565b600081359050613e7681613e50565b92915050565b60008060408385031215613e9357613e92613be4565b5b6000613ea185828601613e3b565b9250506020613eb285828601613e67565b9150509250929050565b600061ffff82169050919050565b613ed381613ebc565b8114613ede57600080fd5b50565b600081359050613ef081613eca565b92915050565b60008060408385031215613f0d57613f0c613be4565b5b6000613f1b85828601613ee1565b9250506020613f2c85828601613ee1565b9150509250929050565b600060208284031215613f4c57613f4b613be4565b5b6000613f5a84828501613c68565b91505092915050565b60008060408385031215613f7a57613f79613be4565b5b6000613f8885828601613e3b565b9250506020613f9985828601613e3b565b9150509250929050565b600080600060608486031215613fbc57613fbb613be4565b5b6000613fca86828701613c32565b9350506020613fdb86828701613e67565b9250506040613fec86828701613e67565b9150509250925092565b60006020828403121561400c5761400b613be4565b5b600061401a84828501613c32565b91505092915050565b61402c81613ebc565b82525050565b60006060820190506140476000830186614023565b6140546020830185614023565b6140616040830184614023565b949350505050565b60008060006060848603121561408257614081613be4565b5b600061409086828701613ee1565b93505060206140a186828701613ee1565b92505060406140b286828701613ee1565b9150509250925092565b600063ffffffff82169050919050565b6140d5816140bc565b81146140e057600080fd5b50565b6000813590506140f2816140cc565b92915050565b6000806000806080858703121561411257614111613be4565b5b6000614120878288016140e3565b9450506020614131878288016140e3565b9350506040614142878288016140e3565b9250506060614153878288016140e3565b91505092959194509250565b6000806040838503121561417657614175613be4565b5b600061418485828601613c32565b925050602061419585828601613c32565b9150509250929050565b60006141aa82613be9565b9050919050565b6141ba8161419f565b81146141c557600080fd5b50565b6000813590506141d7816141b1565b92915050565b6000602082840312156141f3576141f2613be4565b5b6000614201848285016141c8565b91505092915050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000600082015250565b6000614240601883613b3d565b915061424b8261420a565b602082019050919050565b6000602082019050818103600083015261426f81614233565b9050919050565b7f4c502063616e6e6f74206265207461782077616c6c6574000000000000000000600082015250565b60006142ac601783613b3d565b91506142b782614276565b602082019050919050565b600060208201905081810360008301526142db8161429f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561436857808604811115614344576143436142e2565b5b60018516156143535780820291505b808102905061436185614311565b9450614328565b94509492505050565b600082614381576001905061443d565b8161438f576000905061443d565b81600181146143a557600281146143af576143de565b600191505061443d565b60ff8411156143c1576143c06142e2565b5b8360020a9150848211156143d8576143d76142e2565b5b5061443d565b5060208310610133831016604e8410600b84101617156144135782820a90508381111561440e5761440d6142e2565b5b61443d565b614420848484600161431e565b92509050818404811115614437576144366142e2565b5b81810290505b9392505050565b600061444f82613c47565b915061445a83613ded565b92506144877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614371565b905092915050565b600061449a82613c47565b91506144a583613c47565b92508282026144b381613c47565b915082820484148315176144ca576144c96142e2565b5b5092915050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000614507601083613b3d565b9150614512826144d1565b602082019050919050565b60006020820190508181036000830152614536816144fa565b9050919050565b600061454882613c47565b915061455383613c47565b925082820390508181111561456b5761456a6142e2565b5b92915050565b7f43616e6e6f742073776170206d6f7265207468616e2031303025000000000000600082015250565b60006145a7601a83613b3d565b91506145b282614571565b602082019050919050565b600060208201905081810360008301526145d68161459a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061461782613c47565b915061462283613c47565b925082614632576146316145dd565b5b828204905092915050565b7f4e6f204554480000000000000000000000000000000000000000000000000000600082015250565b6000614673600683613b3d565b915061467e8261463d565b602082019050919050565b600060208201905081810360008301526146a281614666565b9050919050565b60006146b482613c47565b91506146bf83613c47565b92508282019050808211156146d7576146d66142e2565b5b92915050565b7f747820746f6f206c6f7700000000000000000000000000000000000000000000600082015250565b6000614713600a83613b3d565b915061471e826146dd565b602082019050919050565b6000602082019050818103600083015261474281614706565b9050919050565b7f77616c6c657420746f6f206c6f77000000000000000000000000000000000000600082015250565b600061477f600e83613b3d565b915061478a82614749565b602082019050919050565b600060208201905081810360008301526147ae81614772565b9050919050565b7f62616c616e636520746f6f206c6f770000000000000000000000000000000000600082015250565b60006147eb600f83613b3d565b91506147f6826147b5565b602082019050919050565b6000602082019050818103600083015261481a816147de565b9050919050565b600061482c82613ded565b915061483783613ded565b9250828201905060ff8111156148505761484f6142e2565b5b92915050565b7f526f756e647472697020746f6f20686967680000000000000000000000000000600082015250565b600061488c601283613b3d565b915061489782614856565b602082019050919050565b600060208201905081810360008301526148bb8161487f565b9050919050565b7f43616e6e6f74206578656d7074204c5000000000000000000000000000000000600082015250565b60006148f8601083613b3d565b9150614903826148c2565b602082019050919050565b60006020820190508181036000830152614927816148eb565b9050919050565b600061493982613ebc565b915061494483613ebc565b9250828201905061ffff81111561495e5761495d6142e2565b5b92915050565b7f416c6c2063616e6e6f7420626520300000000000000000000000000000000000600082015250565b600061499a600f83613b3d565b91506149a582614964565b602082019050919050565b600060208201905081810360008301526149c98161498d565b9050919050565b7f4d696e2f4d6178206572726f7200000000000000000000000000000000000000600082015250565b6000614a06600d83613b3d565b9150614a11826149d0565b602082019050919050565b60006020820190508181036000830152614a35816149f9565b9050919050565b7f4d617820746f6f206c6f77000000000000000000000000000000000000000000600082015250565b6000614a72600b83613b3d565b9150614a7d82614a3c565b602082019050919050565b60006020820190508181036000830152614aa181614a65565b9050919050565b7f4d617820746f6f20686967680000000000000000000000000000000000000000600082015250565b6000614ade600c83613b3d565b9150614ae982614aa8565b602082019050919050565b60006020820190508181036000830152614b0d81614ad1565b9050919050565b7f4c50206578697374730000000000000000000000000000000000000000000000600082015250565b6000614b4a600983613b3d565b9150614b5582614b14565b602082019050919050565b60006020820190508181036000830152614b7981614b3d565b9050919050565b7f74726164696e67206973206f70656e0000000000000000000000000000000000600082015250565b6000614bb6600f83613b3d565b9150614bc182614b80565b602082019050919050565b60006020820190508181036000830152614be581614ba9565b9050919050565b7f4e6f2045544820696e20636f6e7472616374206f72206d657373616765000000600082015250565b6000614c22601d83613b3d565b9150614c2d82614bec565b602082019050919050565b60006020820190508181036000830152614c5181614c15565b9050919050565b7f4e6f20746f6b656e7320696e20636f6e74726163740000000000000000000000600082015250565b6000614c8e601583613b3d565b9150614c9982614c58565b602082019050919050565b60006020820190508181036000830152614cbd81614c81565b9050919050565b600081519050614cd381613c1b565b92915050565b600060208284031215614cef57614cee613be4565b5b6000614cfd84828501614cc4565b91505092915050565b6000604082019050614d1b6000830185613d70565b614d286020830184613d70565b9392505050565b600081519050919050565b600081905092915050565b6000614d5082614d2f565b614d5a8185614d3a565b9350614d6a818560208601613b4e565b80840191505092915050565b6000614d828284614d45565b915081905092915050565b7f4661696c656420616464696e67206c6971756964697479000000000000000000600082015250565b6000614dc3601783613b3d565b9150614dce82614d8d565b602082019050919050565b60006020820190508181036000830152614df281614db6565b9050919050565b6000819050919050565b6000614e1e614e19614e1484613be9565b614df9565b613be9565b9050919050565b6000614e3082614e03565b9050919050565b6000614e4282614e25565b9050919050565b614e5281614e37565b82525050565b6000602082019050614e6d6000830184614e49565b92915050565b7f4e6f207472616e73666572732066726f6d205a65726f2077616c6c6574000000600082015250565b6000614ea9601d83613b3d565b9150614eb482614e73565b602082019050919050565b60006020820190508181036000830152614ed881614e9c565b9050919050565b7f4d455620626c6f636b6564000000000000000000000000000000000000000000600082015250565b6000614f15600b83613b3d565b9150614f2082614edf565b602082019050919050565b60006020820190508181036000830152614f4481614f08565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b6000614f81601183613b3d565b9150614f8c82614f4b565b602082019050919050565b60006020820190508181036000830152614fb081614f74565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b600061503a61503561503084615015565b614df9565b613c47565b9050919050565b61504a8161501f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61508581613c09565b82525050565b6000615097838361507c565b60208301905092915050565b6000602082019050919050565b60006150bb82615050565b6150c5818561505b565b93506150d08361506c565b8060005b838110156151015781516150e8888261508b565b97506150f3836150a3565b9250506001810190506150d4565b5085935050505092915050565b600060a0820190506151236000830188613d46565b6151306020830187615041565b818103604083015261514281866150b0565b90506151516060830185613d70565b61515e6080830184613d46565b9695505050505050565b600060c08201905061517d6000830189613d70565b61518a6020830188613d46565b6151976040830187615041565b6151a46060830186615041565b6151b16080830185613d70565b6151be60a0830184613d46565b979650505050505050565b6000815190506151d881613c51565b92915050565b6000806000606084860312156151f7576151f6613be4565b5b6000615205868287016151c9565b9350506020615216868287016151c9565b9250506040615227868287016151c9565b915050925092509256fea264697066735822122083fcaa2639e2255a2f5b77fb6692d8a51e9b2950fb708769080d8ffba89d2ed364736f6c63430008130033

Deployed Bytecode Sourcemap

3932:15855:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7192:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7530:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14668:511;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6922:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14563:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7987:404;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13570:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18948:567;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7016:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15586:462;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19523:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15392:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13480:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15488:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13840:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13222:250;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12984:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13664:170;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;7278:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3739:137;;;;;;;;;;;;;:::i;:::-;;14456:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14030:418;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13101:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3489:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7102:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16056:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7754:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15288:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7389:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8724:805;;;:::i;:::-;;3576:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15187:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7192:80;7240:13;7264:5;;;;;;;;;;;;;;;;;7257:12;;7192:80;:::o;7530:216::-;7605:4;7657:6;7622:11;:23;7634:10;7622:23;;;;;;;;;;;;;;;:32;7646:7;7622:32;;;;;;;;;;;;;;;:41;;;;7700:7;7679:37;;7688:10;7679:37;;;7709:6;7679:37;;;;;;:::i;:::-;;;;;;;;7734:4;7727:11;;7530:216;;;;:::o;14668:511::-;3426:6;;;;;;;;;;3412:20;;:10;:20;;;3404:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;14784:5:::1;:16;14790:9;14784:16;;;;;;;;;;;;;;;;;;;;;;;;;14783:17;:36;;;;;14805:5;:14;14811:7;14805:14;;;;;;;;;;;;;;;;;;;;;;;;;14804:15;14783:36;:56;;;;;14824:5;:15;14830:8;14824:15;;;;;;;;;;;;;;;;;;;;;;;;;14823:16;14783:56;14775:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;14915:9;14888:16;;:37;;;;;;;;;;;;;;;;;;14961:7;14936:14;;:33;;;;;;;;;;;;;;;;;;14991:8;14980;;:19;;;;;;;;;;;;;;;;;;15041:4;15020:7;:18;15028:9;15020:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;15079:4;15056:9;:20;15066:9;15056:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;15123:4;15104:7;:16;15112:7;15104:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;15167:4;15146:9;:18;15156:7;15146:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;14668:511:::0;;;:::o;6922:88::-;6977:7;4011:1;4072:2;:13;;;;:::i;:::-;4059:9;:27;;;;:::i;:::-;6988:19;;6922:88;:::o;14563:97::-;14611:7;14638:14;;;;;;;;;;;14631:21;;14563:97;:::o;7987:404::-;8087:4;8112:25;8130:6;8112:17;:25::i;:::-;8104:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;8207:17;8172:11;:19;8184:6;8172:19;;;;;;;;;;;;;;;:31;8192:10;8172:31;;;;;;;;;;;;;;;;:52;8169:157;;8308:6;8274:11;:19;8286:6;8274:19;;;;;;;;;;;;;;;:31;8294:10;8274:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;8240:11;:19;8252:6;8240:19;;;;;;;;;;;;;;;:31;8260:10;8240:31;;;;;;;;;;;;;;;:74;;;;8169:157;8343:40;8357:6;8365:9;8376:6;8343:13;:40::i;:::-;8336:47;;7987:404;;;;;:::o;13570:86::-;13611:5;13636:12;;;;;;;;;;;13629:19;;13570:86;:::o;18948:567::-;3426:6;;;;;;;;;;3412:20;;:10;:20;;;3404:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;5920:4:::1;5907:10;;:17;;;;;;;;;;;;;;;;;;19086:3:::2;19066:16;:23;;;;19058:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;19131:20;19200:3;19181:16;19154:43;;:9;:24;19172:4;19154:24;;;;;;;;;;;;;;;;:43;;;;:::i;:::-;:49;;;;:::i;:::-;19131:72;;4011:1;19233:2;:15;;;;:::i;:::-;19218:12;:30;19214:97;;;19265:34;19286:12;19265:20;:34::i;:::-;19214:97;19325:7;19321:187;;;19350:18;19371:21;19350:42;;19428:1;19415:10;:14;19407:33;;;;;;;;;;;;:::i;:::-;;;;;;;;;19455:40;19473:21;19455:17;:40::i;:::-;19334:174;19321:187;19047:468;5962:5:::1;5949:10;;:18;;;;;;;;;;;;;;;;;;18948:567:::0;;:::o;7016:80::-;7068:5;4011:1;7077:16;;7016:80;:::o;15586:462::-;3426:6;;;;;;;;;;3412:20;;:10;:20;;;3404:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;15692:16:::1;15758:1;15751:4;15726:22;15711:37;;4011:1;4072:2;:13;;;;:::i;:::-;4059:9;:27;;;;:::i;:::-;15711:37;;;;:::i;:::-;:44;;;;:::i;:::-;:48;;;;:::i;:::-;15692:67;;15790:12;;15778:8;:24;;15770:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;15843:8;15828:12;:23;;;;15862:20;15927:1;15920:4;15900:17;15885:32;;4011:1;4072:2;:13;;;;:::i;:::-;4059:9;:27;;;;:::i;:::-;15885:32;;;;:::i;:::-;:39;;;;:::i;:::-;:43;;;;:::i;:::-;15862:66;;15963:16;;15947:12;:32;;15939:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;16028:12;16009:16;:31;;;;15681:367;;15586:462:::0;;:::o;19523:261::-;19573:24;19600:21;19610:10;19600:9;:21::i;:::-;19573:48;;19650:16;19640:6;:26;;19632:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;19697:31;19709:10;19721:6;19697:11;:31::i;:::-;19757:10;19744:32;;;19769:6;19744:32;;;;;;:::i;:::-;;;;;;;;19562:222;19523:261;:::o;15392:90::-;15436:7;15463:11;;15456:18;;15392:90;:::o;13480:84::-;13520:5;13545:11;;;;;;;;;;;13538:18;;13480:84;:::o;15488:90::-;15532:7;15559:11;;15552:18;;15488:90;:::o;13840:182::-;3426:6;;;;;;;;;;3412:20;;:10;:20;;;3404:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;13932:1:::1;13924:4;13918:3;:10;;;;:::i;:::-;:15;;;;13910:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;13981:3;13967:11;;:17;;;;;;;;;;;;;;;;;;14010:4;13995:12;;:19;;;;;;;;;;;;;;;;;;13840:182:::0;;:::o;13222:250::-;3426:6;;;;;;;;;;3412:20;;:10;:20;;;3404:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;13319:8:::1;:18;;;;13331:6;13319:18;13315:72;;;13350:5;:13;13356:6;13350:13;;;;;;;;;;;;;;;;;;;;;;;;;13349:14;13341:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;13315:72;13417:6;13397:7;:17;13406:6;13397:17;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;13456:8;13434:9;:19;13445:6;13434:19;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;13222:250:::0;;;:::o;12984:110::-;13047:4;13071:7;:15;13079:6;13071:15;;;;;;;;;;;;;;;;;;;;;;;;;13064:22;;12984:110;;;:::o;13664:170::-;13707:16;13725:14;13741:9;13773:19;;;;;;;;;;13794:17;;;;;;;;;;;13813:12;;;;;;;;;;;13764:62;;;;;;13664:170;;;:::o;7278:105::-;7344:7;7362:9;:18;7372:7;7362:18;;;;;;;;;;;;;;;;7355:25;;7278:105;;;:::o;3739:137::-;3426:6;;;;;;;;;;3412:20;;:10;:20;;;3404:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;3816:1:::1;3799:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3835:32;3864:1;3835:32;;;;;;:::i;:::-;;;;;;;;3739:137::o:0;14456:101::-;14506:7;14533:16;;;;;;;;;;;14526:23;;14456:101;:::o;14030:418::-;3426:6;;;;;;;;;;3412:20;;:10;:20;;;3404:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;14148:18:::1;14202:13;14184:15;14169:12;:30;;;;:::i;:::-;:46;;;;:::i;:::-;14148:67;;14249:1;14235:11;:15;;;14226:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;14296:12;14281;;:27;;;;;;;;;;;;;;;;;;14341:15;14319:19;::::0;:37:::1;;;;;;;;;;;;;;;;;;14387:13;14367:17;;:33;;;;;;;;;;;;;;;;;;14429:11;14411:15;;:29;;;;;;;;;;;;;;;;;;14137:311;14030:418:::0;;;:::o;13101:114::-;13166:4;13190:9;:17;13200:6;13190:17;;;;;;;;;;;;;;;;;;;;;;;;;13183:24;;13101:114;;;:::o;3489:81::-;3527:7;3555:6;;;;;;;;;;;3548:13;;3489:81;:::o;7102:84::-;7152:13;7176:7;;;;;;;;;;;;;;;;;7169:14;;7102:84;:::o;16056:436::-;3426:6;;;;;;;;;;3412:20;;:10;:20;;;3404:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;16218:10:::1;16192:36;;16207:8;16192:23;;4011:1;4072:2;:13;;;;:::i;:::-;4059:9;:27;;;;:::i;:::-;16192:23;;;;:::i;:::-;:36;;;;:::i;:::-;16178:11;:50;;;;16279:10;16253:36;;16268:8;16253:23;;4011:1;4072:2;:13;;;;:::i;:::-;4059:9;:27;;;;:::i;:::-;16253:23;;;;:::i;:::-;:36;;;;:::i;:::-;16239:11;:50;;;;16321:11;;16308;;:24;;16300:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;16396:6;4011:1;4072:2;:13;;;;:::i;:::-;4059:9;:27;;;;:::i;:::-;16381:21;;;;:::i;:::-;16369:11;;:33;16361:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;16464:3;4011:1;4072:2;:13;;;;:::i;:::-;4059:9;:27;;;;:::i;:::-;16449:18;;;;:::i;:::-;16437:11;;:30;16429:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;16056:436:::0;;;;:::o;7754:225::-;7834:4;7859:29;7877:10;7859:17;:29::i;:::-;7851:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;7927:44;7941:10;7953:9;7964:6;7927:13;:44::i;:::-;7920:51;;7754:225;;;;:::o;15288:96::-;15337:7;15364:12;;15357:19;;15288:96;:::o;7389:133::-;7473:7;7491:11;:19;7503:6;7491:19;;;;;;;;;;;;;;;:28;7511:7;7491:28;;;;;;;;;;;;;;;;7484:35;;7389:133;;;;:::o;8724:805::-;3426:6;;;;;;;;;;3412:20;;:10;:20;;;3404:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;5920:4:::1;5907:10;;:17;;;;;;;;;;;;;;;;;;8828:1:::2;8806:24;;:10;;;;;;;;;;;:24;;;8798:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;8864:12;;;;;;;;;;;8863:13;8855:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;8927:1;8915:9;:13;:40;;;;8954:1;8932:21;:23;8915:40;8907:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;9033:1;9008:9;:24;9026:4;9008:24;;;;;;;;;;;;;;;;:26;9000:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9102:18;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9084:58;;;9151:4;9158:18;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9084:100;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9071:10;;:113;;;;;;;;;;;;;;;;;;9195:69;9209:9;:24;9227:4;9209:24;;;;;;;;;;;;;;;;9235:21;9258:5;9195:13;:69::i;:::-;9300:10;;9275:9;:21;9285:10;;;;;;;;;;;9275:21;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;9322:17;9344:10;;;;;;;;;;;:15;;9360:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9344:50;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9321:73;;;9413:12;9405:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;9484:12;9464:5;:17;9470:10;;;;;;;;;;;9464:17;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;9507:14;:12;:14::i;:::-;8787:742;5962:5:::1;5949:10;;:18;;;;;;;;;;;;;;;;;;8724:805::o:0;3576:157::-;3426:6;;;;;;;;;;3412:20;;:10;:20;;;3404:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;3669:8:::1;3660:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3694:30;3715:8;3694:30;;;;;;:::i;:::-;;;;;;;;3576:157:::0;:::o;15187:95::-;15231:7;15258:16;;15251:23;;15187:95;:::o;11834:279::-;11899:4;11915:16;11934:5;11915:24;;11955:12;;;;;;;;;;;11950:124;;;11986:4;11972:18;;11950:124;;;12013:7;:15;12021:6;12013:15;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;;;12032:9;:17;12042:6;12032:17;;;;;;;;;;;;;;;;;;;;;;;;;12013:36;12009:65;;;12067:4;12053:18;;12009:65;11950:124;12094:11;12087:18;;;11834:279;;;:::o;10249:1074::-;10341:4;10384:1;10366:20;;:6;:20;;;10358:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;10436:12;;;;;;;;;;;10431:89;;10460:7;:15;10468:6;10460:15;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;;;10479:9;:17;10489:6;10479:17;;;;;;;;;;;;;;;;;;;;;;;;;10460:36;10452:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;10431:89;10536:10;;;;;;;;;;;10535:11;:31;;;;;10550:5;:16;10556:9;10550:16;;;;;;;;;;;;;;;;;;;;;;;;;10535:31;10530:64;;;10571:20;:18;:20::i;:::-;10530:64;10624:13;;10609:12;:28;:60;;;;;10657:12;;10641;:28;;10609:60;:77;;;;;10673:5;:13;10679:6;10673:13;;;;;;;;;;;;;;;;;;;;;;;;;10609:77;10604:158;;;10725:9;10712:22;;:9;:22;;;10704:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;10604:158;10795:4;10777:23;;:6;:23;;;;:53;;;;;10825:4;10804:26;;:9;:26;;;;10777:53;:73;;;;;10844:6;;;;;;;;;;10834:16;;:6;:16;;;;10777:73;10772:179;;;10877:39;10890:6;10898:9;10909:6;10877:12;:39::i;:::-;10869:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;10772:179;10961:18;10982:40;10996:6;11004:9;11015:6;10982:13;:40::i;:::-;10961:61;;11033:23;11068:10;11059:6;:19;;;;:::i;:::-;11033:45;;11129:6;11109:9;:17;11119:6;11109:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;11089:9;:17;11099:6;11089:17;;;;;;;;;;;;;;;:46;;;;11160:10;11146;;:24;;;;;;;:::i;:::-;;;;;;;;11227:15;11204:9;:20;11214:9;11204:20;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;11181:9;:20;11191:9;11181:20;;;;;;;;;;;;;;;:61;;;;11275:9;11258:35;;11267:6;11258:35;;;11286:6;11258:35;;;;;;:::i;:::-;;;;;;;;11311:4;11304:11;;;;10249:1074;;;;;:::o;18049:366::-;18119:27;18134:11;18119:14;:27::i;:::-;18157:21;18195:1;18181:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18157:40;;18226:4;18208;18213:1;18208:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18252:18;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18242:4;18247:1;18242:7;;;;;;;;:::i;:::-;;;;;;;:35;;;;;;;;;;;18288:18;;;;;;;;;;;:69;;;18358:11;18370:1;18372:4;18385;18391:15;18288:119;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18108:307;18049:366;:::o;18423:517::-;18485:21;18531:17;;;;;;;;;;;18509:19;;;;;;;;;;:39;;;;:::i;:::-;18485:63;;18580:1;18563:14;:18;;;18559:374;;;18598:23;18655:14;18624:45;;18633:19;;;;;;;;;;18624:28;;:6;:28;;;;:::i;:::-;:45;;;;:::i;:::-;18598:71;;18684:21;18737:14;18708:43;;18717:17;;;;;;;;;;;18708:26;;:6;:26;;;;:::i;:::-;:43;;;;:::i;:::-;18684:67;;18789:1;18771:15;:19;18766:74;;;18795:16;;;;;;;;;;;:25;;:42;18821:15;18795:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18766:74;18875:1;18859:13;:17;18854:68;;;18881:14;;;;;;;;;;;:23;;:38;18905:13;18881:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18854:68;18583:350;;18559:374;18474:466;18423:517;:::o;16500:265::-;16590:1;16581:6;:10;16576:182;;;16634:6;16609:9;:21;16619:10;16609:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;16680:6;16655:9;:21;16673:1;16655:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;16735:1;16706:40;;16715:10;16706:40;;;16739:6;16706:40;;;;;;:::i;:::-;;;;;;;;16576:182;16500:265;;:::o;9537:385::-;9640:24;9667:8;;;;;;;;;;;9640:35;;9691:8;9686:50;;;9731:1;9704:29;;9686:50;9746:28;9761:12;9746:14;:28::i;:::-;9785:18;;;;;;;;;;;:34;;;9827:13;9852:4;9859:12;9873:1;9876;9879:16;9897:15;9785:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9629:293;9537:385;;;:::o;9930:311::-;10012:3;10008:1;4011;4072:2;:13;;;;:::i;:::-;4059:9;:27;;;;:::i;:::-;9993:16;;;;:::i;:::-;:22;;;;:::i;:::-;9974:12;:41;;;;10065:3;10061:1;4011;4072:2;:13;;;;:::i;:::-;4059:9;:27;;;;:::i;:::-;10046:16;;;;:::i;:::-;:22;;;;:::i;:::-;10027:16;:41;;;;10094:4;10079:12;;:19;;;;;;;;;;;;;;;;;;10124:12;10109;:27;;;;10215:18;;;;;;;;;;;10163:70;;10194:18;;;;;;;;;;;10163:49;;10179:12;;10163:13;;:28;;;;:::i;:::-;:49;;;;:::i;:::-;:70;;;;:::i;:::-;10147:13;:86;;;;9930:311::o;16773:1268::-;5920:4;5907:10;;:17;;;;;;;;;;;;;;;;;;16834:27:::1;16864:10;;16834:40;;16913:11;;16890:19;:34;;:50;;;;;16928:12;;;;;;;;;;;16890:50;16885:1149;;;16986:11;;16963:19;:34;16958:80;;17024:11;;17002:33;;16958:80;17052:20;17130:1;17112:15:::0;::::1;;;;;;;;;;17075:52;;17097:12;;;;;;;;;;;17075:34;;:19;:34;;;;:::i;:::-;:52;;;;:::i;:::-;:56;;;;:::i;:::-;17052:79;;17160:21;17206:12;17184:19;:34;;;;:::i;:::-;17160:58;;4011:1;17253:2;:13;;;;:::i;:::-;17237;:29;17233:639;;;17288:19;17310:21;17288:43;;17378:19;17350:9;:24;17368:4;17350:24;;;;;;;;;;;;;;;;:47;;;;;;;:::i;:::-;;;;;;;;17416:35;17437:13;17416:20;:35::i;:::-;17484:19;17470:10;;:33;;;;;;;:::i;:::-;;;;;;;;17522:19;17568:11;17544:21;:35;;;;:::i;:::-;17522:57;;17618:1;17603:12;;;;;;;;;;;:16;;;17598:259;;;17645:21;17698:15;;;;;;;;;;;17669:44;;17683:12;;;;;;;;;;;17669:26;;:11;:26;;;;:::i;:::-;:44;;;;:::i;:::-;17645:68;;17737:28;17752:12;17737:14;:28::i;:::-;17788:49;17802:12;17816:13;17831:5;17788:13;:49::i;:::-;17622:235;17598:259;17269:603;;17233:639;17886:27;17916:21;17886:51;;17977:1;17955:19;:23;17952:71;;;17982:38;18000:19;17982:17;:38::i;:::-;17952:71;16943:1091;;;16885:1149;16823:1218;5962:5:::0;5949:10;;:18;;;;;;;;;;;;;;;;;;16773:1268::o;11331:495::-;11435:4;11452:21;11476:4;11452:28;;11496:12;;;;;;;;;;;:34;;;;;11513:9;:17;11523:6;11513:17;;;;;;;;;;;;;;;;;;;;;;;;;11512:18;11496:34;:59;;;;;11535:9;:20;11545:9;11535:20;;;;;;;;;;;;;;;;;;;;;;;;;11534:21;11496:59;11491:294;;;11595:12;;11578:14;:29;11573:201;;;11631:5;11612:24;;11573:201;;;11664:5;:16;11670:9;11664:16;;;;;;;;;;;;;;;;;;;;;;;;;11663:17;:79;;;;;11725:16;;11708:14;11685:9;:20;11695:9;11685:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;:56;11663:79;11658:116;;;11766:5;11747:24;;11658:116;11573:201;11491:294;11802:16;11795:23;;;11331:495;;;;;:::o;12121:853::-;12218:7;12238:17;12282:12;;;;;;;;;;;12281:13;:32;;;;12298:7;:15;12306:6;12298:15;;;;;;;;;;;;;;;;;;;;;;;;;12281:32;:54;;;;12317:7;:18;12325:9;12317:18;;;;;;;;;;;;;;;;;;;;;;;;;12281:54;12276:662;;;12366:1;12354:13;;12276:662;;;12391:5;:13;12397:6;12391:13;;;;;;;;;;;;;;;;;;;;;;;;;12386:552;;;12480:18;;;;;;;;;;;12444:54;;12459:18;;;;;;;;;;;12444:33;;:12;;:33;;;;:::i;:::-;:54;;;;:::i;:::-;12428:12;:70;12423:406;;12555:3;12541:11;;;;;;;;;;;12532:20;;:6;:20;;;;:::i;:::-;:26;;;;:::i;:::-;12520:38;;12423:406;;;12617:18;;;;;;;;;;;12602:33;;:12;;:33;;;;:::i;:::-;12586:12;:49;12581:248;;12694:3;12678:13;;;;;;;;;;;12669:22;;:6;:22;;;;:::i;:::-;:28;;;;:::i;:::-;12657:40;;12581:248;;;12740:12;;12724;:28;12719:110;;12810:3;12794:13;;;;;;;;;;;12785:22;;:6;:22;;;;:::i;:::-;:28;;;;:::i;:::-;12773:40;;12719:110;12581:248;12423:406;12386:552;;;12851:5;:16;12857:9;12851:16;;;;;;;;;;;;;;;;;;;;;;;;;12846:92;;;12922:3;12907:12;;;;;;;;;;;12898:21;;:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;12886:39;;12846:92;12386:552;12276:662;12957:9;12950:16;;;12121:853;;;;;:::o;8399:317::-;8519:12;8470:11;:26;8490:4;8470:26;;;;;;;;;;;;;;;:46;5578:42;8470:46;;;;;;;;;;;;;;;;:61;8465:244;;;8598:17;8549:11;:26;8569:4;8549:26;;;;;;;;;;;;;;;:46;5578:42;8549:46;;;;;;;;;;;;;;;:66;;;;5578:42;8635:62;;8652:4;8635:62;;;8679:17;8635:62;;;;;;:::i;:::-;;;;;;;;8465:244;8399:317;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:619::-;3523:6;3531;3539;3588:2;3576:9;3567:7;3563:23;3559:32;3556:119;;;3594:79;;:::i;:::-;3556:119;3714:1;3739:53;3784:7;3775:6;3764:9;3760:22;3739:53;:::i;:::-;3729:63;;3685:117;3841:2;3867:53;3912:7;3903:6;3892:9;3888:22;3867:53;:::i;:::-;3857:63;;3812:118;3969:2;3995:53;4040:7;4031:6;4020:9;4016:22;3995:53;:::i;:::-;3985:63;;3940:118;3446:619;;;;;:::o;4071:118::-;4158:24;4176:5;4158:24;:::i;:::-;4153:3;4146:37;4071:118;;:::o;4195:222::-;4288:4;4326:2;4315:9;4311:18;4303:26;;4339:71;4407:1;4396:9;4392:17;4383:6;4339:71;:::i;:::-;4195:222;;;;:::o;4423:118::-;4510:24;4528:5;4510:24;:::i;:::-;4505:3;4498:37;4423:118;;:::o;4547:222::-;4640:4;4678:2;4667:9;4663:18;4655:26;;4691:71;4759:1;4748:9;4744:17;4735:6;4691:71;:::i;:::-;4547:222;;;;:::o;4775:619::-;4852:6;4860;4868;4917:2;4905:9;4896:7;4892:23;4888:32;4885:119;;;4923:79;;:::i;:::-;4885:119;5043:1;5068:53;5113:7;5104:6;5093:9;5089:22;5068:53;:::i;:::-;5058:63;;5014:117;5170:2;5196:53;5241:7;5232:6;5221:9;5217:22;5196:53;:::i;:::-;5186:63;;5141:118;5298:2;5324:53;5369:7;5360:6;5349:9;5345:22;5324:53;:::i;:::-;5314:63;;5269:118;4775:619;;;;;:::o;5400:86::-;5435:7;5475:4;5468:5;5464:16;5453:27;;5400:86;;;:::o;5492:112::-;5575:22;5591:5;5575:22;:::i;:::-;5570:3;5563:35;5492:112;;:::o;5610:214::-;5699:4;5737:2;5726:9;5722:18;5714:26;;5750:67;5814:1;5803:9;5799:17;5790:6;5750:67;:::i;:::-;5610:214;;;;:::o;5830:118::-;5901:22;5917:5;5901:22;:::i;:::-;5894:5;5891:33;5881:61;;5938:1;5935;5928:12;5881:61;5830:118;:::o;5954:135::-;5998:5;6036:6;6023:20;6014:29;;6052:31;6077:5;6052:31;:::i;:::-;5954:135;;;;:::o;6095:116::-;6165:21;6180:5;6165:21;:::i;:::-;6158:5;6155:32;6145:60;;6201:1;6198;6191:12;6145:60;6095:116;:::o;6217:133::-;6260:5;6298:6;6285:20;6276:29;;6314:30;6338:5;6314:30;:::i;:::-;6217:133;;;;:::o;6356:464::-;6419:6;6427;6476:2;6464:9;6455:7;6451:23;6447:32;6444:119;;;6482:79;;:::i;:::-;6444:119;6602:1;6627:51;6670:7;6661:6;6650:9;6646:22;6627:51;:::i;:::-;6617:61;;6573:115;6727:2;6753:50;6795:7;6786:6;6775:9;6771:22;6753:50;:::i;:::-;6743:60;;6698:115;6356:464;;;;;:::o;6826:89::-;6862:7;6902:6;6895:5;6891:18;6880:29;;6826:89;;;:::o;6921:120::-;6993:23;7010:5;6993:23;:::i;:::-;6986:5;6983:34;6973:62;;7031:1;7028;7021:12;6973:62;6921:120;:::o;7047:137::-;7092:5;7130:6;7117:20;7108:29;;7146:32;7172:5;7146:32;:::i;:::-;7047:137;;;;:::o;7190:470::-;7256:6;7264;7313:2;7301:9;7292:7;7288:23;7284:32;7281:119;;;7319:79;;:::i;:::-;7281:119;7439:1;7464:52;7508:7;7499:6;7488:9;7484:22;7464:52;:::i;:::-;7454:62;;7410:116;7565:2;7591:52;7635:7;7626:6;7615:9;7611:22;7591:52;:::i;:::-;7581:62;;7536:117;7190:470;;;;;:::o;7666:329::-;7725:6;7774:2;7762:9;7753:7;7749:23;7745:32;7742:119;;;7780:79;;:::i;:::-;7742:119;7900:1;7925:53;7970:7;7961:6;7950:9;7946:22;7925:53;:::i;:::-;7915:63;;7871:117;7666:329;;;;:::o;8001:466::-;8065:6;8073;8122:2;8110:9;8101:7;8097:23;8093:32;8090:119;;;8128:79;;:::i;:::-;8090:119;8248:1;8273:51;8316:7;8307:6;8296:9;8292:22;8273:51;:::i;:::-;8263:61;;8219:115;8373:2;8399:51;8442:7;8433:6;8422:9;8418:22;8399:51;:::i;:::-;8389:61;;8344:116;8001:466;;;;;:::o;8473:607::-;8544:6;8552;8560;8609:2;8597:9;8588:7;8584:23;8580:32;8577:119;;;8615:79;;:::i;:::-;8577:119;8735:1;8760:53;8805:7;8796:6;8785:9;8781:22;8760:53;:::i;:::-;8750:63;;8706:117;8862:2;8888:50;8930:7;8921:6;8910:9;8906:22;8888:50;:::i;:::-;8878:60;;8833:115;8987:2;9013:50;9055:7;9046:6;9035:9;9031:22;9013:50;:::i;:::-;9003:60;;8958:115;8473:607;;;;;:::o;9086:329::-;9145:6;9194:2;9182:9;9173:7;9169:23;9165:32;9162:119;;;9200:79;;:::i;:::-;9162:119;9320:1;9345:53;9390:7;9381:6;9370:9;9366:22;9345:53;:::i;:::-;9335:63;;9291:117;9086:329;;;;:::o;9421:115::-;9506:23;9523:5;9506:23;:::i;:::-;9501:3;9494:36;9421:115;;:::o;9542:430::-;9685:4;9723:2;9712:9;9708:18;9700:26;;9736:69;9802:1;9791:9;9787:17;9778:6;9736:69;:::i;:::-;9815:70;9881:2;9870:9;9866:18;9857:6;9815:70;:::i;:::-;9895;9961:2;9950:9;9946:18;9937:6;9895:70;:::i;:::-;9542:430;;;;;;:::o;9978:613::-;10052:6;10060;10068;10117:2;10105:9;10096:7;10092:23;10088:32;10085:119;;;10123:79;;:::i;:::-;10085:119;10243:1;10268:52;10312:7;10303:6;10292:9;10288:22;10268:52;:::i;:::-;10258:62;;10214:116;10369:2;10395:52;10439:7;10430:6;10419:9;10415:22;10395:52;:::i;:::-;10385:62;;10340:117;10496:2;10522:52;10566:7;10557:6;10546:9;10542:22;10522:52;:::i;:::-;10512:62;;10467:117;9978:613;;;;;:::o;10597:93::-;10633:7;10673:10;10666:5;10662:22;10651:33;;10597:93;;;:::o;10696:120::-;10768:23;10785:5;10768:23;:::i;:::-;10761:5;10758:34;10748:62;;10806:1;10803;10796:12;10748:62;10696:120;:::o;10822:137::-;10867:5;10905:6;10892:20;10883:29;;10921:32;10947:5;10921:32;:::i;:::-;10822:137;;;;:::o;10965:757::-;11047:6;11055;11063;11071;11120:3;11108:9;11099:7;11095:23;11091:33;11088:120;;;11127:79;;:::i;:::-;11088:120;11247:1;11272:52;11316:7;11307:6;11296:9;11292:22;11272:52;:::i;:::-;11262:62;;11218:116;11373:2;11399:52;11443:7;11434:6;11423:9;11419:22;11399:52;:::i;:::-;11389:62;;11344:117;11500:2;11526:52;11570:7;11561:6;11550:9;11546:22;11526:52;:::i;:::-;11516:62;;11471:117;11627:2;11653:52;11697:7;11688:6;11677:9;11673:22;11653:52;:::i;:::-;11643:62;;11598:117;10965:757;;;;;;;:::o;11728:474::-;11796:6;11804;11853:2;11841:9;11832:7;11828:23;11824:32;11821:119;;;11859:79;;:::i;:::-;11821:119;11979:1;12004:53;12049:7;12040:6;12029:9;12025:22;12004:53;:::i;:::-;11994:63;;11950:117;12106:2;12132:53;12177:7;12168:6;12157:9;12153:22;12132:53;:::i;:::-;12122:63;;12077:118;11728:474;;;;;:::o;12208:104::-;12253:7;12282:24;12300:5;12282:24;:::i;:::-;12271:35;;12208:104;;;:::o;12318:138::-;12399:32;12425:5;12399:32;:::i;:::-;12392:5;12389:43;12379:71;;12446:1;12443;12436:12;12379:71;12318:138;:::o;12462:155::-;12516:5;12554:6;12541:20;12532:29;;12570:41;12605:5;12570:41;:::i;:::-;12462:155;;;;:::o;12623:345::-;12690:6;12739:2;12727:9;12718:7;12714:23;12710:32;12707:119;;;12745:79;;:::i;:::-;12707:119;12865:1;12890:61;12943:7;12934:6;12923:9;12919:22;12890:61;:::i;:::-;12880:71;;12836:125;12623:345;;;;:::o;12974:174::-;13114:26;13110:1;13102:6;13098:14;13091:50;12974:174;:::o;13154:366::-;13296:3;13317:67;13381:2;13376:3;13317:67;:::i;:::-;13310:74;;13393:93;13482:3;13393:93;:::i;:::-;13511:2;13506:3;13502:12;13495:19;;13154:366;;;:::o;13526:419::-;13692:4;13730:2;13719:9;13715:18;13707:26;;13779:9;13773:4;13769:20;13765:1;13754:9;13750:17;13743:47;13807:131;13933:4;13807:131;:::i;:::-;13799:139;;13526:419;;;:::o;13951:173::-;14091:25;14087:1;14079:6;14075:14;14068:49;13951:173;:::o;14130:366::-;14272:3;14293:67;14357:2;14352:3;14293:67;:::i;:::-;14286:74;;14369:93;14458:3;14369:93;:::i;:::-;14487:2;14482:3;14478:12;14471:19;;14130:366;;;:::o;14502:419::-;14668:4;14706:2;14695:9;14691:18;14683:26;;14755:9;14749:4;14745:20;14741:1;14730:9;14726:17;14719:47;14783:131;14909:4;14783:131;:::i;:::-;14775:139;;14502:419;;;:::o;14927:180::-;14975:77;14972:1;14965:88;15072:4;15069:1;15062:15;15096:4;15093:1;15086:15;15113:102;15155:8;15202:5;15199:1;15195:13;15174:34;;15113:102;;;:::o;15221:848::-;15282:5;15289:4;15313:6;15304:15;;15337:5;15328:14;;15351:712;15372:1;15362:8;15359:15;15351:712;;;15467:4;15462:3;15458:14;15452:4;15449:24;15446:50;;;15476:18;;:::i;:::-;15446:50;15526:1;15516:8;15512:16;15509:451;;;15941:4;15934:5;15930:16;15921:25;;15509:451;15991:4;15985;15981:15;15973:23;;16021:32;16044:8;16021:32;:::i;:::-;16009:44;;15351:712;;;15221:848;;;;;;;:::o;16075:1073::-;16129:5;16320:8;16310:40;;16341:1;16332:10;;16343:5;;16310:40;16369:4;16359:36;;16386:1;16377:10;;16388:5;;16359:36;16455:4;16503:1;16498:27;;;;16539:1;16534:191;;;;16448:277;;16498:27;16516:1;16507:10;;16518:5;;;16534:191;16579:3;16569:8;16566:17;16563:43;;;16586:18;;:::i;:::-;16563:43;16635:8;16632:1;16628:16;16619:25;;16670:3;16663:5;16660:14;16657:40;;;16677:18;;:::i;:::-;16657:40;16710:5;;;16448:277;;16834:2;16824:8;16821:16;16815:3;16809:4;16806:13;16802:36;16784:2;16774:8;16771:16;16766:2;16760:4;16757:12;16753:35;16737:111;16734:246;;;16890:8;16884:4;16880:19;16871:28;;16925:3;16918:5;16915:14;16912:40;;;16932:18;;:::i;:::-;16912:40;16965:5;;16734:246;17005:42;17043:3;17033:8;17027:4;17024:1;17005:42;:::i;:::-;16990:57;;;;17079:4;17074:3;17070:14;17063:5;17060:25;17057:51;;;17088:18;;:::i;:::-;17057:51;17137:4;17130:5;17126:16;17117:25;;16075:1073;;;;;;:::o;17154:281::-;17212:5;17236:23;17254:4;17236:23;:::i;:::-;17228:31;;17280:25;17296:8;17280:25;:::i;:::-;17268:37;;17324:104;17361:66;17351:8;17345:4;17324:104;:::i;:::-;17315:113;;17154:281;;;;:::o;17441:410::-;17481:7;17504:20;17522:1;17504:20;:::i;:::-;17499:25;;17538:20;17556:1;17538:20;:::i;:::-;17533:25;;17593:1;17590;17586:9;17615:30;17633:11;17615:30;:::i;:::-;17604:41;;17794:1;17785:7;17781:15;17778:1;17775:22;17755:1;17748:9;17728:83;17705:139;;17824:18;;:::i;:::-;17705:139;17489:362;17441:410;;;;:::o;17857:166::-;17997:18;17993:1;17985:6;17981:14;17974:42;17857:166;:::o;18029:366::-;18171:3;18192:67;18256:2;18251:3;18192:67;:::i;:::-;18185:74;;18268:93;18357:3;18268:93;:::i;:::-;18386:2;18381:3;18377:12;18370:19;;18029:366;;;:::o;18401:419::-;18567:4;18605:2;18594:9;18590:18;18582:26;;18654:9;18648:4;18644:20;18640:1;18629:9;18625:17;18618:47;18682:131;18808:4;18682:131;:::i;:::-;18674:139;;18401:419;;;:::o;18826:194::-;18866:4;18886:20;18904:1;18886:20;:::i;:::-;18881:25;;18920:20;18938:1;18920:20;:::i;:::-;18915:25;;18964:1;18961;18957:9;18949:17;;18988:1;18982:4;18979:11;18976:37;;;18993:18;;:::i;:::-;18976:37;18826:194;;;;:::o;19026:176::-;19166:28;19162:1;19154:6;19150:14;19143:52;19026:176;:::o;19208:366::-;19350:3;19371:67;19435:2;19430:3;19371:67;:::i;:::-;19364:74;;19447:93;19536:3;19447:93;:::i;:::-;19565:2;19560:3;19556:12;19549:19;;19208:366;;;:::o;19580:419::-;19746:4;19784:2;19773:9;19769:18;19761:26;;19833:9;19827:4;19823:20;19819:1;19808:9;19804:17;19797:47;19861:131;19987:4;19861:131;:::i;:::-;19853:139;;19580:419;;;:::o;20005:180::-;20053:77;20050:1;20043:88;20150:4;20147:1;20140:15;20174:4;20171:1;20164:15;20191:185;20231:1;20248:20;20266:1;20248:20;:::i;:::-;20243:25;;20282:20;20300:1;20282:20;:::i;:::-;20277:25;;20321:1;20311:35;;20326:18;;:::i;:::-;20311:35;20368:1;20365;20361:9;20356:14;;20191:185;;;;:::o;20382:156::-;20522:8;20518:1;20510:6;20506:14;20499:32;20382:156;:::o;20544:365::-;20686:3;20707:66;20771:1;20766:3;20707:66;:::i;:::-;20700:73;;20782:93;20871:3;20782:93;:::i;:::-;20900:2;20895:3;20891:12;20884:19;;20544:365;;;:::o;20915:419::-;21081:4;21119:2;21108:9;21104:18;21096:26;;21168:9;21162:4;21158:20;21154:1;21143:9;21139:17;21132:47;21196:131;21322:4;21196:131;:::i;:::-;21188:139;;20915:419;;;:::o;21340:191::-;21380:3;21399:20;21417:1;21399:20;:::i;:::-;21394:25;;21433:20;21451:1;21433:20;:::i;:::-;21428:25;;21476:1;21473;21469:9;21462:16;;21497:3;21494:1;21491:10;21488:36;;;21504:18;;:::i;:::-;21488:36;21340:191;;;;:::o;21537:160::-;21677:12;21673:1;21665:6;21661:14;21654:36;21537:160;:::o;21703:366::-;21845:3;21866:67;21930:2;21925:3;21866:67;:::i;:::-;21859:74;;21942:93;22031:3;21942:93;:::i;:::-;22060:2;22055:3;22051:12;22044:19;;21703:366;;;:::o;22075:419::-;22241:4;22279:2;22268:9;22264:18;22256:26;;22328:9;22322:4;22318:20;22314:1;22303:9;22299:17;22292:47;22356:131;22482:4;22356:131;:::i;:::-;22348:139;;22075:419;;;:::o;22500:164::-;22640:16;22636:1;22628:6;22624:14;22617:40;22500:164;:::o;22670:366::-;22812:3;22833:67;22897:2;22892:3;22833:67;:::i;:::-;22826:74;;22909:93;22998:3;22909:93;:::i;:::-;23027:2;23022:3;23018:12;23011:19;;22670:366;;;:::o;23042:419::-;23208:4;23246:2;23235:9;23231:18;23223:26;;23295:9;23289:4;23285:20;23281:1;23270:9;23266:17;23259:47;23323:131;23449:4;23323:131;:::i;:::-;23315:139;;23042:419;;;:::o;23467:165::-;23607:17;23603:1;23595:6;23591:14;23584:41;23467:165;:::o;23638:366::-;23780:3;23801:67;23865:2;23860:3;23801:67;:::i;:::-;23794:74;;23877:93;23966:3;23877:93;:::i;:::-;23995:2;23990:3;23986:12;23979:19;;23638:366;;;:::o;24010:419::-;24176:4;24214:2;24203:9;24199:18;24191:26;;24263:9;24257:4;24253:20;24249:1;24238:9;24234:17;24227:47;24291:131;24417:4;24291:131;:::i;:::-;24283:139;;24010:419;;;:::o;24435:188::-;24473:3;24492:18;24508:1;24492:18;:::i;:::-;24487:23;;24524:18;24540:1;24524:18;:::i;:::-;24519:23;;24565:1;24562;24558:9;24551:16;;24588:4;24583:3;24580:13;24577:39;;;24596:18;;:::i;:::-;24577:39;24435:188;;;;:::o;24629:168::-;24769:20;24765:1;24757:6;24753:14;24746:44;24629:168;:::o;24803:366::-;24945:3;24966:67;25030:2;25025:3;24966:67;:::i;:::-;24959:74;;25042:93;25131:3;25042:93;:::i;:::-;25160:2;25155:3;25151:12;25144:19;;24803:366;;;:::o;25175:419::-;25341:4;25379:2;25368:9;25364:18;25356:26;;25428:9;25422:4;25418:20;25414:1;25403:9;25399:17;25392:47;25456:131;25582:4;25456:131;:::i;:::-;25448:139;;25175:419;;;:::o;25600:166::-;25740:18;25736:1;25728:6;25724:14;25717:42;25600:166;:::o;25772:366::-;25914:3;25935:67;25999:2;25994:3;25935:67;:::i;:::-;25928:74;;26011:93;26100:3;26011:93;:::i;:::-;26129:2;26124:3;26120:12;26113:19;;25772:366;;;:::o;26144:419::-;26310:4;26348:2;26337:9;26333:18;26325:26;;26397:9;26391:4;26387:20;26383:1;26372:9;26368:17;26361:47;26425:131;26551:4;26425:131;:::i;:::-;26417:139;;26144:419;;;:::o;26569:193::-;26608:3;26627:19;26644:1;26627:19;:::i;:::-;26622:24;;26660:19;26677:1;26660:19;:::i;:::-;26655:24;;26702:1;26699;26695:9;26688:16;;26725:6;26720:3;26717:15;26714:41;;;26735:18;;:::i;:::-;26714:41;26569:193;;;;:::o;26768:165::-;26908:17;26904:1;26896:6;26892:14;26885:41;26768:165;:::o;26939:366::-;27081:3;27102:67;27166:2;27161:3;27102:67;:::i;:::-;27095:74;;27178:93;27267:3;27178:93;:::i;:::-;27296:2;27291:3;27287:12;27280:19;;26939:366;;;:::o;27311:419::-;27477:4;27515:2;27504:9;27500:18;27492:26;;27564:9;27558:4;27554:20;27550:1;27539:9;27535:17;27528:47;27592:131;27718:4;27592:131;:::i;:::-;27584:139;;27311:419;;;:::o;27736:163::-;27876:15;27872:1;27864:6;27860:14;27853:39;27736:163;:::o;27905:366::-;28047:3;28068:67;28132:2;28127:3;28068:67;:::i;:::-;28061:74;;28144:93;28233:3;28144:93;:::i;:::-;28262:2;28257:3;28253:12;28246:19;;27905:366;;;:::o;28277:419::-;28443:4;28481:2;28470:9;28466:18;28458:26;;28530:9;28524:4;28520:20;28516:1;28505:9;28501:17;28494:47;28558:131;28684:4;28558:131;:::i;:::-;28550:139;;28277:419;;;:::o;28702:161::-;28842:13;28838:1;28830:6;28826:14;28819:37;28702:161;:::o;28869:366::-;29011:3;29032:67;29096:2;29091:3;29032:67;:::i;:::-;29025:74;;29108:93;29197:3;29108:93;:::i;:::-;29226:2;29221:3;29217:12;29210:19;;28869:366;;;:::o;29241:419::-;29407:4;29445:2;29434:9;29430:18;29422:26;;29494:9;29488:4;29484:20;29480:1;29469:9;29465:17;29458:47;29522:131;29648:4;29522:131;:::i;:::-;29514:139;;29241:419;;;:::o;29666:162::-;29806:14;29802:1;29794:6;29790:14;29783:38;29666:162;:::o;29834:366::-;29976:3;29997:67;30061:2;30056:3;29997:67;:::i;:::-;29990:74;;30073:93;30162:3;30073:93;:::i;:::-;30191:2;30186:3;30182:12;30175:19;;29834:366;;;:::o;30206:419::-;30372:4;30410:2;30399:9;30395:18;30387:26;;30459:9;30453:4;30449:20;30445:1;30434:9;30430:17;30423:47;30487:131;30613:4;30487:131;:::i;:::-;30479:139;;30206:419;;;:::o;30631:159::-;30771:11;30767:1;30759:6;30755:14;30748:35;30631:159;:::o;30796:365::-;30938:3;30959:66;31023:1;31018:3;30959:66;:::i;:::-;30952:73;;31034:93;31123:3;31034:93;:::i;:::-;31152:2;31147:3;31143:12;31136:19;;30796:365;;;:::o;31167:419::-;31333:4;31371:2;31360:9;31356:18;31348:26;;31420:9;31414:4;31410:20;31406:1;31395:9;31391:17;31384:47;31448:131;31574:4;31448:131;:::i;:::-;31440:139;;31167:419;;;:::o;31592:165::-;31732:17;31728:1;31720:6;31716:14;31709:41;31592:165;:::o;31763:366::-;31905:3;31926:67;31990:2;31985:3;31926:67;:::i;:::-;31919:74;;32002:93;32091:3;32002:93;:::i;:::-;32120:2;32115:3;32111:12;32104:19;;31763:366;;;:::o;32135:419::-;32301:4;32339:2;32328:9;32324:18;32316:26;;32388:9;32382:4;32378:20;32374:1;32363:9;32359:17;32352:47;32416:131;32542:4;32416:131;:::i;:::-;32408:139;;32135:419;;;:::o;32560:179::-;32700:31;32696:1;32688:6;32684:14;32677:55;32560:179;:::o;32745:366::-;32887:3;32908:67;32972:2;32967:3;32908:67;:::i;:::-;32901:74;;32984:93;33073:3;32984:93;:::i;:::-;33102:2;33097:3;33093:12;33086:19;;32745:366;;;:::o;33117:419::-;33283:4;33321:2;33310:9;33306:18;33298:26;;33370:9;33364:4;33360:20;33356:1;33345:9;33341:17;33334:47;33398:131;33524:4;33398:131;:::i;:::-;33390:139;;33117:419;;;:::o;33542:171::-;33682:23;33678:1;33670:6;33666:14;33659:47;33542:171;:::o;33719:366::-;33861:3;33882:67;33946:2;33941:3;33882:67;:::i;:::-;33875:74;;33958:93;34047:3;33958:93;:::i;:::-;34076:2;34071:3;34067:12;34060:19;;33719:366;;;:::o;34091:419::-;34257:4;34295:2;34284:9;34280:18;34272:26;;34344:9;34338:4;34334:20;34330:1;34319:9;34315:17;34308:47;34372:131;34498:4;34372:131;:::i;:::-;34364:139;;34091:419;;;:::o;34516:143::-;34573:5;34604:6;34598:13;34589:22;;34620:33;34647:5;34620:33;:::i;:::-;34516:143;;;;:::o;34665:351::-;34735:6;34784:2;34772:9;34763:7;34759:23;34755:32;34752:119;;;34790:79;;:::i;:::-;34752:119;34910:1;34935:64;34991:7;34982:6;34971:9;34967:22;34935:64;:::i;:::-;34925:74;;34881:128;34665:351;;;;:::o;35022:332::-;35143:4;35181:2;35170:9;35166:18;35158:26;;35194:71;35262:1;35251:9;35247:17;35238:6;35194:71;:::i;:::-;35275:72;35343:2;35332:9;35328:18;35319:6;35275:72;:::i;:::-;35022:332;;;;;:::o;35360:98::-;35411:6;35445:5;35439:12;35429:22;;35360:98;;;:::o;35464:147::-;35565:11;35602:3;35587:18;;35464:147;;;;:::o;35617:386::-;35721:3;35749:38;35781:5;35749:38;:::i;:::-;35803:88;35884:6;35879:3;35803:88;:::i;:::-;35796:95;;35900:65;35958:6;35953:3;35946:4;35939:5;35935:16;35900:65;:::i;:::-;35990:6;35985:3;35981:16;35974:23;;35725:278;35617:386;;;;:::o;36009:271::-;36139:3;36161:93;36250:3;36241:6;36161:93;:::i;:::-;36154:100;;36271:3;36264:10;;36009:271;;;;:::o;36286:173::-;36426:25;36422:1;36414:6;36410:14;36403:49;36286:173;:::o;36465:366::-;36607:3;36628:67;36692:2;36687:3;36628:67;:::i;:::-;36621:74;;36704:93;36793:3;36704:93;:::i;:::-;36822:2;36817:3;36813:12;36806:19;;36465:366;;;:::o;36837:419::-;37003:4;37041:2;37030:9;37026:18;37018:26;;37090:9;37084:4;37080:20;37076:1;37065:9;37061:17;37054:47;37118:131;37244:4;37118:131;:::i;:::-;37110:139;;36837:419;;;:::o;37262:60::-;37290:3;37311:5;37304:12;;37262:60;;;:::o;37328:142::-;37378:9;37411:53;37429:34;37438:24;37456:5;37438:24;:::i;:::-;37429:34;:::i;:::-;37411:53;:::i;:::-;37398:66;;37328:142;;;:::o;37476:126::-;37526:9;37559:37;37590:5;37559:37;:::i;:::-;37546:50;;37476:126;;;:::o;37608:134::-;37666:9;37699:37;37730:5;37699:37;:::i;:::-;37686:50;;37608:134;;;:::o;37748:147::-;37843:45;37882:5;37843:45;:::i;:::-;37838:3;37831:58;37748:147;;:::o;37901:238::-;38002:4;38040:2;38029:9;38025:18;38017:26;;38053:79;38129:1;38118:9;38114:17;38105:6;38053:79;:::i;:::-;37901:238;;;;:::o;38145:179::-;38285:31;38281:1;38273:6;38269:14;38262:55;38145:179;:::o;38330:366::-;38472:3;38493:67;38557:2;38552:3;38493:67;:::i;:::-;38486:74;;38569:93;38658:3;38569:93;:::i;:::-;38687:2;38682:3;38678:12;38671:19;;38330:366;;;:::o;38702:419::-;38868:4;38906:2;38895:9;38891:18;38883:26;;38955:9;38949:4;38945:20;38941:1;38930:9;38926:17;38919:47;38983:131;39109:4;38983:131;:::i;:::-;38975:139;;38702:419;;;:::o;39127:161::-;39267:13;39263:1;39255:6;39251:14;39244:37;39127:161;:::o;39294:366::-;39436:3;39457:67;39521:2;39516:3;39457:67;:::i;:::-;39450:74;;39533:93;39622:3;39533:93;:::i;:::-;39651:2;39646:3;39642:12;39635:19;;39294:366;;;:::o;39666:419::-;39832:4;39870:2;39859:9;39855:18;39847:26;;39919:9;39913:4;39909:20;39905:1;39894:9;39890:17;39883:47;39947:131;40073:4;39947:131;:::i;:::-;39939:139;;39666:419;;;:::o;40091:167::-;40231:19;40227:1;40219:6;40215:14;40208:43;40091:167;:::o;40264:366::-;40406:3;40427:67;40491:2;40486:3;40427:67;:::i;:::-;40420:74;;40503:93;40592:3;40503:93;:::i;:::-;40621:2;40616:3;40612:12;40605:19;;40264:366;;;:::o;40636:419::-;40802:4;40840:2;40829:9;40825:18;40817:26;;40889:9;40883:4;40879:20;40875:1;40864:9;40860:17;40853:47;40917:131;41043:4;40917:131;:::i;:::-;40909:139;;40636:419;;;:::o;41061:180::-;41109:77;41106:1;41099:88;41206:4;41203:1;41196:15;41230:4;41227:1;41220:15;41247:180;41295:77;41292:1;41285:88;41392:4;41389:1;41382:15;41416:4;41413:1;41406:15;41433:85;41478:7;41507:5;41496:16;;41433:85;;;:::o;41524:158::-;41582:9;41615:61;41633:42;41642:32;41668:5;41642:32;:::i;:::-;41633:42;:::i;:::-;41615:61;:::i;:::-;41602:74;;41524:158;;;:::o;41688:147::-;41783:45;41822:5;41783:45;:::i;:::-;41778:3;41771:58;41688:147;;:::o;41841:114::-;41908:6;41942:5;41936:12;41926:22;;41841:114;;;:::o;41961:184::-;42060:11;42094:6;42089:3;42082:19;42134:4;42129:3;42125:14;42110:29;;41961:184;;;;:::o;42151:132::-;42218:4;42241:3;42233:11;;42271:4;42266:3;42262:14;42254:22;;42151:132;;;:::o;42289:108::-;42366:24;42384:5;42366:24;:::i;:::-;42361:3;42354:37;42289:108;;:::o;42403:179::-;42472:10;42493:46;42535:3;42527:6;42493:46;:::i;:::-;42571:4;42566:3;42562:14;42548:28;;42403:179;;;;:::o;42588:113::-;42658:4;42690;42685:3;42681:14;42673:22;;42588:113;;;:::o;42737:732::-;42856:3;42885:54;42933:5;42885:54;:::i;:::-;42955:86;43034:6;43029:3;42955:86;:::i;:::-;42948:93;;43065:56;43115:5;43065:56;:::i;:::-;43144:7;43175:1;43160:284;43185:6;43182:1;43179:13;43160:284;;;43261:6;43255:13;43288:63;43347:3;43332:13;43288:63;:::i;:::-;43281:70;;43374:60;43427:6;43374:60;:::i;:::-;43364:70;;43220:224;43207:1;43204;43200:9;43195:14;;43160:284;;;43164:14;43460:3;43453:10;;42861:608;;;42737:732;;;;:::o;43475:831::-;43738:4;43776:3;43765:9;43761:19;43753:27;;43790:71;43858:1;43847:9;43843:17;43834:6;43790:71;:::i;:::-;43871:80;43947:2;43936:9;43932:18;43923:6;43871:80;:::i;:::-;43998:9;43992:4;43988:20;43983:2;43972:9;43968:18;43961:48;44026:108;44129:4;44120:6;44026:108;:::i;:::-;44018:116;;44144:72;44212:2;44201:9;44197:18;44188:6;44144:72;:::i;:::-;44226:73;44294:3;44283:9;44279:19;44270:6;44226:73;:::i;:::-;43475:831;;;;;;;;:::o;44312:807::-;44561:4;44599:3;44588:9;44584:19;44576:27;;44613:71;44681:1;44670:9;44666:17;44657:6;44613:71;:::i;:::-;44694:72;44762:2;44751:9;44747:18;44738:6;44694:72;:::i;:::-;44776:80;44852:2;44841:9;44837:18;44828:6;44776:80;:::i;:::-;44866;44942:2;44931:9;44927:18;44918:6;44866:80;:::i;:::-;44956:73;45024:3;45013:9;45009:19;45000:6;44956:73;:::i;:::-;45039;45107:3;45096:9;45092:19;45083:6;45039:73;:::i;:::-;44312:807;;;;;;;;;:::o;45125:143::-;45182:5;45213:6;45207:13;45198:22;;45229:33;45256:5;45229:33;:::i;:::-;45125:143;;;;:::o;45274:663::-;45362:6;45370;45378;45427:2;45415:9;45406:7;45402:23;45398:32;45395:119;;;45433:79;;:::i;:::-;45395:119;45553:1;45578:64;45634:7;45625:6;45614:9;45610:22;45578:64;:::i;:::-;45568:74;;45524:128;45691:2;45717:64;45773:7;45764:6;45753:9;45749:22;45717:64;:::i;:::-;45707:74;;45662:129;45830:2;45856:64;45912:7;45903:6;45892:9;45888:22;45856:64;:::i;:::-;45846:74;;45801:129;45274:663;;;;;:::o

Swarm Source

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