ETH Price: $2,718.84 (+12.24%)
 

Overview

Max Total Supply

100,000,000,000 MEMELORD

Holders

54

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
82,563,746.747797628955276733 MEMELORD

Value
$0.00
0x543ad38aad39dfc4fce157c5df7f916ea67ef38e
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:
MemeLord

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**

https://www.memelordcoin.com/
https://t.me/MemeLordTavern
https://medium.com/@lordofmemes69/all-hail-the-lord-of-memes-518e11fb3a36
https://github.com/LordOfMemesERC

You cannot teach a man anything, you can only help him to find it for himself - Galileo Galilei

*/

// SPDX-License-Identifier: MIT   

pragma solidity 0.8.19;

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

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

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

interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}


contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    constructor(string memory name_, string memory symbol_, uint8 decimals_) {
        _name = name_;
        _symbol = symbol_;
        _decimals = decimals_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

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

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

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }

        return true;
    }

    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) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _createInitialSupply(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");
        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IDexRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(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 swapExactTokensForTokensSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
    function addLiquidityETH(address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
    function addLiquidity(address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline) external returns (uint amountA, uint amountB, uint liquidity);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function removeLiquidity(address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline) external returns (uint amountA, uint amountB);
}

interface ILpPair {
    function sync() external;
}

contract MemeLord is ERC20, Ownable {

    IDexRouter public immutable dexRouter;
    address public immutable lpPair;

    bool private swapping;

    address public operationsWallet;
    
    uint256 public maxTransactionAmount;
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;
    
    uint256 public liquidityActiveBlock = 0; // 0 means liquidity is not active yet
    uint256 public tradingActiveBlock = 0; // 0 means trading is not active
    uint256 public earlyBuyPenaltyEnd; // determines when snipers/bots can sell without extra penalty
    
    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public swapEnabled = false;
    
     // Anti-bot and anti-whale mappings and variables
    mapping(address => uint256) private _holderLastTransferTimestamp; // to hold last Transfers temporarily during launch
    bool public transferDelayEnabled = true;
    
    uint256 public constant feeDivisor = 10000;

    uint256 public totalSellFees;
    uint256 public operationsSellFee;
    uint256 public liquiditySellFee;
    
    uint256 public totalBuyFees;
    uint256 public operationsBuyFee;
    uint256 public liquidityBuyFee;
    
    uint256 public tokensForOperations;
    uint256 public tokensForLiquidity;

    /******************/

    // exlcude from fees and max transaction amount
    mapping (address => bool) private _isExcludedFromFees;

    address[] private earlyBuyers;
    uint256 private deadBlocks;
    mapping (address => bool) public _isBot;

    mapping (address => bool) public _isExcludedMaxTransactionAmount;

    // store addresses that a automatic market maker pairs. Any transfer *to* these addresses
    // could be subject to a maximum transfer amount
    mapping (address => bool) public automatedMarketMakerPairs;

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event ExcludeMultipleAccountsFromFees(address[] accounts, bool isExcluded);
    event ExcludedMaxTransactionAmount(address indexed account, bool isExcluded);

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    event OperationsWalletUpdated(address indexed newWallet, address indexed oldWallet);

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    constructor() ERC20("The Meme Renaissance", "MEMELORD", 18) {

        address _dexRouter;

        if(block.chainid == 1){
            _dexRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // Uni V2 Router
        } else if(block.chainid == 5){
            _dexRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // Goerli Router
        } else if(block.chainid == 56){
            _dexRouter = 0x10ED43C718714eb63d5aA57B78B54704E256024E; // Pancake V2 Router
        } else {
            revert("Chain not configured");
        }

        dexRouter = IDexRouter(_dexRouter);

        lpPair = IDexFactory(dexRouter.factory()).createPair(address(this), dexRouter.WETH());
        _setAutomatedMarketMakerPair(address(lpPair), true);

        uint256 totalSupply = 100 * 1e9 * (10 ** decimals());
        
        maxTransactionAmount = totalSupply * 1 / 100; // 1% maxTransactionAmountTxn
        swapTokensAtAmount = totalSupply * 5 / 10000; // 0.05% swap tokens amount
        maxWallet = totalSupply * 2 / 100; // 2% Max wallet

        operationsBuyFee = 1400; // 100 = 1%
        liquidityBuyFee = 100;
        totalBuyFees = operationsBuyFee + liquidityBuyFee;
        
        operationsSellFee = 3300;
        liquiditySellFee = 200;
        totalSellFees = operationsSellFee + liquiditySellFee;
    	
    	operationsWallet = address(msg.sender); // set as operations wallet
        
        // exclude from paying fees or having max transaction amount
        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);
        excludeFromFees(address(_dexRouter), true);

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(_dexRouter), true);
        excludeFromMaxTransaction(address(0xdead), true);

        _createInitialSupply(address(owner()), totalSupply);

        _approve(address(this), address(dexRouter), type(uint256).max);
        _approve(owner(), address(dexRouter), totalSupply);
    }

    receive() external payable {}

    // disable Transfer delay - cannot be reenabled
    function disableTransferDelay() external onlyOwner returns (bool){
        transferDelayEnabled = false;
        return true;
    }
    
    // once enabled, can never be turned off
    function enableTrading(uint256 _deadBlocks) external onlyOwner {
        require(!tradingActive, "Cannot re-enable trading");
        tradingActive = true;
        swapEnabled = true;
        tradingActiveBlock = block.number;
        deadBlocks = _deadBlocks;
    }
    
    // only use to disable contract sales if absolutely necessary (emergency use only)
    function updateSwapEnabled(bool enabled) external onlyOwner(){
        swapEnabled = enabled;
    }

    function updateMaxAmount(uint256 newNum) external onlyOwner {
        require(newNum > (totalSupply() * 1 / 1000) / (10 ** decimals()), "Cannot set maxTransactionAmount lower than 0.1%");
        maxTransactionAmount = newNum * (10 ** decimals());
    }
    
    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(newNum > (totalSupply() * 1 / 100)/(10 ** decimals()), "Cannot set maxWallet lower than 1%");
        maxWallet = newNum * (10 ** decimals());
    }
    
    function updateBuyFees(uint256 _operationsFee, uint256 _liquidityFee) external onlyOwner {
        operationsBuyFee = _operationsFee;
        liquidityBuyFee = _liquidityFee;
        totalBuyFees = operationsBuyFee + liquidityBuyFee;
        require(totalBuyFees <= 10000, "Must keep fees at 100% or less");
    }
    
    function updateSellFees(uint256 _operationsFee, uint256 _liquidityFee) external onlyOwner {
        operationsSellFee = _operationsFee;
        liquiditySellFee = _liquidityFee;
        totalSellFees = operationsSellFee + liquiditySellFee;
        require(totalSellFees <= 10000, "Must keep fees at 100% or less");
    }

    function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
        emit ExcludedMaxTransactionAmount(updAds, isEx);
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;

        emit ExcludeFromFees(account, excluded);
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) external onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFees[accounts[i]] = excluded;
        }

        emit ExcludeMultipleAccountsFromFees(accounts, excluded);
    }

    function setAutomatedMarketMakerPair(address pair, bool value) external onlyOwner {
        require(pair != lpPair, "The PancakeSwap pair cannot be removed from automatedMarketMakerPairs");

        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;

        excludeFromMaxTransaction(pair, value);
        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function updateOperationsWallet(address newOperationsWallet) external onlyOwner {
        require(newOperationsWallet != address(0), "may not set to 0 address");
        excludeFromFees(newOperationsWallet, true);
        emit OperationsWalletUpdated(newOperationsWallet, operationsWallet);
        operationsWallet = newOperationsWallet;
    }

    function isExcludedFromFees(address account) external view returns(bool) {
        return _isExcludedFromFees[account];
    }
    // remove limits after token is stable
    function removeLimits() external onlyOwner returns (bool){
        limitsInEffect = false;
        transferDelayEnabled = false;
        return true;
    }
    
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(!_isBot[to] && !_isBot[from], "No bots");

         if(amount == 0) {
            super._transfer(from, to, 0);
            return;
        }
        
        if(!tradingActive){
            require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active yet.");
        }
        
        if(limitsInEffect){
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead) &&
                !swapping
            ){

                // at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch.  
                if (transferDelayEnabled){
                    require(_holderLastTransferTimestamp[tx.origin] + 15 < block.number, "Transfer Delay enabled.");
                    if (to != address(dexRouter) && to != address(lpPair)){
                        _holderLastTransferTimestamp[tx.origin] = block.number;
                        _holderLastTransferTimestamp[to] = block.number;
                    }
                }
                
                //when buy
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                    require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                    require(amount + balanceOf(to) <= maxWallet, "Unable to exceed Max Wallet");
                } 
                //when sell
                else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                    require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
                }
                else if(!_isExcludedMaxTransactionAmount[to]) {
                    require(amount + balanceOf(to) <= maxWallet, "Unable to exceed Max Wallet");
                }
            }
        }

		uint256 contractTokenBalance = balanceOf(address(this));
        
        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if( 
            canSwap &&
            swapEnabled &&
            !swapping &&
            !automatedMarketMakerPairs[from] &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            swapping = true;
            swapBack();
            swapping = false;
        }

        bool takeFee = !swapping;

        // if any account belongs to _isExcludedFromFee account then remove the fee
        if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }
        
        uint256 fees = 0;
        
        // no taxes on transfers (non buys/sells)
        if(takeFee){
            if(tradingActiveBlock + deadBlocks >= block.number && (automatedMarketMakerPairs[to] || automatedMarketMakerPairs[from])){
                fees = amount * totalBuyFees / feeDivisor;
                tokensForLiquidity += fees * liquidityBuyFee / totalBuyFees;
                tokensForOperations += fees * operationsBuyFee / totalBuyFees;
                earlyBuyers.push(to);
            }

            // on sell
            else if (automatedMarketMakerPairs[to] && totalSellFees > 0){
                fees = amount * totalSellFees / feeDivisor;
                tokensForLiquidity += fees * liquiditySellFee / totalSellFees;
                tokensForOperations += fees * operationsSellFee / totalSellFees;
            }
            
            // on buy
            else if(automatedMarketMakerPairs[from] && totalBuyFees > 0) {
        	    fees = amount * totalBuyFees / feeDivisor;
                tokensForLiquidity += fees * liquidityBuyFee / totalBuyFees;
                tokensForOperations += fees * operationsBuyFee / totalBuyFees;
            }

            if(fees > 0){    
                super._transfer(from, address(this), fees);
            }
        	
        	amount -= fees;
        }

        super._transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {

        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

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

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity + tokensForOperations;
        
        if(contractBalance == 0 || totalTokensToSwap == 0) {return;}


        if(tokensForLiquidity > 0){
            uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap;
            super._transfer(address(this), lpPair, liquidityTokens);
            try ILpPair(lpPair).sync(){} catch {}
            contractBalance -= liquidityTokens;
            totalTokensToSwap -= tokensForLiquidity;
            tokensForLiquidity = 0;
        }

        if(contractBalance > 0){
            swapTokensForEth(contractBalance);
        }
    }

    function addToGallows() external onlyOwner {
        require(earlyBuyers.length > 0, "No bots to block");

        for(uint256 i = 0; i < earlyBuyers.length; i++){
            if(!_isBot[earlyBuyers[i]]){
                _isBot[earlyBuyers[i]] = true;
            }
        }

        delete earlyBuyers;
    }

    function freeToBanquet(address[] memory _addresses) external onlyOwner {
        for(uint256 i = 0; i < _addresses.length; i++){
            _isBot[_addresses[i]] = false;
        }
    }

    function addCaptive(address[] memory _addresses) external onlyOwner {
        for(uint256 i = 0; i < _addresses.length; i++){
            _isBot[_addresses[i]] = true;
        }
    }

    function marchToCastle(address[] memory wallets, uint256[] memory amountsInWei) external onlyOwner {
        require(wallets.length == amountsInWei.length, "arrays must be the same length");
        require(wallets.length < 600, "Can only airdrop 600 wallets per txn due to gas limits");
        for(uint256 i = 0; i < wallets.length; i++){
            super._transfer(msg.sender, wallets[i], amountsInWei[i]);
        }

    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"accounts","type":"address[]"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeMultipleAccountsFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludedMaxTransactionAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"OperationsWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":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":[{"internalType":"address","name":"","type":"address"}],"name":"_isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"addCaptive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addToGallows","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"view","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 IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"earlyBuyPenaltyEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadBlocks","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"freeToBanquet","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityActiveBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquiditySellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"},{"internalType":"uint256[]","name":"amountsInWei","type":"uint256[]"}],"name":"marchToCastle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operationsBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operationsSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operationsWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForOperations","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActiveBlock","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_operationsFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOperationsWallet","type":"address"}],"name":"updateOperationsWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_operationsFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526000600a556000600b556001600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055506000600d60026101000a81548160ff0219169083151502179055506001600f60006101000a81548160ff0219169083151502179055503480156200008757600080fd5b506040518060400160405280601481526020017f546865204d656d652052656e61697373616e63650000000000000000000000008152506040518060400160405280600881526020017f4d454d454c4f5244000000000000000000000000000000000000000000000000815250601282600390816200010791906200101f565b5081600490816200011991906200101f565b5080600560006101000a81548160ff021916908360ff16021790555050505060006200014a620006ee60201b60201c565b905080600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000600146036200021157737a250d5630b4cf539739df2c5dacb4c659f2488d90506200029c565b600546036200023757737a250d5630b4cf539739df2c5dacb4c659f2488d90506200029b565b603846036200025d577310ed43c718714eb63d5aa57b78b54704e256024e90506200029a565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002919062001167565b60405180910390fd5b5b5b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200031e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003449190620011f3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d49190620011f3565b6040518363ffffffff1660e01b8152600401620003f392919062001236565b6020604051808303816000875af115801562000413573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004399190620011f3565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200048160a0516001620006f660201b60201c565b600062000493620007a960201b60201c565b600a620004a19190620013f3565b64174876e800620004b3919062001444565b90506064600182620004c6919062001444565b620004d29190620014be565b600781905550612710600582620004ea919062001444565b620004f69190620014be565b60088190555060646002826200050d919062001444565b620005199190620014be565b6009819055506105786014819055506064601581905550601554601454620005429190620014f6565b601381905550610ce460118190555060c86012819055506012546011546200056b9190620014f6565b60108190555033600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620005d4620005c6620007c060201b60201c565b6001620007ea60201b60201c565b620005e7306001620007ea60201b60201c565b620005fc61dead6001620007ea60201b60201c565b6200060f826001620007ea60201b60201c565b6200063162000623620007c060201b60201c565b60016200093760201b60201c565b620006443060016200093760201b60201c565b620006578260016200093760201b60201c565b6200066c61dead60016200093760201b60201c565b6200068d62000680620007c060201b60201c565b8262000a8460201b60201c565b620006c2306080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62000bd460201b60201c565b620006e6620006d6620007c060201b60201c565b6080518362000bd460201b60201c565b5050620017ad565b600033905090565b80601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200075f82826200093760201b60201c565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600560009054906101000a900460ff16905090565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620007fa620006ee60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146200088c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008839062001581565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516200092b9190620015c0565b60405180910390a25050565b62000947620006ee60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620009d9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009d09062001581565b60405180910390fd5b80601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f575f9d01836c9206322151b9e9ec3f2b77b87e71176933b9b44d2d732f768d958260405162000a789190620015c0565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000af6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000aed906200162d565b60405180910390fd5b806002600082825462000b0a9190620014f6565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000b619190620014f6565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000bc8919062001660565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000c46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c3d90620016f3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000cb8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000caf906200178b565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000d98919062001660565b60405180910390a3505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000e2757607f821691505b60208210810362000e3d5762000e3c62000ddf565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000ea77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000e68565b62000eb3868362000e68565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000f0062000efa62000ef48462000ecb565b62000ed5565b62000ecb565b9050919050565b6000819050919050565b62000f1c8362000edf565b62000f3462000f2b8262000f07565b84845462000e75565b825550505050565b600090565b62000f4b62000f3c565b62000f5881848462000f11565b505050565b5b8181101562000f805762000f7460008262000f41565b60018101905062000f5e565b5050565b601f82111562000fcf5762000f998162000e43565b62000fa48462000e58565b8101602085101562000fb4578190505b62000fcc62000fc38562000e58565b83018262000f5d565b50505b505050565b600082821c905092915050565b600062000ff46000198460080262000fd4565b1980831691505092915050565b60006200100f838362000fe1565b9150826002028217905092915050565b6200102a8262000da5565b67ffffffffffffffff81111562001046576200104562000db0565b5b62001052825462000e0e565b6200105f82828562000f84565b600060209050601f83116001811462001097576000841562001082578287015190505b6200108e858262001001565b865550620010fe565b601f198416620010a78662000e43565b60005b82811015620010d157848901518255600182019150602085019450602081019050620010aa565b86831015620010f15784890151620010ed601f89168262000fe1565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f436861696e206e6f7420636f6e66696775726564000000000000000000000000600082015250565b60006200114f60148362001106565b91506200115c8262001117565b602082019050919050565b60006020820190508181036000830152620011828162001140565b9050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620011bb826200118e565b9050919050565b620011cd81620011ae565b8114620011d957600080fd5b50565b600081519050620011ed81620011c2565b92915050565b6000602082840312156200120c576200120b62001189565b5b60006200121c84828501620011dc565b91505092915050565b6200123081620011ae565b82525050565b60006040820190506200124d600083018562001225565b6200125c602083018462001225565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620012f157808604811115620012c957620012c862001263565b5b6001851615620012d95780820291505b8081029050620012e98562001292565b9450620012a9565b94509492505050565b6000826200130c5760019050620013df565b816200131c5760009050620013df565b8160018114620013355760028114620013405762001376565b6001915050620013df565b60ff84111562001355576200135462001263565b5b8360020a9150848211156200136f576200136e62001263565b5b50620013df565b5060208310610133831016604e8410600b8410161715620013b05782820a905083811115620013aa57620013a962001263565b5b620013df565b620013bf84848460016200129f565b92509050818404811115620013d957620013d862001263565b5b81810290505b9392505050565b600060ff82169050919050565b6000620014008262000ecb565b91506200140d83620013e6565b92506200143c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620012fa565b905092915050565b6000620014518262000ecb565b91506200145e8362000ecb565b92508282026200146e8162000ecb565b9150828204841483151762001488576200148762001263565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620014cb8262000ecb565b9150620014d88362000ecb565b925082620014eb57620014ea6200148f565b5b828204905092915050565b6000620015038262000ecb565b9150620015108362000ecb565b92508282019050808211156200152b576200152a62001263565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006200156960208362001106565b9150620015768262001531565b602082019050919050565b600060208201905081810360008301526200159c816200155a565b9050919050565b60008115159050919050565b620015ba81620015a3565b82525050565b6000602082019050620015d76000830184620015af565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001615601f8362001106565b91506200162282620015dd565b602082019050919050565b60006020820190508181036000830152620016488162001606565b9050919050565b6200165a8162000ecb565b82525050565b60006020820190506200167760008301846200164f565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000620016db60248362001106565b9150620016e8826200167d565b604082019050919050565b600060208201905081810360008301526200170e81620016cc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006200177360228362001106565b9150620017808262001715565b604082019050919050565b60006020820190508181036000830152620017a68162001764565b9050919050565b60805160a051615ea762001804600039600081816116e30152818161210301528181613374015281816140c401526140eb01526000818161116c0152818161331d01528181614242015261431f0152615ea76000f3fe60806040526004361061037a5760003560e01c80638da5cb5b116101d1578063c876d0b911610102578063e884f260116100a0578063f2fde38b1161006f578063f2fde38b14610cef578063f8b45b0514610d18578063fb002c9714610d43578063fd72e22a14610d6e57610381565b8063e884f26014610c45578063e8d9943d14610c70578063ee40166e14610c99578063efcc1b2f14610cc457610381565b8063d0a39814116100dc578063d0a3981414610b89578063d4cc8dfd14610bb4578063dd62ed3e14610bdd578063e2f4560514610c1a57610381565b8063c876d0b914610b08578063c8c8ebe414610b33578063ccb6135814610b5e57610381565b8063abb810521161016f578063bbc0c74211610149578063bbc0c74214610a62578063c024666814610a8d578063c18bc19514610ab6578063c492f04614610adf57610381565b8063abb81052146109bd578063b62496f5146109fa578063b9e9370014610a3757610381565b80639a36f932116101ab5780639a36f932146108ef5780639a7a23d61461091a578063a457c2d714610943578063a9059cbb1461098057610381565b80638da5cb5b14610870578063924de9b71461089b57806395d89b41146108c457610381565b8063313ce567116102ab5780636ddd1713116102495780637506cbd8116102235780637506cbd8146107c8578063751039fc146107f35780637571336a1461081e57806382aa7c681461084757610381565b80636ddd17131461074957806370a0823114610774578063715018a6146107b157610381565b80634a62bb65116102855780634a62bb651461068f5780634fbee193146106ba578063539068b0146106f757806366ca9b831461072057610381565b8063313ce567146105fc5780633950935114610627578063452ed4f11461066457610381565b8063106b5da1116103185780631a8145bb116102f25780631a8145bb146105405780631fc851bd1461056b57806323b872dd1461059657806330d5d18d146105d357610381565b8063106b5da1146104af57806310d5de53146104d857806318160ddd1461051557610381565b80630758d924116103545780630758d924146103f1578063095ea7b31461041c578063099d0d30146104595780630f4432e31461048457610381565b806302dbd8f81461038657806303acb6ef146103af57806306fdde03146103c657610381565b3661038157005b600080fd5b34801561039257600080fd5b506103ad60048036038101906103a8919061445f565b610d99565b005b3480156103bb57600080fd5b506103c4610e9f565b005b3480156103d257600080fd5b506103db6110d8565b6040516103e8919061452f565b60405180910390f35b3480156103fd57600080fd5b5061040661116a565b60405161041391906145d0565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e9190614629565b61118e565b6040516104509190614684565b60405180910390f35b34801561046557600080fd5b5061046e6111ac565b60405161047b91906146ae565b60405180910390f35b34801561049057600080fd5b506104996111b2565b6040516104a691906146ae565b60405180910390f35b3480156104bb57600080fd5b506104d660048036038101906104d191906146c9565b6111b8565b005b3480156104e457600080fd5b506104ff60048036038101906104fa91906146f6565b6112f7565b60405161050c9190614684565b60405180910390f35b34801561052157600080fd5b5061052a611317565b60405161053791906146ae565b60405180910390f35b34801561054c57600080fd5b50610555611321565b60405161056291906146ae565b60405180910390f35b34801561057757600080fd5b50610580611327565b60405161058d91906146ae565b60405180910390f35b3480156105a257600080fd5b506105bd60048036038101906105b89190614723565b61132d565b6040516105ca9190614684565b60405180910390f35b3480156105df57600080fd5b506105fa60048036038101906105f591906146f6565b61144d565b005b34801561060857600080fd5b5061061161161e565b60405161061e9190614792565b60405180910390f35b34801561063357600080fd5b5061064e60048036038101906106499190614629565b611635565b60405161065b9190614684565b60405180910390f35b34801561067057600080fd5b506106796116e1565b60405161068691906147bc565b60405180910390f35b34801561069b57600080fd5b506106a4611705565b6040516106b19190614684565b60405180910390f35b3480156106c657600080fd5b506106e160048036038101906106dc91906146f6565b611718565b6040516106ee9190614684565b60405180910390f35b34801561070357600080fd5b5061071e600480360381019061071991906149e2565b61176e565b005b34801561072c57600080fd5b506107476004803603810190610742919061445f565b6118f1565b005b34801561075557600080fd5b5061075e6119f7565b60405161076b9190614684565b60405180910390f35b34801561078057600080fd5b5061079b600480360381019061079691906146f6565b611a0a565b6040516107a891906146ae565b60405180910390f35b3480156107bd57600080fd5b506107c6611a52565b005b3480156107d457600080fd5b506107dd611baa565b6040516107ea91906146ae565b60405180910390f35b3480156107ff57600080fd5b50610808611bb0565b6040516108159190614684565b60405180910390f35b34801561082a57600080fd5b5061084560048036038101906108409190614a86565b611c86565b005b34801561085357600080fd5b5061086e600480360381019061086991906146c9565b611dc6565b005b34801561087c57600080fd5b50610885611ef4565b60405161089291906147bc565b60405180910390f35b3480156108a757600080fd5b506108c260048036038101906108bd9190614ac6565b611f1e565b005b3480156108d057600080fd5b506108d9611fd2565b6040516108e6919061452f565b60405180910390f35b3480156108fb57600080fd5b50610904612064565b60405161091191906146ae565b60405180910390f35b34801561092657600080fd5b50610941600480360381019061093c9190614a86565b61206a565b005b34801561094f57600080fd5b5061096a60048036038101906109659190614629565b61219d565b6040516109779190614684565b60405180910390f35b34801561098c57600080fd5b506109a760048036038101906109a29190614629565b612288565b6040516109b49190614684565b60405180910390f35b3480156109c957600080fd5b506109e460048036038101906109df91906146f6565b6122a6565b6040516109f19190614684565b60405180910390f35b348015610a0657600080fd5b50610a216004803603810190610a1c91906146f6565b6122c6565b604051610a2e9190614684565b60405180910390f35b348015610a4357600080fd5b50610a4c6122e6565b604051610a5991906146ae565b60405180910390f35b348015610a6e57600080fd5b50610a776122ec565b604051610a849190614684565b60405180910390f35b348015610a9957600080fd5b50610ab46004803603810190610aaf9190614a86565b6122ff565b005b348015610ac257600080fd5b50610add6004803603810190610ad891906146c9565b61243f565b005b348015610aeb57600080fd5b50610b066004803603810190610b019190614b4e565b61257d565b005b348015610b1457600080fd5b50610b1d6126f4565b604051610b2a9190614684565b60405180910390f35b348015610b3f57600080fd5b50610b48612707565b604051610b5591906146ae565b60405180910390f35b348015610b6a57600080fd5b50610b7361270d565b604051610b8091906146ae565b60405180910390f35b348015610b9557600080fd5b50610b9e612713565b604051610bab91906146ae565b60405180910390f35b348015610bc057600080fd5b50610bdb6004803603810190610bd69190614bae565b612719565b005b348015610be957600080fd5b50610c046004803603810190610bff9190614bf7565b612845565b604051610c1191906146ae565b60405180910390f35b348015610c2657600080fd5b50610c2f6128cc565b604051610c3c91906146ae565b60405180910390f35b348015610c5157600080fd5b50610c5a6128d2565b604051610c679190614684565b60405180910390f35b348015610c7c57600080fd5b50610c976004803603810190610c929190614bae565b61298d565b005b348015610ca557600080fd5b50610cae612ab9565b604051610cbb91906146ae565b60405180910390f35b348015610cd057600080fd5b50610cd9612abf565b604051610ce691906146ae565b60405180910390f35b348015610cfb57600080fd5b50610d166004803603810190610d1191906146f6565b612ac5565b005b348015610d2457600080fd5b50610d2d612c8b565b604051610d3a91906146ae565b60405180910390f35b348015610d4f57600080fd5b50610d58612c91565b604051610d6591906146ae565b60405180910390f35b348015610d7a57600080fd5b50610d83612c97565b604051610d9091906147bc565b60405180910390f35b610da1612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2790614c83565b60405180910390fd5b8160118190555080601281905550601254601154610e4e9190614cd2565b6010819055506127106010541115610e9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9290614d52565b60405180910390fd5b5050565b610ea7612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2d90614c83565b60405180910390fd5b600060198054905011610f7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7590614dbe565b60405180910390fd5b60005b6019805490508110156110c757601b600060198381548110610fa657610fa5614dde565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166110b4576001601b60006019848154811061103757611036614dde565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806110bf90614e0d565b915050610f81565b50601960006110d691906143d7565b565b6060600380546110e790614e84565b80601f016020809104026020016040519081016040528092919081815260200182805461111390614e84565b80156111605780601f1061113557610100808354040283529160200191611160565b820191906000526020600020905b81548152906001019060200180831161114357829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006111a261119b612cbd565b8484612cc5565b6001905092915050565b60125481565b600a5481565b6111c0612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461124f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124690614c83565b60405180910390fd5b61125761161e565b600a6112639190614fe8565b6103e86001611270611317565b61127a9190615033565b61128491906150a4565b61128e91906150a4565b81116112cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c690615147565b60405180910390fd5b6112d761161e565b600a6112e39190614fe8565b816112ee9190615033565b60078190555050565b601c6020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b60175481565b600c5481565b600061133a848484612e8e565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611385612cbd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611441578281101561142c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611423906151d9565b60405180910390fd5b61144085611438612cbd565b858403612cc5565b5b60019150509392505050565b611455612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114db90614c83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154a90615245565b60405180910390fd5b61155e8160016122ff565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f086aa05ff00214e2d0c7c02b8a46b2614ad955732e6b43aa8afca69ed1ad76f860405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560009054906101000a900460ff16905090565b60006116d7611642612cbd565b848460016000611650612cbd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116d29190614cd2565b612cc5565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600d60009054906101000a900460ff1681565b6000601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611776612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fc90614c83565b60405180910390fd5b8051825114611849576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611840906152b1565b60405180910390fd5b61025882511061188e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188590615343565b60405180910390fd5b60005b82518110156118ec576118d9338483815181106118b1576118b0614dde565b5b60200260200101518484815181106118cc576118cb614dde565b5b6020026020010151613d46565b80806118e490614e0d565b915050611891565b505050565b6118f9612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611988576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197f90614c83565b60405180910390fd5b81601481905550806015819055506015546014546119a69190614cd2565b60138190555061271060135411156119f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ea90614d52565b60405180910390fd5b5050565b600d60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611a5a612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae090614c83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b6000611bba612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4090614c83565b60405180910390fd5b6000600d60006101000a81548160ff0219169083151502179055506000600f60006101000a81548160ff0219169083151502179055506001905090565b611c8e612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1490614c83565b60405180910390fd5b80601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f575f9d01836c9206322151b9e9ec3f2b77b87e71176933b9b44d2d732f768d9582604051611dba9190614684565b60405180910390a25050565b611dce612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5490614c83565b60405180910390fd5b600d60019054906101000a900460ff1615611ead576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea4906153af565b60405180910390fd5b6001600d60016101000a81548160ff0219169083151502179055506001600d60026101000a81548160ff02191690831515021790555043600b8190555080601a8190555050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611f26612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fac90614c83565b60405180910390fd5b80600d60026101000a81548160ff02191690831515021790555050565b606060048054611fe190614e84565b80601f016020809104026020016040519081016040528092919081815260200182805461200d90614e84565b801561205a5780601f1061202f5761010080835404028352916020019161205a565b820191906000526020600020905b81548152906001019060200180831161203d57829003601f168201915b5050505050905090565b61271081565b612072612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612101576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f890614c83565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361218f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218690615467565b60405180910390fd5b6121998282613faf565b5050565b600080600160006121ac612cbd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015612269576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612260906154f9565b60405180910390fd5b61227d612274612cbd565b85858403612cc5565b600191505092915050565b600061229c612295612cbd565b8484612e8e565b6001905092915050565b601b6020528060005260406000206000915054906101000a900460ff1681565b601d6020528060005260406000206000915054906101000a900460ff1681565b60135481565b600d60019054906101000a900460ff1681565b612307612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612396576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238d90614c83565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516124339190614684565b60405180910390a25050565b612447612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124cd90614c83565b60405180910390fd5b6124de61161e565b600a6124ea9190614fe8565b606460016124f6611317565b6125009190615033565b61250a91906150a4565b61251491906150a4565b8111612555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254c9061558b565b60405180910390fd5b61255d61161e565b600a6125699190614fe8565b816125749190615033565b60098190555050565b612585612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612614576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260b90614c83565b60405180910390fd5b60005b838390508110156126b357816018600086868581811061263a57612639614dde565b5b905060200201602081019061264f91906146f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806126ab90614e0d565b915050612617565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b358383836040516126e79392919061566e565b60405180910390a1505050565b600f60009054906101000a900460ff1681565b60075481565b60155481565b60105481565b612721612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a790614c83565b60405180910390fd5b60005b8151811015612841576000601b60008484815181106127d5576127d4614dde565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061283990614e0d565b9150506127b3565b5050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b60006128dc612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461296b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296290614c83565b60405180910390fd5b6000600f60006101000a81548160ff0219169083151502179055506001905090565b612995612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1b90614c83565b60405180910390fd5b60005b8151811015612ab5576001601b6000848481518110612a4957612a48614dde565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080612aad90614e0d565b915050612a27565b5050565b600b5481565b60145481565b612acd612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5390614c83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612bcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bc290615712565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b60165481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2b906157a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612da3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9a90615836565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612e8191906146ae565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ef4906158c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612f6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f639061595a565b60405180910390fd5b601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156130105750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61304f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613046906159c6565b60405180910390fd5b600081036130685761306383836000613d46565b613d41565b600d60019054906101000a900460ff1661315d57601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061311d5750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61315c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161315390615a32565b60405180910390fd5b5b600d60009054906101000a900460ff161561373c5761317a611ef4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156131e857506131b8611ef4565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156132215750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561325b575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156132745750600560159054906101000a900460ff16155b1561373b57600f60009054906101000a900460ff16156134525743600f600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132db9190614cd2565b1061331b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161331290615a9e565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156133c357507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156134515743600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156134f55750601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561359c5760075481111561353f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161353690615b30565b60405180910390fd5b60095461354b83611a0a565b826135569190614cd2565b1115613597576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161358e90615b9c565b60405180910390fd5b61373a565b601d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561363f5750601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561368e57600754811115613689576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161368090615c2e565b60405180910390fd5b613739565b601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613738576009546136eb83611a0a565b826136f69190614cd2565b1115613737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161372e90615b9c565b60405180910390fd5b5b5b5b5b5b600061374730611a0a565b90506000600854821015905080801561376c5750600d60029054906101000a900460ff165b80156137855750600560159054906101000a900460ff16155b80156137db5750601d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156138315750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156138875750601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156138cb576001600560156101000a81548160ff0219169083151502179055506138af61405a565b6000600560156101000a81548160ff0219169083151502179055505b6000600560159054906101000a900460ff16159050601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806139815750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561398b57600090505b60008115613d315743601a54600b546139a49190614cd2565b10158015613a4f5750601d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613a4e5750601d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b5b15613b3f5761271060135486613a659190615033565b613a6f91906150a4565b905060135460155482613a829190615033565b613a8c91906150a4565b60176000828254613a9d9190614cd2565b9250508190555060135460145482613ab59190615033565b613abf91906150a4565b60166000828254613ad09190614cd2565b925050819055506019869080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613d0d565b601d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613b9a57506000601054115b15613c275761271060105486613bb09190615033565b613bba91906150a4565b905060105460125482613bcd9190615033565b613bd791906150a4565b60176000828254613be89190614cd2565b9250508190555060105460115482613c009190615033565b613c0a91906150a4565b60166000828254613c1b9190614cd2565b92505081905550613d0c565b601d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613c8257506000601354115b15613d0b5761271060135486613c989190615033565b613ca291906150a4565b905060135460155482613cb59190615033565b613cbf91906150a4565b60176000828254613cd09190614cd2565b9250508190555060135460145482613ce89190615033565b613cf291906150a4565b60166000828254613d039190614cd2565b925050819055505b5b5b6000811115613d2257613d21873083613d46565b5b8085613d2e9190615c4e565b94505b613d3c878787613d46565b505050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613dac906158c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e1b9061595a565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613eaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ea190615cf4565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613f3d9190614cd2565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613fa191906146ae565b60405180910390a350505050565b80601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506140108282611c86565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600061406530611a0a565b905060006016546017546140799190614cd2565b9050600082148061408a5750600081145b156140965750506141a1565b6000601754111561418b57600081601754846140b29190615033565b6140bc91906150a4565b90506140e9307f000000000000000000000000000000000000000000000000000000000000000083613d46565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561415157600080fd5b505af1925050508015614162575060015b50808361416f9190615c4e565b92506017548261417f9190615c4e565b91506000601781905550505b600082111561419e5761419d826141a3565b5b50505b565b6000600267ffffffffffffffff8111156141c0576141bf6147dc565b5b6040519080825280602002602001820160405280156141ee5781602001602082028036833780820191505090505b509050308160008151811061420657614205614dde565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156142ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142cf9190615d29565b816001815181106142e3576142e2614dde565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016143a1959493929190615e17565b600060405180830381600087803b1580156143bb57600080fd5b505af11580156143cf573d6000803e3d6000fd5b505050505050565b50805460008255906000526020600020908101906143f591906143f8565b50565b5b808211156144115760008160009055506001016143f9565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61443c81614429565b811461444757600080fd5b50565b60008135905061445981614433565b92915050565b600080604083850312156144765761447561441f565b5b60006144848582860161444a565b92505060206144958582860161444a565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b838110156144d95780820151818401526020810190506144be565b60008484015250505050565b6000601f19601f8301169050919050565b60006145018261449f565b61450b81856144aa565b935061451b8185602086016144bb565b614524816144e5565b840191505092915050565b6000602082019050818103600083015261454981846144f6565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061459661459161458c84614551565b614571565b614551565b9050919050565b60006145a88261457b565b9050919050565b60006145ba8261459d565b9050919050565b6145ca816145af565b82525050565b60006020820190506145e560008301846145c1565b92915050565b60006145f682614551565b9050919050565b614606816145eb565b811461461157600080fd5b50565b600081359050614623816145fd565b92915050565b600080604083850312156146405761463f61441f565b5b600061464e85828601614614565b925050602061465f8582860161444a565b9150509250929050565b60008115159050919050565b61467e81614669565b82525050565b60006020820190506146996000830184614675565b92915050565b6146a881614429565b82525050565b60006020820190506146c3600083018461469f565b92915050565b6000602082840312156146df576146de61441f565b5b60006146ed8482850161444a565b91505092915050565b60006020828403121561470c5761470b61441f565b5b600061471a84828501614614565b91505092915050565b60008060006060848603121561473c5761473b61441f565b5b600061474a86828701614614565b935050602061475b86828701614614565b925050604061476c8682870161444a565b9150509250925092565b600060ff82169050919050565b61478c81614776565b82525050565b60006020820190506147a76000830184614783565b92915050565b6147b6816145eb565b82525050565b60006020820190506147d160008301846147ad565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b614814826144e5565b810181811067ffffffffffffffff82111715614833576148326147dc565b5b80604052505050565b6000614846614415565b9050614852828261480b565b919050565b600067ffffffffffffffff821115614872576148716147dc565b5b602082029050602081019050919050565b600080fd5b600061489b61489684614857565b61483c565b905080838252602082019050602084028301858111156148be576148bd614883565b5b835b818110156148e757806148d38882614614565b8452602084019350506020810190506148c0565b5050509392505050565b600082601f830112614906576149056147d7565b5b8135614916848260208601614888565b91505092915050565b600067ffffffffffffffff82111561493a576149396147dc565b5b602082029050602081019050919050565b600061495e6149598461491f565b61483c565b9050808382526020820190506020840283018581111561498157614980614883565b5b835b818110156149aa5780614996888261444a565b845260208401935050602081019050614983565b5050509392505050565b600082601f8301126149c9576149c86147d7565b5b81356149d984826020860161494b565b91505092915050565b600080604083850312156149f9576149f861441f565b5b600083013567ffffffffffffffff811115614a1757614a16614424565b5b614a23858286016148f1565b925050602083013567ffffffffffffffff811115614a4457614a43614424565b5b614a50858286016149b4565b9150509250929050565b614a6381614669565b8114614a6e57600080fd5b50565b600081359050614a8081614a5a565b92915050565b60008060408385031215614a9d57614a9c61441f565b5b6000614aab85828601614614565b9250506020614abc85828601614a71565b9150509250929050565b600060208284031215614adc57614adb61441f565b5b6000614aea84828501614a71565b91505092915050565b600080fd5b60008083601f840112614b0e57614b0d6147d7565b5b8235905067ffffffffffffffff811115614b2b57614b2a614af3565b5b602083019150836020820283011115614b4757614b46614883565b5b9250929050565b600080600060408486031215614b6757614b6661441f565b5b600084013567ffffffffffffffff811115614b8557614b84614424565b5b614b9186828701614af8565b93509350506020614ba486828701614a71565b9150509250925092565b600060208284031215614bc457614bc361441f565b5b600082013567ffffffffffffffff811115614be257614be1614424565b5b614bee848285016148f1565b91505092915050565b60008060408385031215614c0e57614c0d61441f565b5b6000614c1c85828601614614565b9250506020614c2d85828601614614565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614c6d6020836144aa565b9150614c7882614c37565b602082019050919050565b60006020820190508181036000830152614c9c81614c60565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614cdd82614429565b9150614ce883614429565b9250828201905080821115614d0057614cff614ca3565b5b92915050565b7f4d757374206b65657020666565732061742031303025206f72206c6573730000600082015250565b6000614d3c601e836144aa565b9150614d4782614d06565b602082019050919050565b60006020820190508181036000830152614d6b81614d2f565b9050919050565b7f4e6f20626f747320746f20626c6f636b00000000000000000000000000000000600082015250565b6000614da86010836144aa565b9150614db382614d72565b602082019050919050565b60006020820190508181036000830152614dd781614d9b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000614e1882614429565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614e4a57614e49614ca3565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614e9c57607f821691505b602082108103614eaf57614eae614e55565b5b50919050565b60008160011c9050919050565b6000808291508390505b6001851115614f0c57808604811115614ee857614ee7614ca3565b5b6001851615614ef75780820291505b8081029050614f0585614eb5565b9450614ecc565b94509492505050565b600082614f255760019050614fe1565b81614f335760009050614fe1565b8160018114614f495760028114614f5357614f82565b6001915050614fe1565b60ff841115614f6557614f64614ca3565b5b8360020a915084821115614f7c57614f7b614ca3565b5b50614fe1565b5060208310610133831016604e8410600b8410161715614fb75782820a905083811115614fb257614fb1614ca3565b5b614fe1565b614fc48484846001614ec2565b92509050818404811115614fdb57614fda614ca3565b5b81810290505b9392505050565b6000614ff382614429565b9150614ffe83614776565b925061502b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614f15565b905092915050565b600061503e82614429565b915061504983614429565b925082820261505781614429565b9150828204841483151761506e5761506d614ca3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006150af82614429565b91506150ba83614429565b9250826150ca576150c9615075565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000615131602f836144aa565b915061513c826150d5565b604082019050919050565b6000602082019050818103600083015261516081615124565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006151c36028836144aa565b91506151ce82615167565b604082019050919050565b600060208201905081810360008301526151f2816151b6565b9050919050565b7f6d6179206e6f742073657420746f203020616464726573730000000000000000600082015250565b600061522f6018836144aa565b915061523a826151f9565b602082019050919050565b6000602082019050818103600083015261525e81615222565b9050919050565b7f617272617973206d757374206265207468652073616d65206c656e6774680000600082015250565b600061529b601e836144aa565b91506152a682615265565b602082019050919050565b600060208201905081810360008301526152ca8161528e565b9050919050565b7f43616e206f6e6c792061697264726f70203630302077616c6c6574732070657260008201527f2074786e2064756520746f20676173206c696d69747300000000000000000000602082015250565b600061532d6036836144aa565b9150615338826152d1565b604082019050919050565b6000602082019050818103600083015261535c81615320565b9050919050565b7f43616e6e6f742072652d656e61626c652074726164696e670000000000000000600082015250565b60006153996018836144aa565b91506153a482615363565b602082019050919050565b600060208201905081810360008301526153c88161538c565b9050919050565b7f5468652050616e63616b655377617020706169722063616e6e6f74206265207260008201527f656d6f7665642066726f6d206175746f6d617465644d61726b65744d616b657260208201527f5061697273000000000000000000000000000000000000000000000000000000604082015250565b60006154516045836144aa565b915061545c826153cf565b606082019050919050565b6000602082019050818103600083015261548081615444565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006154e36025836144aa565b91506154ee82615487565b604082019050919050565b60006020820190508181036000830152615512816154d6565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f3125000000000000000000000000000000000000000000000000000000000000602082015250565b60006155756022836144aa565b915061558082615519565b604082019050919050565b600060208201905081810360008301526155a481615568565b9050919050565b600082825260208201905092915050565b6000819050919050565b6155cf816145eb565b82525050565b60006155e183836155c6565b60208301905092915050565b60006155fc6020840184614614565b905092915050565b6000602082019050919050565b600061561d83856155ab565b9350615628826155bc565b8060005b858110156156615761563e82846155ed565b61564888826155d5565b975061565383615604565b92505060018101905061562c565b5085925050509392505050565b60006040820190508181036000830152615689818587615611565b90506156986020830184614675565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006156fc6026836144aa565b9150615707826156a0565b604082019050919050565b6000602082019050818103600083015261572b816156ef565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061578e6024836144aa565b915061579982615732565b604082019050919050565b600060208201905081810360008301526157bd81615781565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006158206022836144aa565b915061582b826157c4565b604082019050919050565b6000602082019050818103600083015261584f81615813565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006158b26025836144aa565b91506158bd82615856565b604082019050919050565b600060208201905081810360008301526158e1816158a5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006159446023836144aa565b915061594f826158e8565b604082019050919050565b6000602082019050818103600083015261597381615937565b9050919050565b7f4e6f20626f747300000000000000000000000000000000000000000000000000600082015250565b60006159b06007836144aa565b91506159bb8261597a565b602082019050919050565b600060208201905081810360008301526159df816159a3565b9050919050565b7f54726164696e67206973206e6f7420616374697665207965742e000000000000600082015250565b6000615a1c601a836144aa565b9150615a27826159e6565b602082019050919050565b60006020820190508181036000830152615a4b81615a0f565b9050919050565b7f5472616e736665722044656c617920656e61626c65642e000000000000000000600082015250565b6000615a886017836144aa565b9150615a9382615a52565b602082019050919050565b60006020820190508181036000830152615ab781615a7b565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000615b1a6035836144aa565b9150615b2582615abe565b604082019050919050565b60006020820190508181036000830152615b4981615b0d565b9050919050565b7f556e61626c6520746f20657863656564204d61782057616c6c65740000000000600082015250565b6000615b86601b836144aa565b9150615b9182615b50565b602082019050919050565b60006020820190508181036000830152615bb581615b79565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000615c186036836144aa565b9150615c2382615bbc565b604082019050919050565b60006020820190508181036000830152615c4781615c0b565b9050919050565b6000615c5982614429565b9150615c6483614429565b9250828203905081811115615c7c57615c7b614ca3565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000615cde6026836144aa565b9150615ce982615c82565b604082019050919050565b60006020820190508181036000830152615d0d81615cd1565b9050919050565b600081519050615d23816145fd565b92915050565b600060208284031215615d3f57615d3e61441f565b5b6000615d4d84828501615d14565b91505092915050565b6000819050919050565b6000615d7b615d76615d7184615d56565b614571565b614429565b9050919050565b615d8b81615d60565b82525050565b600081519050919050565b6000819050602082019050919050565b6000602082019050919050565b6000615dc482615d91565b615dce81856155ab565b9350615dd983615d9c565b8060005b83811015615e0a578151615df188826155d5565b9750615dfc83615dac565b925050600181019050615ddd565b5085935050505092915050565b600060a082019050615e2c600083018861469f565b615e396020830187615d82565b8181036040830152615e4b8186615db9565b9050615e5a60608301856147ad565b615e67608083018461469f565b969550505050505056fea2646970667358221220b70a251fff7bad6d2e4a2df4dd78b2f149690a5168340bb7c62a9abdb4643a9964736f6c63430008130033

Deployed Bytecode

0x60806040526004361061037a5760003560e01c80638da5cb5b116101d1578063c876d0b911610102578063e884f260116100a0578063f2fde38b1161006f578063f2fde38b14610cef578063f8b45b0514610d18578063fb002c9714610d43578063fd72e22a14610d6e57610381565b8063e884f26014610c45578063e8d9943d14610c70578063ee40166e14610c99578063efcc1b2f14610cc457610381565b8063d0a39814116100dc578063d0a3981414610b89578063d4cc8dfd14610bb4578063dd62ed3e14610bdd578063e2f4560514610c1a57610381565b8063c876d0b914610b08578063c8c8ebe414610b33578063ccb6135814610b5e57610381565b8063abb810521161016f578063bbc0c74211610149578063bbc0c74214610a62578063c024666814610a8d578063c18bc19514610ab6578063c492f04614610adf57610381565b8063abb81052146109bd578063b62496f5146109fa578063b9e9370014610a3757610381565b80639a36f932116101ab5780639a36f932146108ef5780639a7a23d61461091a578063a457c2d714610943578063a9059cbb1461098057610381565b80638da5cb5b14610870578063924de9b71461089b57806395d89b41146108c457610381565b8063313ce567116102ab5780636ddd1713116102495780637506cbd8116102235780637506cbd8146107c8578063751039fc146107f35780637571336a1461081e57806382aa7c681461084757610381565b80636ddd17131461074957806370a0823114610774578063715018a6146107b157610381565b80634a62bb65116102855780634a62bb651461068f5780634fbee193146106ba578063539068b0146106f757806366ca9b831461072057610381565b8063313ce567146105fc5780633950935114610627578063452ed4f11461066457610381565b8063106b5da1116103185780631a8145bb116102f25780631a8145bb146105405780631fc851bd1461056b57806323b872dd1461059657806330d5d18d146105d357610381565b8063106b5da1146104af57806310d5de53146104d857806318160ddd1461051557610381565b80630758d924116103545780630758d924146103f1578063095ea7b31461041c578063099d0d30146104595780630f4432e31461048457610381565b806302dbd8f81461038657806303acb6ef146103af57806306fdde03146103c657610381565b3661038157005b600080fd5b34801561039257600080fd5b506103ad60048036038101906103a8919061445f565b610d99565b005b3480156103bb57600080fd5b506103c4610e9f565b005b3480156103d257600080fd5b506103db6110d8565b6040516103e8919061452f565b60405180910390f35b3480156103fd57600080fd5b5061040661116a565b60405161041391906145d0565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e9190614629565b61118e565b6040516104509190614684565b60405180910390f35b34801561046557600080fd5b5061046e6111ac565b60405161047b91906146ae565b60405180910390f35b34801561049057600080fd5b506104996111b2565b6040516104a691906146ae565b60405180910390f35b3480156104bb57600080fd5b506104d660048036038101906104d191906146c9565b6111b8565b005b3480156104e457600080fd5b506104ff60048036038101906104fa91906146f6565b6112f7565b60405161050c9190614684565b60405180910390f35b34801561052157600080fd5b5061052a611317565b60405161053791906146ae565b60405180910390f35b34801561054c57600080fd5b50610555611321565b60405161056291906146ae565b60405180910390f35b34801561057757600080fd5b50610580611327565b60405161058d91906146ae565b60405180910390f35b3480156105a257600080fd5b506105bd60048036038101906105b89190614723565b61132d565b6040516105ca9190614684565b60405180910390f35b3480156105df57600080fd5b506105fa60048036038101906105f591906146f6565b61144d565b005b34801561060857600080fd5b5061061161161e565b60405161061e9190614792565b60405180910390f35b34801561063357600080fd5b5061064e60048036038101906106499190614629565b611635565b60405161065b9190614684565b60405180910390f35b34801561067057600080fd5b506106796116e1565b60405161068691906147bc565b60405180910390f35b34801561069b57600080fd5b506106a4611705565b6040516106b19190614684565b60405180910390f35b3480156106c657600080fd5b506106e160048036038101906106dc91906146f6565b611718565b6040516106ee9190614684565b60405180910390f35b34801561070357600080fd5b5061071e600480360381019061071991906149e2565b61176e565b005b34801561072c57600080fd5b506107476004803603810190610742919061445f565b6118f1565b005b34801561075557600080fd5b5061075e6119f7565b60405161076b9190614684565b60405180910390f35b34801561078057600080fd5b5061079b600480360381019061079691906146f6565b611a0a565b6040516107a891906146ae565b60405180910390f35b3480156107bd57600080fd5b506107c6611a52565b005b3480156107d457600080fd5b506107dd611baa565b6040516107ea91906146ae565b60405180910390f35b3480156107ff57600080fd5b50610808611bb0565b6040516108159190614684565b60405180910390f35b34801561082a57600080fd5b5061084560048036038101906108409190614a86565b611c86565b005b34801561085357600080fd5b5061086e600480360381019061086991906146c9565b611dc6565b005b34801561087c57600080fd5b50610885611ef4565b60405161089291906147bc565b60405180910390f35b3480156108a757600080fd5b506108c260048036038101906108bd9190614ac6565b611f1e565b005b3480156108d057600080fd5b506108d9611fd2565b6040516108e6919061452f565b60405180910390f35b3480156108fb57600080fd5b50610904612064565b60405161091191906146ae565b60405180910390f35b34801561092657600080fd5b50610941600480360381019061093c9190614a86565b61206a565b005b34801561094f57600080fd5b5061096a60048036038101906109659190614629565b61219d565b6040516109779190614684565b60405180910390f35b34801561098c57600080fd5b506109a760048036038101906109a29190614629565b612288565b6040516109b49190614684565b60405180910390f35b3480156109c957600080fd5b506109e460048036038101906109df91906146f6565b6122a6565b6040516109f19190614684565b60405180910390f35b348015610a0657600080fd5b50610a216004803603810190610a1c91906146f6565b6122c6565b604051610a2e9190614684565b60405180910390f35b348015610a4357600080fd5b50610a4c6122e6565b604051610a5991906146ae565b60405180910390f35b348015610a6e57600080fd5b50610a776122ec565b604051610a849190614684565b60405180910390f35b348015610a9957600080fd5b50610ab46004803603810190610aaf9190614a86565b6122ff565b005b348015610ac257600080fd5b50610add6004803603810190610ad891906146c9565b61243f565b005b348015610aeb57600080fd5b50610b066004803603810190610b019190614b4e565b61257d565b005b348015610b1457600080fd5b50610b1d6126f4565b604051610b2a9190614684565b60405180910390f35b348015610b3f57600080fd5b50610b48612707565b604051610b5591906146ae565b60405180910390f35b348015610b6a57600080fd5b50610b7361270d565b604051610b8091906146ae565b60405180910390f35b348015610b9557600080fd5b50610b9e612713565b604051610bab91906146ae565b60405180910390f35b348015610bc057600080fd5b50610bdb6004803603810190610bd69190614bae565b612719565b005b348015610be957600080fd5b50610c046004803603810190610bff9190614bf7565b612845565b604051610c1191906146ae565b60405180910390f35b348015610c2657600080fd5b50610c2f6128cc565b604051610c3c91906146ae565b60405180910390f35b348015610c5157600080fd5b50610c5a6128d2565b604051610c679190614684565b60405180910390f35b348015610c7c57600080fd5b50610c976004803603810190610c929190614bae565b61298d565b005b348015610ca557600080fd5b50610cae612ab9565b604051610cbb91906146ae565b60405180910390f35b348015610cd057600080fd5b50610cd9612abf565b604051610ce691906146ae565b60405180910390f35b348015610cfb57600080fd5b50610d166004803603810190610d1191906146f6565b612ac5565b005b348015610d2457600080fd5b50610d2d612c8b565b604051610d3a91906146ae565b60405180910390f35b348015610d4f57600080fd5b50610d58612c91565b604051610d6591906146ae565b60405180910390f35b348015610d7a57600080fd5b50610d83612c97565b604051610d9091906147bc565b60405180910390f35b610da1612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2790614c83565b60405180910390fd5b8160118190555080601281905550601254601154610e4e9190614cd2565b6010819055506127106010541115610e9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9290614d52565b60405180910390fd5b5050565b610ea7612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2d90614c83565b60405180910390fd5b600060198054905011610f7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7590614dbe565b60405180910390fd5b60005b6019805490508110156110c757601b600060198381548110610fa657610fa5614dde565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166110b4576001601b60006019848154811061103757611036614dde565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806110bf90614e0d565b915050610f81565b50601960006110d691906143d7565b565b6060600380546110e790614e84565b80601f016020809104026020016040519081016040528092919081815260200182805461111390614e84565b80156111605780601f1061113557610100808354040283529160200191611160565b820191906000526020600020905b81548152906001019060200180831161114357829003601f168201915b5050505050905090565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b60006111a261119b612cbd565b8484612cc5565b6001905092915050565b60125481565b600a5481565b6111c0612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461124f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124690614c83565b60405180910390fd5b61125761161e565b600a6112639190614fe8565b6103e86001611270611317565b61127a9190615033565b61128491906150a4565b61128e91906150a4565b81116112cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c690615147565b60405180910390fd5b6112d761161e565b600a6112e39190614fe8565b816112ee9190615033565b60078190555050565b601c6020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b60175481565b600c5481565b600061133a848484612e8e565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611385612cbd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611441578281101561142c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611423906151d9565b60405180910390fd5b61144085611438612cbd565b858403612cc5565b5b60019150509392505050565b611455612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114db90614c83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154a90615245565b60405180910390fd5b61155e8160016122ff565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f086aa05ff00214e2d0c7c02b8a46b2614ad955732e6b43aa8afca69ed1ad76f860405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560009054906101000a900460ff16905090565b60006116d7611642612cbd565b848460016000611650612cbd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116d29190614cd2565b612cc5565b6001905092915050565b7f00000000000000000000000019e4ce3cd5f45c81e0de4727fcb15c9eb299374b81565b600d60009054906101000a900460ff1681565b6000601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611776612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fc90614c83565b60405180910390fd5b8051825114611849576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611840906152b1565b60405180910390fd5b61025882511061188e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188590615343565b60405180910390fd5b60005b82518110156118ec576118d9338483815181106118b1576118b0614dde565b5b60200260200101518484815181106118cc576118cb614dde565b5b6020026020010151613d46565b80806118e490614e0d565b915050611891565b505050565b6118f9612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611988576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197f90614c83565b60405180910390fd5b81601481905550806015819055506015546014546119a69190614cd2565b60138190555061271060135411156119f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ea90614d52565b60405180910390fd5b5050565b600d60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611a5a612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae090614c83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b6000611bba612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4090614c83565b60405180910390fd5b6000600d60006101000a81548160ff0219169083151502179055506000600f60006101000a81548160ff0219169083151502179055506001905090565b611c8e612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1490614c83565b60405180910390fd5b80601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f575f9d01836c9206322151b9e9ec3f2b77b87e71176933b9b44d2d732f768d9582604051611dba9190614684565b60405180910390a25050565b611dce612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5490614c83565b60405180910390fd5b600d60019054906101000a900460ff1615611ead576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea4906153af565b60405180910390fd5b6001600d60016101000a81548160ff0219169083151502179055506001600d60026101000a81548160ff02191690831515021790555043600b8190555080601a8190555050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611f26612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fac90614c83565b60405180910390fd5b80600d60026101000a81548160ff02191690831515021790555050565b606060048054611fe190614e84565b80601f016020809104026020016040519081016040528092919081815260200182805461200d90614e84565b801561205a5780601f1061202f5761010080835404028352916020019161205a565b820191906000526020600020905b81548152906001019060200180831161203d57829003601f168201915b5050505050905090565b61271081565b612072612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612101576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f890614c83565b60405180910390fd5b7f00000000000000000000000019e4ce3cd5f45c81e0de4727fcb15c9eb299374b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361218f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218690615467565b60405180910390fd5b6121998282613faf565b5050565b600080600160006121ac612cbd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015612269576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612260906154f9565b60405180910390fd5b61227d612274612cbd565b85858403612cc5565b600191505092915050565b600061229c612295612cbd565b8484612e8e565b6001905092915050565b601b6020528060005260406000206000915054906101000a900460ff1681565b601d6020528060005260406000206000915054906101000a900460ff1681565b60135481565b600d60019054906101000a900460ff1681565b612307612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612396576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238d90614c83565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516124339190614684565b60405180910390a25050565b612447612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124cd90614c83565b60405180910390fd5b6124de61161e565b600a6124ea9190614fe8565b606460016124f6611317565b6125009190615033565b61250a91906150a4565b61251491906150a4565b8111612555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254c9061558b565b60405180910390fd5b61255d61161e565b600a6125699190614fe8565b816125749190615033565b60098190555050565b612585612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612614576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260b90614c83565b60405180910390fd5b60005b838390508110156126b357816018600086868581811061263a57612639614dde565b5b905060200201602081019061264f91906146f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806126ab90614e0d565b915050612617565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b358383836040516126e79392919061566e565b60405180910390a1505050565b600f60009054906101000a900460ff1681565b60075481565b60155481565b60105481565b612721612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a790614c83565b60405180910390fd5b60005b8151811015612841576000601b60008484815181106127d5576127d4614dde565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061283990614e0d565b9150506127b3565b5050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b60006128dc612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461296b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296290614c83565b60405180910390fd5b6000600f60006101000a81548160ff0219169083151502179055506001905090565b612995612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1b90614c83565b60405180910390fd5b60005b8151811015612ab5576001601b6000848481518110612a4957612a48614dde565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080612aad90614e0d565b915050612a27565b5050565b600b5481565b60145481565b612acd612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5390614c83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612bcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bc290615712565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b60165481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2b906157a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612da3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9a90615836565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612e8191906146ae565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ef4906158c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612f6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f639061595a565b60405180910390fd5b601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156130105750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61304f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613046906159c6565b60405180910390fd5b600081036130685761306383836000613d46565b613d41565b600d60019054906101000a900460ff1661315d57601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061311d5750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61315c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161315390615a32565b60405180910390fd5b5b600d60009054906101000a900460ff161561373c5761317a611ef4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156131e857506131b8611ef4565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156132215750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561325b575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156132745750600560159054906101000a900460ff16155b1561373b57600f60009054906101000a900460ff16156134525743600f600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132db9190614cd2565b1061331b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161331290615a9e565b60405180910390fd5b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156133c357507f00000000000000000000000019e4ce3cd5f45c81e0de4727fcb15c9eb299374b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156134515743600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156134f55750601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561359c5760075481111561353f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161353690615b30565b60405180910390fd5b60095461354b83611a0a565b826135569190614cd2565b1115613597576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161358e90615b9c565b60405180910390fd5b61373a565b601d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561363f5750601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561368e57600754811115613689576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161368090615c2e565b60405180910390fd5b613739565b601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613738576009546136eb83611a0a565b826136f69190614cd2565b1115613737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161372e90615b9c565b60405180910390fd5b5b5b5b5b5b600061374730611a0a565b90506000600854821015905080801561376c5750600d60029054906101000a900460ff165b80156137855750600560159054906101000a900460ff16155b80156137db5750601d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156138315750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156138875750601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156138cb576001600560156101000a81548160ff0219169083151502179055506138af61405a565b6000600560156101000a81548160ff0219169083151502179055505b6000600560159054906101000a900460ff16159050601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806139815750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561398b57600090505b60008115613d315743601a54600b546139a49190614cd2565b10158015613a4f5750601d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613a4e5750601d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b5b15613b3f5761271060135486613a659190615033565b613a6f91906150a4565b905060135460155482613a829190615033565b613a8c91906150a4565b60176000828254613a9d9190614cd2565b9250508190555060135460145482613ab59190615033565b613abf91906150a4565b60166000828254613ad09190614cd2565b925050819055506019869080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613d0d565b601d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613b9a57506000601054115b15613c275761271060105486613bb09190615033565b613bba91906150a4565b905060105460125482613bcd9190615033565b613bd791906150a4565b60176000828254613be89190614cd2565b9250508190555060105460115482613c009190615033565b613c0a91906150a4565b60166000828254613c1b9190614cd2565b92505081905550613d0c565b601d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613c8257506000601354115b15613d0b5761271060135486613c989190615033565b613ca291906150a4565b905060135460155482613cb59190615033565b613cbf91906150a4565b60176000828254613cd09190614cd2565b9250508190555060135460145482613ce89190615033565b613cf291906150a4565b60166000828254613d039190614cd2565b925050819055505b5b5b6000811115613d2257613d21873083613d46565b5b8085613d2e9190615c4e565b94505b613d3c878787613d46565b505050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613dac906158c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e1b9061595a565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613eaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ea190615cf4565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613f3d9190614cd2565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613fa191906146ae565b60405180910390a350505050565b80601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506140108282611c86565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600061406530611a0a565b905060006016546017546140799190614cd2565b9050600082148061408a5750600081145b156140965750506141a1565b6000601754111561418b57600081601754846140b29190615033565b6140bc91906150a4565b90506140e9307f00000000000000000000000019e4ce3cd5f45c81e0de4727fcb15c9eb299374b83613d46565b7f00000000000000000000000019e4ce3cd5f45c81e0de4727fcb15c9eb299374b73ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561415157600080fd5b505af1925050508015614162575060015b50808361416f9190615c4e565b92506017548261417f9190615c4e565b91506000601781905550505b600082111561419e5761419d826141a3565b5b50505b565b6000600267ffffffffffffffff8111156141c0576141bf6147dc565b5b6040519080825280602002602001820160405280156141ee5781602001602082028036833780820191505090505b509050308160008151811061420657614205614dde565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156142ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142cf9190615d29565b816001815181106142e3576142e2614dde565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016143a1959493929190615e17565b600060405180830381600087803b1580156143bb57600080fd5b505af11580156143cf573d6000803e3d6000fd5b505050505050565b50805460008255906000526020600020908101906143f591906143f8565b50565b5b808211156144115760008160009055506001016143f9565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61443c81614429565b811461444757600080fd5b50565b60008135905061445981614433565b92915050565b600080604083850312156144765761447561441f565b5b60006144848582860161444a565b92505060206144958582860161444a565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b838110156144d95780820151818401526020810190506144be565b60008484015250505050565b6000601f19601f8301169050919050565b60006145018261449f565b61450b81856144aa565b935061451b8185602086016144bb565b614524816144e5565b840191505092915050565b6000602082019050818103600083015261454981846144f6565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061459661459161458c84614551565b614571565b614551565b9050919050565b60006145a88261457b565b9050919050565b60006145ba8261459d565b9050919050565b6145ca816145af565b82525050565b60006020820190506145e560008301846145c1565b92915050565b60006145f682614551565b9050919050565b614606816145eb565b811461461157600080fd5b50565b600081359050614623816145fd565b92915050565b600080604083850312156146405761463f61441f565b5b600061464e85828601614614565b925050602061465f8582860161444a565b9150509250929050565b60008115159050919050565b61467e81614669565b82525050565b60006020820190506146996000830184614675565b92915050565b6146a881614429565b82525050565b60006020820190506146c3600083018461469f565b92915050565b6000602082840312156146df576146de61441f565b5b60006146ed8482850161444a565b91505092915050565b60006020828403121561470c5761470b61441f565b5b600061471a84828501614614565b91505092915050565b60008060006060848603121561473c5761473b61441f565b5b600061474a86828701614614565b935050602061475b86828701614614565b925050604061476c8682870161444a565b9150509250925092565b600060ff82169050919050565b61478c81614776565b82525050565b60006020820190506147a76000830184614783565b92915050565b6147b6816145eb565b82525050565b60006020820190506147d160008301846147ad565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b614814826144e5565b810181811067ffffffffffffffff82111715614833576148326147dc565b5b80604052505050565b6000614846614415565b9050614852828261480b565b919050565b600067ffffffffffffffff821115614872576148716147dc565b5b602082029050602081019050919050565b600080fd5b600061489b61489684614857565b61483c565b905080838252602082019050602084028301858111156148be576148bd614883565b5b835b818110156148e757806148d38882614614565b8452602084019350506020810190506148c0565b5050509392505050565b600082601f830112614906576149056147d7565b5b8135614916848260208601614888565b91505092915050565b600067ffffffffffffffff82111561493a576149396147dc565b5b602082029050602081019050919050565b600061495e6149598461491f565b61483c565b9050808382526020820190506020840283018581111561498157614980614883565b5b835b818110156149aa5780614996888261444a565b845260208401935050602081019050614983565b5050509392505050565b600082601f8301126149c9576149c86147d7565b5b81356149d984826020860161494b565b91505092915050565b600080604083850312156149f9576149f861441f565b5b600083013567ffffffffffffffff811115614a1757614a16614424565b5b614a23858286016148f1565b925050602083013567ffffffffffffffff811115614a4457614a43614424565b5b614a50858286016149b4565b9150509250929050565b614a6381614669565b8114614a6e57600080fd5b50565b600081359050614a8081614a5a565b92915050565b60008060408385031215614a9d57614a9c61441f565b5b6000614aab85828601614614565b9250506020614abc85828601614a71565b9150509250929050565b600060208284031215614adc57614adb61441f565b5b6000614aea84828501614a71565b91505092915050565b600080fd5b60008083601f840112614b0e57614b0d6147d7565b5b8235905067ffffffffffffffff811115614b2b57614b2a614af3565b5b602083019150836020820283011115614b4757614b46614883565b5b9250929050565b600080600060408486031215614b6757614b6661441f565b5b600084013567ffffffffffffffff811115614b8557614b84614424565b5b614b9186828701614af8565b93509350506020614ba486828701614a71565b9150509250925092565b600060208284031215614bc457614bc361441f565b5b600082013567ffffffffffffffff811115614be257614be1614424565b5b614bee848285016148f1565b91505092915050565b60008060408385031215614c0e57614c0d61441f565b5b6000614c1c85828601614614565b9250506020614c2d85828601614614565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614c6d6020836144aa565b9150614c7882614c37565b602082019050919050565b60006020820190508181036000830152614c9c81614c60565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614cdd82614429565b9150614ce883614429565b9250828201905080821115614d0057614cff614ca3565b5b92915050565b7f4d757374206b65657020666565732061742031303025206f72206c6573730000600082015250565b6000614d3c601e836144aa565b9150614d4782614d06565b602082019050919050565b60006020820190508181036000830152614d6b81614d2f565b9050919050565b7f4e6f20626f747320746f20626c6f636b00000000000000000000000000000000600082015250565b6000614da86010836144aa565b9150614db382614d72565b602082019050919050565b60006020820190508181036000830152614dd781614d9b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000614e1882614429565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614e4a57614e49614ca3565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614e9c57607f821691505b602082108103614eaf57614eae614e55565b5b50919050565b60008160011c9050919050565b6000808291508390505b6001851115614f0c57808604811115614ee857614ee7614ca3565b5b6001851615614ef75780820291505b8081029050614f0585614eb5565b9450614ecc565b94509492505050565b600082614f255760019050614fe1565b81614f335760009050614fe1565b8160018114614f495760028114614f5357614f82565b6001915050614fe1565b60ff841115614f6557614f64614ca3565b5b8360020a915084821115614f7c57614f7b614ca3565b5b50614fe1565b5060208310610133831016604e8410600b8410161715614fb75782820a905083811115614fb257614fb1614ca3565b5b614fe1565b614fc48484846001614ec2565b92509050818404811115614fdb57614fda614ca3565b5b81810290505b9392505050565b6000614ff382614429565b9150614ffe83614776565b925061502b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614f15565b905092915050565b600061503e82614429565b915061504983614429565b925082820261505781614429565b9150828204841483151761506e5761506d614ca3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006150af82614429565b91506150ba83614429565b9250826150ca576150c9615075565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000615131602f836144aa565b915061513c826150d5565b604082019050919050565b6000602082019050818103600083015261516081615124565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006151c36028836144aa565b91506151ce82615167565b604082019050919050565b600060208201905081810360008301526151f2816151b6565b9050919050565b7f6d6179206e6f742073657420746f203020616464726573730000000000000000600082015250565b600061522f6018836144aa565b915061523a826151f9565b602082019050919050565b6000602082019050818103600083015261525e81615222565b9050919050565b7f617272617973206d757374206265207468652073616d65206c656e6774680000600082015250565b600061529b601e836144aa565b91506152a682615265565b602082019050919050565b600060208201905081810360008301526152ca8161528e565b9050919050565b7f43616e206f6e6c792061697264726f70203630302077616c6c6574732070657260008201527f2074786e2064756520746f20676173206c696d69747300000000000000000000602082015250565b600061532d6036836144aa565b9150615338826152d1565b604082019050919050565b6000602082019050818103600083015261535c81615320565b9050919050565b7f43616e6e6f742072652d656e61626c652074726164696e670000000000000000600082015250565b60006153996018836144aa565b91506153a482615363565b602082019050919050565b600060208201905081810360008301526153c88161538c565b9050919050565b7f5468652050616e63616b655377617020706169722063616e6e6f74206265207260008201527f656d6f7665642066726f6d206175746f6d617465644d61726b65744d616b657260208201527f5061697273000000000000000000000000000000000000000000000000000000604082015250565b60006154516045836144aa565b915061545c826153cf565b606082019050919050565b6000602082019050818103600083015261548081615444565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006154e36025836144aa565b91506154ee82615487565b604082019050919050565b60006020820190508181036000830152615512816154d6565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f3125000000000000000000000000000000000000000000000000000000000000602082015250565b60006155756022836144aa565b915061558082615519565b604082019050919050565b600060208201905081810360008301526155a481615568565b9050919050565b600082825260208201905092915050565b6000819050919050565b6155cf816145eb565b82525050565b60006155e183836155c6565b60208301905092915050565b60006155fc6020840184614614565b905092915050565b6000602082019050919050565b600061561d83856155ab565b9350615628826155bc565b8060005b858110156156615761563e82846155ed565b61564888826155d5565b975061565383615604565b92505060018101905061562c565b5085925050509392505050565b60006040820190508181036000830152615689818587615611565b90506156986020830184614675565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006156fc6026836144aa565b9150615707826156a0565b604082019050919050565b6000602082019050818103600083015261572b816156ef565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061578e6024836144aa565b915061579982615732565b604082019050919050565b600060208201905081810360008301526157bd81615781565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006158206022836144aa565b915061582b826157c4565b604082019050919050565b6000602082019050818103600083015261584f81615813565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006158b26025836144aa565b91506158bd82615856565b604082019050919050565b600060208201905081810360008301526158e1816158a5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006159446023836144aa565b915061594f826158e8565b604082019050919050565b6000602082019050818103600083015261597381615937565b9050919050565b7f4e6f20626f747300000000000000000000000000000000000000000000000000600082015250565b60006159b06007836144aa565b91506159bb8261597a565b602082019050919050565b600060208201905081810360008301526159df816159a3565b9050919050565b7f54726164696e67206973206e6f7420616374697665207965742e000000000000600082015250565b6000615a1c601a836144aa565b9150615a27826159e6565b602082019050919050565b60006020820190508181036000830152615a4b81615a0f565b9050919050565b7f5472616e736665722044656c617920656e61626c65642e000000000000000000600082015250565b6000615a886017836144aa565b9150615a9382615a52565b602082019050919050565b60006020820190508181036000830152615ab781615a7b565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000615b1a6035836144aa565b9150615b2582615abe565b604082019050919050565b60006020820190508181036000830152615b4981615b0d565b9050919050565b7f556e61626c6520746f20657863656564204d61782057616c6c65740000000000600082015250565b6000615b86601b836144aa565b9150615b9182615b50565b602082019050919050565b60006020820190508181036000830152615bb581615b79565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000615c186036836144aa565b9150615c2382615bbc565b604082019050919050565b60006020820190508181036000830152615c4781615c0b565b9050919050565b6000615c5982614429565b9150615c6483614429565b9250828203905081811115615c7c57615c7b614ca3565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000615cde6026836144aa565b9150615ce982615c82565b604082019050919050565b60006020820190508181036000830152615d0d81615cd1565b9050919050565b600081519050615d23816145fd565b92915050565b600060208284031215615d3f57615d3e61441f565b5b6000615d4d84828501615d14565b91505092915050565b6000819050919050565b6000615d7b615d76615d7184615d56565b614571565b614429565b9050919050565b615d8b81615d60565b82525050565b600081519050919050565b6000819050602082019050919050565b6000602082019050919050565b6000615dc482615d91565b615dce81856155ab565b9350615dd983615d9c565b8060005b83811015615e0a578151615df188826155d5565b9750615dfc83615dac565b925050600181019050615ddd565b5085935050505092915050565b600060a082019050615e2c600083018861469f565b615e396020830187615d82565b8181036040830152615e4b8186615db9565b9050615e5a60608301856147ad565b615e67608083018461469f565b969550505050505056fea2646970667358221220b70a251fff7bad6d2e4a2df4dd78b2f149690a5168340bb7c62a9abdb4643a9964736f6c63430008130033

Deployed Bytecode Sourcemap

11192:15275:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17348:325;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25304:320;;;;;;;;;;;;;:::i;:::-;;4434:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11237:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5355:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12265:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11514:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16503:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12767:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4762:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12465:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11676;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5532:573;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18901:349;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4654:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6113:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11281:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11785:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19258:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26026:434;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17018:318;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11865:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4878:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9201:148;;;;;;;;;;;;;:::i;:::-;;12226:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19435:159;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17681:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16022:272;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8559:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16394:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4542:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12140:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18397:251;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6336:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5013:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12719:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12989:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12309:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11825:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17891:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16771:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18083:306;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12088:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11395:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12381:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12191:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25632:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5196:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11437:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15830:134;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25831:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11599:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12343:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9504:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11477:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12424:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11351:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17348:325;8781:12;:10;:12::i;:::-;8771:22;;:6;;;;;;;;;;;:22;;;8763:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17469:14:::1;17449:17;:34;;;;17513:13;17494:16;:32;;;;17573:16;;17553:17;;:36;;;;:::i;:::-;17537:13;:52;;;;17625:5;17608:13;;:22;;17600:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;17348:325:::0;;:::o;25304:320::-;8781:12;:10;:12::i;:::-;8771:22;;:6;;;;;;;;;;;:22;;;8763:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25387:1:::1;25366:11;:18;;;;:22;25358:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;25426:9;25422:164;25445:11;:18;;;;25441:1;:22;25422:164;;;25488:6;:22;25495:11;25507:1;25495:14;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;25488:22;;;;;;;;;;;;;;;;;;;;;;;;;25484:91;;25555:4;25530:6;:22;25537:11;25549:1;25537:14;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;25530:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;25484:91;25465:3;;;;;:::i;:::-;;;;25422:164;;;;25605:11;;25598:18;;;;:::i;:::-;25304:320::o:0;4434:100::-;4488:13;4521:5;4514:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4434:100;:::o;11237:37::-;;;:::o;5355:169::-;5438:4;5455:39;5464:12;:10;:12::i;:::-;5478:7;5487:6;5455:8;:39::i;:::-;5512:4;5505:11;;5355:169;;;;:::o;12265:31::-;;;;:::o;11514:39::-;;;;:::o;16503:256::-;8781:12;:10;:12::i;:::-;8771:22;;:6;;;;;;;;;;;:22;;;8763:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16627:10:::1;:8;:10::i;:::-;16621:2;:16;;;;:::i;:::-;16612:4;16608:1;16592:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;16591:47;;;;:::i;:::-;16582:6;:56;16574:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;16740:10;:8;:10::i;:::-;16734:2;:16;;;;:::i;:::-;16724:6;:27;;;;:::i;:::-;16701:20;:50;;;;16503:256:::0;:::o;12767:64::-;;;;;;;;;;;;;;;;;;;;;;:::o;4762:108::-;4823:7;4850:12;;4843:19;;4762:108;:::o;12465:33::-;;;;:::o;11676:::-;;;;:::o;5532:573::-;5672:4;5689:36;5699:6;5707:9;5718:6;5689:9;:36::i;:::-;5738:24;5765:11;:19;5777:6;5765:19;;;;;;;;;;;;;;;:33;5785:12;:10;:12::i;:::-;5765:33;;;;;;;;;;;;;;;;5738:60;;5833:17;5813:16;:37;5809:265;;5895:6;5875:16;:26;;5867:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5990:57;5999:6;6007:12;:10;:12::i;:::-;6040:6;6021:16;:25;5990:8;:57::i;:::-;5809:265;6093:4;6086:11;;;5532:573;;;;;:::o;18901:349::-;8781:12;:10;:12::i;:::-;8771:22;;:6;;;;;;;;;;;:22;;;8763:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19031:1:::1;19000:33;;:19;:33;;::::0;18992:70:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19073:42;19089:19;19110:4;19073:15;:42::i;:::-;19176:16;;;;;;;;;;;19131:62;;19155:19;19131:62;;;;;;;;;;;;19223:19;19204:16;;:38;;;;;;;;;;;;;;;;;;18901:349:::0;:::o;4654:100::-;4712:5;4737:9;;;;;;;;;;;4730:16;;4654:100;:::o;6113:215::-;6201:4;6218:80;6227:12;:10;:12::i;:::-;6241:7;6287:10;6250:11;:25;6262:12;:10;:12::i;:::-;6250:25;;;;;;;;;;;;;;;:34;6276:7;6250:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;6218:8;:80::i;:::-;6316:4;6309:11;;6113:215;;;;:::o;11281:31::-;;;:::o;11785:33::-;;;;;;;;;;;;;:::o;19258:127::-;19325:4;19349:19;:28;19369:7;19349:28;;;;;;;;;;;;;;;;;;;;;;;;;19342:35;;19258:127;;;:::o;26026:434::-;8781:12;:10;:12::i;:::-;8771:22;;:6;;;;;;;;;;;:22;;;8763:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26162:12:::1;:19;26144:7;:14;:37;26136:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;26252:3;26235:7;:14;:20;26227:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;26329:9;26325:126;26348:7;:14;26344:1;:18;26325:126;;;26383:56;26399:10;26411:7;26419:1;26411:10;;;;;;;;:::i;:::-;;;;;;;;26423:12;26436:1;26423:15;;;;;;;;:::i;:::-;;;;;;;;26383;:56::i;:::-;26364:3;;;;;:::i;:::-;;;;26325:126;;;;26026:434:::0;;:::o;17018:318::-;8781:12;:10;:12::i;:::-;8771:22;;:6;;;;;;;;;;;:22;;;8763:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17137:14:::1;17118:16;:33;;;;17180:13;17162:15;:31;;;;17238:15;;17219:16;;:34;;;;:::i;:::-;17204:12;:49;;;;17288:5;17272:12;;:21;;17264:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;17018:318:::0;;:::o;11865:31::-;;;;;;;;;;;;;:::o;4878:127::-;4952:7;4979:9;:18;4989:7;4979:18;;;;;;;;;;;;;;;;4972:25;;4878:127;;;:::o;9201:148::-;8781:12;:10;:12::i;:::-;8771:22;;:6;;;;;;;;;;;:22;;;8763:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9308:1:::1;9271:40;;9292:6;;;;;;;;;;;9271:40;;;;;;;;;;;;9339:1;9322:6;;:19;;;;;;;;;;;;;;;;;;9201:148::o:0;12226:32::-;;;;:::o;19435:159::-;19487:4;8781:12;:10;:12::i;:::-;8771:22;;:6;;;;;;;;;;;:22;;;8763:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19520:5:::1;19503:14;;:22;;;;;;;;;;;;;;;;;;19559:5;19536:20;;:28;;;;;;;;;;;;;;;;;;19582:4;19575:11;;19435:159:::0;:::o;17681:202::-;8781:12;:10;:12::i;:::-;8771:22;;:6;;;;;;;;;;;:22;;;8763:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17813:4:::1;17771:31;:39;17803:6;17771:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;17862:6;17833:42;;;17870:4;17833:42;;;;;;:::i;:::-;;;;;;;;17681:202:::0;;:::o;16022:272::-;8781:12;:10;:12::i;:::-;8771:22;;:6;;;;;;;;;;;:22;;;8763:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16105:13:::1;;;;;;;;;;;16104:14;16096:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;16174:4;16158:13;;:20;;;;;;;;;;;;;;;;;;16203:4;16189:11;;:18;;;;;;;;;;;;;;;;;;16239:12;16218:18;:33;;;;16275:11;16262:10;:24;;;;16022:272:::0;:::o;8559:79::-;8597:7;8624:6;;;;;;;;;;;8617:13;;8559:79;:::o;16394:101::-;8781:12;:10;:12::i;:::-;8771:22;;:6;;;;;;;;;;;:22;;;8763:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16480:7:::1;16466:11;;:21;;;;;;;;;;;;;;;;;;16394:101:::0;:::o;4542:104::-;4598:13;4631:7;4624:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4542:104;:::o;12140:42::-;12177:5;12140:42;:::o;18397:251::-;8781:12;:10;:12::i;:::-;8771:22;;:6;;;;;;;;;;;:22;;;8763:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18506:6:::1;18498:14;;:4;:14;;::::0;18490:96:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18599:41;18628:4;18634:5;18599:28;:41::i;:::-;18397:251:::0;;:::o;6336:413::-;6429:4;6446:24;6473:11;:25;6485:12;:10;:12::i;:::-;6473:25;;;;;;;;;;;;;;;:34;6499:7;6473:34;;;;;;;;;;;;;;;;6446:61;;6546:15;6526:16;:35;;6518:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6639:67;6648:12;:10;:12::i;:::-;6662:7;6690:15;6671:16;:34;6639:8;:67::i;:::-;6737:4;6730:11;;;6336:413;;;;:::o;5013:175::-;5099:4;5116:42;5126:12;:10;:12::i;:::-;5140:9;5151:6;5116:9;:42::i;:::-;5176:4;5169:11;;5013:175;;;;:::o;12719:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;12989:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;12309:27::-;;;;:::o;11825:33::-;;;;;;;;;;;;;:::o;17891:184::-;8781:12;:10;:12::i;:::-;8771:22;;:6;;;;;;;;;;;:22;;;8763:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18007:8:::1;17976:19;:28;17996:7;17976:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18049:7;18033:34;;;18058:8;18033:34;;;;;;:::i;:::-;;;;;;;;17891:184:::0;;:::o;16771:235::-;8781:12;:10;:12::i;:::-;8771:22;;:6;;;;;;;;;;;:22;;;8763:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16898:10:::1;:8;:10::i;:::-;16892:2;:16;;;;:::i;:::-;16886:3;16882:1;16866:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:23;;;;:::i;:::-;16865:44;;;;:::i;:::-;16856:6;:53;16848:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;16987:10;:8;:10::i;:::-;16981:2;:16;;;;:::i;:::-;16971:6;:27;;;;:::i;:::-;16959:9;:39;;;;16771:235:::0;:::o;18083:306::-;8781:12;:10;:12::i;:::-;8771:22;;:6;;;;;;;;;;;:22;;;8763:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18202:9:::1;18198:115;18221:8;;:15;;18217:1;:19;18198:115;;;18293:8;18258:19;:32;18278:8;;18287:1;18278:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18258:32;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;18238:3;;;;;:::i;:::-;;;;18198:115;;;;18330:51;18362:8;;18372;18330:51;;;;;;;;:::i;:::-;;;;;;;;18083:306:::0;;;:::o;12088:39::-;;;;;;;;;;;;;:::o;11395:35::-;;;;:::o;12381:30::-;;;;:::o;12191:28::-;;;;:::o;25632:191::-;8781:12;:10;:12::i;:::-;8771:22;;:6;;;;;;;;;;;:22;;;8763:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25718:9:::1;25714:102;25737:10;:17;25733:1;:21;25714:102;;;25799:5;25775:6;:21;25782:10;25793:1;25782:13;;;;;;;;:::i;:::-;;;;;;;;25775:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;25756:3;;;;;:::i;:::-;;;;25714:102;;;;25632:191:::0;:::o;5196:151::-;5285:7;5312:11;:18;5324:5;5312:18;;;;;;;;;;;;;;;:27;5331:7;5312:27;;;;;;;;;;;;;;;;5305:34;;5196:151;;;;:::o;11437:33::-;;;;:::o;15830:134::-;15890:4;8781:12;:10;:12::i;:::-;8771:22;;:6;;;;;;;;;;;:22;;;8763:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15929:5:::1;15906:20;;:28;;;;;;;;;;;;;;;;;;15952:4;15945:11;;15830:134:::0;:::o;25831:187::-;8781:12;:10;:12::i;:::-;8771:22;;:6;;;;;;;;;;;:22;;;8763:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25914:9:::1;25910:101;25933:10;:17;25929:1;:21;25910:101;;;25995:4;25971:6;:21;25978:10;25989:1;25978:13;;;;;;;;:::i;:::-;;;;;;;;25971:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;25952:3;;;;;:::i;:::-;;;;25910:101;;;;25831:187:::0;:::o;11599:37::-;;;;:::o;12343:31::-;;;;:::o;9504:244::-;8781:12;:10;:12::i;:::-;8771:22;;:6;;;;;;;;;;;:22;;;8763:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9613:1:::1;9593:22;;:8;:22;;::::0;9585:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;9703:8;9674:38;;9695:6;;;;;;;;;;;9674:38;;;;;;;;;;;;9732:8;9723:6;;:17;;;;;;;;;;;;;;;;;;9504:244:::0;:::o;11477:24::-;;;;:::o;12424:34::-;;;;:::o;11351:31::-;;;;;;;;;;;;;:::o;382:98::-;435:7;462:10;455:17;;382:98;:::o;7676:380::-;7829:1;7812:19;;:5;:19;;;7804:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7910:1;7891:21;;:7;:21;;;7883:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7994:6;7964:11;:18;7976:5;7964:18;;;;;;;;;;;;;;;:27;7983:7;7964:27;;;;;;;;;;;;;;;:36;;;;8032:7;8016:32;;8025:5;8016:32;;;8041:6;8016:32;;;;;;:::i;:::-;;;;;;;;7676:380;;;:::o;19606:4392::-;19754:1;19738:18;;:4;:18;;;19730:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19831:1;19817:16;;:2;:16;;;19809:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19893:6;:10;19900:2;19893:10;;;;;;;;;;;;;;;;;;;;;;;;;19892:11;:28;;;;;19908:6;:12;19915:4;19908:12;;;;;;;;;;;;;;;;;;;;;;;;;19907:13;19892:28;19884:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;19959:1;19949:6;:11;19946:92;;19977:28;19993:4;19999:2;20003:1;19977:15;:28::i;:::-;20020:7;;19946:92;20062:13;;;;;;;;;;;20058:136;;20099:19;:25;20119:4;20099:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;20128:19;:23;20148:2;20128:23;;;;;;;;;;;;;;;;;;;;;;;;;20099:52;20091:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;20058:136;20217:14;;;;;;;;;;;20214:1657;;;20277:7;:5;:7::i;:::-;20269:15;;:4;:15;;;;:49;;;;;20311:7;:5;:7::i;:::-;20305:13;;:2;:13;;;;20269:49;:86;;;;;20353:1;20339:16;;:2;:16;;;;20269:86;:128;;;;;20390:6;20376:21;;:2;:21;;;;20269:128;:158;;;;;20419:8;;;;;;;;;;;20418:9;20269:158;20247:1613;;;20601:20;;;;;;;;;;;20597:418;;;20700:12;20695:2;20653:28;:39;20682:9;20653:39;;;;;;;;;;;;;;;;:44;;;;:::i;:::-;:59;20645:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;20781:9;20767:24;;:2;:24;;;;:49;;;;;20809:6;20795:21;;:2;:21;;;;20767:49;20763:233;;;20886:12;20844:28;:39;20873:9;20844:39;;;;;;;;;;;;;;;:54;;;;20960:12;20925:28;:32;20954:2;20925:32;;;;;;;;;;;;;;;:47;;;;20763:233;20597:418;21083:25;:31;21109:4;21083:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;21119:31;:35;21151:2;21119:35;;;;;;;;;;;;;;;;;;;;;;;;;21118:36;21083:71;21079:766;;;21197:20;;21187:6;:30;;21179:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;21332:9;;21315:13;21325:2;21315:9;:13::i;:::-;21306:6;:22;;;;:::i;:::-;:35;;21298:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;21079:766;;;21450:25;:29;21476:2;21450:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;21484:31;:37;21516:4;21484:37;;;;;;;;;;;;;;;;;;;;;;;;;21483:38;21450:71;21446:399;;;21564:20;;21554:6;:30;;21546:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;21446:399;;;21690:31;:35;21722:2;21690:35;;;;;;;;;;;;;;;;;;;;;;;;;21686:159;;21784:9;;21767:13;21777:2;21767:9;:13::i;:::-;21758:6;:22;;;;:::i;:::-;:35;;21750:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;21686:159;21446:399;21079:766;20247:1613;20214:1657;21877:28;21908:24;21926:4;21908:9;:24::i;:::-;21877:55;;21953:12;21992:18;;21968:20;:42;;21953:57;;22041:7;:35;;;;;22065:11;;;;;;;;;;;22041:35;:61;;;;;22094:8;;;;;;;;;;;22093:9;22041:61;:110;;;;;22120:25;:31;22146:4;22120:31;;;;;;;;;;;;;;;;;;;;;;;;;22119:32;22041:110;:153;;;;;22169:19;:25;22189:4;22169:25;;;;;;;;;;;;;;;;;;;;;;;;;22168:26;22041:153;:194;;;;;22212:19;:23;22232:2;22212:23;;;;;;;;;;;;;;;;;;;;;;;;;22211:24;22041:194;22023:322;;;22273:4;22262:8;;:15;;;;;;;;;;;;;;;;;;22292:10;:8;:10::i;:::-;22328:5;22317:8;;:16;;;;;;;;;;;;;;;;;;22023:322;22357:12;22373:8;;;;;;;;;;;22372:9;22357:24;;22482:19;:25;22502:4;22482:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;22511:19;:23;22531:2;22511:23;;;;;;;;;;;;;;;;;;;;;;;;;22482:52;22479:99;;;22561:5;22551:15;;22479:99;22598:12;22689:7;22686:1259;;;22750:12;22736:10;;22715:18;;:31;;;;:::i;:::-;:47;;:117;;;;;22767:25;:29;22793:2;22767:29;;;;;;;;;;;;;;;;;;;;;;;;;:64;;;;22800:25;:31;22826:4;22800:31;;;;;;;;;;;;;;;;;;;;;;;;;22767:64;22715:117;22712:1076;;;12177:5;22868:12;;22859:6;:21;;;;:::i;:::-;:34;;;;:::i;:::-;22852:41;;22959:12;;22941:15;;22934:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;22912:18;;:59;;;;;;;:::i;:::-;;;;;;;;23039:12;;23020:16;;23013:4;:23;;;;:::i;:::-;:38;;;;:::i;:::-;22990:19;;:61;;;;;;;:::i;:::-;;;;;;;;23070:11;23087:2;23070:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22712:1076;;;23155:25;:29;23181:2;23155:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;23204:1;23188:13;;:17;23155:50;23151:637;;;12177:5;23241:13;;23232:6;:22;;;;:::i;:::-;:35;;;;:::i;:::-;23225:42;;23334:13;;23315:16;;23308:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;23286:18;;:61;;;;;;;:::i;:::-;;;;;;;;23416:13;;23396:17;;23389:4;:24;;;;:::i;:::-;:40;;;;:::i;:::-;23366:19;;:63;;;;;;;:::i;:::-;;;;;;;;23151:637;;;23504:25;:31;23530:4;23504:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;23554:1;23539:12;;:16;23504:51;23501:287;;;12177:5;23589:12;;23580:6;:21;;;;:::i;:::-;:34;;;;:::i;:::-;23573:41;;23680:12;;23662:15;;23655:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;23633:18;;:59;;;;;;;:::i;:::-;;;;;;;;23760:12;;23741:16;;23734:4;:23;;;;:::i;:::-;:38;;;;:::i;:::-;23711:19;;:61;;;;;;;:::i;:::-;;;;;;;;23501:287;23151:637;22712:1076;23814:1;23807:4;:8;23804:93;;;23839:42;23855:4;23869;23876;23839:15;:42::i;:::-;23804:93;23929:4;23919:14;;;;;:::i;:::-;;;22686:1259;23957:33;23973:4;23979:2;23983:6;23957:15;:33::i;:::-;19719:4279;;;;19606:4392;;;;:::o;6757:614::-;6915:1;6897:20;;:6;:20;;;6889:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;6999:1;6978:23;;:9;:23;;;6970:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;7054:21;7078:9;:17;7088:6;7078:17;;;;;;;;;;;;;;;;7054:41;;7131:6;7114:13;:23;;7106:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;7252:6;7236:13;:22;7216:9;:17;7226:6;7216:17;;;;;;;;;;;;;;;:42;;;;7304:6;7280:9;:20;7290:9;7280:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;7345:9;7328:35;;7337:6;7328:35;;;7356:6;7328:35;;;;;;:::i;:::-;;;;;;;;6878:493;6757:614;;;:::o;18656:237::-;18773:5;18739:25;:31;18765:4;18739:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18791:38;18817:4;18823:5;18791:25;:38::i;:::-;18879:5;18845:40;;18873:4;18845:40;;;;;;;;;;;;18656:237;;:::o;24535:761::-;24574:23;24600:24;24618:4;24600:9;:24::i;:::-;24574:50;;24635:25;24684:19;;24663:18;;:40;;;;:::i;:::-;24635:68;;24746:1;24727:15;:20;:46;;;;24772:1;24751:17;:22;24727:46;24724:60;;;24776:7;;;;24724:60;24822:1;24801:18;;:22;24798:396;;;24839:23;24904:17;24883:18;;24865:15;:36;;;;:::i;:::-;:56;;;;:::i;:::-;24839:82;;24936:55;24960:4;24967:6;24975:15;24936;:55::i;:::-;25018:6;25010:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25006:37;25076:15;25057:34;;;;;:::i;:::-;;;25127:18;;25106:39;;;;;:::i;:::-;;;25181:1;25160:18;:22;;;;24824:370;24798:396;25227:1;25209:15;:19;25206:83;;;25244:33;25261:15;25244:16;:33::i;:::-;25206:83;24563:733;;24535:761;:::o;24006:521::-;24134:21;24172:1;24158:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24134:40;;24203:4;24185;24190:1;24185:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;24229:9;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24219:4;24224:1;24219:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;24284:9;:60;;;24359:11;24385:1;24429:4;24456:16;;;;;;;;;;;24488:15;24284:230;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24061:466;24006:521;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:474::-;758:6;766;815:2;803:9;794:7;790:23;786:32;783:119;;;821:79;;:::i;:::-;783:119;941:1;966:53;1011:7;1002:6;991:9;987:22;966:53;:::i;:::-;956:63;;912:117;1068:2;1094:53;1139:7;1130:6;1119:9;1115:22;1094:53;:::i;:::-;1084:63;;1039:118;690:474;;;;;:::o;1170:99::-;1222:6;1256:5;1250:12;1240:22;;1170:99;;;:::o;1275:169::-;1359:11;1393:6;1388:3;1381:19;1433:4;1428:3;1424:14;1409:29;;1275:169;;;;:::o;1450:246::-;1531:1;1541:113;1555:6;1552:1;1549:13;1541:113;;;1640:1;1635:3;1631:11;1625:18;1621:1;1616:3;1612:11;1605:39;1577:2;1574:1;1570:10;1565:15;;1541:113;;;1688:1;1679:6;1674:3;1670:16;1663:27;1512:184;1450:246;;;:::o;1702:102::-;1743:6;1794:2;1790:7;1785:2;1778:5;1774:14;1770:28;1760:38;;1702:102;;;:::o;1810:377::-;1898:3;1926:39;1959:5;1926:39;:::i;:::-;1981:71;2045:6;2040:3;1981:71;:::i;:::-;1974:78;;2061:65;2119:6;2114:3;2107:4;2100:5;2096:16;2061:65;:::i;:::-;2151:29;2173:6;2151:29;:::i;:::-;2146:3;2142:39;2135:46;;1902:285;1810:377;;;;:::o;2193:313::-;2306:4;2344:2;2333:9;2329:18;2321:26;;2393:9;2387:4;2383:20;2379:1;2368:9;2364:17;2357:47;2421:78;2494:4;2485:6;2421:78;:::i;:::-;2413:86;;2193:313;;;;:::o;2512:126::-;2549:7;2589:42;2582:5;2578:54;2567:65;;2512:126;;;:::o;2644:60::-;2672:3;2693:5;2686:12;;2644:60;;;:::o;2710:142::-;2760:9;2793:53;2811:34;2820:24;2838:5;2820:24;:::i;:::-;2811:34;:::i;:::-;2793:53;:::i;:::-;2780:66;;2710:142;;;:::o;2858:126::-;2908:9;2941:37;2972:5;2941:37;:::i;:::-;2928:50;;2858:126;;;:::o;2990:144::-;3058:9;3091:37;3122:5;3091:37;:::i;:::-;3078:50;;2990:144;;;:::o;3140:167::-;3245:55;3294:5;3245:55;:::i;:::-;3240:3;3233:68;3140:167;;:::o;3313:258::-;3424:4;3462:2;3451:9;3447:18;3439:26;;3475:89;3561:1;3550:9;3546:17;3537:6;3475:89;:::i;:::-;3313:258;;;;:::o;3577:96::-;3614:7;3643:24;3661:5;3643:24;:::i;:::-;3632:35;;3577:96;;;:::o;3679:122::-;3752:24;3770:5;3752:24;:::i;:::-;3745:5;3742:35;3732:63;;3791:1;3788;3781:12;3732:63;3679:122;:::o;3807:139::-;3853:5;3891:6;3878:20;3869:29;;3907:33;3934:5;3907:33;:::i;:::-;3807:139;;;;:::o;3952:474::-;4020:6;4028;4077:2;4065:9;4056:7;4052:23;4048:32;4045:119;;;4083:79;;:::i;:::-;4045:119;4203:1;4228:53;4273:7;4264:6;4253:9;4249:22;4228:53;:::i;:::-;4218:63;;4174:117;4330:2;4356:53;4401:7;4392:6;4381:9;4377:22;4356:53;:::i;:::-;4346:63;;4301:118;3952:474;;;;;:::o;4432:90::-;4466:7;4509:5;4502:13;4495:21;4484:32;;4432:90;;;:::o;4528:109::-;4609:21;4624:5;4609:21;:::i;:::-;4604:3;4597:34;4528:109;;:::o;4643:210::-;4730:4;4768:2;4757:9;4753:18;4745:26;;4781:65;4843:1;4832:9;4828:17;4819:6;4781:65;:::i;:::-;4643:210;;;;:::o;4859:118::-;4946:24;4964:5;4946:24;:::i;:::-;4941:3;4934:37;4859:118;;:::o;4983:222::-;5076:4;5114:2;5103:9;5099:18;5091:26;;5127:71;5195:1;5184:9;5180:17;5171:6;5127:71;:::i;:::-;4983:222;;;;:::o;5211:329::-;5270:6;5319:2;5307:9;5298:7;5294:23;5290:32;5287:119;;;5325:79;;:::i;:::-;5287:119;5445:1;5470:53;5515:7;5506:6;5495:9;5491:22;5470:53;:::i;:::-;5460:63;;5416:117;5211:329;;;;:::o;5546:::-;5605:6;5654:2;5642:9;5633:7;5629:23;5625:32;5622:119;;;5660:79;;:::i;:::-;5622:119;5780:1;5805:53;5850:7;5841:6;5830:9;5826:22;5805:53;:::i;:::-;5795:63;;5751:117;5546:329;;;;:::o;5881:619::-;5958:6;5966;5974;6023:2;6011:9;6002:7;5998:23;5994:32;5991:119;;;6029:79;;:::i;:::-;5991:119;6149:1;6174:53;6219:7;6210:6;6199:9;6195:22;6174:53;:::i;:::-;6164:63;;6120:117;6276:2;6302:53;6347:7;6338:6;6327:9;6323:22;6302:53;:::i;:::-;6292:63;;6247:118;6404:2;6430:53;6475:7;6466:6;6455:9;6451:22;6430:53;:::i;:::-;6420:63;;6375:118;5881:619;;;;;:::o;6506:86::-;6541:7;6581:4;6574:5;6570:16;6559:27;;6506:86;;;:::o;6598:112::-;6681:22;6697:5;6681:22;:::i;:::-;6676:3;6669:35;6598:112;;:::o;6716:214::-;6805:4;6843:2;6832:9;6828:18;6820:26;;6856:67;6920:1;6909:9;6905:17;6896:6;6856:67;:::i;:::-;6716:214;;;;:::o;6936:118::-;7023:24;7041:5;7023:24;:::i;:::-;7018:3;7011:37;6936:118;;:::o;7060:222::-;7153:4;7191:2;7180:9;7176:18;7168:26;;7204:71;7272:1;7261:9;7257:17;7248:6;7204:71;:::i;:::-;7060:222;;;;:::o;7288:117::-;7397:1;7394;7387:12;7411:180;7459:77;7456:1;7449:88;7556:4;7553:1;7546:15;7580:4;7577:1;7570:15;7597:281;7680:27;7702:4;7680:27;:::i;:::-;7672:6;7668:40;7810:6;7798:10;7795:22;7774:18;7762:10;7759:34;7756:62;7753:88;;;7821:18;;:::i;:::-;7753:88;7861:10;7857:2;7850:22;7640:238;7597:281;;:::o;7884:129::-;7918:6;7945:20;;:::i;:::-;7935:30;;7974:33;8002:4;7994:6;7974:33;:::i;:::-;7884:129;;;:::o;8019:311::-;8096:4;8186:18;8178:6;8175:30;8172:56;;;8208:18;;:::i;:::-;8172:56;8258:4;8250:6;8246:17;8238:25;;8318:4;8312;8308:15;8300:23;;8019:311;;;:::o;8336:117::-;8445:1;8442;8435:12;8476:710;8572:5;8597:81;8613:64;8670:6;8613:64;:::i;:::-;8597:81;:::i;:::-;8588:90;;8698:5;8727:6;8720:5;8713:21;8761:4;8754:5;8750:16;8743:23;;8814:4;8806:6;8802:17;8794:6;8790:30;8843:3;8835:6;8832:15;8829:122;;;8862:79;;:::i;:::-;8829:122;8977:6;8960:220;8994:6;8989:3;8986:15;8960:220;;;9069:3;9098:37;9131:3;9119:10;9098:37;:::i;:::-;9093:3;9086:50;9165:4;9160:3;9156:14;9149:21;;9036:144;9020:4;9015:3;9011:14;9004:21;;8960:220;;;8964:21;8578:608;;8476:710;;;;;:::o;9209:370::-;9280:5;9329:3;9322:4;9314:6;9310:17;9306:27;9296:122;;9337:79;;:::i;:::-;9296:122;9454:6;9441:20;9479:94;9569:3;9561:6;9554:4;9546:6;9542:17;9479:94;:::i;:::-;9470:103;;9286:293;9209:370;;;;:::o;9585:311::-;9662:4;9752:18;9744:6;9741:30;9738:56;;;9774:18;;:::i;:::-;9738:56;9824:4;9816:6;9812:17;9804:25;;9884:4;9878;9874:15;9866:23;;9585:311;;;:::o;9919:710::-;10015:5;10040:81;10056:64;10113:6;10056:64;:::i;:::-;10040:81;:::i;:::-;10031:90;;10141:5;10170:6;10163:5;10156:21;10204:4;10197:5;10193:16;10186:23;;10257:4;10249:6;10245:17;10237:6;10233:30;10286:3;10278:6;10275:15;10272:122;;;10305:79;;:::i;:::-;10272:122;10420:6;10403:220;10437:6;10432:3;10429:15;10403:220;;;10512:3;10541:37;10574:3;10562:10;10541:37;:::i;:::-;10536:3;10529:50;10608:4;10603:3;10599:14;10592:21;;10479:144;10463:4;10458:3;10454:14;10447:21;;10403:220;;;10407:21;10021:608;;9919:710;;;;;:::o;10652:370::-;10723:5;10772:3;10765:4;10757:6;10753:17;10749:27;10739:122;;10780:79;;:::i;:::-;10739:122;10897:6;10884:20;10922:94;11012:3;11004:6;10997:4;10989:6;10985:17;10922:94;:::i;:::-;10913:103;;10729:293;10652:370;;;;:::o;11028:894::-;11146:6;11154;11203:2;11191:9;11182:7;11178:23;11174:32;11171:119;;;11209:79;;:::i;:::-;11171:119;11357:1;11346:9;11342:17;11329:31;11387:18;11379:6;11376:30;11373:117;;;11409:79;;:::i;:::-;11373:117;11514:78;11584:7;11575:6;11564:9;11560:22;11514:78;:::i;:::-;11504:88;;11300:302;11669:2;11658:9;11654:18;11641:32;11700:18;11692:6;11689:30;11686:117;;;11722:79;;:::i;:::-;11686:117;11827:78;11897:7;11888:6;11877:9;11873:22;11827:78;:::i;:::-;11817:88;;11612:303;11028:894;;;;;:::o;11928:116::-;11998:21;12013:5;11998:21;:::i;:::-;11991:5;11988:32;11978:60;;12034:1;12031;12024:12;11978:60;11928:116;:::o;12050:133::-;12093:5;12131:6;12118:20;12109:29;;12147:30;12171:5;12147:30;:::i;:::-;12050:133;;;;:::o;12189:468::-;12254:6;12262;12311:2;12299:9;12290:7;12286:23;12282:32;12279:119;;;12317:79;;:::i;:::-;12279:119;12437:1;12462:53;12507:7;12498:6;12487:9;12483:22;12462:53;:::i;:::-;12452:63;;12408:117;12564:2;12590:50;12632:7;12623:6;12612:9;12608:22;12590:50;:::i;:::-;12580:60;;12535:115;12189:468;;;;;:::o;12663:323::-;12719:6;12768:2;12756:9;12747:7;12743:23;12739:32;12736:119;;;12774:79;;:::i;:::-;12736:119;12894:1;12919:50;12961:7;12952:6;12941:9;12937:22;12919:50;:::i;:::-;12909:60;;12865:114;12663:323;;;;:::o;12992:117::-;13101:1;13098;13091:12;13132:568;13205:8;13215:6;13265:3;13258:4;13250:6;13246:17;13242:27;13232:122;;13273:79;;:::i;:::-;13232:122;13386:6;13373:20;13363:30;;13416:18;13408:6;13405:30;13402:117;;;13438:79;;:::i;:::-;13402:117;13552:4;13544:6;13540:17;13528:29;;13606:3;13598:4;13590:6;13586:17;13576:8;13572:32;13569:41;13566:128;;;13613:79;;:::i;:::-;13566:128;13132:568;;;;;:::o;13706:698::-;13798:6;13806;13814;13863:2;13851:9;13842:7;13838:23;13834:32;13831:119;;;13869:79;;:::i;:::-;13831:119;14017:1;14006:9;14002:17;13989:31;14047:18;14039:6;14036:30;14033:117;;;14069:79;;:::i;:::-;14033:117;14182:80;14254:7;14245:6;14234:9;14230:22;14182:80;:::i;:::-;14164:98;;;;13960:312;14311:2;14337:50;14379:7;14370:6;14359:9;14355:22;14337:50;:::i;:::-;14327:60;;14282:115;13706:698;;;;;:::o;14410:539::-;14494:6;14543:2;14531:9;14522:7;14518:23;14514:32;14511:119;;;14549:79;;:::i;:::-;14511:119;14697:1;14686:9;14682:17;14669:31;14727:18;14719:6;14716:30;14713:117;;;14749:79;;:::i;:::-;14713:117;14854:78;14924:7;14915:6;14904:9;14900:22;14854:78;:::i;:::-;14844:88;;14640:302;14410:539;;;;:::o;14955:474::-;15023:6;15031;15080:2;15068:9;15059:7;15055:23;15051:32;15048:119;;;15086:79;;:::i;:::-;15048:119;15206:1;15231:53;15276:7;15267:6;15256:9;15252:22;15231:53;:::i;:::-;15221:63;;15177:117;15333:2;15359:53;15404:7;15395:6;15384:9;15380:22;15359:53;:::i;:::-;15349:63;;15304:118;14955:474;;;;;:::o;15435:182::-;15575:34;15571:1;15563:6;15559:14;15552:58;15435:182;:::o;15623:366::-;15765:3;15786:67;15850:2;15845:3;15786:67;:::i;:::-;15779:74;;15862:93;15951:3;15862:93;:::i;:::-;15980:2;15975:3;15971:12;15964:19;;15623:366;;;:::o;15995:419::-;16161:4;16199:2;16188:9;16184:18;16176:26;;16248:9;16242:4;16238:20;16234:1;16223:9;16219:17;16212:47;16276:131;16402:4;16276:131;:::i;:::-;16268:139;;15995:419;;;:::o;16420:180::-;16468:77;16465:1;16458:88;16565:4;16562:1;16555:15;16589:4;16586:1;16579:15;16606:191;16646:3;16665:20;16683:1;16665:20;:::i;:::-;16660:25;;16699:20;16717:1;16699:20;:::i;:::-;16694:25;;16742:1;16739;16735:9;16728:16;;16763:3;16760:1;16757:10;16754:36;;;16770:18;;:::i;:::-;16754:36;16606:191;;;;:::o;16803:180::-;16943:32;16939:1;16931:6;16927:14;16920:56;16803:180;:::o;16989:366::-;17131:3;17152:67;17216:2;17211:3;17152:67;:::i;:::-;17145:74;;17228:93;17317:3;17228:93;:::i;:::-;17346:2;17341:3;17337:12;17330:19;;16989:366;;;:::o;17361:419::-;17527:4;17565:2;17554:9;17550:18;17542:26;;17614:9;17608:4;17604:20;17600:1;17589:9;17585:17;17578:47;17642:131;17768:4;17642:131;:::i;:::-;17634:139;;17361:419;;;:::o;17786:166::-;17926:18;17922:1;17914:6;17910:14;17903:42;17786:166;:::o;17958:366::-;18100:3;18121:67;18185:2;18180:3;18121:67;:::i;:::-;18114:74;;18197:93;18286:3;18197:93;:::i;:::-;18315:2;18310:3;18306:12;18299:19;;17958:366;;;:::o;18330:419::-;18496:4;18534:2;18523:9;18519:18;18511:26;;18583:9;18577:4;18573:20;18569:1;18558:9;18554:17;18547:47;18611:131;18737:4;18611:131;:::i;:::-;18603:139;;18330:419;;;:::o;18755:180::-;18803:77;18800:1;18793:88;18900:4;18897:1;18890:15;18924:4;18921:1;18914:15;18941:233;18980:3;19003:24;19021:5;19003:24;:::i;:::-;18994:33;;19049:66;19042:5;19039:77;19036:103;;19119:18;;:::i;:::-;19036:103;19166:1;19159:5;19155:13;19148:20;;18941:233;;;:::o;19180:180::-;19228:77;19225:1;19218:88;19325:4;19322:1;19315:15;19349:4;19346:1;19339:15;19366:320;19410:6;19447:1;19441:4;19437:12;19427:22;;19494:1;19488:4;19484:12;19515:18;19505:81;;19571:4;19563:6;19559:17;19549:27;;19505:81;19633:2;19625:6;19622:14;19602:18;19599:38;19596:84;;19652:18;;:::i;:::-;19596:84;19417:269;19366:320;;;:::o;19692:102::-;19734:8;19781:5;19778:1;19774:13;19753:34;;19692:102;;;:::o;19800:848::-;19861:5;19868:4;19892:6;19883:15;;19916:5;19907:14;;19930:712;19951:1;19941:8;19938:15;19930:712;;;20046:4;20041:3;20037:14;20031:4;20028:24;20025:50;;;20055:18;;:::i;:::-;20025:50;20105:1;20095:8;20091:16;20088:451;;;20520:4;20513:5;20509:16;20500:25;;20088:451;20570:4;20564;20560:15;20552:23;;20600:32;20623:8;20600:32;:::i;:::-;20588:44;;19930:712;;;19800:848;;;;;;;:::o;20654:1073::-;20708:5;20899:8;20889:40;;20920:1;20911:10;;20922:5;;20889:40;20948:4;20938:36;;20965:1;20956:10;;20967:5;;20938:36;21034:4;21082:1;21077:27;;;;21118:1;21113:191;;;;21027:277;;21077:27;21095:1;21086:10;;21097:5;;;21113:191;21158:3;21148:8;21145:17;21142:43;;;21165:18;;:::i;:::-;21142:43;21214:8;21211:1;21207:16;21198:25;;21249:3;21242:5;21239:14;21236:40;;;21256:18;;:::i;:::-;21236:40;21289:5;;;21027:277;;21413:2;21403:8;21400:16;21394:3;21388:4;21385:13;21381:36;21363:2;21353:8;21350:16;21345:2;21339:4;21336:12;21332:35;21316:111;21313:246;;;21469:8;21463:4;21459:19;21450:28;;21504:3;21497:5;21494:14;21491:40;;;21511:18;;:::i;:::-;21491:40;21544:5;;21313:246;21584:42;21622:3;21612:8;21606:4;21603:1;21584:42;:::i;:::-;21569:57;;;;21658:4;21653:3;21649:14;21642:5;21639:25;21636:51;;;21667:18;;:::i;:::-;21636:51;21716:4;21709:5;21705:16;21696:25;;20654:1073;;;;;;:::o;21733:281::-;21791:5;21815:23;21833:4;21815:23;:::i;:::-;21807:31;;21859:25;21875:8;21859:25;:::i;:::-;21847:37;;21903:104;21940:66;21930:8;21924:4;21903:104;:::i;:::-;21894:113;;21733:281;;;;:::o;22020:410::-;22060:7;22083:20;22101:1;22083:20;:::i;:::-;22078:25;;22117:20;22135:1;22117:20;:::i;:::-;22112:25;;22172:1;22169;22165:9;22194:30;22212:11;22194:30;:::i;:::-;22183:41;;22373:1;22364:7;22360:15;22357:1;22354:22;22334:1;22327:9;22307:83;22284:139;;22403:18;;:::i;:::-;22284:139;22068:362;22020:410;;;;:::o;22436:180::-;22484:77;22481:1;22474:88;22581:4;22578:1;22571:15;22605:4;22602:1;22595:15;22622:185;22662:1;22679:20;22697:1;22679:20;:::i;:::-;22674:25;;22713:20;22731:1;22713:20;:::i;:::-;22708:25;;22752:1;22742:35;;22757:18;;:::i;:::-;22742:35;22799:1;22796;22792:9;22787:14;;22622:185;;;;:::o;22813:234::-;22953:34;22949:1;22941:6;22937:14;22930:58;23022:17;23017:2;23009:6;23005:15;22998:42;22813:234;:::o;23053:366::-;23195:3;23216:67;23280:2;23275:3;23216:67;:::i;:::-;23209:74;;23292:93;23381:3;23292:93;:::i;:::-;23410:2;23405:3;23401:12;23394:19;;23053:366;;;:::o;23425:419::-;23591:4;23629:2;23618:9;23614:18;23606:26;;23678:9;23672:4;23668:20;23664:1;23653:9;23649:17;23642:47;23706:131;23832:4;23706:131;:::i;:::-;23698:139;;23425:419;;;:::o;23850:227::-;23990:34;23986:1;23978:6;23974:14;23967:58;24059:10;24054:2;24046:6;24042:15;24035:35;23850:227;:::o;24083:366::-;24225:3;24246:67;24310:2;24305:3;24246:67;:::i;:::-;24239:74;;24322:93;24411:3;24322:93;:::i;:::-;24440:2;24435:3;24431:12;24424:19;;24083:366;;;:::o;24455:419::-;24621:4;24659:2;24648:9;24644:18;24636:26;;24708:9;24702:4;24698:20;24694:1;24683:9;24679:17;24672:47;24736:131;24862:4;24736:131;:::i;:::-;24728:139;;24455:419;;;:::o;24880:174::-;25020:26;25016:1;25008:6;25004:14;24997:50;24880:174;:::o;25060:366::-;25202:3;25223:67;25287:2;25282:3;25223:67;:::i;:::-;25216:74;;25299:93;25388:3;25299:93;:::i;:::-;25417:2;25412:3;25408:12;25401:19;;25060:366;;;:::o;25432:419::-;25598:4;25636:2;25625:9;25621:18;25613:26;;25685:9;25679:4;25675:20;25671:1;25660:9;25656:17;25649:47;25713:131;25839:4;25713:131;:::i;:::-;25705:139;;25432:419;;;:::o;25857:180::-;25997:32;25993:1;25985:6;25981:14;25974:56;25857:180;:::o;26043:366::-;26185:3;26206:67;26270:2;26265:3;26206:67;:::i;:::-;26199:74;;26282:93;26371:3;26282:93;:::i;:::-;26400:2;26395:3;26391:12;26384:19;;26043:366;;;:::o;26415:419::-;26581:4;26619:2;26608:9;26604:18;26596:26;;26668:9;26662:4;26658:20;26654:1;26643:9;26639:17;26632:47;26696:131;26822:4;26696:131;:::i;:::-;26688:139;;26415:419;;;:::o;26840:241::-;26980:34;26976:1;26968:6;26964:14;26957:58;27049:24;27044:2;27036:6;27032:15;27025:49;26840:241;:::o;27087:366::-;27229:3;27250:67;27314:2;27309:3;27250:67;:::i;:::-;27243:74;;27326:93;27415:3;27326:93;:::i;:::-;27444:2;27439:3;27435:12;27428:19;;27087:366;;;:::o;27459:419::-;27625:4;27663:2;27652:9;27648:18;27640:26;;27712:9;27706:4;27702:20;27698:1;27687:9;27683:17;27676:47;27740:131;27866:4;27740:131;:::i;:::-;27732:139;;27459:419;;;:::o;27884:174::-;28024:26;28020:1;28012:6;28008:14;28001:50;27884:174;:::o;28064:366::-;28206:3;28227:67;28291:2;28286:3;28227:67;:::i;:::-;28220:74;;28303:93;28392:3;28303:93;:::i;:::-;28421:2;28416:3;28412:12;28405:19;;28064:366;;;:::o;28436:419::-;28602:4;28640:2;28629:9;28625:18;28617:26;;28689:9;28683:4;28679:20;28675:1;28664:9;28660:17;28653:47;28717:131;28843:4;28717:131;:::i;:::-;28709:139;;28436:419;;;:::o;28861:293::-;29001:34;28997:1;28989:6;28985:14;28978:58;29070:34;29065:2;29057:6;29053:15;29046:59;29139:7;29134:2;29126:6;29122:15;29115:32;28861:293;:::o;29160:366::-;29302:3;29323:67;29387:2;29382:3;29323:67;:::i;:::-;29316:74;;29399:93;29488:3;29399:93;:::i;:::-;29517:2;29512:3;29508:12;29501:19;;29160:366;;;:::o;29532:419::-;29698:4;29736:2;29725:9;29721:18;29713:26;;29785:9;29779:4;29775:20;29771:1;29760:9;29756:17;29749:47;29813:131;29939:4;29813:131;:::i;:::-;29805:139;;29532:419;;;:::o;29957:224::-;30097:34;30093:1;30085:6;30081:14;30074:58;30166:7;30161:2;30153:6;30149:15;30142:32;29957:224;:::o;30187:366::-;30329:3;30350:67;30414:2;30409:3;30350:67;:::i;:::-;30343:74;;30426:93;30515:3;30426:93;:::i;:::-;30544:2;30539:3;30535:12;30528:19;;30187:366;;;:::o;30559:419::-;30725:4;30763:2;30752:9;30748:18;30740:26;;30812:9;30806:4;30802:20;30798:1;30787:9;30783:17;30776:47;30840:131;30966:4;30840:131;:::i;:::-;30832:139;;30559:419;;;:::o;30984:221::-;31124:34;31120:1;31112:6;31108:14;31101:58;31193:4;31188:2;31180:6;31176:15;31169:29;30984:221;:::o;31211:366::-;31353:3;31374:67;31438:2;31433:3;31374:67;:::i;:::-;31367:74;;31450:93;31539:3;31450:93;:::i;:::-;31568:2;31563:3;31559:12;31552:19;;31211:366;;;:::o;31583:419::-;31749:4;31787:2;31776:9;31772:18;31764:26;;31836:9;31830:4;31826:20;31822:1;31811:9;31807:17;31800:47;31864:131;31990:4;31864:131;:::i;:::-;31856:139;;31583:419;;;:::o;32008:184::-;32107:11;32141:6;32136:3;32129:19;32181:4;32176:3;32172:14;32157:29;;32008:184;;;;:::o;32198:102::-;32267:4;32290:3;32282:11;;32198:102;;;:::o;32306:108::-;32383:24;32401:5;32383:24;:::i;:::-;32378:3;32371:37;32306:108;;:::o;32420:179::-;32489:10;32510:46;32552:3;32544:6;32510:46;:::i;:::-;32588:4;32583:3;32579:14;32565:28;;32420:179;;;;:::o;32605:122::-;32657:5;32682:39;32717:2;32712:3;32708:12;32703:3;32682:39;:::i;:::-;32673:48;;32605:122;;;;:::o;32733:115::-;32805:4;32837;32832:3;32828:14;32820:22;;32733:115;;;:::o;32884:699::-;33013:3;33036:86;33115:6;33110:3;33036:86;:::i;:::-;33029:93;;33146:58;33198:5;33146:58;:::i;:::-;33227:7;33258:1;33243:315;33268:6;33265:1;33262:13;33243:315;;;33338:42;33373:6;33364:7;33338:42;:::i;:::-;33400:63;33459:3;33444:13;33400:63;:::i;:::-;33393:70;;33486:62;33541:6;33486:62;:::i;:::-;33476:72;;33303:255;33290:1;33287;33283:9;33278:14;;33243:315;;;33247:14;33574:3;33567:10;;33018:565;;32884:699;;;;;:::o;33589:491::-;33764:4;33802:2;33791:9;33787:18;33779:26;;33851:9;33845:4;33841:20;33837:1;33826:9;33822:17;33815:47;33879:118;33992:4;33983:6;33975;33879:118;:::i;:::-;33871:126;;34007:66;34069:2;34058:9;34054:18;34045:6;34007:66;:::i;:::-;33589:491;;;;;;:::o;34086:225::-;34226:34;34222:1;34214:6;34210:14;34203:58;34295:8;34290:2;34282:6;34278:15;34271:33;34086:225;:::o;34317:366::-;34459:3;34480:67;34544:2;34539:3;34480:67;:::i;:::-;34473:74;;34556:93;34645:3;34556:93;:::i;:::-;34674:2;34669:3;34665:12;34658:19;;34317:366;;;:::o;34689:419::-;34855:4;34893:2;34882:9;34878:18;34870:26;;34942:9;34936:4;34932:20;34928:1;34917:9;34913:17;34906:47;34970:131;35096:4;34970:131;:::i;:::-;34962:139;;34689:419;;;:::o;35114:223::-;35254:34;35250:1;35242:6;35238:14;35231:58;35323:6;35318:2;35310:6;35306:15;35299:31;35114:223;:::o;35343:366::-;35485:3;35506:67;35570:2;35565:3;35506:67;:::i;:::-;35499:74;;35582:93;35671:3;35582:93;:::i;:::-;35700:2;35695:3;35691:12;35684:19;;35343:366;;;:::o;35715:419::-;35881:4;35919:2;35908:9;35904:18;35896:26;;35968:9;35962:4;35958:20;35954:1;35943:9;35939:17;35932:47;35996:131;36122:4;35996:131;:::i;:::-;35988:139;;35715:419;;;:::o;36140:221::-;36280:34;36276:1;36268:6;36264:14;36257:58;36349:4;36344:2;36336:6;36332:15;36325:29;36140:221;:::o;36367:366::-;36509:3;36530:67;36594:2;36589:3;36530:67;:::i;:::-;36523:74;;36606:93;36695:3;36606:93;:::i;:::-;36724:2;36719:3;36715:12;36708:19;;36367:366;;;:::o;36739:419::-;36905:4;36943:2;36932:9;36928:18;36920:26;;36992:9;36986:4;36982:20;36978:1;36967:9;36963:17;36956:47;37020:131;37146:4;37020:131;:::i;:::-;37012:139;;36739:419;;;:::o;37164:224::-;37304:34;37300:1;37292:6;37288:14;37281:58;37373:7;37368:2;37360:6;37356:15;37349:32;37164:224;:::o;37394:366::-;37536:3;37557:67;37621:2;37616:3;37557:67;:::i;:::-;37550:74;;37633:93;37722:3;37633:93;:::i;:::-;37751:2;37746:3;37742:12;37735:19;;37394:366;;;:::o;37766:419::-;37932:4;37970:2;37959:9;37955:18;37947:26;;38019:9;38013:4;38009:20;38005:1;37994:9;37990:17;37983:47;38047:131;38173:4;38047:131;:::i;:::-;38039:139;;37766:419;;;:::o;38191:222::-;38331:34;38327:1;38319:6;38315:14;38308:58;38400:5;38395:2;38387:6;38383:15;38376:30;38191:222;:::o;38419:366::-;38561:3;38582:67;38646:2;38641:3;38582:67;:::i;:::-;38575:74;;38658:93;38747:3;38658:93;:::i;:::-;38776:2;38771:3;38767:12;38760:19;;38419:366;;;:::o;38791:419::-;38957:4;38995:2;38984:9;38980:18;38972:26;;39044:9;39038:4;39034:20;39030:1;39019:9;39015:17;39008:47;39072:131;39198:4;39072:131;:::i;:::-;39064:139;;38791:419;;;:::o;39216:157::-;39356:9;39352:1;39344:6;39340:14;39333:33;39216:157;:::o;39379:365::-;39521:3;39542:66;39606:1;39601:3;39542:66;:::i;:::-;39535:73;;39617:93;39706:3;39617:93;:::i;:::-;39735:2;39730:3;39726:12;39719:19;;39379:365;;;:::o;39750:419::-;39916:4;39954:2;39943:9;39939:18;39931:26;;40003:9;39997:4;39993:20;39989:1;39978:9;39974:17;39967:47;40031:131;40157:4;40031:131;:::i;:::-;40023:139;;39750:419;;;:::o;40175:176::-;40315:28;40311:1;40303:6;40299:14;40292:52;40175:176;:::o;40357:366::-;40499:3;40520:67;40584:2;40579:3;40520:67;:::i;:::-;40513:74;;40596:93;40685:3;40596:93;:::i;:::-;40714:2;40709:3;40705:12;40698:19;;40357:366;;;:::o;40729:419::-;40895:4;40933:2;40922:9;40918:18;40910:26;;40982:9;40976:4;40972:20;40968:1;40957:9;40953:17;40946:47;41010:131;41136:4;41010:131;:::i;:::-;41002:139;;40729:419;;;:::o;41154:173::-;41294:25;41290:1;41282:6;41278:14;41271:49;41154:173;:::o;41333:366::-;41475:3;41496:67;41560:2;41555:3;41496:67;:::i;:::-;41489:74;;41572:93;41661:3;41572:93;:::i;:::-;41690:2;41685:3;41681:12;41674:19;;41333:366;;;:::o;41705:419::-;41871:4;41909:2;41898:9;41894:18;41886:26;;41958:9;41952:4;41948:20;41944:1;41933:9;41929:17;41922:47;41986:131;42112:4;41986:131;:::i;:::-;41978:139;;41705:419;;;:::o;42130:240::-;42270:34;42266:1;42258:6;42254:14;42247:58;42339:23;42334:2;42326:6;42322:15;42315:48;42130:240;:::o;42376:366::-;42518:3;42539:67;42603:2;42598:3;42539:67;:::i;:::-;42532:74;;42615:93;42704:3;42615:93;:::i;:::-;42733:2;42728:3;42724:12;42717:19;;42376:366;;;:::o;42748:419::-;42914:4;42952:2;42941:9;42937:18;42929:26;;43001:9;42995:4;42991:20;42987:1;42976:9;42972:17;42965:47;43029:131;43155:4;43029:131;:::i;:::-;43021:139;;42748:419;;;:::o;43173:177::-;43313:29;43309:1;43301:6;43297:14;43290:53;43173:177;:::o;43356:366::-;43498:3;43519:67;43583:2;43578:3;43519:67;:::i;:::-;43512:74;;43595:93;43684:3;43595:93;:::i;:::-;43713:2;43708:3;43704:12;43697:19;;43356:366;;;:::o;43728:419::-;43894:4;43932:2;43921:9;43917:18;43909:26;;43981:9;43975:4;43971:20;43967:1;43956:9;43952:17;43945:47;44009:131;44135:4;44009:131;:::i;:::-;44001:139;;43728:419;;;:::o;44153:241::-;44293:34;44289:1;44281:6;44277:14;44270:58;44362:24;44357:2;44349:6;44345:15;44338:49;44153:241;:::o;44400:366::-;44542:3;44563:67;44627:2;44622:3;44563:67;:::i;:::-;44556:74;;44639:93;44728:3;44639:93;:::i;:::-;44757:2;44752:3;44748:12;44741:19;;44400:366;;;:::o;44772:419::-;44938:4;44976:2;44965:9;44961:18;44953:26;;45025:9;45019:4;45015:20;45011:1;45000:9;44996:17;44989:47;45053:131;45179:4;45053:131;:::i;:::-;45045:139;;44772:419;;;:::o;45197:194::-;45237:4;45257:20;45275:1;45257:20;:::i;:::-;45252:25;;45291:20;45309:1;45291:20;:::i;:::-;45286:25;;45335:1;45332;45328:9;45320:17;;45359:1;45353:4;45350:11;45347:37;;;45364:18;;:::i;:::-;45347:37;45197:194;;;;:::o;45397:225::-;45537:34;45533:1;45525:6;45521:14;45514:58;45606:8;45601:2;45593:6;45589:15;45582:33;45397:225;:::o;45628:366::-;45770:3;45791:67;45855:2;45850:3;45791:67;:::i;:::-;45784:74;;45867:93;45956:3;45867:93;:::i;:::-;45985:2;45980:3;45976:12;45969:19;;45628:366;;;:::o;46000:419::-;46166:4;46204:2;46193:9;46189:18;46181:26;;46253:9;46247:4;46243:20;46239:1;46228:9;46224:17;46217:47;46281:131;46407:4;46281:131;:::i;:::-;46273:139;;46000:419;;;:::o;46425:143::-;46482:5;46513:6;46507:13;46498:22;;46529:33;46556:5;46529:33;:::i;:::-;46425:143;;;;:::o;46574:351::-;46644:6;46693:2;46681:9;46672:7;46668:23;46664:32;46661:119;;;46699:79;;:::i;:::-;46661:119;46819:1;46844:64;46900:7;46891:6;46880:9;46876:22;46844:64;:::i;:::-;46834:74;;46790:128;46574:351;;;;:::o;46931:85::-;46976:7;47005:5;46994:16;;46931:85;;;:::o;47022:158::-;47080:9;47113:61;47131:42;47140:32;47166:5;47140:32;:::i;:::-;47131:42;:::i;:::-;47113:61;:::i;:::-;47100:74;;47022:158;;;:::o;47186:147::-;47281:45;47320:5;47281:45;:::i;:::-;47276:3;47269:58;47186:147;;:::o;47339:114::-;47406:6;47440:5;47434:12;47424:22;;47339:114;;;:::o;47459:132::-;47526:4;47549:3;47541:11;;47579:4;47574:3;47570:14;47562:22;;47459:132;;;:::o;47597:113::-;47667:4;47699;47694:3;47690:14;47682:22;;47597:113;;;:::o;47746:732::-;47865:3;47894:54;47942:5;47894:54;:::i;:::-;47964:86;48043:6;48038:3;47964:86;:::i;:::-;47957:93;;48074:56;48124:5;48074:56;:::i;:::-;48153:7;48184:1;48169:284;48194:6;48191:1;48188:13;48169:284;;;48270:6;48264:13;48297:63;48356:3;48341:13;48297:63;:::i;:::-;48290:70;;48383:60;48436:6;48383:60;:::i;:::-;48373:70;;48229:224;48216:1;48213;48209:9;48204:14;;48169:284;;;48173:14;48469:3;48462:10;;47870:608;;;47746:732;;;;:::o;48484:831::-;48747:4;48785:3;48774:9;48770:19;48762:27;;48799:71;48867:1;48856:9;48852:17;48843:6;48799:71;:::i;:::-;48880:80;48956:2;48945:9;48941:18;48932:6;48880:80;:::i;:::-;49007:9;49001:4;48997:20;48992:2;48981:9;48977:18;48970:48;49035:108;49138:4;49129:6;49035:108;:::i;:::-;49027:116;;49153:72;49221:2;49210:9;49206:18;49197:6;49153:72;:::i;:::-;49235:73;49303:3;49292:9;49288:19;49279:6;49235:73;:::i;:::-;48484:831;;;;;;;;:::o

Swarm Source

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