ETH Price: $3,585.60 (-2.95%)

Token

ERC-20: ETHEREUM IS BAD (EBEAR)
 

Overview

Max Total Supply

1,000,000,000 EBEAR

Holders

20

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
EBEAR

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-10-08
*/

/**
$EBEAR is a meme coin that embodies the bearish energy of ETH
ETHEREUM IS BAD 

WEB: https://ethereumisbad.com/
X: https://x.com/ebearoneth
TG:https://t.me/OfficialEbearToken
*/

// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.11;

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

    function _msgData() internal view returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

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

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);
    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
    function factory() external view returns (address);
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() 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);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract EBEAR is Context, IERC20 {
    // Ownership moved to in-contract for customizability.
    address private _owner;

    mapping (address => uint256) private _tOwned;
    mapping (address => bool) lpPairs;
    uint256 private timeSinceLastPair = 0;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) private _liquidityHolders;
    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => bool) public ExcludedFromWalletRestrictions;

    mapping (address => bool) private _isSniper;
    
    bool private sameBlockActive = true;
    mapping (address => uint256) private lastTrade;    

    uint256 private startingSupply = 1_000_000_000;

    string private _name = "ETHEREUM IS BAD";
    string private _symbol = "EBEAR";
//==========================
    // FEES
    struct taxes {
    uint buyFee;
    uint sellFee;
    uint transferFee;
    }

    taxes public Fees = taxes(
    {buyFee: 2000, sellFee: 2000, transferFee: 0});
//==========================
    // Maxima

    struct Maxima {
    uint maxBuy;
    uint maxSell;
    uint maxTransfer;
    }

    Maxima public maxFees = Maxima(
    {maxBuy: 500, maxSell: 500, maxTransfer: 500});
//==========================    
    //Proportions of Taxes
    struct feeProportions {
    uint liquidity;
    uint tokenFee;
    uint TreasuryFee;
    uint RevenueFee;
    }

    feeProportions public Ratios = feeProportions(
    { liquidity: 0, tokenFee: 0, TreasuryFee: 1000, RevenueFee: 0});

    uint256 private constant masterTaxDivisor = 10000;
    uint256 private constant MAX = ~uint256(0);
    uint8 constant private _decimals = 9;
 
    uint256 private _tTotal = startingSupply * 10**_decimals;
    uint256 private _tFeeTotal;

    IUniswapV2Router02 public dexRouter;
    address public lpPair;

    address constant private _routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // UNISWAP ROUTER
    
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;
    
    address payable public _treasuryWallet = payable(0x8aD318DEf8f7aA1E297de6D9855C7e5C0CD4E314);  // Treasury, receives taxes
    address payable public _revenueWallet = payable(0x8aD318DEf8f7aA1E297de6D9855C7e5C0CD4E314);  // This wallet will deploy the revenue share dApp.
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = false;
    
    uint256 private maxTxPercent = 3;
    uint256 private maxTxDivisor = 100;
    uint256 private _maxTxAmount = (_tTotal * maxTxPercent) / maxTxDivisor;
    
    uint256 private maxWalletPercent = 3;
    uint256 private maxWalletDivisor = 100;
    uint256 private _maxWalletSize = (_tTotal * maxWalletPercent) / maxWalletDivisor;
    
    uint256 private swapThreshold = (_tTotal * 5) / 10_000;
    uint256 private swapAmount = (_tTotal * 5) / 1_000;

    bool private sniperProtection = true;
    bool public _hasLiqBeenAdded = false;
    uint256 private _liqAddStatus = 0;
    uint256 private _liqAddBlock = 0;
    uint256 private _liqAddStamp = 0;
    uint256 private _initialLiquidityAmount = 0; // make constant
    uint256 private snipeBlockAmt = 0;
    uint256 public snipersCaught = 0;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap);
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    event SniperCaught(address sniperAddress);
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Caller != owner.");
        _;
    }
    
    constructor () payable {
        _tOwned[_msgSender()] = _tTotal;

        // Set the owner.
        _owner = msg.sender;

        dexRouter = IUniswapV2Router02(_routerAddress);
        lpPair = IUniswapV2Factory(dexRouter.factory()).createPair(dexRouter.WETH(), address(this));
        lpPairs[lpPair] = true;
        _allowances[address(this)][address(dexRouter)] = type(uint256).max;

        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[_treasuryWallet] = true;
        _isExcludedFromFees[DEAD] = true;

        _liquidityHolders[owner()] = true;
        _liquidityHolders[_treasuryWallet] = true;
        _liquidityHolders[_revenueWallet] = true;

        // Approve the owner for Uniswap, timesaver.
        _approve(_msgSender(), _routerAddress, _tTotal);

        // Event regarding the tTotal transferred to the _msgSender.
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    receive() external payable {}

//===============================================================================================================
//===============================================================================================================
//===============================================================================================================
    // Ownable removed as a lib and added here to allow for custom transfers and recnouncements.
    // This allows for removal of ownership privelages from the owner once renounced or transferred.
    function owner() public view returns (address) {
        return _owner;
    }

    function transferOwner(address newOwner) external onlyOwner() {
        require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address.");
        require(newOwner != DEAD, "Call renounceOwnership to transfer owner to the zero address.");
        setExcludedFromFees(_owner, false);
        setExcludedFromFees(newOwner, true);
        

        _allowances[_owner][newOwner] = balanceOf(_owner);
        if(balanceOf(_owner) > 0) {
            _transfer(_owner, newOwner, balanceOf(_owner));
        }
        
        _owner = newOwner;
        emit OwnershipTransferred(_owner, newOwner);
        
    }

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[account];
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function _approve(address sender, address spender, uint256 amount) private {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");

        _allowances[sender][spender] = amount;
        emit Approval(sender, spender, amount);
    }

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

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

        return _transfer(sender, recipient, amount);
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue);
        return true;
    }

    function setNewRouter(address newRouter) public onlyOwner() {
        IUniswapV2Router02 _newRouter = IUniswapV2Router02(newRouter);
        address get_pair = IUniswapV2Factory(_newRouter.factory()).getPair(address(this), _newRouter.WETH());
        if (get_pair == address(0)) {
            lpPair = IUniswapV2Factory(_newRouter.factory()).createPair(address(this), _newRouter.WETH());
        }
        else {
            lpPair = get_pair;
        }
        dexRouter = _newRouter;
    }

    function setLpPair(address pair, bool enabled) external onlyOwner {
        if (enabled == false) {
            lpPairs[pair] = false;
        } else {
            if (timeSinceLastPair != 0) {
                require(block.timestamp - timeSinceLastPair > 1 weeks, "One week cooldown.");
            }
            lpPairs[pair] = true;
            timeSinceLastPair = block.timestamp;
        }
    }

    function isExcludedFromFees(address account) public view returns(bool) {
        return _isExcludedFromFees[account];
    }

    function setExcludedFromFees(address account, bool enabled) public onlyOwner {
        _isExcludedFromFees[account] = enabled;
    }


    function excludeFromWalletRestrictions(address excludeAddress) public onlyOwner{
        ExcludedFromWalletRestrictions[excludeAddress] = true;
    }

    function revokeExcludedFromWalletRestrictions(address includeAddress) public onlyOwner{
        ExcludedFromWalletRestrictions[includeAddress] = false;
    }

    function isSniper(address account) public view returns (bool) {
        return _isSniper[account];
    }

    function init() external onlyOwner {
        require (_liqAddStatus == 0, "Error.");
        _liqAddStatus = 1;
        snipeBlockAmt = 0;
    }

    // function setBlacklistEnabled(address account, bool enabled) external onlyOwner() {
    //     _isSniper[account] = enabled;
    // }

    // we are not racists

    function setRatios(uint _liquidity, uint _TreasuryFee, uint _RevenueFee , uint _tokenFee) external onlyOwner {
        require ( (_liquidity + _TreasuryFee + _RevenueFee + _tokenFee) == 1000, "!1K"); // to change the ratio, it must require the sum equal 1000
        Ratios.liquidity = _liquidity;
        Ratios.TreasuryFee = _TreasuryFee;
        Ratios.RevenueFee = _RevenueFee;
        Ratios.tokenFee = _tokenFee;
}

    function setTaxes(uint _buyFee, uint _sellFee, uint _transferFee) external onlyOwner {
        require(_buyFee <= maxFees.maxBuy
                && _sellFee <= maxFees.maxSell
                && _transferFee <= maxFees.maxTransfer,
                "Cannot exceed maximums.");
         Fees.buyFee = _buyFee;
         Fees.sellFee = _sellFee;
         Fees.transferFee = _transferFee;
    }

    function setMaxTxPercent(uint percent, uint divisor) external onlyOwner {
        uint256 check = (_tTotal * percent) / divisor;
        require(check >= (_tTotal / 300), "Must be above 0.33~% of total supply.");
        _maxTxAmount = check;
    }

    function setMaxWalletSize(uint percent, uint divisor) external onlyOwner {
        uint256 check = (_tTotal * percent) / divisor;
        require(check >= (_tTotal / 300), "Must be above 0.33~% of total supply.");
        _maxWalletSize = check;

    }

    function setSwapSettings(uint256 thresholdPercent, uint256 thresholdDivisor, uint256 amountPercent, uint256 amountDivisor) external onlyOwner {
        swapThreshold = (_tTotal * thresholdPercent) / thresholdDivisor;
        swapAmount = (_tTotal * amountPercent) / amountDivisor;
    }

    // function setWallets(address payable treasuryWallet, address payable revenueWallet) external onlyOwner {
    //     _treasuryWallet = payable(treasuryWallet);
    //     _revenueWallet = payable(revenueWallet);
    // }
    // removed 

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    function _hasLimits(address from, address to) private view returns (bool) {
        return from != owner()
            && to != owner()
            && !_liquidityHolders[to]
            && !_liquidityHolders[from]
            && to != DEAD
            && to != address(0)
            && from != address(this);
    }

    function _transfer(address from, address to, uint256 amount) internal returns (bool) {
        require(from != address(0), "ERC20: Zero address.");
        require(to != address(0), "ERC20: Zero address.");
        require(amount > 0, "Must >0.");
        if(_hasLimits(from, to)) {

            if(!(ExcludedFromWalletRestrictions[from] || ExcludedFromWalletRestrictions[to])) {
                if(lpPairs[from] || lpPairs[to]){
                require(amount <= _maxTxAmount, "Exceeds the maxTxAmount.");
                }
                if(to != _routerAddress && !lpPairs[to]) {
                    require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                }

            }
            
        }
        bool takeFee = true;
        if(_isExcludedFromFees[from] || _isExcludedFromFees[to]){
            takeFee = false;
        }

        if (lpPairs[to]) {
            if (!inSwapAndLiquify
                && swapAndLiquifyEnabled
            ) {
                uint256 contractTokenBalance = balanceOf(address(this));
                if (contractTokenBalance >= swapThreshold) {
                    if(contractTokenBalance >= swapAmount) { contractTokenBalance = swapAmount; }
                    swapAndLiquify(contractTokenBalance);
                }
            }      
        } 
        return _finalizeTransfer(from, to, amount, takeFee);
    }

    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        if (Ratios.liquidity + Ratios.TreasuryFee + Ratios.RevenueFee == 0)
            return;
        uint256 toLiquify = ((contractTokenBalance * Ratios.liquidity) / (Ratios.liquidity + Ratios.TreasuryFee + Ratios.RevenueFee) ) / 2;

        uint256 toSwapForEth = contractTokenBalance - toLiquify;
        swapTokensForEth(toSwapForEth);

        uint256 currentBalance = address(this).balance;
        uint256 liquidityBalance = ((currentBalance * Ratios.liquidity) / (Ratios.liquidity + Ratios.TreasuryFee + Ratios.RevenueFee) ) / 2;

        bool success;

        if (toLiquify > 0) {
            addLiquidity(toLiquify, liquidityBalance);
            emit SwapAndLiquify(toLiquify, liquidityBalance, toLiquify);
        }
        if (contractTokenBalance - toLiquify > 0) {
            uint ethBal = address(this).balance;
            uint ethBalForOperations = ((ethBal * Ratios.TreasuryFee) / (Ratios.TreasuryFee + Ratios.RevenueFee));

            (success,) = address(_treasuryWallet).call{value: ethBalForOperations}("");
            (success,) = address(_revenueWallet).call{value: address(this).balance}("");

            // _revenueWallet.transfer(address(this).balance);

        }
    }

    function swapTokensForEth(uint256 tokenAmount) internal {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        dexRouter.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            _treasuryWallet,
            block.timestamp
        );
    }

    function _checkLiquidityAdd(address from, address to) private {
        require(!_hasLiqBeenAdded, "Liquidity already added and marked.");
        if (!_hasLimits(from, to) && to == lpPair) {
            if (snipeBlockAmt != 0) {
                _liqAddBlock = block.number; // removed + 5000
            } else {
                _liqAddBlock = block.number;
            }
            _liquidityHolders[from] = true;
            _hasLiqBeenAdded = true;
            _liqAddStamp = block.timestamp;

            swapAndLiquifyEnabled = true;
            emit SwapAndLiquifyEnabledUpdated(true);
        }
    }

    function _finalizeTransfer(address from, address to, uint256 amount, bool takeFee) private returns (bool) {
        if (sniperProtection){
            if (isSniper(from) || isSniper(to)) {
                revert("Sniper rejected.");
            }

            if (!_hasLiqBeenAdded) {
                _checkLiquidityAdd(from, to);
                if (!_hasLiqBeenAdded && _hasLimits(from, to)) {
                    revert("Only owner can transfer at this time.");
                }
            } else {
                if (_liqAddBlock > 0 
                    && lpPairs[from] 
                    && _hasLimits(from, to)
                ) {
                    if (block.number - _liqAddBlock < snipeBlockAmt) {
                        _isSniper[to] = true;
                        snipersCaught ++;
                        emit SniperCaught(to);
                    }
                }
            }
        }

        _tOwned[from] -= amount;
        uint256 amountReceived = (takeFee) ? takeTaxes(from, to, amount) : amount; //A
        _tOwned[to] += amountReceived;

        emit Transfer(from, to, amountReceived);
        return true;
    }

    function takeTaxes(address from, address to, uint256 amount) internal returns (uint256) {
        uint256 currentFee;

        if (to == lpPair) {currentFee = Fees.sellFee;}

        else if (from == lpPair) {currentFee = Fees.buyFee;} 

        else {currentFee = Fees.transferFee;}

        if (_hasLimits(from, to)){
            if (_liqAddStatus == 0 || _liqAddStatus != (1)) {
                revert();
            }
        }
        uint256 tokenFeeAmt = (amount * currentFee * Ratios.tokenFee) / (Ratios.tokenFee + Ratios.liquidity + Ratios.TreasuryFee + Ratios.RevenueFee ) / masterTaxDivisor;
        uint256 feeAmount = (amount * currentFee / masterTaxDivisor) - tokenFeeAmt;
        _tOwned[_treasuryWallet] += tokenFeeAmt;
        _tOwned[address(this)] += (feeAmount);
        emit Transfer(from, _treasuryWallet, tokenFeeAmt);
        emit Transfer(from, address(this), feeAmount);
        return amount - feeAmount - tokenFeeAmt;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sniperAddress","type":"address"}],"name":"SniperCaught","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ExcludedFromWalletRestrictions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Fees","outputs":[{"internalType":"uint256","name":"buyFee","type":"uint256"},{"internalType":"uint256","name":"sellFee","type":"uint256"},{"internalType":"uint256","name":"transferFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Ratios","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"tokenFee","type":"uint256"},{"internalType":"uint256","name":"TreasuryFee","type":"uint256"},{"internalType":"uint256","name":"RevenueFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_revenueWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_treasuryWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"excludeAddress","type":"address"}],"name":"excludeFromWalletRestrictions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isSniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxFees","outputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"},{"internalType":"uint256","name":"maxSell","type":"uint256"},{"internalType":"uint256","name":"maxTransfer","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"includeAddress","type":"address"}],"name":"revokeExcludedFromWalletRestrictions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_TreasuryFee","type":"uint256"},{"internalType":"uint256","name":"_RevenueFee","type":"uint256"},{"internalType":"uint256","name":"_tokenFee","type":"uint256"}],"name":"setRatios","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"thresholdPercent","type":"uint256"},{"internalType":"uint256","name":"thresholdDivisor","type":"uint256"},{"internalType":"uint256","name":"amountPercent","type":"uint256"},{"internalType":"uint256","name":"amountDivisor","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"},{"internalType":"uint256","name":"_transferFee","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snipersCaught","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260006003556001600960006101000a81548160ff021916908315150217905550633b9aca00600b556040518060400160405280600f81526020017f455448455245554d204953204241440000000000000000000000000000000000815250600c90805190602001906200007992919062000d35565b506040518060400160405280600581526020017f4542454152000000000000000000000000000000000000000000000000000000815250600d9080519060200190620000c792919062000d35565b5060405180606001604052806107d081526020016107d081526020016000815250600e600082015181600001556020820151816001015560408201518160020155505060405180606001604052806101f481526020016101f481526020016101f481525060116000820151816000015560208201518160010155604082015181600201555050604051806080016040528060008152602001600081526020016103e88152602001600081525060146000820151816000015560208201518160010155604082015181600201556060820151816003015550506009600a620001af919062000f7f565b600b54620001be919062000fd0565b601855738ad318def8f7aa1e297de6d9855c7e5c0cd4e314601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550738ad318def8f7aa1e297de6d9855c7e5c0cd4e314601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601d60156101000a81548160ff0219169083151502179055506003601e556064601f55601f54601e54601854620002a5919062000fd0565b620002b1919062001060565b60205560036021556064602255602254602154601854620002d3919062000fd0565b620002df919062001060565b6023556127106005601854620002f6919062000fd0565b62000302919062001060565b6024556103e8600560185462000319919062000fd0565b62000325919062001060565b6025556001602660006101000a81548160ff0219169083151502179055506000602660016101000a81548160ff0219169083151502179055506000602755600060285560006029556000602a556000602b556000602c55601854600160006200039362000b3160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004d4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004fa919062001102565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000583573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005a9919062001102565b306040518363ffffffff1660e01b8152600401620005c992919062001145565b6020604051808303816000875af1158015620005e9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200060f919062001102565b601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160026000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160066000620007a262000b3960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016006600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560006200093562000b3960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000ab262000a8e62000b3160201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d60185462000b6260201b60201c565b62000ac262000b3160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60185460405162000b23919062001183565b60405180910390a362001288565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562000bd5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bcc9062001201565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000c48576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c3f9062001201565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000d28919062001183565b60405180910390a3505050565b82805462000d439062001252565b90600052602060002090601f01602090048101928262000d67576000855562000db3565b82601f1062000d8257805160ff191683800117855562000db3565b8280016001018555821562000db3579182015b8281111562000db257825182559160200191906001019062000d95565b5b50905062000dc2919062000dc6565b5090565b5b8082111562000de157600081600090555060010162000dc7565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000e735780860481111562000e4b5762000e4a62000de5565b5b600185161562000e5b5780820291505b808102905062000e6b8562000e14565b945062000e2b565b94509492505050565b60008262000e8e576001905062000f61565b8162000e9e576000905062000f61565b816001811462000eb7576002811462000ec25762000ef8565b600191505062000f61565b60ff84111562000ed75762000ed662000de5565b5b8360020a91508482111562000ef15762000ef062000de5565b5b5062000f61565b5060208310610133831016604e8410600b841016171562000f325782820a90508381111562000f2c5762000f2b62000de5565b5b62000f61565b62000f41848484600162000e21565b9250905081840481111562000f5b5762000f5a62000de5565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000f8c8262000f68565b915062000f998362000f72565b925062000fc87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000e7c565b905092915050565b600062000fdd8262000f68565b915062000fea8362000f68565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562001026576200102562000de5565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200106d8262000f68565b91506200107a8362000f68565b9250826200108d576200108c62001031565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620010ca826200109d565b9050919050565b620010dc81620010bd565b8114620010e857600080fd5b50565b600081519050620010fc81620010d1565b92915050565b6000602082840312156200111b576200111a62001098565b5b60006200112b84828501620010eb565b91505092915050565b6200113f81620010bd565b82525050565b60006040820190506200115c600083018562001134565b6200116b602083018462001134565b9392505050565b6200117d8162000f68565b82525050565b60006020820190506200119a600083018462001172565b92915050565b600082825260208201905092915050565b7f45524332303a205a65726f204164647265737300000000000000000000000000600082015250565b6000620011e9601383620011a0565b9150620011f682620011b1565b602082019050919050565b600060208201905081810360008301526200121c81620011da565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200126b57607f821691505b6020821081141562001282576200128162001223565b5b50919050565b61500280620012986000396000f3fe6080604052600436106102555760003560e01c806370a0823111610139578063bc9cc736116100b6578063e1c7392a1161007a578063e1c7392a14610912578063e79d416014610929578063e83e34b114610954578063e9dae5ed14610981578063eafb5a3c146109aa578063fb78680d146109d35761025c565b8063bc9cc7361461081b578063c49b9a8014610846578063ce8b79c91461086f578063d1d2b9be14610898578063dd62ed3e146108d55761025c565b806395d89b41116100fd57806395d89b411461071f578063a457c2d71461074a578063a9059cbb14610787578063b5f7bfa2146107c4578063bc1323e8146107f25761025c565b806370a082311461064c578063715018a61461068957806380c581d1146106a0578063893d20e8146106c95780638da5cb5b146106f45761025c565b8063313ce567116101d25780634a74bb02116101965780634a74bb021461052a5780634fb2e45d146105555780634fbee1931461057e57806350a8e016146105bb578063571ac8b0146105e6578063590ffdce146106235761025c565b8063313ce56714610441578063395093511461046c5780633aaa36e6146104a95780633f3cf56c146104d6578063452ed4f1146104ff5761025c565b80631793fe4e116102195780631793fe4e1461035c57806318160ddd1461038557806323b872dd146103b057806326003957146103ed578063269d1faa146104165761025c565b806303fd2a451461026157806306fdde031461028c5780630758d924146102b7578063095ea7b3146102e25780630f3a325f1461031f5761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b506102766109fc565b6040516102839190613dde565b60405180910390f35b34801561029857600080fd5b506102a1610a02565b6040516102ae9190613e92565b60405180910390f35b3480156102c357600080fd5b506102cc610a94565b6040516102d99190613f13565b60405180910390f35b3480156102ee57600080fd5b5061030960048036038101906103049190613f95565b610aba565b6040516103169190613ff0565b60405180910390f35b34801561032b57600080fd5b506103466004803603810190610341919061400b565b610ad8565b6040516103539190613ff0565b60405180910390f35b34801561036857600080fd5b50610383600480360381019061037e9190614038565b610b2e565b005b34801561039157600080fd5b5061039a610c56565b6040516103a791906140ae565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d291906140c9565b610c60565b6040516103e49190613ff0565b60405180910390f35b3480156103f957600080fd5b50610414600480360381019061040f919061411c565b610dad565b005b34801561042257600080fd5b5061042b610ebd565b604051610438919061417d565b60405180910390f35b34801561044d57600080fd5b50610456610ee3565b60405161046391906141b4565b60405180910390f35b34801561047857600080fd5b50610493600480360381019061048e9190613f95565b610eec565b6040516104a09190613ff0565b60405180910390f35b3480156104b557600080fd5b506104be610f98565b6040516104cd939291906141cf565b60405180910390f35b3480156104e257600080fd5b506104fd60048036038101906104f8919061411c565b610fb0565b005b34801561050b57600080fd5b506105146110c0565b6040516105219190613dde565b60405180910390f35b34801561053657600080fd5b5061053f6110e6565b60405161054c9190613ff0565b60405180910390f35b34801561056157600080fd5b5061057c6004803603810190610577919061400b565b6110f9565b005b34801561058a57600080fd5b506105a560048036038101906105a0919061400b565b6114b2565b6040516105b29190613ff0565b60405180910390f35b3480156105c757600080fd5b506105d0611508565b6040516105dd9190613ff0565b60405180910390f35b3480156105f257600080fd5b5061060d6004803603810190610608919061400b565b61151b565b60405161061a9190613ff0565b60405180910390f35b34801561062f57600080fd5b5061064a60048036038101906106459190614232565b61154e565b005b34801561065857600080fd5b50610673600480360381019061066e919061400b565b61163e565b60405161068091906140ae565b60405180910390f35b34801561069557600080fd5b5061069e611687565b005b3480156106ac57600080fd5b506106c760048036038101906106c29190614232565b611805565b005b3480156106d557600080fd5b506106de6119c5565b6040516106eb9190613dde565b60405180910390f35b34801561070057600080fd5b506107096119d4565b6040516107169190613dde565b60405180910390f35b34801561072b57600080fd5b506107346119fd565b6040516107419190613e92565b60405180910390f35b34801561075657600080fd5b50610771600480360381019061076c9190613f95565b611a8f565b60405161077e9190613ff0565b60405180910390f35b34801561079357600080fd5b506107ae60048036038101906107a99190613f95565b611b3b565b6040516107bb9190613ff0565b60405180910390f35b3480156107d057600080fd5b506107d9611b5a565b6040516107e99493929190614272565b60405180910390f35b3480156107fe57600080fd5b506108196004803603810190610814919061400b565b611b78565b005b34801561082757600080fd5b50610830611c68565b60405161083d919061417d565b60405180910390f35b34801561085257600080fd5b5061086d600480360381019061086891906142b7565b611c8e565b005b34801561087b57600080fd5b506108966004803603810190610891919061400b565b611d77565b005b3480156108a457600080fd5b506108bf60048036038101906108ba919061400b565b611e67565b6040516108cc9190613ff0565b60405180910390f35b3480156108e157600080fd5b506108fc60048036038101906108f791906142e4565b611e87565b60405161090991906140ae565b60405180910390f35b34801561091e57600080fd5b50610927611f0e565b005b34801561093557600080fd5b5061093e611ffa565b60405161094b91906140ae565b60405180910390f35b34801561096057600080fd5b50610969612000565b604051610978939291906141cf565b60405180910390f35b34801561098d57600080fd5b506109a860048036038101906109a39190614324565b612018565b005b3480156109b657600080fd5b506109d160048036038101906109cc919061400b565b61213a565b005b3480156109df57600080fd5b506109fa60048036038101906109f59190614038565b61258c565b005b61dead81565b6060600c8054610a11906143a6565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3d906143a6565b8015610a8a5780601f10610a5f57610100808354040283529160200191610a8a565b820191906000526020600020905b815481529060010190602001808311610a6d57829003601f168201915b5050505050905090565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ace610ac7612665565b848461266d565b6001905092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610b36612665565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bba90614424565b60405180910390fd5b6103e881838587610bd49190614473565b610bde9190614473565b610be89190614473565b14610c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1f90614515565b60405180910390fd5b8360146000018190555082601460020181905550816014600301819055508060146001018190555050505050565b6000601854905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d995781600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610d919190614535565b925050819055505b610da4848484612838565b90509392505050565b610db5612665565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3990614424565b60405180910390fd5b60008183601854610e539190614569565b610e5d91906145f2565b905061012c601854610e6f91906145f2565b811015610eb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea890614695565b60405180910390fd5b80602381905550505050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009905090565b6000610f8e610ef9612665565b848460046000610f07612665565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f899190614473565b61266d565b6001905092915050565b600e8060000154908060010154908060020154905083565b610fb8612665565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c90614424565b60405180910390fd5b600081836018546110569190614569565b61106091906145f2565b905061012c60185461107291906145f2565b8110156110b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ab90614695565b60405180910390fd5b80602081905550505050565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d60159054906101000a900460ff1681565b611101612665565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461118e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118590614424565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156111fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f590614727565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561126f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126690614727565b60405180910390fd5b61129a60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600061154e565b6112a581600161154e565b6112ce60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661163e565b600460008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061139a60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661163e565b11156113f5576113f360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826113ee60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661163e565b612838565b505b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b602660019054906101000a900460ff1681565b6000611547827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610aba565b9050919050565b611556612665565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115da90614424565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61168f612665565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461171c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171390614424565b60405180910390fd5b61174760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600061154e565b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3565b61180d612665565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461189a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189190614424565b60405180910390fd5b600015158115151415611904576000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506119c1565b6000600354146119615762093a80600354426119209190614535565b11611960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195790614793565b60405180910390fd5b5b6001600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550426003819055505b5050565b60006119cf6119d4565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600d8054611a0c906143a6565b80601f0160208091040260200160405190810160405280929190818152602001828054611a38906143a6565b8015611a855780601f10611a5a57610100808354040283529160200191611a85565b820191906000526020600020905b815481529060010190602001808311611a6857829003601f168201915b5050505050905090565b6000611b31611a9c612665565b848460046000611aaa612665565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2c9190614535565b61266d565b6001905092915050565b6000611b4f611b48612665565b8484612838565b506001905092915050565b60148060000154908060010154908060020154908060030154905084565b611b80612665565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0490614424565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611c96612665565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1a90614424565b60405180910390fd5b80601d60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051611d6c9190613ff0565b60405180910390a150565b611d7f612665565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0390614424565b60405180910390fd5b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60076020528060005260406000206000915054906101000a900460ff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611f16612665565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9a90614424565b60405180910390fd5b600060275414611fe8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdf906147ff565b60405180910390fd5b60016027819055506000602b81905550565b602c5481565b60118060000154908060010154908060020154905083565b612020612665565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a490614424565b60405180910390fd5b60116000015483111580156120c757506011600101548211155b80156120d857506011600201548111155b612117576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210e9061486b565b60405180910390fd5b82600e6000018190555081600e6001018190555080600e60020181905550505050565b612142612665565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c690614424565b60405180910390fd5b600081905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015612221573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224591906148a0565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d091906148a0565b6040518363ffffffff1660e01b81526004016122ed9291906148cd565b602060405180830381865afa15801561230a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232e91906148a0565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612504578173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123d491906148a0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561243b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061245f91906148a0565b6040518363ffffffff1660e01b815260040161247c9291906148cd565b6020604051808303816000875af115801561249b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124bf91906148a0565b601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612546565b80601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b81601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b612594612665565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612621576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261890614424565b60405180910390fd5b82846018546126309190614569565b61263a91906145f2565b602481905550808260185461264f9190614569565b61265991906145f2565b60258190555050505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156126dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d490614942565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561274d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274490614942565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161282b91906140ae565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156128a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a0906149ae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612919576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612910906149ae565b60405180910390fd5b6000821161295c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295390614a1a565b60405180910390fd5b6129668484612d6f565b15612bf657600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612a0c5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612bf557600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ab15750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612afc57602054821115612afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af290614a86565b60405180910390fd5b5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612b965750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612bf45760235482612ba88561163e565b612bb29190614473565b1115612bf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bea90614af2565b60405180910390fd5b5b5b5b600060019050600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612c9d5750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612ca757600090505b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612d5957601d60149054906101000a900460ff16158015612d225750601d60159054906101000a900460ff165b15612d58576000612d323061163e565b90506024548110612d56576025548110612d4c5760255490505b612d5581612f46565b5b505b5b612d6585858584613235565b9150509392505050565b6000612d796119d4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612de75750612db76119d4565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612e3d5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612e935750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612ecd575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612f065750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612f3e57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b905092915050565b6001601d60146101000a81548160ff0219169083151502179055506000601460030154601460020154601460000154612f7f9190614473565b612f899190614473565b1415612f9457613217565b60006002601460030154601460020154601460000154612fb49190614473565b612fbe9190614473565b60146000015484612fcf9190614569565b612fd991906145f2565b612fe391906145f2565b905060008183612ff39190614535565b9050612ffe81613598565b6000479050600060026014600301546014600201546014600001546130239190614473565b61302d9190614473565b6014600001548461303e9190614569565b61304891906145f2565b61305291906145f2565b90506000808511156130a45761306885836137ae565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56185838760405161309b939291906141cf565b60405180910390a15b600085876130b29190614535565b111561321157600047905060006014600301546014600201546130d59190614473565b601460020154836130e69190614569565b6130f091906145f2565b9050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161313890614b43565b60006040518083038185875af1925050503d8060008114613175576040519150601f19603f3d011682016040523d82523d6000602084013e61317a565b606091505b505080935050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516131c690614b43565b60006040518083038185875af1925050503d8060008114613203576040519150601f19603f3d011682016040523d82523d6000602084013e613208565b606091505b50508093505050505b50505050505b6000601d60146101000a81548160ff02191690831515021790555050565b6000602660009054906101000a900460ff161561345f5761325585610ad8565b80613265575061326484610ad8565b5b156132a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161329c90614ba4565b60405180910390fd5b602660019054906101000a900460ff1661332b576132c38585613881565b602660019054906101000a900460ff161580156132e657506132e58585612d6f565b5b15613326576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161331d90614c36565b60405180910390fd5b61345e565b60006028541180156133865750600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b801561339857506133978585612d6f565b5b1561345d57602b54602854436133ae9190614535565b101561345c576001600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550602c600081548092919061341f90614c56565b91905055507f18e6e5ce5c121466e41a954e72765d1ea02b8e6919043b61f0dab08b4c6572e5846040516134539190613dde565b60405180910390a15b5b5b5b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546134ae9190614535565b925050819055506000826134c257836134ce565b6134cd868686613a2a565b5b905080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461351f9190614473565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161358391906140ae565b60405180910390a36001915050949350505050565b6000600267ffffffffffffffff8111156135b5576135b4614c9f565b5b6040519080825280602002602001820160405280156135e35781602001602082028036833780820191505090505b50905030816000815181106135fb576135fa614cce565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156136a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136c691906148a0565b816001815181106136da576136d9614cce565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613778959493929190614df6565b600060405180830381600087803b15801561379257600080fd5b505af11580156137a6573d6000803e3d6000fd5b505050505050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161383796959493929190614e71565b60606040518083038185885af1158015613855573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061387a9190614ee7565b5050505050565b602660019054906101000a900460ff16156138d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138c890614fac565b60405180910390fd5b6138db8282612d6f565b1580156139355750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15613a26576000602b54146139505743602881905550613958565b436028819055505b6001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001602660016101000a81548160ff021916908315150217905550426029819055506001601d60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1596001604051613a1d9190613ff0565b60405180910390a15b5050565b600080601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415613a9057600e600101549050613afd565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415613af357600e600001549050613afc565b600e6002015490505b5b613b078585612d6f565b15613b2b5760006027541480613b205750600160275414155b15613b2a57600080fd5b5b6000612710601460030154601460020154601460000154601460010154613b529190614473565b613b5c9190614473565b613b669190614473565b6014600101548487613b789190614569565b613b829190614569565b613b8c91906145f2565b613b9691906145f2565b90506000816127108487613baa9190614569565b613bb491906145f2565b613bbe9190614535565b90508160016000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613c319190614473565b9250508190555080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613c879190614473565b92505081905550601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613d0d91906140ae565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613d7291906140ae565b60405180910390a3818186613d879190614535565b613d919190614535565b93505050509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613dc882613d9d565b9050919050565b613dd881613dbd565b82525050565b6000602082019050613df36000830184613dcf565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613e33578082015181840152602081019050613e18565b83811115613e42576000848401525b50505050565b6000601f19601f8301169050919050565b6000613e6482613df9565b613e6e8185613e04565b9350613e7e818560208601613e15565b613e8781613e48565b840191505092915050565b60006020820190508181036000830152613eac8184613e59565b905092915050565b6000819050919050565b6000613ed9613ed4613ecf84613d9d565b613eb4565b613d9d565b9050919050565b6000613eeb82613ebe565b9050919050565b6000613efd82613ee0565b9050919050565b613f0d81613ef2565b82525050565b6000602082019050613f286000830184613f04565b92915050565b600080fd5b613f3c81613dbd565b8114613f4757600080fd5b50565b600081359050613f5981613f33565b92915050565b6000819050919050565b613f7281613f5f565b8114613f7d57600080fd5b50565b600081359050613f8f81613f69565b92915050565b60008060408385031215613fac57613fab613f2e565b5b6000613fba85828601613f4a565b9250506020613fcb85828601613f80565b9150509250929050565b60008115159050919050565b613fea81613fd5565b82525050565b60006020820190506140056000830184613fe1565b92915050565b60006020828403121561402157614020613f2e565b5b600061402f84828501613f4a565b91505092915050565b6000806000806080858703121561405257614051613f2e565b5b600061406087828801613f80565b945050602061407187828801613f80565b935050604061408287828801613f80565b925050606061409387828801613f80565b91505092959194509250565b6140a881613f5f565b82525050565b60006020820190506140c3600083018461409f565b92915050565b6000806000606084860312156140e2576140e1613f2e565b5b60006140f086828701613f4a565b935050602061410186828701613f4a565b925050604061411286828701613f80565b9150509250925092565b6000806040838503121561413357614132613f2e565b5b600061414185828601613f80565b925050602061415285828601613f80565b9150509250929050565b600061416782613d9d565b9050919050565b6141778161415c565b82525050565b6000602082019050614192600083018461416e565b92915050565b600060ff82169050919050565b6141ae81614198565b82525050565b60006020820190506141c960008301846141a5565b92915050565b60006060820190506141e4600083018661409f565b6141f1602083018561409f565b6141fe604083018461409f565b949350505050565b61420f81613fd5565b811461421a57600080fd5b50565b60008135905061422c81614206565b92915050565b6000806040838503121561424957614248613f2e565b5b600061425785828601613f4a565b92505060206142688582860161421d565b9150509250929050565b6000608082019050614287600083018761409f565b614294602083018661409f565b6142a1604083018561409f565b6142ae606083018461409f565b95945050505050565b6000602082840312156142cd576142cc613f2e565b5b60006142db8482850161421d565b91505092915050565b600080604083850312156142fb576142fa613f2e565b5b600061430985828601613f4a565b925050602061431a85828601613f4a565b9150509250929050565b60008060006060848603121561433d5761433c613f2e565b5b600061434b86828701613f80565b935050602061435c86828701613f80565b925050604061436d86828701613f80565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806143be57607f821691505b602082108114156143d2576143d1614377565b5b50919050565b7f43616c6c657220213d206f776e65722e00000000000000000000000000000000600082015250565b600061440e601083613e04565b9150614419826143d8565b602082019050919050565b6000602082019050818103600083015261443d81614401565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061447e82613f5f565b915061448983613f5f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156144be576144bd614444565b5b828201905092915050565b7f21314b0000000000000000000000000000000000000000000000000000000000600082015250565b60006144ff600383613e04565b915061450a826144c9565b602082019050919050565b6000602082019050818103600083015261452e816144f2565b9050919050565b600061454082613f5f565b915061454b83613f5f565b92508282101561455e5761455d614444565b5b828203905092915050565b600061457482613f5f565b915061457f83613f5f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156145b8576145b7614444565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006145fd82613f5f565b915061460883613f5f565b925082614618576146176145c3565b5b828204905092915050565b7f4d7573742062652061626f766520302e33337e25206f6620746f74616c20737560008201527f70706c792e000000000000000000000000000000000000000000000000000000602082015250565b600061467f602583613e04565b915061468a82614623565b604082019050919050565b600060208201905081810360008301526146ae81614672565b9050919050565b7f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660008201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000602082015250565b6000614711603d83613e04565b915061471c826146b5565b604082019050919050565b6000602082019050818103600083015261474081614704565b9050919050565b7f4f6e65207765656b20636f6f6c646f776e2e0000000000000000000000000000600082015250565b600061477d601283613e04565b915061478882614747565b602082019050919050565b600060208201905081810360008301526147ac81614770565b9050919050565b7f4572726f722e0000000000000000000000000000000000000000000000000000600082015250565b60006147e9600683613e04565b91506147f4826147b3565b602082019050919050565b60006020820190508181036000830152614818816147dc565b9050919050565b7f43616e6e6f7420657863656564206d6178696d756d732e000000000000000000600082015250565b6000614855601783613e04565b91506148608261481f565b602082019050919050565b6000602082019050818103600083015261488481614848565b9050919050565b60008151905061489a81613f33565b92915050565b6000602082840312156148b6576148b5613f2e565b5b60006148c48482850161488b565b91505092915050565b60006040820190506148e26000830185613dcf565b6148ef6020830184613dcf565b9392505050565b7f45524332303a205a65726f204164647265737300000000000000000000000000600082015250565b600061492c601383613e04565b9150614937826148f6565b602082019050919050565b6000602082019050818103600083015261495b8161491f565b9050919050565b7f45524332303a205a65726f20616464726573732e000000000000000000000000600082015250565b6000614998601483613e04565b91506149a382614962565b602082019050919050565b600060208201905081810360008301526149c78161498b565b9050919050565b7f4d757374203e302e000000000000000000000000000000000000000000000000600082015250565b6000614a04600883613e04565b9150614a0f826149ce565b602082019050919050565b60006020820190508181036000830152614a33816149f7565b9050919050565b7f4578636565647320746865206d61785478416d6f756e742e0000000000000000600082015250565b6000614a70601883613e04565b9150614a7b82614a3a565b602082019050919050565b60006020820190508181036000830152614a9f81614a63565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000614adc601a83613e04565b9150614ae782614aa6565b602082019050919050565b60006020820190508181036000830152614b0b81614acf565b9050919050565b600081905092915050565b50565b6000614b2d600083614b12565b9150614b3882614b1d565b600082019050919050565b6000614b4e82614b20565b9150819050919050565b7f536e697065722072656a65637465642e00000000000000000000000000000000600082015250565b6000614b8e601083613e04565b9150614b9982614b58565b602082019050919050565b60006020820190508181036000830152614bbd81614b81565b9050919050565b7f4f6e6c79206f776e65722063616e207472616e7366657220617420746869732060008201527f74696d652e000000000000000000000000000000000000000000000000000000602082015250565b6000614c20602583613e04565b9150614c2b82614bc4565b604082019050919050565b60006020820190508181036000830152614c4f81614c13565b9050919050565b6000614c6182613f5f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614c9457614c93614444565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000614d22614d1d614d1884614cfd565b613eb4565b613f5f565b9050919050565b614d3281614d07565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614d6d81613dbd565b82525050565b6000614d7f8383614d64565b60208301905092915050565b6000602082019050919050565b6000614da382614d38565b614dad8185614d43565b9350614db883614d54565b8060005b83811015614de9578151614dd08882614d73565b9750614ddb83614d8b565b925050600181019050614dbc565b5085935050505092915050565b600060a082019050614e0b600083018861409f565b614e186020830187614d29565b8181036040830152614e2a8186614d98565b9050614e396060830185613dcf565b614e46608083018461409f565b9695505050505050565b6000614e5b82613ee0565b9050919050565b614e6b81614e50565b82525050565b600060c082019050614e866000830189613dcf565b614e93602083018861409f565b614ea06040830187614d29565b614ead6060830186614d29565b614eba6080830185614e62565b614ec760a083018461409f565b979650505050505050565b600081519050614ee181613f69565b92915050565b600080600060608486031215614f0057614eff613f2e565b5b6000614f0e86828701614ed2565b9350506020614f1f86828701614ed2565b9250506040614f3086828701614ed2565b9150509250925092565b7f4c697175696469747920616c726561647920616464656420616e64206d61726b60008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b6000614f96602383613e04565b9150614fa182614f3a565b604082019050919050565b60006020820190508181036000830152614fc581614f89565b905091905056fea2646970667358221220c67f7126c536c5067e3436745da98ef1d5a38d83117091941296cb1c0837288164736f6c634300080b0033

Deployed Bytecode

0x6080604052600436106102555760003560e01c806370a0823111610139578063bc9cc736116100b6578063e1c7392a1161007a578063e1c7392a14610912578063e79d416014610929578063e83e34b114610954578063e9dae5ed14610981578063eafb5a3c146109aa578063fb78680d146109d35761025c565b8063bc9cc7361461081b578063c49b9a8014610846578063ce8b79c91461086f578063d1d2b9be14610898578063dd62ed3e146108d55761025c565b806395d89b41116100fd57806395d89b411461071f578063a457c2d71461074a578063a9059cbb14610787578063b5f7bfa2146107c4578063bc1323e8146107f25761025c565b806370a082311461064c578063715018a61461068957806380c581d1146106a0578063893d20e8146106c95780638da5cb5b146106f45761025c565b8063313ce567116101d25780634a74bb02116101965780634a74bb021461052a5780634fb2e45d146105555780634fbee1931461057e57806350a8e016146105bb578063571ac8b0146105e6578063590ffdce146106235761025c565b8063313ce56714610441578063395093511461046c5780633aaa36e6146104a95780633f3cf56c146104d6578063452ed4f1146104ff5761025c565b80631793fe4e116102195780631793fe4e1461035c57806318160ddd1461038557806323b872dd146103b057806326003957146103ed578063269d1faa146104165761025c565b806303fd2a451461026157806306fdde031461028c5780630758d924146102b7578063095ea7b3146102e25780630f3a325f1461031f5761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b506102766109fc565b6040516102839190613dde565b60405180910390f35b34801561029857600080fd5b506102a1610a02565b6040516102ae9190613e92565b60405180910390f35b3480156102c357600080fd5b506102cc610a94565b6040516102d99190613f13565b60405180910390f35b3480156102ee57600080fd5b5061030960048036038101906103049190613f95565b610aba565b6040516103169190613ff0565b60405180910390f35b34801561032b57600080fd5b506103466004803603810190610341919061400b565b610ad8565b6040516103539190613ff0565b60405180910390f35b34801561036857600080fd5b50610383600480360381019061037e9190614038565b610b2e565b005b34801561039157600080fd5b5061039a610c56565b6040516103a791906140ae565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d291906140c9565b610c60565b6040516103e49190613ff0565b60405180910390f35b3480156103f957600080fd5b50610414600480360381019061040f919061411c565b610dad565b005b34801561042257600080fd5b5061042b610ebd565b604051610438919061417d565b60405180910390f35b34801561044d57600080fd5b50610456610ee3565b60405161046391906141b4565b60405180910390f35b34801561047857600080fd5b50610493600480360381019061048e9190613f95565b610eec565b6040516104a09190613ff0565b60405180910390f35b3480156104b557600080fd5b506104be610f98565b6040516104cd939291906141cf565b60405180910390f35b3480156104e257600080fd5b506104fd60048036038101906104f8919061411c565b610fb0565b005b34801561050b57600080fd5b506105146110c0565b6040516105219190613dde565b60405180910390f35b34801561053657600080fd5b5061053f6110e6565b60405161054c9190613ff0565b60405180910390f35b34801561056157600080fd5b5061057c6004803603810190610577919061400b565b6110f9565b005b34801561058a57600080fd5b506105a560048036038101906105a0919061400b565b6114b2565b6040516105b29190613ff0565b60405180910390f35b3480156105c757600080fd5b506105d0611508565b6040516105dd9190613ff0565b60405180910390f35b3480156105f257600080fd5b5061060d6004803603810190610608919061400b565b61151b565b60405161061a9190613ff0565b60405180910390f35b34801561062f57600080fd5b5061064a60048036038101906106459190614232565b61154e565b005b34801561065857600080fd5b50610673600480360381019061066e919061400b565b61163e565b60405161068091906140ae565b60405180910390f35b34801561069557600080fd5b5061069e611687565b005b3480156106ac57600080fd5b506106c760048036038101906106c29190614232565b611805565b005b3480156106d557600080fd5b506106de6119c5565b6040516106eb9190613dde565b60405180910390f35b34801561070057600080fd5b506107096119d4565b6040516107169190613dde565b60405180910390f35b34801561072b57600080fd5b506107346119fd565b6040516107419190613e92565b60405180910390f35b34801561075657600080fd5b50610771600480360381019061076c9190613f95565b611a8f565b60405161077e9190613ff0565b60405180910390f35b34801561079357600080fd5b506107ae60048036038101906107a99190613f95565b611b3b565b6040516107bb9190613ff0565b60405180910390f35b3480156107d057600080fd5b506107d9611b5a565b6040516107e99493929190614272565b60405180910390f35b3480156107fe57600080fd5b506108196004803603810190610814919061400b565b611b78565b005b34801561082757600080fd5b50610830611c68565b60405161083d919061417d565b60405180910390f35b34801561085257600080fd5b5061086d600480360381019061086891906142b7565b611c8e565b005b34801561087b57600080fd5b506108966004803603810190610891919061400b565b611d77565b005b3480156108a457600080fd5b506108bf60048036038101906108ba919061400b565b611e67565b6040516108cc9190613ff0565b60405180910390f35b3480156108e157600080fd5b506108fc60048036038101906108f791906142e4565b611e87565b60405161090991906140ae565b60405180910390f35b34801561091e57600080fd5b50610927611f0e565b005b34801561093557600080fd5b5061093e611ffa565b60405161094b91906140ae565b60405180910390f35b34801561096057600080fd5b50610969612000565b604051610978939291906141cf565b60405180910390f35b34801561098d57600080fd5b506109a860048036038101906109a39190614324565b612018565b005b3480156109b657600080fd5b506109d160048036038101906109cc919061400b565b61213a565b005b3480156109df57600080fd5b506109fa60048036038101906109f59190614038565b61258c565b005b61dead81565b6060600c8054610a11906143a6565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3d906143a6565b8015610a8a5780601f10610a5f57610100808354040283529160200191610a8a565b820191906000526020600020905b815481529060010190602001808311610a6d57829003601f168201915b5050505050905090565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ace610ac7612665565b848461266d565b6001905092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610b36612665565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bba90614424565b60405180910390fd5b6103e881838587610bd49190614473565b610bde9190614473565b610be89190614473565b14610c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1f90614515565b60405180910390fd5b8360146000018190555082601460020181905550816014600301819055508060146001018190555050505050565b6000601854905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d995781600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610d919190614535565b925050819055505b610da4848484612838565b90509392505050565b610db5612665565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3990614424565b60405180910390fd5b60008183601854610e539190614569565b610e5d91906145f2565b905061012c601854610e6f91906145f2565b811015610eb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea890614695565b60405180910390fd5b80602381905550505050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009905090565b6000610f8e610ef9612665565b848460046000610f07612665565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f899190614473565b61266d565b6001905092915050565b600e8060000154908060010154908060020154905083565b610fb8612665565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c90614424565b60405180910390fd5b600081836018546110569190614569565b61106091906145f2565b905061012c60185461107291906145f2565b8110156110b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ab90614695565b60405180910390fd5b80602081905550505050565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d60159054906101000a900460ff1681565b611101612665565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461118e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118590614424565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156111fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f590614727565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561126f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126690614727565b60405180910390fd5b61129a60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600061154e565b6112a581600161154e565b6112ce60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661163e565b600460008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061139a60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661163e565b11156113f5576113f360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826113ee60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661163e565b612838565b505b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b602660019054906101000a900460ff1681565b6000611547827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610aba565b9050919050565b611556612665565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115da90614424565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61168f612665565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461171c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171390614424565b60405180910390fd5b61174760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600061154e565b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3565b61180d612665565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461189a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189190614424565b60405180910390fd5b600015158115151415611904576000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506119c1565b6000600354146119615762093a80600354426119209190614535565b11611960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195790614793565b60405180910390fd5b5b6001600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550426003819055505b5050565b60006119cf6119d4565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600d8054611a0c906143a6565b80601f0160208091040260200160405190810160405280929190818152602001828054611a38906143a6565b8015611a855780601f10611a5a57610100808354040283529160200191611a85565b820191906000526020600020905b815481529060010190602001808311611a6857829003601f168201915b5050505050905090565b6000611b31611a9c612665565b848460046000611aaa612665565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2c9190614535565b61266d565b6001905092915050565b6000611b4f611b48612665565b8484612838565b506001905092915050565b60148060000154908060010154908060020154908060030154905084565b611b80612665565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0490614424565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611c96612665565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1a90614424565b60405180910390fd5b80601d60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051611d6c9190613ff0565b60405180910390a150565b611d7f612665565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0390614424565b60405180910390fd5b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60076020528060005260406000206000915054906101000a900460ff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611f16612665565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9a90614424565b60405180910390fd5b600060275414611fe8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdf906147ff565b60405180910390fd5b60016027819055506000602b81905550565b602c5481565b60118060000154908060010154908060020154905083565b612020612665565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a490614424565b60405180910390fd5b60116000015483111580156120c757506011600101548211155b80156120d857506011600201548111155b612117576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210e9061486b565b60405180910390fd5b82600e6000018190555081600e6001018190555080600e60020181905550505050565b612142612665565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c690614424565b60405180910390fd5b600081905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015612221573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224591906148a0565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d091906148a0565b6040518363ffffffff1660e01b81526004016122ed9291906148cd565b602060405180830381865afa15801561230a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232e91906148a0565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612504578173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123d491906148a0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561243b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061245f91906148a0565b6040518363ffffffff1660e01b815260040161247c9291906148cd565b6020604051808303816000875af115801561249b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124bf91906148a0565b601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612546565b80601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b81601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b612594612665565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612621576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261890614424565b60405180910390fd5b82846018546126309190614569565b61263a91906145f2565b602481905550808260185461264f9190614569565b61265991906145f2565b60258190555050505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156126dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d490614942565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561274d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274490614942565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161282b91906140ae565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156128a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a0906149ae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612919576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612910906149ae565b60405180910390fd5b6000821161295c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295390614a1a565b60405180910390fd5b6129668484612d6f565b15612bf657600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612a0c5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612bf557600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ab15750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612afc57602054821115612afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af290614a86565b60405180910390fd5b5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612b965750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612bf45760235482612ba88561163e565b612bb29190614473565b1115612bf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bea90614af2565b60405180910390fd5b5b5b5b600060019050600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612c9d5750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612ca757600090505b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612d5957601d60149054906101000a900460ff16158015612d225750601d60159054906101000a900460ff165b15612d58576000612d323061163e565b90506024548110612d56576025548110612d4c5760255490505b612d5581612f46565b5b505b5b612d6585858584613235565b9150509392505050565b6000612d796119d4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612de75750612db76119d4565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612e3d5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612e935750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612ecd575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612f065750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612f3e57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b905092915050565b6001601d60146101000a81548160ff0219169083151502179055506000601460030154601460020154601460000154612f7f9190614473565b612f899190614473565b1415612f9457613217565b60006002601460030154601460020154601460000154612fb49190614473565b612fbe9190614473565b60146000015484612fcf9190614569565b612fd991906145f2565b612fe391906145f2565b905060008183612ff39190614535565b9050612ffe81613598565b6000479050600060026014600301546014600201546014600001546130239190614473565b61302d9190614473565b6014600001548461303e9190614569565b61304891906145f2565b61305291906145f2565b90506000808511156130a45761306885836137ae565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56185838760405161309b939291906141cf565b60405180910390a15b600085876130b29190614535565b111561321157600047905060006014600301546014600201546130d59190614473565b601460020154836130e69190614569565b6130f091906145f2565b9050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161313890614b43565b60006040518083038185875af1925050503d8060008114613175576040519150601f19603f3d011682016040523d82523d6000602084013e61317a565b606091505b505080935050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516131c690614b43565b60006040518083038185875af1925050503d8060008114613203576040519150601f19603f3d011682016040523d82523d6000602084013e613208565b606091505b50508093505050505b50505050505b6000601d60146101000a81548160ff02191690831515021790555050565b6000602660009054906101000a900460ff161561345f5761325585610ad8565b80613265575061326484610ad8565b5b156132a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161329c90614ba4565b60405180910390fd5b602660019054906101000a900460ff1661332b576132c38585613881565b602660019054906101000a900460ff161580156132e657506132e58585612d6f565b5b15613326576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161331d90614c36565b60405180910390fd5b61345e565b60006028541180156133865750600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b801561339857506133978585612d6f565b5b1561345d57602b54602854436133ae9190614535565b101561345c576001600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550602c600081548092919061341f90614c56565b91905055507f18e6e5ce5c121466e41a954e72765d1ea02b8e6919043b61f0dab08b4c6572e5846040516134539190613dde565b60405180910390a15b5b5b5b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546134ae9190614535565b925050819055506000826134c257836134ce565b6134cd868686613a2a565b5b905080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461351f9190614473565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161358391906140ae565b60405180910390a36001915050949350505050565b6000600267ffffffffffffffff8111156135b5576135b4614c9f565b5b6040519080825280602002602001820160405280156135e35781602001602082028036833780820191505090505b50905030816000815181106135fb576135fa614cce565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156136a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136c691906148a0565b816001815181106136da576136d9614cce565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613778959493929190614df6565b600060405180830381600087803b15801561379257600080fd5b505af11580156137a6573d6000803e3d6000fd5b505050505050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161383796959493929190614e71565b60606040518083038185885af1158015613855573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061387a9190614ee7565b5050505050565b602660019054906101000a900460ff16156138d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138c890614fac565b60405180910390fd5b6138db8282612d6f565b1580156139355750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15613a26576000602b54146139505743602881905550613958565b436028819055505b6001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001602660016101000a81548160ff021916908315150217905550426029819055506001601d60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1596001604051613a1d9190613ff0565b60405180910390a15b5050565b600080601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415613a9057600e600101549050613afd565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415613af357600e600001549050613afc565b600e6002015490505b5b613b078585612d6f565b15613b2b5760006027541480613b205750600160275414155b15613b2a57600080fd5b5b6000612710601460030154601460020154601460000154601460010154613b529190614473565b613b5c9190614473565b613b669190614473565b6014600101548487613b789190614569565b613b829190614569565b613b8c91906145f2565b613b9691906145f2565b90506000816127108487613baa9190614569565b613bb491906145f2565b613bbe9190614535565b90508160016000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613c319190614473565b9250508190555080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613c879190614473565b92505081905550601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613d0d91906140ae565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613d7291906140ae565b60405180910390a3818186613d879190614535565b613d919190614535565b93505050509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613dc882613d9d565b9050919050565b613dd881613dbd565b82525050565b6000602082019050613df36000830184613dcf565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613e33578082015181840152602081019050613e18565b83811115613e42576000848401525b50505050565b6000601f19601f8301169050919050565b6000613e6482613df9565b613e6e8185613e04565b9350613e7e818560208601613e15565b613e8781613e48565b840191505092915050565b60006020820190508181036000830152613eac8184613e59565b905092915050565b6000819050919050565b6000613ed9613ed4613ecf84613d9d565b613eb4565b613d9d565b9050919050565b6000613eeb82613ebe565b9050919050565b6000613efd82613ee0565b9050919050565b613f0d81613ef2565b82525050565b6000602082019050613f286000830184613f04565b92915050565b600080fd5b613f3c81613dbd565b8114613f4757600080fd5b50565b600081359050613f5981613f33565b92915050565b6000819050919050565b613f7281613f5f565b8114613f7d57600080fd5b50565b600081359050613f8f81613f69565b92915050565b60008060408385031215613fac57613fab613f2e565b5b6000613fba85828601613f4a565b9250506020613fcb85828601613f80565b9150509250929050565b60008115159050919050565b613fea81613fd5565b82525050565b60006020820190506140056000830184613fe1565b92915050565b60006020828403121561402157614020613f2e565b5b600061402f84828501613f4a565b91505092915050565b6000806000806080858703121561405257614051613f2e565b5b600061406087828801613f80565b945050602061407187828801613f80565b935050604061408287828801613f80565b925050606061409387828801613f80565b91505092959194509250565b6140a881613f5f565b82525050565b60006020820190506140c3600083018461409f565b92915050565b6000806000606084860312156140e2576140e1613f2e565b5b60006140f086828701613f4a565b935050602061410186828701613f4a565b925050604061411286828701613f80565b9150509250925092565b6000806040838503121561413357614132613f2e565b5b600061414185828601613f80565b925050602061415285828601613f80565b9150509250929050565b600061416782613d9d565b9050919050565b6141778161415c565b82525050565b6000602082019050614192600083018461416e565b92915050565b600060ff82169050919050565b6141ae81614198565b82525050565b60006020820190506141c960008301846141a5565b92915050565b60006060820190506141e4600083018661409f565b6141f1602083018561409f565b6141fe604083018461409f565b949350505050565b61420f81613fd5565b811461421a57600080fd5b50565b60008135905061422c81614206565b92915050565b6000806040838503121561424957614248613f2e565b5b600061425785828601613f4a565b92505060206142688582860161421d565b9150509250929050565b6000608082019050614287600083018761409f565b614294602083018661409f565b6142a1604083018561409f565b6142ae606083018461409f565b95945050505050565b6000602082840312156142cd576142cc613f2e565b5b60006142db8482850161421d565b91505092915050565b600080604083850312156142fb576142fa613f2e565b5b600061430985828601613f4a565b925050602061431a85828601613f4a565b9150509250929050565b60008060006060848603121561433d5761433c613f2e565b5b600061434b86828701613f80565b935050602061435c86828701613f80565b925050604061436d86828701613f80565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806143be57607f821691505b602082108114156143d2576143d1614377565b5b50919050565b7f43616c6c657220213d206f776e65722e00000000000000000000000000000000600082015250565b600061440e601083613e04565b9150614419826143d8565b602082019050919050565b6000602082019050818103600083015261443d81614401565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061447e82613f5f565b915061448983613f5f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156144be576144bd614444565b5b828201905092915050565b7f21314b0000000000000000000000000000000000000000000000000000000000600082015250565b60006144ff600383613e04565b915061450a826144c9565b602082019050919050565b6000602082019050818103600083015261452e816144f2565b9050919050565b600061454082613f5f565b915061454b83613f5f565b92508282101561455e5761455d614444565b5b828203905092915050565b600061457482613f5f565b915061457f83613f5f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156145b8576145b7614444565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006145fd82613f5f565b915061460883613f5f565b925082614618576146176145c3565b5b828204905092915050565b7f4d7573742062652061626f766520302e33337e25206f6620746f74616c20737560008201527f70706c792e000000000000000000000000000000000000000000000000000000602082015250565b600061467f602583613e04565b915061468a82614623565b604082019050919050565b600060208201905081810360008301526146ae81614672565b9050919050565b7f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660008201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000602082015250565b6000614711603d83613e04565b915061471c826146b5565b604082019050919050565b6000602082019050818103600083015261474081614704565b9050919050565b7f4f6e65207765656b20636f6f6c646f776e2e0000000000000000000000000000600082015250565b600061477d601283613e04565b915061478882614747565b602082019050919050565b600060208201905081810360008301526147ac81614770565b9050919050565b7f4572726f722e0000000000000000000000000000000000000000000000000000600082015250565b60006147e9600683613e04565b91506147f4826147b3565b602082019050919050565b60006020820190508181036000830152614818816147dc565b9050919050565b7f43616e6e6f7420657863656564206d6178696d756d732e000000000000000000600082015250565b6000614855601783613e04565b91506148608261481f565b602082019050919050565b6000602082019050818103600083015261488481614848565b9050919050565b60008151905061489a81613f33565b92915050565b6000602082840312156148b6576148b5613f2e565b5b60006148c48482850161488b565b91505092915050565b60006040820190506148e26000830185613dcf565b6148ef6020830184613dcf565b9392505050565b7f45524332303a205a65726f204164647265737300000000000000000000000000600082015250565b600061492c601383613e04565b9150614937826148f6565b602082019050919050565b6000602082019050818103600083015261495b8161491f565b9050919050565b7f45524332303a205a65726f20616464726573732e000000000000000000000000600082015250565b6000614998601483613e04565b91506149a382614962565b602082019050919050565b600060208201905081810360008301526149c78161498b565b9050919050565b7f4d757374203e302e000000000000000000000000000000000000000000000000600082015250565b6000614a04600883613e04565b9150614a0f826149ce565b602082019050919050565b60006020820190508181036000830152614a33816149f7565b9050919050565b7f4578636565647320746865206d61785478416d6f756e742e0000000000000000600082015250565b6000614a70601883613e04565b9150614a7b82614a3a565b602082019050919050565b60006020820190508181036000830152614a9f81614a63565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000614adc601a83613e04565b9150614ae782614aa6565b602082019050919050565b60006020820190508181036000830152614b0b81614acf565b9050919050565b600081905092915050565b50565b6000614b2d600083614b12565b9150614b3882614b1d565b600082019050919050565b6000614b4e82614b20565b9150819050919050565b7f536e697065722072656a65637465642e00000000000000000000000000000000600082015250565b6000614b8e601083613e04565b9150614b9982614b58565b602082019050919050565b60006020820190508181036000830152614bbd81614b81565b9050919050565b7f4f6e6c79206f776e65722063616e207472616e7366657220617420746869732060008201527f74696d652e000000000000000000000000000000000000000000000000000000602082015250565b6000614c20602583613e04565b9150614c2b82614bc4565b604082019050919050565b60006020820190508181036000830152614c4f81614c13565b9050919050565b6000614c6182613f5f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614c9457614c93614444565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000614d22614d1d614d1884614cfd565b613eb4565b613f5f565b9050919050565b614d3281614d07565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614d6d81613dbd565b82525050565b6000614d7f8383614d64565b60208301905092915050565b6000602082019050919050565b6000614da382614d38565b614dad8185614d43565b9350614db883614d54565b8060005b83811015614de9578151614dd08882614d73565b9750614ddb83614d8b565b925050600181019050614dbc565b5085935050505092915050565b600060a082019050614e0b600083018861409f565b614e186020830187614d29565b8181036040830152614e2a8186614d98565b9050614e396060830185613dcf565b614e46608083018461409f565b9695505050505050565b6000614e5b82613ee0565b9050919050565b614e6b81614e50565b82525050565b600060c082019050614e866000830189613dcf565b614e93602083018861409f565b614ea06040830187614d29565b614ead6060830186614d29565b614eba6080830185614e62565b614ec760a083018461409f565b979650505050505050565b600081519050614ee181613f69565b92915050565b600080600060608486031215614f0057614eff613f2e565b5b6000614f0e86828701614ed2565b9350506020614f1f86828701614ed2565b9250506040614f3086828701614ed2565b9150509250925092565b7f4c697175696469747920616c726561647920616464656420616e64206d61726b60008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b6000614f96602383613e04565b9150614fa182614f3a565b604082019050919050565b60006020820190508181036000830152614fc581614f89565b905091905056fea2646970667358221220c67f7126c536c5067e3436745da98ef1d5a38d83117091941296cb1c0837288164736f6c634300080b0033

Deployed Bytecode Sourcemap

3828:19794:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5851:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10902:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5664:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11515:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14429:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14873:426;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10637:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12129:306;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15972:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5937:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10726:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12443:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4793:78;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;15712:252;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5706:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6249:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9423:652;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13826:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6810:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12001:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13959:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11215:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10083:195;;;;;;;;;;;;;:::i;:::-;;13408:410;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10988:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9336:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10812:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12666:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11340:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5291:115;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;14262:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6065:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16783:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14103:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4291:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11074:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14543:148;;;;;;;;;;;;;:::i;:::-;;7078:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5015:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;15307:397;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12899:501;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16237:289;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5851:73;5882:42;5851:73;:::o;10902:80::-;10950:13;10974:5;10967:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10902:80;:::o;5664:35::-;;;;;;;;;;;;;:::o;11515:161::-;11590:4;11607:39;11616:12;:10;:12::i;:::-;11630:7;11639:6;11607:8;:39::i;:::-;11664:4;11657:11;;11515:161;;;;:::o;14429:106::-;14485:4;14509:9;:18;14519:7;14509:18;;;;;;;;;;;;;;;;;;;;;;;;;14502:25;;14429:106;;;:::o;14873:426::-;7687:12;:10;:12::i;:::-;7677:22;;:6;;;;;;;;;;:22;;;7669:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;15060:4:::1;15046:9;15032:11;15017:12;15004:10;:25;;;;:::i;:::-;:39;;;;:::i;:::-;:51;;;;:::i;:::-;15003:61;14993:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;15161:10;15142:6;:16;;:29;;;;15203:12;15182:6;:18;;:33;;;;15246:11;15226:6;:17;;:31;;;;15286:9;15268:6;:15;;:27;;;;14873:426:::0;;;;:::o;10637:83::-;10692:7;10710;;10703:14;;10637:83;:::o;12129:306::-;12229:4;12285:17;12250:11;:19;12262:6;12250:19;;;;;;;;;;;;;;;:31;12270:10;12250:31;;;;;;;;;;;;;;;;:52;12246:126;;12354:6;12319:11;:19;12331:6;12319:19;;;;;;;;;;;;;;;:31;12339:10;12319:31;;;;;;;;;;;;;;;;:41;;;;;;;:::i;:::-;;;;;;;;12246:126;12391:36;12401:6;12409:9;12420:6;12391:9;:36::i;:::-;12384:43;;12129:306;;;;;:::o;15972:257::-;7687:12;:10;:12::i;:::-;7677:22;;:6;;;;;;;;;;:22;;;7669:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;16056:13:::1;16094:7;16083;16073;;:17;;;;:::i;:::-;16072:29;;;;:::i;:::-;16056:45;;16140:3;16130:7;;:13;;;;:::i;:::-;16120:5;:24;;16112:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;16214:5;16197:14;:22;;;;16045:184;15972:257:::0;;:::o;5937:92::-;;;;;;;;;;;;;:::o;10726:80::-;10778:5;5555:1;10787:16;;10726:80;:::o;12443:215::-;12531:4;12548:80;12557:12;:10;:12::i;:::-;12571:7;12617:10;12580:11;:25;12592:12;:10;:12::i;:::-;12580:25;;;;;;;;;;;;;;;:34;12606:7;12580:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;12548:8;:80::i;:::-;12646:4;12639:11;;12443:215;;;;:::o;4793:78::-;;;;;;;;;;;;;;;;;;;:::o;15712:252::-;7687:12;:10;:12::i;:::-;7677:22;;:6;;;;;;;;;;:22;;;7669:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;15795:13:::1;15833:7;15822;15812;;:17;;;;:::i;:::-;15811:29;;;;:::i;:::-;15795:45;;15879:3;15869:7;;:13;;;;:::i;:::-;15859:5;:24;;15851:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;15951:5;15936:12;:20;;;;15784:180;15712:252:::0;;:::o;5706:21::-;;;;;;;;;;;;;:::o;6249:41::-;;;;;;;;;;;;;:::o;9423:652::-;7687:12;:10;:12::i;:::-;7677:22;;:6;;;;;;;;;;:22;;;7669:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;9524:1:::1;9504:22;;:8;:22;;;;9496:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;5882:42;9611:16;;:8;:16;;;;9603:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;9704:34;9724:6;::::0;::::1;;;;;;;;9732:5;9704:19;:34::i;:::-;9749:35;9769:8;9779:4;9749:19;:35::i;:::-;9839:17;9849:6;::::0;::::1;;;;;;;;9839:9;:17::i;:::-;9807:11;:19;9819:6:::0;::::1;;;;;;;;;;9807:19;;;;;;;;;;;;;;;:29;9827:8;9807:29;;;;;;;;;;;;;;;:49;;;;9890:1;9870:17;9880:6;::::0;::::1;;;;;;;;9870:9;:17::i;:::-;:21;9867:99;;;9908:46;9918:6;::::0;::::1;;;;;;;;9926:8;9936:17;9946:6;::::0;::::1;;;;;;;;9936:9;:17::i;:::-;9908:9;:46::i;:::-;;9867:99;9995:8;9986:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;10048:8;10019:38;;10040:6;::::0;::::1;;;;;;;;10019:38;;;;;;;;;;;;9423:652:::0;:::o;13826:125::-;13891:4;13915:19;:28;13935:7;13915:28;;;;;;;;;;;;;;;;;;;;;;;;;13908:35;;13826:125;;;:::o;6810:36::-;;;;;;;;;;;;;:::o;12001:120::-;12054:4;12078:35;12086:7;12095:17;12078:7;:35::i;:::-;12071:42;;12001:120;;;:::o;13959:134::-;7687:12;:10;:12::i;:::-;7677:22;;:6;;;;;;;;;;:22;;;7669:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;14078:7:::1;14047:19;:28;14067:7;14047:28;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;13959:134:::0;;:::o;11215:117::-;11281:7;11308;:16;11316:7;11308:16;;;;;;;;;;;;;;;;11301:23;;11215:117;;;:::o;10083:195::-;7687:12;:10;:12::i;:::-;7677:22;;:6;;;;;;;;;;:22;;;7669:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;10150:34:::1;10170:6;::::0;::::1;;;;;;;;10178:5;10150:19;:34::i;:::-;10212:1;10195:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;10267:1;10230:40;;10251:6;::::0;::::1;;;;;;;;10230:40;;;;;;;;;;;;10083:195::o:0;13408:410::-;7687:12;:10;:12::i;:::-;7677:22;;:6;;;;;;;;;;:22;;;7669:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;13500:5:::1;13489:16;;:7;:16;;;13485:326;;;13538:5;13522:7;:13;13530:4;13522:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13485:326;;;13601:1;13580:17;;:22;13576:139;;13669:7;13649:17;;13631:15;:35;;;;:::i;:::-;:45;13623:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;13576:139;13745:4;13729:7;:13;13737:4;13729:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13784:15;13764:17;:35;;;;13485:326;13408:410:::0;;:::o;10988:80::-;11040:7;11058;:5;:7::i;:::-;11051:14;;10988:80;:::o;9336:79::-;9374:7;9401:6;;;;;;;;;;;9394:13;;9336:79;:::o;10812:84::-;10862:13;10886:7;10879:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10812:84;:::o;12666:225::-;12759:4;12776:85;12785:12;:10;:12::i;:::-;12799:7;12845:15;12808:11;:25;12820:12;:10;:12::i;:::-;12808:25;;;;;;;;;;;;;;;:34;12834:7;12808:34;;;;;;;;;;;;;;;;:52;;;;:::i;:::-;12776:8;:85::i;:::-;12879:4;12872:11;;12666:225;;;;:::o;11340:167::-;11418:4;11435:42;11445:12;:10;:12::i;:::-;11459:9;11470:6;11435:9;:42::i;:::-;;11495:4;11488:11;;11340:167;;;;:::o;5291:115::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14262:159::-;7687:12;:10;:12::i;:::-;7677:22;;:6;;;;;;;;;;:22;;;7669:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;14408:5:::1;14359:30;:46;14390:14;14359:46;;;;;;;;;;;;;;;;:54;;;;;;;;;;;;;;;;;;14262:159:::0;:::o;6065:91::-;;;;;;;;;;;;;:::o;16783:171::-;7687:12;:10;:12::i;:::-;7677:22;;:6;;;;;;;;;;:22;;;7669:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;16884:8:::1;16860:21;;:32;;;;;;;;;;;;;;;;;;16908:38;16937:8;16908:38;;;;;;:::i;:::-;;;;;;;;16783:171:::0;:::o;14103:151::-;7687:12;:10;:12::i;:::-;7677:22;;:6;;;;;;;;;;:22;;;7669:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;14242:4:::1;14193:30;:46;14224:14;14193:46;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;14103:151:::0;:::o;4291:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;11074:133::-;11158:7;11176:11;:19;11188:6;11176:19;;;;;;;;;;;;;;;:28;11196:7;11176:28;;;;;;;;;;;;;;;;11169:35;;11074:133;;;;:::o;14543:148::-;7687:12;:10;:12::i;:::-;7677:22;;:6;;;;;;;;;;:22;;;7669:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;14615:1:::1;14598:13;;:18;14589:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14654:1;14638:13;:17;;;;14682:1;14666:13;:17;;;;14543:148::o:0;7078:32::-;;;;:::o;5015:83::-;;;;;;;;;;;;;;;;;;;:::o;15307:397::-;7687:12;:10;:12::i;:::-;7677:22;;:6;;;;;;;;;;:22;;;7669:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;15422:7:::1;:14;;;15411:7;:25;;:73;;;;;15469:7;:15;;;15457:8;:27;;15411:73;:129;;;;;15521:7;:19;;;15505:12;:35;;15411:129;15403:182;;;;;;;;;;;;:::i;:::-;;;;;;;;;15611:7;15597:4;:11;;:21;;;;15645:8;15630:4;:12;;:23;;;;15684:12;15665:4;:16;;:31;;;;15307:397:::0;;;:::o;12899:501::-;7687:12;:10;:12::i;:::-;7677:22;;:6;;;;;;;;;;:22;;;7669:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;12970:29:::1;13021:9;12970:61;;13042:16;13079:10;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13061:47;;;13117:4;13124:10;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13061:81;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13042:100;;13177:1;13157:22;;:8;:22;;;13153:207;;;13223:10;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13205:50;;;13264:4;13271:10;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13205:84;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13196:6;;:93;;;;;;;;;;;;;;;;;;13153:207;;;13340:8;13331:6;;:17;;;;;;;;;;;;;;;;;;13153:207;13382:10;13370:9;;:22;;;;;;;;;;;;;;;;;;12959:441;;12899:501:::0;:::o;16237:289::-;7687:12;:10;:12::i;:::-;7677:22;;:6;;;;;;;;;;:22;;;7669:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;16437:16:::1;16417;16407:7;;:26;;;;:::i;:::-;16406:47;;;;:::i;:::-;16390:13;:63;;;;16505:13;16488;16478:7;;:23;;;;:::i;:::-;16477:41;;;;:::i;:::-;16464:10;:54;;;;16237:289:::0;;;;:::o;292:107::-;337:15;380:10;365:26;;292:107;:::o;11684:309::-;11796:1;11778:20;;:6;:20;;;;11770:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;11860:1;11841:21;;:7;:21;;;;11833:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;11930:6;11899:11;:19;11911:6;11899:19;;;;;;;;;;;;;;;:28;11919:7;11899:28;;;;;;;;;;;;;;;:37;;;;11969:7;11952:33;;11961:6;11952:33;;;11978:6;11952:33;;;;;;:::i;:::-;;;;;;;;11684:309;;;:::o;17293:1433::-;17372:4;17413:1;17397:18;;:4;:18;;;;17389:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;17473:1;17459:16;;:2;:16;;;;17451:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;17528:1;17519:6;:10;17511:31;;;;;;;;;;;;:::i;:::-;;;;;;;;;17556:20;17567:4;17573:2;17556:10;:20::i;:::-;17553:496;;;17600:30;:36;17631:4;17600:36;;;;;;;;;;;;;;;;;;;;;;;;;:74;;;;17640:30;:34;17671:2;17640:34;;;;;;;;;;;;;;;;;;;;;;;;;17600:74;17595:429;;17699:7;:13;17707:4;17699:13;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;;17716:7;:11;17724:2;17716:11;;;;;;;;;;;;;;;;;;;;;;;;;17699:28;17696:130;;;17765:12;;17755:6;:22;;17747:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;17696:130;5778:42;17847:20;;:2;:20;;;;:36;;;;;17872:7;:11;17880:2;17872:11;;;;;;;;;;;;;;;;;;;;;;;;;17871:12;17847:36;17844:163;;;17942:14;;17932:6;17916:13;17926:2;17916:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;17908:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;17844:163;17595:429;17553:496;18059:12;18074:4;18059:19;;18092;:25;18112:4;18092:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;18121:19;:23;18141:2;18121:23;;;;;;;;;;;;;;;;;;;;;;;;;18092:52;18089:98;;;18170:5;18160:15;;18089:98;18203:7;:11;18211:2;18203:11;;;;;;;;;;;;;;;;;;;;;;;;;18199:457;;;18236:16;;;;;;;;;;;18235:17;:59;;;;;18273:21;;;;;;;;;;;18235:59;18231:408;;;18329:28;18360:24;18378:4;18360:9;:24::i;:::-;18329:55;;18431:13;;18407:20;:37;18403:221;;18496:10;;18472:20;:34;18469:77;;18533:10;;18510:33;;18469:77;18568:36;18583:20;18568:14;:36::i;:::-;18403:221;18310:329;18231:408;18199:457;18674:44;18692:4;18698:2;18702:6;18710:7;18674:17;:44::i;:::-;18667:51;;;17293:1433;;;;;:::o;16962:323::-;17030:4;17062:7;:5;:7::i;:::-;17054:15;;:4;:15;;;;:45;;;;;17092:7;:5;:7::i;:::-;17086:13;;:2;:13;;;;17054:45;:84;;;;;17117:17;:21;17135:2;17117:21;;;;;;;;;;;;;;;;;;;;;;;;;17116:22;17054:84;:125;;;;;17156:17;:23;17174:4;17156:23;;;;;;;;;;;;;;;;;;;;;;;;;17155:24;17054:125;:152;;;;;5882:42;17196:10;;:2;:10;;;;17054:152;:185;;;;;17237:1;17223:16;;:2;:16;;;;17054:185;:223;;;;;17272:4;17256:21;;:4;:21;;;;17054:223;17047:230;;16962:323;;;;:::o;18734:1308::-;7570:4;7551:16;;:23;;;;;;;;;;;;;;;;;;18884:1:::1;18863:6;:17;;;18842:6;:18;;;18823:6;:16;;;:37;;;;:::i;:::-;:57;;;;:::i;:::-;:62;18819:88;;;18900:7;;18819:88;18917:17;19046:1;19023:6;:17;;;19002:6;:18;;;18983:6;:16;;;:37;;;;:::i;:::-;:57;;;;:::i;:::-;18962:6;:16;;;18939:20;:39;;;;:::i;:::-;18938:103;;;;:::i;:::-;18937:110;;;;:::i;:::-;18917:130;;19060:20;19106:9;19083:20;:32;;;;:::i;:::-;19060:55;;19126:30;19143:12;19126:16;:30::i;:::-;19169:22;19194:21;19169:46;;19226:24;19356:1;19333:6;:17;;;19312:6;:18;;;19293:6;:16;;;:37;;;;:::i;:::-;:57;;;;:::i;:::-;19272:6;:16;;;19255:14;:33;;;;:::i;:::-;19254:97;;;;:::i;:::-;19253:104;;;;:::i;:::-;19226:131;;19370:12;19411:1:::0;19399:9:::1;:13;19395:161;;;19429:41;19442:9;19453:16;19429:12;:41::i;:::-;19490:54;19505:9;19516:16;19534:9;19490:54;;;;;;;;:::i;:::-;;;;;;;;19395:161;19605:1;19593:9;19570:20;:32;;;;:::i;:::-;:36;19566:469;;;19623:11;19637:21;19623:35;;19673:24;19755:6;:17;;;19734:6;:18;;;:38;;;;:::i;:::-;19711:6;:18;;;19702:6;:27;;;;:::i;:::-;19701:72;;;;:::i;:::-;19673:101;;19812:15;;;;;;;;;;;19804:29;;19841:19;19804:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19791:74;;;;;19901:14;;;;;;;;;;;19893:28;;19929:21;19893:62;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19880:75;;;;;19608:427;;19566:469;18808:1234;;;;;7585:1;7616:5:::0;7597:16;;:24;;;;;;;;;;;;;;;;;;18734:1308;:::o;21458:1181::-;21558:4;21579:16;;;;;;;;;;;21575:819;;;21615:14;21624:4;21615:8;:14::i;:::-;:30;;;;21633:12;21642:2;21633:8;:12::i;:::-;21615:30;21611:97;;;21666:26;;;;;;;;;;:::i;:::-;;;;;;;;21611:97;21729:16;;;;;;;;;;;21724:659;;21766:28;21785:4;21791:2;21766:18;:28::i;:::-;21818:16;;;;;;;;;;;21817:17;:41;;;;;21838:20;21849:4;21855:2;21838:10;:20::i;:::-;21817:41;21813:137;;;21883:47;;;;;;;;;;:::i;:::-;;;;;;;;21813:137;21724:659;;;22009:1;21994:12;;:16;:55;;;;;22036:7;:13;22044:4;22036:13;;;;;;;;;;;;;;;;;;;;;;;;;21994:55;:101;;;;;22075:20;22086:4;22092:2;22075:10;:20::i;:::-;21994:101;21990:378;;;22172:13;;22157:12;;22142;:27;;;;:::i;:::-;:43;22138:211;;;22230:4;22214:9;:13;22224:2;22214:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;22261:13;;:16;;;;;;;;;:::i;:::-;;;;;;22309;22322:2;22309:16;;;;;;:::i;:::-;;;;;;;;22138:211;21990:378;21724:659;21575:819;22423:6;22406:7;:13;22414:4;22406:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;22440:22;22466:7;22465:48;;22507:6;22465:48;;;22477:27;22487:4;22493:2;22497:6;22477:9;:27::i;:::-;22465:48;22440:73;;22543:14;22528:7;:11;22536:2;22528:11;;;;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;22590:2;22575:34;;22584:4;22575:34;;;22594:14;22575:34;;;;;;:::i;:::-;;;;;;;;22627:4;22620:11;;;21458:1181;;;;;;:::o;20050:417::-;20117:21;20155:1;20141:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20117:40;;20186:4;20168;20173:1;20168:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;20212:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20202:4;20207:1;20202:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;20241:9;;;;;;;;;;;:60;;;20316:11;20342:1;20386:4;20413;20433:15;20241:218;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20106:361;20050:417;:::o;20475:343::-;20556:9;;;;;;;;;;;:25;;;20589:9;20622:4;20642:11;20668:1;20711;20754:15;;;;;;;;;;;20784;20556:254;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20475:343;;:::o;20826:624::-;20908:16;;;;;;;;;;;20907:17;20899:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;20980:20;20991:4;20997:2;20980:10;:20::i;:::-;20979:21;:37;;;;;21010:6;;;;;;;;;;;21004:12;;:2;:12;;;20979:37;20975:468;;;21054:1;21037:13;;:18;21033:172;;21091:12;21076;:27;;;;21033:172;;;21177:12;21162;:27;;;;21033:172;21245:4;21219:17;:23;21237:4;21219:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;21283:4;21264:16;;:23;;;;;;;;;;;;;;;;;;21317:15;21302:12;:30;;;;21373:4;21349:21;;:28;;;;;;;;;;;;;;;;;;21397:34;21426:4;21397:34;;;;;;:::i;:::-;;;;;;;;20975:468;20826:624;;:::o;22647:972::-;22726:7;22746:18;22787:6;;;;;;;;;;;22781:12;;:2;:12;;;22777:160;;;22809:4;:12;;;22796:25;;22777:160;;;22852:6;;;;;;;;;;;22844:14;;:4;:14;;;22840:97;;;22874:4;:11;;;22861:24;;22840:97;;;22919:4;:16;;;22906:29;;22840:97;22777:160;22953:20;22964:4;22970:2;22953:10;:20::i;:::-;22949:142;;;23010:1;22993:13;;:18;:42;;;;23033:1;23015:13;;:20;;22993:42;22989:91;;;23056:8;;;22989:91;22949:142;23101:19;5459:5;23224:6;:17;;;23203:6;:18;;;23184:6;:16;;;23166:6;:15;;;:34;;;;:::i;:::-;:55;;;;:::i;:::-;:75;;;;:::i;:::-;23146:6;:15;;;23133:10;23124:6;:19;;;;:::i;:::-;:37;;;;:::i;:::-;23123:120;;;;:::i;:::-;:139;;;;:::i;:::-;23101:161;;23273:17;23336:11;5459:5;23303:10;23294:6;:19;;;;:::i;:::-;:38;;;;:::i;:::-;23293:54;;;;:::i;:::-;23273:74;;23386:11;23358:7;:24;23366:15;;;;;;;;;;;23358:24;;;;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;;;;;23435:9;23408:7;:22;23424:4;23408:22;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;23476:15;;;;;;;;;;;23461:44;;23470:4;23461:44;;;23493:11;23461:44;;;;;;:::i;:::-;;;;;;;;23544:4;23521:40;;23530:4;23521:40;;;23551:9;23521:40;;;;;;:::i;:::-;;;;;;;;23600:11;23588:9;23579:6;:18;;;;:::i;:::-;:32;;;;:::i;:::-;23572:39;;;;;22647:972;;;;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:99::-;645:6;679:5;673:12;663:22;;593:99;;;:::o;698:169::-;782:11;816:6;811:3;804:19;856:4;851:3;847:14;832:29;;698:169;;;;:::o;873:307::-;941:1;951:113;965:6;962:1;959:13;951:113;;;1050:1;1045:3;1041:11;1035:18;1031:1;1026:3;1022:11;1015:39;987:2;984:1;980:10;975:15;;951:113;;;1082:6;1079:1;1076:13;1073:101;;;1162:1;1153:6;1148:3;1144:16;1137:27;1073:101;922:258;873:307;;;:::o;1186:102::-;1227:6;1278:2;1274:7;1269:2;1262:5;1258:14;1254:28;1244:38;;1186:102;;;:::o;1294:364::-;1382:3;1410:39;1443:5;1410:39;:::i;:::-;1465:71;1529:6;1524:3;1465:71;:::i;:::-;1458:78;;1545:52;1590:6;1585:3;1578:4;1571:5;1567:16;1545:52;:::i;:::-;1622:29;1644:6;1622:29;:::i;:::-;1617:3;1613:39;1606:46;;1386:272;1294:364;;;;:::o;1664:313::-;1777:4;1815:2;1804:9;1800:18;1792:26;;1864:9;1858:4;1854:20;1850:1;1839:9;1835:17;1828:47;1892:78;1965:4;1956:6;1892:78;:::i;:::-;1884:86;;1664:313;;;;:::o;1983:60::-;2011:3;2032:5;2025:12;;1983:60;;;:::o;2049:142::-;2099:9;2132:53;2150:34;2159:24;2177:5;2159:24;:::i;:::-;2150:34;:::i;:::-;2132:53;:::i;:::-;2119:66;;2049:142;;;:::o;2197:126::-;2247:9;2280:37;2311:5;2280:37;:::i;:::-;2267:50;;2197:126;;;:::o;2329:152::-;2405:9;2438:37;2469:5;2438:37;:::i;:::-;2425:50;;2329:152;;;:::o;2487:183::-;2600:63;2657:5;2600:63;:::i;:::-;2595:3;2588:76;2487:183;;:::o;2676:274::-;2795:4;2833:2;2822:9;2818:18;2810:26;;2846:97;2940:1;2929:9;2925:17;2916:6;2846:97;:::i;:::-;2676:274;;;;:::o;3037:117::-;3146:1;3143;3136:12;3283:122;3356:24;3374:5;3356:24;:::i;:::-;3349:5;3346:35;3336:63;;3395:1;3392;3385:12;3336:63;3283:122;:::o;3411:139::-;3457:5;3495:6;3482:20;3473:29;;3511:33;3538:5;3511:33;:::i;:::-;3411:139;;;;:::o;3556:77::-;3593:7;3622:5;3611:16;;3556:77;;;:::o;3639:122::-;3712:24;3730:5;3712:24;:::i;:::-;3705:5;3702:35;3692:63;;3751:1;3748;3741:12;3692:63;3639:122;:::o;3767:139::-;3813:5;3851:6;3838:20;3829:29;;3867:33;3894:5;3867:33;:::i;:::-;3767:139;;;;:::o;3912:474::-;3980:6;3988;4037:2;4025:9;4016:7;4012:23;4008:32;4005:119;;;4043:79;;:::i;:::-;4005:119;4163:1;4188:53;4233:7;4224:6;4213:9;4209:22;4188:53;:::i;:::-;4178:63;;4134:117;4290:2;4316:53;4361:7;4352:6;4341:9;4337:22;4316:53;:::i;:::-;4306:63;;4261:118;3912:474;;;;;:::o;4392:90::-;4426:7;4469:5;4462:13;4455:21;4444:32;;4392:90;;;:::o;4488:109::-;4569:21;4584:5;4569:21;:::i;:::-;4564:3;4557:34;4488:109;;:::o;4603:210::-;4690:4;4728:2;4717:9;4713:18;4705:26;;4741:65;4803:1;4792:9;4788:17;4779:6;4741:65;:::i;:::-;4603:210;;;;:::o;4819:329::-;4878:6;4927:2;4915:9;4906:7;4902:23;4898:32;4895:119;;;4933:79;;:::i;:::-;4895:119;5053:1;5078:53;5123:7;5114:6;5103:9;5099:22;5078:53;:::i;:::-;5068:63;;5024:117;4819:329;;;;:::o;5154:765::-;5240:6;5248;5256;5264;5313:3;5301:9;5292:7;5288:23;5284:33;5281:120;;;5320:79;;:::i;:::-;5281:120;5440:1;5465:53;5510:7;5501:6;5490:9;5486:22;5465:53;:::i;:::-;5455:63;;5411:117;5567:2;5593:53;5638:7;5629:6;5618:9;5614:22;5593:53;:::i;:::-;5583:63;;5538:118;5695:2;5721:53;5766:7;5757:6;5746:9;5742:22;5721:53;:::i;:::-;5711:63;;5666:118;5823:2;5849:53;5894:7;5885:6;5874:9;5870:22;5849:53;:::i;:::-;5839:63;;5794:118;5154:765;;;;;;;:::o;5925:118::-;6012:24;6030:5;6012:24;:::i;:::-;6007:3;6000:37;5925:118;;:::o;6049:222::-;6142:4;6180:2;6169:9;6165:18;6157:26;;6193:71;6261:1;6250:9;6246:17;6237:6;6193:71;:::i;:::-;6049:222;;;;:::o;6277:619::-;6354:6;6362;6370;6419:2;6407:9;6398:7;6394:23;6390:32;6387:119;;;6425:79;;:::i;:::-;6387:119;6545:1;6570:53;6615:7;6606:6;6595:9;6591:22;6570:53;:::i;:::-;6560:63;;6516:117;6672:2;6698:53;6743:7;6734:6;6723:9;6719:22;6698:53;:::i;:::-;6688:63;;6643:118;6800:2;6826:53;6871:7;6862:6;6851:9;6847:22;6826:53;:::i;:::-;6816:63;;6771:118;6277:619;;;;;:::o;6902:474::-;6970:6;6978;7027:2;7015:9;7006:7;7002:23;6998:32;6995:119;;;7033:79;;:::i;:::-;6995:119;7153:1;7178:53;7223:7;7214:6;7203:9;7199:22;7178:53;:::i;:::-;7168:63;;7124:117;7280:2;7306:53;7351:7;7342:6;7331:9;7327:22;7306:53;:::i;:::-;7296:63;;7251:118;6902:474;;;;;:::o;7382:104::-;7427:7;7456:24;7474:5;7456:24;:::i;:::-;7445:35;;7382:104;;;:::o;7492:142::-;7595:32;7621:5;7595:32;:::i;:::-;7590:3;7583:45;7492:142;;:::o;7640:254::-;7749:4;7787:2;7776:9;7772:18;7764:26;;7800:87;7884:1;7873:9;7869:17;7860:6;7800:87;:::i;:::-;7640:254;;;;:::o;7900:86::-;7935:7;7975:4;7968:5;7964:16;7953:27;;7900:86;;;:::o;7992:112::-;8075:22;8091:5;8075:22;:::i;:::-;8070:3;8063:35;7992:112;;:::o;8110:214::-;8199:4;8237:2;8226:9;8222:18;8214:26;;8250:67;8314:1;8303:9;8299:17;8290:6;8250:67;:::i;:::-;8110:214;;;;:::o;8330:442::-;8479:4;8517:2;8506:9;8502:18;8494:26;;8530:71;8598:1;8587:9;8583:17;8574:6;8530:71;:::i;:::-;8611:72;8679:2;8668:9;8664:18;8655:6;8611:72;:::i;:::-;8693;8761:2;8750:9;8746:18;8737:6;8693:72;:::i;:::-;8330:442;;;;;;:::o;8778:116::-;8848:21;8863:5;8848:21;:::i;:::-;8841:5;8838:32;8828:60;;8884:1;8881;8874:12;8828:60;8778:116;:::o;8900:133::-;8943:5;8981:6;8968:20;8959:29;;8997:30;9021:5;8997:30;:::i;:::-;8900:133;;;;:::o;9039:468::-;9104:6;9112;9161:2;9149:9;9140:7;9136:23;9132:32;9129:119;;;9167:79;;:::i;:::-;9129:119;9287:1;9312:53;9357:7;9348:6;9337:9;9333:22;9312:53;:::i;:::-;9302:63;;9258:117;9414:2;9440:50;9482:7;9473:6;9462:9;9458:22;9440:50;:::i;:::-;9430:60;;9385:115;9039:468;;;;;:::o;9513:553::-;9690:4;9728:3;9717:9;9713:19;9705:27;;9742:71;9810:1;9799:9;9795:17;9786:6;9742:71;:::i;:::-;9823:72;9891:2;9880:9;9876:18;9867:6;9823:72;:::i;:::-;9905;9973:2;9962:9;9958:18;9949:6;9905:72;:::i;:::-;9987;10055:2;10044:9;10040:18;10031:6;9987:72;:::i;:::-;9513:553;;;;;;;:::o;10072:323::-;10128:6;10177:2;10165:9;10156:7;10152:23;10148:32;10145:119;;;10183:79;;:::i;:::-;10145:119;10303:1;10328:50;10370:7;10361:6;10350:9;10346:22;10328:50;:::i;:::-;10318:60;;10274:114;10072:323;;;;:::o;10401:474::-;10469:6;10477;10526:2;10514:9;10505:7;10501:23;10497:32;10494:119;;;10532:79;;:::i;:::-;10494:119;10652:1;10677:53;10722:7;10713:6;10702:9;10698:22;10677:53;:::i;:::-;10667:63;;10623:117;10779:2;10805:53;10850:7;10841:6;10830:9;10826:22;10805:53;:::i;:::-;10795:63;;10750:118;10401:474;;;;;:::o;10881:619::-;10958:6;10966;10974;11023:2;11011:9;11002:7;10998:23;10994:32;10991:119;;;11029:79;;:::i;:::-;10991:119;11149:1;11174:53;11219:7;11210:6;11199:9;11195:22;11174:53;:::i;:::-;11164:63;;11120:117;11276:2;11302:53;11347:7;11338:6;11327:9;11323:22;11302:53;:::i;:::-;11292:63;;11247:118;11404:2;11430:53;11475:7;11466:6;11455:9;11451:22;11430:53;:::i;:::-;11420:63;;11375:118;10881:619;;;;;:::o;11506:180::-;11554:77;11551:1;11544:88;11651:4;11648:1;11641:15;11675:4;11672:1;11665:15;11692:320;11736:6;11773:1;11767:4;11763:12;11753:22;;11820:1;11814:4;11810:12;11841:18;11831:81;;11897:4;11889:6;11885:17;11875:27;;11831:81;11959:2;11951:6;11948:14;11928:18;11925:38;11922:84;;;11978:18;;:::i;:::-;11922:84;11743:269;11692:320;;;:::o;12018:166::-;12158:18;12154:1;12146:6;12142:14;12135:42;12018:166;:::o;12190:366::-;12332:3;12353:67;12417:2;12412:3;12353:67;:::i;:::-;12346:74;;12429:93;12518:3;12429:93;:::i;:::-;12547:2;12542:3;12538:12;12531:19;;12190:366;;;:::o;12562:419::-;12728:4;12766:2;12755:9;12751:18;12743:26;;12815:9;12809:4;12805:20;12801:1;12790:9;12786:17;12779:47;12843:131;12969:4;12843:131;:::i;:::-;12835:139;;12562:419;;;:::o;12987:180::-;13035:77;13032:1;13025:88;13132:4;13129:1;13122:15;13156:4;13153:1;13146:15;13173:305;13213:3;13232:20;13250:1;13232:20;:::i;:::-;13227:25;;13266:20;13284:1;13266:20;:::i;:::-;13261:25;;13420:1;13352:66;13348:74;13345:1;13342:81;13339:107;;;13426:18;;:::i;:::-;13339:107;13470:1;13467;13463:9;13456:16;;13173:305;;;;:::o;13484:153::-;13624:5;13620:1;13612:6;13608:14;13601:29;13484:153;:::o;13643:365::-;13785:3;13806:66;13870:1;13865:3;13806:66;:::i;:::-;13799:73;;13881:93;13970:3;13881:93;:::i;:::-;13999:2;13994:3;13990:12;13983:19;;13643:365;;;:::o;14014:419::-;14180:4;14218:2;14207:9;14203:18;14195:26;;14267:9;14261:4;14257:20;14253:1;14242:9;14238:17;14231:47;14295:131;14421:4;14295:131;:::i;:::-;14287:139;;14014:419;;;:::o;14439:191::-;14479:4;14499:20;14517:1;14499:20;:::i;:::-;14494:25;;14533:20;14551:1;14533:20;:::i;:::-;14528:25;;14572:1;14569;14566:8;14563:34;;;14577:18;;:::i;:::-;14563:34;14622:1;14619;14615:9;14607:17;;14439:191;;;;:::o;14636:348::-;14676:7;14699:20;14717:1;14699:20;:::i;:::-;14694:25;;14733:20;14751:1;14733:20;:::i;:::-;14728:25;;14921:1;14853:66;14849:74;14846:1;14843:81;14838:1;14831:9;14824:17;14820:105;14817:131;;;14928:18;;:::i;:::-;14817:131;14976:1;14973;14969:9;14958:20;;14636:348;;;;:::o;14990:180::-;15038:77;15035:1;15028:88;15135:4;15132:1;15125:15;15159:4;15156:1;15149:15;15176:185;15216:1;15233:20;15251:1;15233:20;:::i;:::-;15228:25;;15267:20;15285:1;15267:20;:::i;:::-;15262:25;;15306:1;15296:35;;15311:18;;:::i;:::-;15296:35;15353:1;15350;15346:9;15341:14;;15176:185;;;;:::o;15367:224::-;15507:34;15503:1;15495:6;15491:14;15484:58;15576:7;15571:2;15563:6;15559:15;15552:32;15367:224;:::o;15597:366::-;15739:3;15760:67;15824:2;15819:3;15760:67;:::i;:::-;15753:74;;15836:93;15925:3;15836:93;:::i;:::-;15954:2;15949:3;15945:12;15938:19;;15597:366;;;:::o;15969:419::-;16135:4;16173:2;16162:9;16158:18;16150:26;;16222:9;16216:4;16212:20;16208:1;16197:9;16193:17;16186:47;16250:131;16376:4;16250:131;:::i;:::-;16242:139;;15969:419;;;:::o;16394:248::-;16534:34;16530:1;16522:6;16518:14;16511:58;16603:31;16598:2;16590:6;16586:15;16579:56;16394:248;:::o;16648:366::-;16790:3;16811:67;16875:2;16870:3;16811:67;:::i;:::-;16804:74;;16887:93;16976:3;16887:93;:::i;:::-;17005:2;17000:3;16996:12;16989:19;;16648:366;;;:::o;17020:419::-;17186:4;17224:2;17213:9;17209:18;17201:26;;17273:9;17267:4;17263:20;17259:1;17248:9;17244:17;17237:47;17301:131;17427:4;17301:131;:::i;:::-;17293:139;;17020:419;;;:::o;17445:168::-;17585:20;17581:1;17573:6;17569:14;17562:44;17445:168;:::o;17619:366::-;17761:3;17782:67;17846:2;17841:3;17782:67;:::i;:::-;17775:74;;17858:93;17947:3;17858:93;:::i;:::-;17976:2;17971:3;17967:12;17960:19;;17619:366;;;:::o;17991:419::-;18157:4;18195:2;18184:9;18180:18;18172:26;;18244:9;18238:4;18234:20;18230:1;18219:9;18215:17;18208:47;18272:131;18398:4;18272:131;:::i;:::-;18264:139;;17991:419;;;:::o;18416:156::-;18556:8;18552:1;18544:6;18540:14;18533:32;18416:156;:::o;18578:365::-;18720:3;18741:66;18805:1;18800:3;18741:66;:::i;:::-;18734:73;;18816:93;18905:3;18816:93;:::i;:::-;18934:2;18929:3;18925:12;18918:19;;18578:365;;;:::o;18949:419::-;19115:4;19153:2;19142:9;19138:18;19130:26;;19202:9;19196:4;19192:20;19188:1;19177:9;19173:17;19166:47;19230:131;19356:4;19230:131;:::i;:::-;19222:139;;18949:419;;;:::o;19374:173::-;19514:25;19510:1;19502:6;19498:14;19491:49;19374:173;:::o;19553:366::-;19695:3;19716:67;19780:2;19775:3;19716:67;:::i;:::-;19709:74;;19792:93;19881:3;19792:93;:::i;:::-;19910:2;19905:3;19901:12;19894:19;;19553:366;;;:::o;19925:419::-;20091:4;20129:2;20118:9;20114:18;20106:26;;20178:9;20172:4;20168:20;20164:1;20153:9;20149:17;20142:47;20206:131;20332:4;20206:131;:::i;:::-;20198:139;;19925:419;;;:::o;20350:143::-;20407:5;20438:6;20432:13;20423:22;;20454:33;20481:5;20454:33;:::i;:::-;20350:143;;;;:::o;20499:351::-;20569:6;20618:2;20606:9;20597:7;20593:23;20589:32;20586:119;;;20624:79;;:::i;:::-;20586:119;20744:1;20769:64;20825:7;20816:6;20805:9;20801:22;20769:64;:::i;:::-;20759:74;;20715:128;20499:351;;;;:::o;20856:332::-;20977:4;21015:2;21004:9;21000:18;20992:26;;21028:71;21096:1;21085:9;21081:17;21072:6;21028:71;:::i;:::-;21109:72;21177:2;21166:9;21162:18;21153:6;21109:72;:::i;:::-;20856:332;;;;;:::o;21194:169::-;21334:21;21330:1;21322:6;21318:14;21311:45;21194:169;:::o;21369:366::-;21511:3;21532:67;21596:2;21591:3;21532:67;:::i;:::-;21525:74;;21608:93;21697:3;21608:93;:::i;:::-;21726:2;21721:3;21717:12;21710:19;;21369:366;;;:::o;21741:419::-;21907:4;21945:2;21934:9;21930:18;21922:26;;21994:9;21988:4;21984:20;21980:1;21969:9;21965:17;21958:47;22022:131;22148:4;22022:131;:::i;:::-;22014:139;;21741:419;;;:::o;22166:170::-;22306:22;22302:1;22294:6;22290:14;22283:46;22166:170;:::o;22342:366::-;22484:3;22505:67;22569:2;22564:3;22505:67;:::i;:::-;22498:74;;22581:93;22670:3;22581:93;:::i;:::-;22699:2;22694:3;22690:12;22683:19;;22342:366;;;:::o;22714:419::-;22880:4;22918:2;22907:9;22903:18;22895:26;;22967:9;22961:4;22957:20;22953:1;22942:9;22938:17;22931:47;22995:131;23121:4;22995:131;:::i;:::-;22987:139;;22714:419;;;:::o;23139:158::-;23279:10;23275:1;23267:6;23263:14;23256:34;23139:158;:::o;23303:365::-;23445:3;23466:66;23530:1;23525:3;23466:66;:::i;:::-;23459:73;;23541:93;23630:3;23541:93;:::i;:::-;23659:2;23654:3;23650:12;23643:19;;23303:365;;;:::o;23674:419::-;23840:4;23878:2;23867:9;23863:18;23855:26;;23927:9;23921:4;23917:20;23913:1;23902:9;23898:17;23891:47;23955:131;24081:4;23955:131;:::i;:::-;23947:139;;23674:419;;;:::o;24099:174::-;24239:26;24235:1;24227:6;24223:14;24216:50;24099:174;:::o;24279:366::-;24421:3;24442:67;24506:2;24501:3;24442:67;:::i;:::-;24435:74;;24518:93;24607:3;24518:93;:::i;:::-;24636:2;24631:3;24627:12;24620:19;;24279:366;;;:::o;24651:419::-;24817:4;24855:2;24844:9;24840:18;24832:26;;24904:9;24898:4;24894:20;24890:1;24879:9;24875:17;24868:47;24932:131;25058:4;24932:131;:::i;:::-;24924:139;;24651:419;;;:::o;25076:176::-;25216:28;25212:1;25204:6;25200:14;25193:52;25076:176;:::o;25258:366::-;25400:3;25421:67;25485:2;25480:3;25421:67;:::i;:::-;25414:74;;25497:93;25586:3;25497:93;:::i;:::-;25615:2;25610:3;25606:12;25599:19;;25258:366;;;:::o;25630:419::-;25796:4;25834:2;25823:9;25819:18;25811:26;;25883:9;25877:4;25873:20;25869:1;25858:9;25854:17;25847:47;25911:131;26037:4;25911:131;:::i;:::-;25903:139;;25630:419;;;:::o;26055:147::-;26156:11;26193:3;26178:18;;26055:147;;;;:::o;26208:114::-;;:::o;26328:398::-;26487:3;26508:83;26589:1;26584:3;26508:83;:::i;:::-;26501:90;;26600:93;26689:3;26600:93;:::i;:::-;26718:1;26713:3;26709:11;26702:18;;26328:398;;;:::o;26732:379::-;26916:3;26938:147;27081:3;26938:147;:::i;:::-;26931:154;;27102:3;27095:10;;26732:379;;;:::o;27117:166::-;27257:18;27253:1;27245:6;27241:14;27234:42;27117:166;:::o;27289:366::-;27431:3;27452:67;27516:2;27511:3;27452:67;:::i;:::-;27445:74;;27528:93;27617:3;27528:93;:::i;:::-;27646:2;27641:3;27637:12;27630:19;;27289:366;;;:::o;27661:419::-;27827:4;27865:2;27854:9;27850:18;27842:26;;27914:9;27908:4;27904:20;27900:1;27889:9;27885:17;27878:47;27942:131;28068:4;27942:131;:::i;:::-;27934:139;;27661:419;;;:::o;28086:224::-;28226:34;28222:1;28214:6;28210:14;28203:58;28295:7;28290:2;28282:6;28278:15;28271:32;28086:224;:::o;28316:366::-;28458:3;28479:67;28543:2;28538:3;28479:67;:::i;:::-;28472:74;;28555:93;28644:3;28555:93;:::i;:::-;28673:2;28668:3;28664:12;28657:19;;28316:366;;;:::o;28688:419::-;28854:4;28892:2;28881:9;28877:18;28869:26;;28941:9;28935:4;28931:20;28927:1;28916:9;28912:17;28905:47;28969:131;29095:4;28969:131;:::i;:::-;28961:139;;28688:419;;;:::o;29113:233::-;29152:3;29175:24;29193:5;29175:24;:::i;:::-;29166:33;;29221:66;29214:5;29211:77;29208:103;;;29291:18;;:::i;:::-;29208:103;29338:1;29331:5;29327:13;29320:20;;29113:233;;;:::o;29352:180::-;29400:77;29397:1;29390:88;29497:4;29494:1;29487:15;29521:4;29518:1;29511:15;29538:180;29586:77;29583:1;29576:88;29683:4;29680:1;29673:15;29707:4;29704:1;29697:15;29724:85;29769:7;29798:5;29787:16;;29724:85;;;:::o;29815:158::-;29873:9;29906:61;29924:42;29933:32;29959:5;29933:32;:::i;:::-;29924:42;:::i;:::-;29906:61;:::i;:::-;29893:74;;29815:158;;;:::o;29979:147::-;30074:45;30113:5;30074:45;:::i;:::-;30069:3;30062:58;29979:147;;:::o;30132:114::-;30199:6;30233:5;30227:12;30217:22;;30132:114;;;:::o;30252:184::-;30351:11;30385:6;30380:3;30373:19;30425:4;30420:3;30416:14;30401:29;;30252:184;;;;:::o;30442:132::-;30509:4;30532:3;30524:11;;30562:4;30557:3;30553:14;30545:22;;30442:132;;;:::o;30580:108::-;30657:24;30675:5;30657:24;:::i;:::-;30652:3;30645:37;30580:108;;:::o;30694:179::-;30763:10;30784:46;30826:3;30818:6;30784:46;:::i;:::-;30862:4;30857:3;30853:14;30839:28;;30694:179;;;;:::o;30879:113::-;30949:4;30981;30976:3;30972:14;30964:22;;30879:113;;;:::o;31028:732::-;31147:3;31176:54;31224:5;31176:54;:::i;:::-;31246:86;31325:6;31320:3;31246:86;:::i;:::-;31239:93;;31356:56;31406:5;31356:56;:::i;:::-;31435:7;31466:1;31451:284;31476:6;31473:1;31470:13;31451:284;;;31552:6;31546:13;31579:63;31638:3;31623:13;31579:63;:::i;:::-;31572:70;;31665:60;31718:6;31665:60;:::i;:::-;31655:70;;31511:224;31498:1;31495;31491:9;31486:14;;31451:284;;;31455:14;31751:3;31744:10;;31152:608;;;31028:732;;;;:::o;31766:831::-;32029:4;32067:3;32056:9;32052:19;32044:27;;32081:71;32149:1;32138:9;32134:17;32125:6;32081:71;:::i;:::-;32162:80;32238:2;32227:9;32223:18;32214:6;32162:80;:::i;:::-;32289:9;32283:4;32279:20;32274:2;32263:9;32259:18;32252:48;32317:108;32420:4;32411:6;32317:108;:::i;:::-;32309:116;;32435:72;32503:2;32492:9;32488:18;32479:6;32435:72;:::i;:::-;32517:73;32585:3;32574:9;32570:19;32561:6;32517:73;:::i;:::-;31766:831;;;;;;;;:::o;32603:134::-;32661:9;32694:37;32725:5;32694:37;:::i;:::-;32681:50;;32603:134;;;:::o;32743:147::-;32838:45;32877:5;32838:45;:::i;:::-;32833:3;32826:58;32743:147;;:::o;32896:823::-;33153:4;33191:3;33180:9;33176:19;33168:27;;33205:71;33273:1;33262:9;33258:17;33249:6;33205:71;:::i;:::-;33286:72;33354:2;33343:9;33339:18;33330:6;33286:72;:::i;:::-;33368:80;33444:2;33433:9;33429:18;33420:6;33368:80;:::i;:::-;33458;33534:2;33523:9;33519:18;33510:6;33458:80;:::i;:::-;33548:81;33624:3;33613:9;33609:19;33600:6;33548:81;:::i;:::-;33639:73;33707:3;33696:9;33692:19;33683:6;33639:73;:::i;:::-;32896:823;;;;;;;;;:::o;33725:143::-;33782:5;33813:6;33807:13;33798:22;;33829:33;33856:5;33829:33;:::i;:::-;33725:143;;;;:::o;33874:663::-;33962:6;33970;33978;34027:2;34015:9;34006:7;34002:23;33998:32;33995:119;;;34033:79;;:::i;:::-;33995:119;34153:1;34178:64;34234:7;34225:6;34214:9;34210:22;34178:64;:::i;:::-;34168:74;;34124:128;34291:2;34317:64;34373:7;34364:6;34353:9;34349:22;34317:64;:::i;:::-;34307:74;;34262:129;34430:2;34456:64;34512:7;34503:6;34492:9;34488:22;34456:64;:::i;:::-;34446:74;;34401:129;33874:663;;;;;:::o;34543:222::-;34683:34;34679:1;34671:6;34667:14;34660:58;34752:5;34747:2;34739:6;34735:15;34728:30;34543:222;:::o;34771:366::-;34913:3;34934:67;34998:2;34993:3;34934:67;:::i;:::-;34927:74;;35010:93;35099:3;35010:93;:::i;:::-;35128:2;35123:3;35119:12;35112:19;;34771:366;;;:::o;35143:419::-;35309:4;35347:2;35336:9;35332:18;35324:26;;35396:9;35390:4;35386:20;35382:1;35371:9;35367:17;35360:47;35424:131;35550:4;35424:131;:::i;:::-;35416:139;;35143:419;;;:::o

Swarm Source

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