ETH Price: $3,268.86 (+0.80%)
Gas: 1 Gwei

Token

HermioneHilaryAdrenochromePizzagate666Inu (MONERO)
 

Overview

Max Total Supply

1,000,000,000 MONERO

Holders

51

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
14,478,229.467999645183757984 MONERO

Value
$0.00
0x189c3788a2c3e9fee43204537b31cbc4be07e6bb
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:
hhap666i

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-08-14
*/

/* 

TICKER IS $MONERO

Telegram: https://t.me/hhap666i

Twitter: https://twitter.com/hhap66i 

Website: https://hhap666i.wtf 

*/


//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 IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

interface 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) internal _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The defaut value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount)
        public
        virtual
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount)
        public
        virtual
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(
            currentAllowance >= amount,
            "ERC20: transfer amount exceeds allowance"
        );
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue)
        public
        virtual
        returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender] + addedValue
        );
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        virtual
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    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"
        );
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    /** This function will be used to generate the total supply
     * while deploying the contract
     *
     * This function can never be called again after deploying contract
     */
    function _tokengeneration(address account, uint256 amount)
        internal
        virtual
    {
        _totalSupply = amount;
        _balances[account] = amount;
        emit Transfer(address(0), account, amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    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);
    }
}

library Address {
    function sendValue(address payable recipient, uint256 amount) internal {
        require(
            address(this).balance >= amount,
            "Address: insufficient balance"
        );

        (bool success, ) = recipient.call{value: amount}("");
        require(
            success,
            "Address: unable to send value, recipient may have reverted"
        );
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        _setOwner(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

 contract hhap666i is ERC20, Ownable {
    using Address for address payable;

    IRouter public router;
    address public pair;

    bool private _interlock = false;
    bool private providingLiquidity = true;
    bool public tradingEnabled = false;

    uint256 private maxThreshold = 10000000 * 10**18; // 1%
    uint256 private minThrehold = 100000 * 10**18; // 0.01%
    
    uint256 public MaxTxAmount = 20000000 * 10**18; // 2%
    uint256 public MaxWalletSize = 20000000 * 10**18; // 2%
    
    address public marketingWallet = 0x377AFf97c3Da0fB91FBF1520fFF971a8AcC0d5A1;
    address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

    struct Taxes {
        uint256 marketing;
        uint256 liquidity;
    }

    Taxes private taxes = Taxes(20, 0);
    Taxes private sellTaxes = Taxes(35, 0);

    uint256 public BuyTaxes = taxes.marketing + taxes.liquidity;
    uint256 public SellTaxes = sellTaxes.marketing + sellTaxes.liquidity;

    mapping(address => bool) public exemptFee;
    mapping(address => bool) private isearlybuyer;

    event MaxTxUpdated(uint256 MaxWalletSize, uint256 MaxTxAmount);
    event BuyTaxesUpdated(uint256 marketing,  uint256 liquidity);
    event SellTaxesUpdated(uint256 marketing, uint256 liquidity);
   
    modifier lockTheSwap() {
        if (!_interlock) {
            _interlock = true;
            _;
            _interlock = false;
        }
    }

    constructor() ERC20("HermioneHilaryAdrenochromePizzagate666Inu", "MONERO") {
        _tokengeneration(msg.sender, 1000000000 * 10**decimals());
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this),_router.WETH());
        router = _router;
        pair = _pair;
        
        exemptFee[msg.sender] = true;
        exemptFee[address(this)] = true;
        exemptFee[marketingWallet] = true;
        exemptFee[deadWallet] = true;
    }

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

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

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(
            currentAllowance >= amount,
            "ERC20: transfer amount exceeds allowance"
        );
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        override
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue,"ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

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

    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
         require(!isearlybuyer[sender] && !isearlybuyer[recipient],
            "You can't transfer tokens"
        );
      
       if (!exemptFee[sender] && !exemptFee[recipient]) {
            require(tradingEnabled, "Trading not enabled");
        }
        
        if (sender == pair && recipient != address(router) && !exemptFee[recipient] ) {
                require(amount <= MaxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(recipient) + amount <= MaxWalletSize, "Exceeds the maxWalletSize.");
                
            }
        uint256 feeswap;
        uint256 feesum;
        uint256 fee;
        Taxes memory currentTaxes;

        //set fee to zero if fees in contract are handled or exempted
        if (_interlock || exemptFee[sender] || exemptFee[recipient])
            fee = 0;

            //calculate fee
        else if (recipient == pair) {
            feeswap = sellTaxes.liquidity + sellTaxes.marketing;
            feesum = feeswap;
            currentTaxes = sellTaxes;
        } else if (recipient != pair) {
            feeswap = taxes.liquidity + taxes.marketing;
            feesum = feeswap;
            currentTaxes = taxes;
        } 

        fee = (amount * feesum) / 100;

        //send fees if threshold has been reached
        //don't do this on buys, breaks swap
        if (providingLiquidity && sender != pair)
            Liquify(feeswap, currentTaxes);

        //rest to recipient
        super._transfer(sender, recipient, amount - fee);
        if (fee > 0) {
            //send the fee to the contract
            if (feeswap > 0) {
                uint256 feeAmount = (amount * feeswap) / 100;
                super._transfer(sender, address(this), feeAmount);
            }
        }
  }

    function Liquify(uint256 feeswap, Taxes memory swapTaxes) private lockTheSwap {
        if (feeswap == 0) {
            return;
        }

        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= minThrehold) {
            if (contractBalance > maxThreshold) {
            }

            // Split the contract balance into halves
            uint256 denominator = feeswap * 2;
            uint256 tokensToAddLiquidityWith = (contractBalance * swapTaxes.liquidity) / denominator;
            uint256 initialBalance = address(this).balance;

            swapTokensForETH(contractBalance);

            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance = deltaBalance / (denominator - swapTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * swapTaxes.liquidity;

            if (ethToAddLiquidityWith > 0) {
                // Add liquidity to pancake
                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }

            uint256 marketingAmt = unitBalance * 2 * swapTaxes.marketing;
            if (marketingAmt > 0) {
                payable(marketingWallet).sendValue(marketingAmt);
            }
        }
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        _approve(address(this), address(router), tokenAmount);

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(router), tokenAmount);

        // add the liquidity
        router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            deadWallet,
            block.timestamp
        );
    }

    function updateLiquidityProvide(bool state) external onlyOwner {
        providingLiquidity = state;
    }

   
    function UpdateTreshhold(uint256 max_amount, uint256 min_amount) external onlyOwner {
        require(max_amount <= 200000000, "must keep max Threshold at 1% or less" );
        require(min_amount >= 200000000, "min Threshold must be greater than or equal to 0.01%");
        maxThreshold = max_amount * 10**decimals();
        minThrehold = min_amount * 10**decimals();
    }
    
    function updateBuyFee( uint256 _marketing, uint256 _liquidity) external onlyOwner {
        taxes.marketing = _marketing;
        taxes.liquidity = _liquidity;
     emit BuyTaxesUpdated(_marketing, _liquidity);
    }

    function updateSellFee( uint256 _marketing, uint256 _liquidity) external onlyOwner {
        sellTaxes.marketing = _marketing;
        sellTaxes.liquidity = _liquidity;
    emit SellTaxesUpdated(_marketing, _liquidity);
    }
   
     function setMaxTxLimit(uint256 _maxWallet, uint256 _maxTx) external onlyOwner {
        MaxWalletSize = _maxWallet * 10**decimals(); 
        MaxTxAmount = _maxTx * 10**decimals();
    require (_maxWallet >= 20000000, "Cannot set MaxWallet amount lower then 0.1%");
    require (_maxTx >= 20000000, "Cannot set MaxTx amount lower then 0.1%");
    emit MaxTxUpdated(_maxWallet, _maxTx);
    }
    
    function enableTrading() external onlyOwner {
        require(!tradingEnabled, "Cannot re-enable trading");
        tradingEnabled = true;
    }
   
    function setMarketingWallet(address newWallet) external onlyOwner {
        require(newWallet != address(0), "Fee Address cannot be zero address");
        require(newWallet != address(this), "Fee Address cannot be CA");
        exemptFee[newWallet] = true;
        marketingWallet = newWallet;
    }

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

    function blockSniper(address account, bool state) external onlyOwner {
        isearlybuyer[account] = state;
    }
   
    function excludeFromFee(address _address) external onlyOwner {
        exemptFee[_address] = true;
    }

    function includeInFee(address _address) external onlyOwner {
        exemptFee[_address] = false;
    }

    function rescueEHT() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(owner()).transfer(contractETHBalance);
    }

    function rescueERC20(address tokenAdd, uint256 amount) external onlyOwner {
        require(tokenAdd != address(this), "Owner can't claim contract's balance of its own tokens");
        IERC20(tokenAdd).transfer(owner(), amount);
    }

    // fallbacks
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"marketing","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"BuyTaxesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"MaxWalletSize","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"MaxTxAmount","type":"uint256"}],"name":"MaxTxUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"marketing","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"SellTaxesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"BuyTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MaxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MaxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"max_amount","type":"uint256"},{"internalType":"uint256","name":"min_amount","type":"uint256"}],"name":"UpdateTreshhold","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"blockSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"includeInFee","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":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"multiBlockSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueEHT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWallet","type":"uint256"},{"internalType":"uint256","name":"_maxTx","type":"uint256"}],"name":"setMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"updateBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"updateSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600760146101000a81548160ff0219169083151502179055506001600760156101000a81548160ff0219169083151502179055506000600760166101000a81548160ff0219169083151502179055506a084595161401484a00000060085569152d02c7e14af68000006009556a108b2a2c28029094000000600a556a108b2a2c28029094000000600b5573377aff97c3da0fb91fbf1520fff971a8acc0d5a1600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280601481526020016000815250600d600082015181600001556020820151816001015550506040518060400160405280602381526020016000815250600f60008201518160000155602082015181600101555050600d60010154600d600001546200015b9190620007b3565b601155600f60010154600f60000154620001769190620007b3565b6012553480156200018657600080fd5b5060405180606001604052806029815260200162005712602991396040518060400160405280600681526020017f4d4f4e45524f00000000000000000000000000000000000000000000000000008152508160039081620001e8919062000a5e565b508060049081620001fa919062000a5e565b5050506200021d62000211620005ed60201b60201c565b620005f560201b60201c565b6200025d3362000232620006bb60201b60201c565b600a62000240919062000ca6565b633b9aca0062000251919062000cf7565b620006c460201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ea919062000dac565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000352573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000378919062000dac565b6040518363ffffffff1660e01b81526004016200039792919062000def565b6020604051808303816000875af1158015620003b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003dd919062000dac565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160136000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016013600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000e4a565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b80600281905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200076e919062000e2d565b60405180910390a35050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007c0826200077a565b9150620007cd836200077a565b9250828201905080821115620007e857620007e762000784565b5b92915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200087057607f821691505b60208210810362000886576200088562000828565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620008f07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008b1565b620008fc8683620008b1565b95508019841693508086168417925050509392505050565b6000819050919050565b60006200093f6200093962000933846200077a565b62000914565b6200077a565b9050919050565b6000819050919050565b6200095b836200091e565b620009736200096a8262000946565b848454620008be565b825550505050565b600090565b6200098a6200097b565b6200099781848462000950565b505050565b5b81811015620009bf57620009b360008262000980565b6001810190506200099d565b5050565b601f82111562000a0e57620009d8816200088c565b620009e384620008a1565b81016020851015620009f3578190505b62000a0b62000a0285620008a1565b8301826200099c565b50505b505050565b600082821c905092915050565b600062000a336000198460080262000a13565b1980831691505092915050565b600062000a4e838362000a20565b9150826002028217905092915050565b62000a6982620007ee565b67ffffffffffffffff81111562000a855762000a84620007f9565b5b62000a91825462000857565b62000a9e828285620009c3565b600060209050601f83116001811462000ad6576000841562000ac1578287015190505b62000acd858262000a40565b86555062000b3d565b601f19841662000ae6866200088c565b60005b8281101562000b105784890151825560018201915060208501945060208101905062000ae9565b8683101562000b30578489015162000b2c601f89168262000a20565b8355505b6001600288020188555050505b505050505050565b60008160011c9050919050565b6000808291508390505b600185111562000ba45780860481111562000b7c5762000b7b62000784565b5b600185161562000b8c5780820291505b808102905062000b9c8562000b45565b945062000b5c565b94509492505050565b60008262000bbf576001905062000c92565b8162000bcf576000905062000c92565b816001811462000be8576002811462000bf35762000c29565b600191505062000c92565b60ff84111562000c085762000c0762000784565b5b8360020a91508482111562000c225762000c2162000784565b5b5062000c92565b5060208310610133831016604e8410600b841016171562000c635782820a90508381111562000c5d5762000c5c62000784565b5b62000c92565b62000c72848484600162000b52565b9250905081840481111562000c8c5762000c8b62000784565b5b81810290505b9392505050565b600060ff82169050919050565b600062000cb3826200077a565b915062000cc08362000c99565b925062000cef7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bad565b905092915050565b600062000d04826200077a565b915062000d11836200077a565b925082820262000d21816200077a565b9150828204841483151762000d3b5762000d3a62000784565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000d748262000d47565b9050919050565b62000d868162000d67565b811462000d9257600080fd5b50565b60008151905062000da68162000d7b565b92915050565b60006020828403121562000dc55762000dc462000d42565b5b600062000dd58482850162000d95565b91505092915050565b62000de98162000d67565b82525050565b600060408201905062000e06600083018562000dde565b62000e15602083018462000dde565b9392505050565b62000e27816200077a565b82525050565b600060208201905062000e44600083018462000e1c565b92915050565b6148b88062000e5a6000396000f3fe60806040526004361061021e5760003560e01c80638a8c523c11610123578063ad3026e4116100ab578063e0eb9cb31161006f578063e0eb9cb3146107ca578063ea2f0b37146107f5578063f2fde38b1461081e578063f887ea4014610847578063fc962edb1461087257610225565b8063ad3026e4146106d3578063beffc7d4146106fc578063c5d32bb214610725578063d256413e14610762578063dd62ed3e1461078d57610225565b8063a1e71b57116100f2578063a1e71b57146105ee578063a40f0ce714610617578063a457c2d71461062e578063a8aa1b311461066b578063a9059cbb1461069657610225565b80638a8c523c146105585780638cd4426d1461056f5780638da5cb5b1461059857806395d89b41146105c357610225565b8063437823ec116101a6578063610e34b911610175578063610e34b91461048557806370a08231146104ae578063715018a6146104eb57806375f0a8741461050257806385141a771461052d57610225565b8063437823ec146103df5780634ada218b146104085780635ae34339146104335780635d098b381461045c57610225565b80631d5dace3116101ed5780631d5dace3146102e657806323b872dd1461030f57806329b8cff31461034c578063313ce5671461037757806339509351146103a257610225565b806306fdde031461022a578063095ea7b3146102555780631340538f1461029257806318160ddd146102bb57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f61089d565b60405161024c9190612fba565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190613084565b61092f565b60405161028991906130df565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190613126565b61094d565b005b3480156102c757600080fd5b506102d06109e6565b6040516102dd9190613162565b60405180910390f35b3480156102f257600080fd5b5061030d6004803603810190610308919061317d565b6109f0565b005b34801561031b57600080fd5b50610336600480360381019061033191906131bd565b610b48565b60405161034391906130df565b60405180910390f35b34801561035857600080fd5b50610361610c49565b60405161036e9190613162565b60405180910390f35b34801561038357600080fd5b5061038c610c4f565b604051610399919061322c565b60405180910390f35b3480156103ae57600080fd5b506103c960048036038101906103c49190613084565b610c58565b6040516103d691906130df565b60405180910390f35b3480156103eb57600080fd5b5061040660048036038101906104019190613247565b610d04565b005b34801561041457600080fd5b5061041d610ddb565b60405161042a91906130df565b60405180910390f35b34801561043f57600080fd5b5061045a60048036038101906104559190613274565b610dee565b005b34801561046857600080fd5b50610483600480360381019061047e9190613247565b610ec5565b005b34801561049157600080fd5b506104ac60048036038101906104a7919061317d565b6110ba565b005b3480156104ba57600080fd5b506104d560048036038101906104d09190613247565b611187565b6040516104e29190613162565b60405180910390f35b3480156104f757600080fd5b506105006111cf565b005b34801561050e57600080fd5b50610517611257565b60405161052491906132c3565b60405180910390f35b34801561053957600080fd5b5061054261127d565b60405161054f91906132c3565b60405180910390f35b34801561056457600080fd5b5061056d611283565b005b34801561057b57600080fd5b5061059660048036038101906105919190613084565b61136c565b005b3480156105a457600080fd5b506105ad6114e0565b6040516105ba91906132c3565b60405180910390f35b3480156105cf57600080fd5b506105d861150a565b6040516105e59190612fba565b60405180910390f35b3480156105fa57600080fd5b5061061560048036038101906106109190613426565b61159c565b005b34801561062357600080fd5b5061062c6116ad565b005b34801561063a57600080fd5b5061065560048036038101906106509190613084565b61177f565b60405161066291906130df565b60405180910390f35b34801561067757600080fd5b50610680611873565b60405161068d91906132c3565b60405180910390f35b3480156106a257600080fd5b506106bd60048036038101906106b89190613084565b611899565b6040516106ca91906130df565b60405180910390f35b3480156106df57600080fd5b506106fa60048036038101906106f5919061317d565b6118b0565b005b34801561070857600080fd5b50610723600480360381019061071e919061317d565b611a41565b005b34801561073157600080fd5b5061074c60048036038101906107479190613247565b611b0e565b60405161075991906130df565b60405180910390f35b34801561076e57600080fd5b50610777611b2e565b6040516107849190613162565b60405180910390f35b34801561079957600080fd5b506107b460048036038101906107af9190613482565b611b34565b6040516107c19190613162565b60405180910390f35b3480156107d657600080fd5b506107df611bbb565b6040516107ec9190613162565b60405180910390f35b34801561080157600080fd5b5061081c60048036038101906108179190613247565b611bc1565b005b34801561082a57600080fd5b5061084560048036038101906108409190613247565b611c98565b005b34801561085357600080fd5b5061085c611d8f565b6040516108699190613521565b60405180910390f35b34801561087e57600080fd5b50610887611db5565b6040516108949190613162565b60405180910390f35b6060600380546108ac9061356b565b80601f01602080910402602001604051908101604052809291908181526020018280546108d89061356b565b80156109255780601f106108fa57610100808354040283529160200191610925565b820191906000526020600020905b81548152906001019060200180831161090857829003601f168201915b5050505050905090565b600061094361093c611dbb565b8484611dc3565b6001905092915050565b610955611dbb565b73ffffffffffffffffffffffffffffffffffffffff166109736114e0565b73ffffffffffffffffffffffffffffffffffffffff16146109c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c0906135e8565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b6000600254905090565b6109f8611dbb565b73ffffffffffffffffffffffffffffffffffffffff16610a166114e0565b73ffffffffffffffffffffffffffffffffffffffff1614610a6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a63906135e8565b60405180910390fd5b630bebc200821115610ab3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aaa9061367a565b60405180910390fd5b630bebc200811015610afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af19061370c565b60405180910390fd5b610b02610c4f565b600a610b0e919061388e565b82610b1991906138d9565b600881905550610b27610c4f565b600a610b33919061388e565b81610b3e91906138d9565b6009819055505050565b6000610b55848484611f8c565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ba0611dbb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c179061398d565b60405180910390fd5b610c3d85610c2c611dbb565b8584610c3891906139ad565b611dc3565b60019150509392505050565b600b5481565b60006012905090565b6000610cfa610c65611dbb565b848460016000610c73611dbb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cf591906139e1565b611dc3565b6001905092915050565b610d0c611dbb565b73ffffffffffffffffffffffffffffffffffffffff16610d2a6114e0565b73ffffffffffffffffffffffffffffffffffffffff1614610d80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d77906135e8565b60405180910390fd5b6001601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600760169054906101000a900460ff1681565b610df6611dbb565b73ffffffffffffffffffffffffffffffffffffffff16610e146114e0565b73ffffffffffffffffffffffffffffffffffffffff1614610e6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e61906135e8565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610ecd611dbb565b73ffffffffffffffffffffffffffffffffffffffff16610eeb6114e0565b73ffffffffffffffffffffffffffffffffffffffff1614610f41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f38906135e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa790613a87565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361101e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101590613af3565b60405180910390fd5b6001601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6110c2611dbb565b73ffffffffffffffffffffffffffffffffffffffff166110e06114e0565b73ffffffffffffffffffffffffffffffffffffffff1614611136576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112d906135e8565b60405180910390fd5b81600d6000018190555080600d600101819055507fa2b219a42aa557965901397e42601390282bb6828cabbd7675dca50ba6aa62ca828260405161117b929190613b13565b60405180910390a15050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111d7611dbb565b73ffffffffffffffffffffffffffffffffffffffff166111f56114e0565b73ffffffffffffffffffffffffffffffffffffffff161461124b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611242906135e8565b60405180910390fd5b611255600061263f565b565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b61128b611dbb565b73ffffffffffffffffffffffffffffffffffffffff166112a96114e0565b73ffffffffffffffffffffffffffffffffffffffff16146112ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f6906135e8565b60405180910390fd5b600760169054906101000a900460ff161561134f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134690613b88565b60405180910390fd5b6001600760166101000a81548160ff021916908315150217905550565b611374611dbb565b73ffffffffffffffffffffffffffffffffffffffff166113926114e0565b73ffffffffffffffffffffffffffffffffffffffff16146113e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113df906135e8565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611456576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144d90613c1a565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61147a6114e0565b836040518363ffffffff1660e01b8152600401611498929190613c3a565b6020604051808303816000875af11580156114b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114db9190613c78565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546115199061356b565b80601f01602080910402602001604051908101604052809291908181526020018280546115459061356b565b80156115925780601f1061156757610100808354040283529160200191611592565b820191906000526020600020905b81548152906001019060200180831161157557829003601f168201915b5050505050905090565b6115a4611dbb565b73ffffffffffffffffffffffffffffffffffffffff166115c26114e0565b73ffffffffffffffffffffffffffffffffffffffff1614611618576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160f906135e8565b60405180910390fd5b60005b82518110156116a857816014600085848151811061163c5761163b613ca5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806116a090613cd4565b91505061161b565b505050565b6116b5611dbb565b73ffffffffffffffffffffffffffffffffffffffff166116d36114e0565b73ffffffffffffffffffffffffffffffffffffffff1614611729576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611720906135e8565b60405180910390fd5b60004790506117366114e0565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561177b573d6000803e3d6000fd5b5050565b6000806001600061178e611dbb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561184b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184290613d8e565b60405180910390fd5b611868611856611dbb565b85858461186391906139ad565b611dc3565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006118a6338484611f8c565b6001905092915050565b6118b8611dbb565b73ffffffffffffffffffffffffffffffffffffffff166118d66114e0565b73ffffffffffffffffffffffffffffffffffffffff161461192c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611923906135e8565b60405180910390fd5b611934610c4f565b600a611940919061388e565b8261194b91906138d9565b600b81905550611959610c4f565b600a611965919061388e565b8161197091906138d9565b600a819055506301312d008210156119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b490613e20565b60405180910390fd5b6301312d00811015611a04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fb90613eb2565b60405180910390fd5b7f202f4712f0dae21d708451caa16ed4b41cb5c9974ab3d34d1f1dc4dfc5a222db8282604051611a35929190613b13565b60405180910390a15050565b611a49611dbb565b73ffffffffffffffffffffffffffffffffffffffff16611a676114e0565b73ffffffffffffffffffffffffffffffffffffffff1614611abd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab4906135e8565b60405180910390fd5b81600f6000018190555080600f600101819055507f7873124e0d91bc71776e2961704366640b879893d05157d7bfa606dd9e58227d8282604051611b02929190613b13565b60405180910390a15050565b60136020528060005260406000206000915054906101000a900460ff1681565b600a5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60115481565b611bc9611dbb565b73ffffffffffffffffffffffffffffffffffffffff16611be76114e0565b73ffffffffffffffffffffffffffffffffffffffff1614611c3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c34906135e8565b60405180910390fd5b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611ca0611dbb565b73ffffffffffffffffffffffffffffffffffffffff16611cbe6114e0565b73ffffffffffffffffffffffffffffffffffffffff1614611d14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0b906135e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7a90613f44565b60405180910390fd5b611d8c8161263f565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2990613fd6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ea1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9890614068565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f7f9190613162565b60405180910390a3505050565b60008111611fcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc6906140fa565b60405180910390fd5b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120735750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6120b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a990614166565b60405180910390fd5b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121565750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121ab57600760169054906101000a900460ff166121aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a1906141d2565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122565750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122ac5750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561234f57600a548111156122f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ed9061423e565b60405180910390fd5b600b548161230384611187565b61230d91906139e1565b111561234e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612345906142aa565b60405180910390fd5b5b600080600061235c612f10565b600760149054906101000a900460ff16806123c05750601360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806124145750601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156124225760009150612550565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036124ba57600f60000154600f6001015461248d91906139e1565b9350839250600f60405180604001604052908160008201548152602001600182015481525050905061254f565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461254e57600d60000154600d6001015461252591906139e1565b9350839250600d6040518060400160405290816000820154815260200160018201548152505090505b5b5b6064838661255e91906138d9565b61256891906142f9565b9150600760159054906101000a900460ff1680156125d45750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b156125e4576125e38482612705565b5b6125fa878784886125f591906139ad565b612887565b60008211156126365760008411156126355760006064858761261c91906138d9565b61262691906142f9565b9050612633883083612887565b505b5b50505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16612883576001600760146101000a81548160ff021916908315150217905550600082031561286757600061274830611187565b9050600954811061286557600060028461276291906138d9565b905060008184602001518461277791906138d9565b61278191906142f9565b9050600047905061279184612af9565b6000814761279f91906139ad565b905060008660200151856127b391906139ad565b826127be91906142f9565b905060008760200151826127d291906138d9565b905060008111156127e8576127e78582612d3c565b5b600088600001516002846127fc91906138d9565b61280691906138d9565b9050600081111561285d5761285c81600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612e1c90919063ffffffff16565b5b505050505050505b505b6000600760146101000a81548160ff0219169083151502179055505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036128f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ed9061439c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612965576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295c9061442e565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156129eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e2906144c0565b60405180910390fd5b81816129f791906139ad565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a8791906139e1565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612aeb9190613162565b60405180910390a350505050565b6000600267ffffffffffffffff811115612b1657612b156132e3565b5b604051908082528060200260200182016040528015612b445781602001602082028036833780820191505090505b5090503081600081518110612b5c57612b5b613ca5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c2791906144f5565b81600181518110612c3b57612c3a613ca5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ca230600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611dc3565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612d0695949392919061461b565b600060405180830381600087803b158015612d2057600080fd5b505af1158015612d34573d6000803e3d6000fd5b505050505050565b612d6930600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611dc3565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612dd296959493929190614675565b60606040518083038185885af1158015612df0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612e1591906146eb565b5050505050565b80471015612e5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e569061478a565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612e85906147db565b60006040518083038185875af1925050503d8060008114612ec2576040519150601f19603f3d011682016040523d82523d6000602084013e612ec7565b606091505b5050905080612f0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f0290614862565b60405180910390fd5b505050565b604051806040016040528060008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f64578082015181840152602081019050612f49565b60008484015250505050565b6000601f19601f8301169050919050565b6000612f8c82612f2a565b612f968185612f35565b9350612fa6818560208601612f46565b612faf81612f70565b840191505092915050565b60006020820190508181036000830152612fd48184612f81565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061301b82612ff0565b9050919050565b61302b81613010565b811461303657600080fd5b50565b60008135905061304881613022565b92915050565b6000819050919050565b6130618161304e565b811461306c57600080fd5b50565b60008135905061307e81613058565b92915050565b6000806040838503121561309b5761309a612fe6565b5b60006130a985828601613039565b92505060206130ba8582860161306f565b9150509250929050565b60008115159050919050565b6130d9816130c4565b82525050565b60006020820190506130f460008301846130d0565b92915050565b613103816130c4565b811461310e57600080fd5b50565b600081359050613120816130fa565b92915050565b60006020828403121561313c5761313b612fe6565b5b600061314a84828501613111565b91505092915050565b61315c8161304e565b82525050565b60006020820190506131776000830184613153565b92915050565b6000806040838503121561319457613193612fe6565b5b60006131a28582860161306f565b92505060206131b38582860161306f565b9150509250929050565b6000806000606084860312156131d6576131d5612fe6565b5b60006131e486828701613039565b93505060206131f586828701613039565b92505060406132068682870161306f565b9150509250925092565b600060ff82169050919050565b61322681613210565b82525050565b6000602082019050613241600083018461321d565b92915050565b60006020828403121561325d5761325c612fe6565b5b600061326b84828501613039565b91505092915050565b6000806040838503121561328b5761328a612fe6565b5b600061329985828601613039565b92505060206132aa85828601613111565b9150509250929050565b6132bd81613010565b82525050565b60006020820190506132d860008301846132b4565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61331b82612f70565b810181811067ffffffffffffffff8211171561333a576133396132e3565b5b80604052505050565b600061334d612fdc565b90506133598282613312565b919050565b600067ffffffffffffffff821115613379576133786132e3565b5b602082029050602081019050919050565b600080fd5b60006133a261339d8461335e565b613343565b905080838252602082019050602084028301858111156133c5576133c461338a565b5b835b818110156133ee57806133da8882613039565b8452602084019350506020810190506133c7565b5050509392505050565b600082601f83011261340d5761340c6132de565b5b813561341d84826020860161338f565b91505092915050565b6000806040838503121561343d5761343c612fe6565b5b600083013567ffffffffffffffff81111561345b5761345a612feb565b5b613467858286016133f8565b925050602061347885828601613111565b9150509250929050565b6000806040838503121561349957613498612fe6565b5b60006134a785828601613039565b92505060206134b885828601613039565b9150509250929050565b6000819050919050565b60006134e76134e26134dd84612ff0565b6134c2565b612ff0565b9050919050565b60006134f9826134cc565b9050919050565b600061350b826134ee565b9050919050565b61351b81613500565b82525050565b60006020820190506135366000830184613512565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061358357607f821691505b6020821081036135965761359561353c565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006135d2602083612f35565b91506135dd8261359c565b602082019050919050565b60006020820190508181036000830152613601816135c5565b9050919050565b7f6d757374206b656570206d6178205468726573686f6c64206174203125206f7260008201527f206c657373000000000000000000000000000000000000000000000000000000602082015250565b6000613664602583612f35565b915061366f82613608565b604082019050919050565b6000602082019050818103600083015261369381613657565b9050919050565b7f6d696e205468726573686f6c64206d757374206265206772656174657220746860008201527f616e206f7220657175616c20746f20302e303125000000000000000000000000602082015250565b60006136f6603483612f35565b91506137018261369a565b604082019050919050565b60006020820190508181036000830152613725816136e9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156137b25780860481111561378e5761378d61372c565b5b600185161561379d5780820291505b80810290506137ab8561375b565b9450613772565b94509492505050565b6000826137cb5760019050613887565b816137d95760009050613887565b81600181146137ef57600281146137f957613828565b6001915050613887565b60ff84111561380b5761380a61372c565b5b8360020a9150848211156138225761382161372c565b5b50613887565b5060208310610133831016604e8410600b841016171561385d5782820a9050838111156138585761385761372c565b5b613887565b61386a8484846001613768565b925090508184048111156138815761388061372c565b5b81810290505b9392505050565b60006138998261304e565b91506138a483613210565b92506138d17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846137bb565b905092915050565b60006138e48261304e565b91506138ef8361304e565b92508282026138fd8161304e565b915082820484148315176139145761391361372c565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613977602883612f35565b91506139828261391b565b604082019050919050565b600060208201905081810360008301526139a68161396a565b9050919050565b60006139b88261304e565b91506139c38361304e565b92508282039050818111156139db576139da61372c565b5b92915050565b60006139ec8261304e565b91506139f78361304e565b9250828201905080821115613a0f57613a0e61372c565b5b92915050565b7f46656520416464726573732063616e6e6f74206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a71602283612f35565b9150613a7c82613a15565b604082019050919050565b60006020820190508181036000830152613aa081613a64565b9050919050565b7f46656520416464726573732063616e6e6f742062652043410000000000000000600082015250565b6000613add601883612f35565b9150613ae882613aa7565b602082019050919050565b60006020820190508181036000830152613b0c81613ad0565b9050919050565b6000604082019050613b286000830185613153565b613b356020830184613153565b9392505050565b7f43616e6e6f742072652d656e61626c652074726164696e670000000000000000600082015250565b6000613b72601883612f35565b9150613b7d82613b3c565b602082019050919050565b60006020820190508181036000830152613ba181613b65565b9050919050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c60008201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b6000613c04603683612f35565b9150613c0f82613ba8565b604082019050919050565b60006020820190508181036000830152613c3381613bf7565b9050919050565b6000604082019050613c4f60008301856132b4565b613c5c6020830184613153565b9392505050565b600081519050613c72816130fa565b92915050565b600060208284031215613c8e57613c8d612fe6565b5b6000613c9c84828501613c63565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613cdf8261304e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613d1157613d1061372c565b5b600182019050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613d78602583612f35565b9150613d8382613d1c565b604082019050919050565b60006020820190508181036000830152613da781613d6b565b9050919050565b7f43616e6e6f7420736574204d617857616c6c657420616d6f756e74206c6f776560008201527f72207468656e20302e3125000000000000000000000000000000000000000000602082015250565b6000613e0a602b83612f35565b9150613e1582613dae565b604082019050919050565b60006020820190508181036000830152613e3981613dfd565b9050919050565b7f43616e6e6f7420736574204d6178547820616d6f756e74206c6f77657220746860008201527f656e20302e312500000000000000000000000000000000000000000000000000602082015250565b6000613e9c602783612f35565b9150613ea782613e40565b604082019050919050565b60006020820190508181036000830152613ecb81613e8f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613f2e602683612f35565b9150613f3982613ed2565b604082019050919050565b60006020820190508181036000830152613f5d81613f21565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613fc0602483612f35565b9150613fcb82613f64565b604082019050919050565b60006020820190508181036000830152613fef81613fb3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614052602283612f35565b915061405d82613ff6565b604082019050919050565b6000602082019050818103600083015261408181614045565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006140e4602983612f35565b91506140ef82614088565b604082019050919050565b60006020820190508181036000830152614113816140d7565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b6000614150601983612f35565b915061415b8261411a565b602082019050919050565b6000602082019050818103600083015261417f81614143565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b60006141bc601383612f35565b91506141c782614186565b602082019050919050565b600060208201905081810360008301526141eb816141af565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000614228601983612f35565b9150614233826141f2565b602082019050919050565b600060208201905081810360008301526142578161421b565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000614294601a83612f35565b915061429f8261425e565b602082019050919050565b600060208201905081810360008301526142c381614287565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006143048261304e565b915061430f8361304e565b92508261431f5761431e6142ca565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614386602583612f35565b91506143918261432a565b604082019050919050565b600060208201905081810360008301526143b581614379565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614418602383612f35565b9150614423826143bc565b604082019050919050565b600060208201905081810360008301526144478161440b565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006144aa602683612f35565b91506144b58261444e565b604082019050919050565b600060208201905081810360008301526144d98161449d565b9050919050565b6000815190506144ef81613022565b92915050565b60006020828403121561450b5761450a612fe6565b5b6000614519848285016144e0565b91505092915050565b6000819050919050565b600061454761454261453d84614522565b6134c2565b61304e565b9050919050565b6145578161452c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61459281613010565b82525050565b60006145a48383614589565b60208301905092915050565b6000602082019050919050565b60006145c88261455d565b6145d28185614568565b93506145dd83614579565b8060005b8381101561460e5781516145f58882614598565b9750614600836145b0565b9250506001810190506145e1565b5085935050505092915050565b600060a0820190506146306000830188613153565b61463d602083018761454e565b818103604083015261464f81866145bd565b905061465e60608301856132b4565b61466b6080830184613153565b9695505050505050565b600060c08201905061468a60008301896132b4565b6146976020830188613153565b6146a4604083018761454e565b6146b1606083018661454e565b6146be60808301856132b4565b6146cb60a0830184613153565b979650505050505050565b6000815190506146e581613058565b92915050565b60008060006060848603121561470457614703612fe6565b5b6000614712868287016146d6565b9350506020614723868287016146d6565b9250506040614734868287016146d6565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000614774601d83612f35565b915061477f8261473e565b602082019050919050565b600060208201905081810360008301526147a381614767565b9050919050565b600081905092915050565b50565b60006147c56000836147aa565b91506147d0826147b5565b600082019050919050565b60006147e6826147b8565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b600061484c603a83612f35565b9150614857826147f0565b604082019050919050565b6000602082019050818103600083015261487b8161483f565b905091905056fea26469706673582212208f6525af7b54e2007effe1975b16af208007111fb70701c1d77442af789ef65d64736f6c634300081300334865726d696f6e6548696c617279416472656e6f6368726f6d6550697a7a6167617465363636496e75

Deployed Bytecode

0x60806040526004361061021e5760003560e01c80638a8c523c11610123578063ad3026e4116100ab578063e0eb9cb31161006f578063e0eb9cb3146107ca578063ea2f0b37146107f5578063f2fde38b1461081e578063f887ea4014610847578063fc962edb1461087257610225565b8063ad3026e4146106d3578063beffc7d4146106fc578063c5d32bb214610725578063d256413e14610762578063dd62ed3e1461078d57610225565b8063a1e71b57116100f2578063a1e71b57146105ee578063a40f0ce714610617578063a457c2d71461062e578063a8aa1b311461066b578063a9059cbb1461069657610225565b80638a8c523c146105585780638cd4426d1461056f5780638da5cb5b1461059857806395d89b41146105c357610225565b8063437823ec116101a6578063610e34b911610175578063610e34b91461048557806370a08231146104ae578063715018a6146104eb57806375f0a8741461050257806385141a771461052d57610225565b8063437823ec146103df5780634ada218b146104085780635ae34339146104335780635d098b381461045c57610225565b80631d5dace3116101ed5780631d5dace3146102e657806323b872dd1461030f57806329b8cff31461034c578063313ce5671461037757806339509351146103a257610225565b806306fdde031461022a578063095ea7b3146102555780631340538f1461029257806318160ddd146102bb57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f61089d565b60405161024c9190612fba565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190613084565b61092f565b60405161028991906130df565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190613126565b61094d565b005b3480156102c757600080fd5b506102d06109e6565b6040516102dd9190613162565b60405180910390f35b3480156102f257600080fd5b5061030d6004803603810190610308919061317d565b6109f0565b005b34801561031b57600080fd5b50610336600480360381019061033191906131bd565b610b48565b60405161034391906130df565b60405180910390f35b34801561035857600080fd5b50610361610c49565b60405161036e9190613162565b60405180910390f35b34801561038357600080fd5b5061038c610c4f565b604051610399919061322c565b60405180910390f35b3480156103ae57600080fd5b506103c960048036038101906103c49190613084565b610c58565b6040516103d691906130df565b60405180910390f35b3480156103eb57600080fd5b5061040660048036038101906104019190613247565b610d04565b005b34801561041457600080fd5b5061041d610ddb565b60405161042a91906130df565b60405180910390f35b34801561043f57600080fd5b5061045a60048036038101906104559190613274565b610dee565b005b34801561046857600080fd5b50610483600480360381019061047e9190613247565b610ec5565b005b34801561049157600080fd5b506104ac60048036038101906104a7919061317d565b6110ba565b005b3480156104ba57600080fd5b506104d560048036038101906104d09190613247565b611187565b6040516104e29190613162565b60405180910390f35b3480156104f757600080fd5b506105006111cf565b005b34801561050e57600080fd5b50610517611257565b60405161052491906132c3565b60405180910390f35b34801561053957600080fd5b5061054261127d565b60405161054f91906132c3565b60405180910390f35b34801561056457600080fd5b5061056d611283565b005b34801561057b57600080fd5b5061059660048036038101906105919190613084565b61136c565b005b3480156105a457600080fd5b506105ad6114e0565b6040516105ba91906132c3565b60405180910390f35b3480156105cf57600080fd5b506105d861150a565b6040516105e59190612fba565b60405180910390f35b3480156105fa57600080fd5b5061061560048036038101906106109190613426565b61159c565b005b34801561062357600080fd5b5061062c6116ad565b005b34801561063a57600080fd5b5061065560048036038101906106509190613084565b61177f565b60405161066291906130df565b60405180910390f35b34801561067757600080fd5b50610680611873565b60405161068d91906132c3565b60405180910390f35b3480156106a257600080fd5b506106bd60048036038101906106b89190613084565b611899565b6040516106ca91906130df565b60405180910390f35b3480156106df57600080fd5b506106fa60048036038101906106f5919061317d565b6118b0565b005b34801561070857600080fd5b50610723600480360381019061071e919061317d565b611a41565b005b34801561073157600080fd5b5061074c60048036038101906107479190613247565b611b0e565b60405161075991906130df565b60405180910390f35b34801561076e57600080fd5b50610777611b2e565b6040516107849190613162565b60405180910390f35b34801561079957600080fd5b506107b460048036038101906107af9190613482565b611b34565b6040516107c19190613162565b60405180910390f35b3480156107d657600080fd5b506107df611bbb565b6040516107ec9190613162565b60405180910390f35b34801561080157600080fd5b5061081c60048036038101906108179190613247565b611bc1565b005b34801561082a57600080fd5b5061084560048036038101906108409190613247565b611c98565b005b34801561085357600080fd5b5061085c611d8f565b6040516108699190613521565b60405180910390f35b34801561087e57600080fd5b50610887611db5565b6040516108949190613162565b60405180910390f35b6060600380546108ac9061356b565b80601f01602080910402602001604051908101604052809291908181526020018280546108d89061356b565b80156109255780601f106108fa57610100808354040283529160200191610925565b820191906000526020600020905b81548152906001019060200180831161090857829003601f168201915b5050505050905090565b600061094361093c611dbb565b8484611dc3565b6001905092915050565b610955611dbb565b73ffffffffffffffffffffffffffffffffffffffff166109736114e0565b73ffffffffffffffffffffffffffffffffffffffff16146109c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c0906135e8565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b6000600254905090565b6109f8611dbb565b73ffffffffffffffffffffffffffffffffffffffff16610a166114e0565b73ffffffffffffffffffffffffffffffffffffffff1614610a6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a63906135e8565b60405180910390fd5b630bebc200821115610ab3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aaa9061367a565b60405180910390fd5b630bebc200811015610afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af19061370c565b60405180910390fd5b610b02610c4f565b600a610b0e919061388e565b82610b1991906138d9565b600881905550610b27610c4f565b600a610b33919061388e565b81610b3e91906138d9565b6009819055505050565b6000610b55848484611f8c565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ba0611dbb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c179061398d565b60405180910390fd5b610c3d85610c2c611dbb565b8584610c3891906139ad565b611dc3565b60019150509392505050565b600b5481565b60006012905090565b6000610cfa610c65611dbb565b848460016000610c73611dbb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cf591906139e1565b611dc3565b6001905092915050565b610d0c611dbb565b73ffffffffffffffffffffffffffffffffffffffff16610d2a6114e0565b73ffffffffffffffffffffffffffffffffffffffff1614610d80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d77906135e8565b60405180910390fd5b6001601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600760169054906101000a900460ff1681565b610df6611dbb565b73ffffffffffffffffffffffffffffffffffffffff16610e146114e0565b73ffffffffffffffffffffffffffffffffffffffff1614610e6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e61906135e8565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610ecd611dbb565b73ffffffffffffffffffffffffffffffffffffffff16610eeb6114e0565b73ffffffffffffffffffffffffffffffffffffffff1614610f41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f38906135e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa790613a87565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361101e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101590613af3565b60405180910390fd5b6001601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6110c2611dbb565b73ffffffffffffffffffffffffffffffffffffffff166110e06114e0565b73ffffffffffffffffffffffffffffffffffffffff1614611136576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112d906135e8565b60405180910390fd5b81600d6000018190555080600d600101819055507fa2b219a42aa557965901397e42601390282bb6828cabbd7675dca50ba6aa62ca828260405161117b929190613b13565b60405180910390a15050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111d7611dbb565b73ffffffffffffffffffffffffffffffffffffffff166111f56114e0565b73ffffffffffffffffffffffffffffffffffffffff161461124b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611242906135e8565b60405180910390fd5b611255600061263f565b565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b61128b611dbb565b73ffffffffffffffffffffffffffffffffffffffff166112a96114e0565b73ffffffffffffffffffffffffffffffffffffffff16146112ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f6906135e8565b60405180910390fd5b600760169054906101000a900460ff161561134f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134690613b88565b60405180910390fd5b6001600760166101000a81548160ff021916908315150217905550565b611374611dbb565b73ffffffffffffffffffffffffffffffffffffffff166113926114e0565b73ffffffffffffffffffffffffffffffffffffffff16146113e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113df906135e8565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611456576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144d90613c1a565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61147a6114e0565b836040518363ffffffff1660e01b8152600401611498929190613c3a565b6020604051808303816000875af11580156114b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114db9190613c78565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546115199061356b565b80601f01602080910402602001604051908101604052809291908181526020018280546115459061356b565b80156115925780601f1061156757610100808354040283529160200191611592565b820191906000526020600020905b81548152906001019060200180831161157557829003601f168201915b5050505050905090565b6115a4611dbb565b73ffffffffffffffffffffffffffffffffffffffff166115c26114e0565b73ffffffffffffffffffffffffffffffffffffffff1614611618576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160f906135e8565b60405180910390fd5b60005b82518110156116a857816014600085848151811061163c5761163b613ca5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806116a090613cd4565b91505061161b565b505050565b6116b5611dbb565b73ffffffffffffffffffffffffffffffffffffffff166116d36114e0565b73ffffffffffffffffffffffffffffffffffffffff1614611729576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611720906135e8565b60405180910390fd5b60004790506117366114e0565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561177b573d6000803e3d6000fd5b5050565b6000806001600061178e611dbb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561184b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184290613d8e565b60405180910390fd5b611868611856611dbb565b85858461186391906139ad565b611dc3565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006118a6338484611f8c565b6001905092915050565b6118b8611dbb565b73ffffffffffffffffffffffffffffffffffffffff166118d66114e0565b73ffffffffffffffffffffffffffffffffffffffff161461192c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611923906135e8565b60405180910390fd5b611934610c4f565b600a611940919061388e565b8261194b91906138d9565b600b81905550611959610c4f565b600a611965919061388e565b8161197091906138d9565b600a819055506301312d008210156119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b490613e20565b60405180910390fd5b6301312d00811015611a04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fb90613eb2565b60405180910390fd5b7f202f4712f0dae21d708451caa16ed4b41cb5c9974ab3d34d1f1dc4dfc5a222db8282604051611a35929190613b13565b60405180910390a15050565b611a49611dbb565b73ffffffffffffffffffffffffffffffffffffffff16611a676114e0565b73ffffffffffffffffffffffffffffffffffffffff1614611abd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab4906135e8565b60405180910390fd5b81600f6000018190555080600f600101819055507f7873124e0d91bc71776e2961704366640b879893d05157d7bfa606dd9e58227d8282604051611b02929190613b13565b60405180910390a15050565b60136020528060005260406000206000915054906101000a900460ff1681565b600a5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60115481565b611bc9611dbb565b73ffffffffffffffffffffffffffffffffffffffff16611be76114e0565b73ffffffffffffffffffffffffffffffffffffffff1614611c3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c34906135e8565b60405180910390fd5b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611ca0611dbb565b73ffffffffffffffffffffffffffffffffffffffff16611cbe6114e0565b73ffffffffffffffffffffffffffffffffffffffff1614611d14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0b906135e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7a90613f44565b60405180910390fd5b611d8c8161263f565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2990613fd6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ea1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9890614068565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f7f9190613162565b60405180910390a3505050565b60008111611fcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc6906140fa565b60405180910390fd5b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120735750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6120b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a990614166565b60405180910390fd5b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121565750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121ab57600760169054906101000a900460ff166121aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a1906141d2565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122565750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122ac5750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561234f57600a548111156122f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ed9061423e565b60405180910390fd5b600b548161230384611187565b61230d91906139e1565b111561234e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612345906142aa565b60405180910390fd5b5b600080600061235c612f10565b600760149054906101000a900460ff16806123c05750601360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806124145750601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156124225760009150612550565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036124ba57600f60000154600f6001015461248d91906139e1565b9350839250600f60405180604001604052908160008201548152602001600182015481525050905061254f565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461254e57600d60000154600d6001015461252591906139e1565b9350839250600d6040518060400160405290816000820154815260200160018201548152505090505b5b5b6064838661255e91906138d9565b61256891906142f9565b9150600760159054906101000a900460ff1680156125d45750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b156125e4576125e38482612705565b5b6125fa878784886125f591906139ad565b612887565b60008211156126365760008411156126355760006064858761261c91906138d9565b61262691906142f9565b9050612633883083612887565b505b5b50505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16612883576001600760146101000a81548160ff021916908315150217905550600082031561286757600061274830611187565b9050600954811061286557600060028461276291906138d9565b905060008184602001518461277791906138d9565b61278191906142f9565b9050600047905061279184612af9565b6000814761279f91906139ad565b905060008660200151856127b391906139ad565b826127be91906142f9565b905060008760200151826127d291906138d9565b905060008111156127e8576127e78582612d3c565b5b600088600001516002846127fc91906138d9565b61280691906138d9565b9050600081111561285d5761285c81600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612e1c90919063ffffffff16565b5b505050505050505b505b6000600760146101000a81548160ff0219169083151502179055505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036128f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ed9061439c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612965576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295c9061442e565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156129eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e2906144c0565b60405180910390fd5b81816129f791906139ad565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a8791906139e1565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612aeb9190613162565b60405180910390a350505050565b6000600267ffffffffffffffff811115612b1657612b156132e3565b5b604051908082528060200260200182016040528015612b445781602001602082028036833780820191505090505b5090503081600081518110612b5c57612b5b613ca5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c2791906144f5565b81600181518110612c3b57612c3a613ca5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ca230600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611dc3565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612d0695949392919061461b565b600060405180830381600087803b158015612d2057600080fd5b505af1158015612d34573d6000803e3d6000fd5b505050505050565b612d6930600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611dc3565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612dd296959493929190614675565b60606040518083038185885af1158015612df0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612e1591906146eb565b5050505050565b80471015612e5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e569061478a565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612e85906147db565b60006040518083038185875af1925050503d8060008114612ec2576040519150601f19603f3d011682016040523d82523d6000602084013e612ec7565b606091505b5050905080612f0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f0290614862565b60405180910390fd5b505050565b604051806040016040528060008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f64578082015181840152602081019050612f49565b60008484015250505050565b6000601f19601f8301169050919050565b6000612f8c82612f2a565b612f968185612f35565b9350612fa6818560208601612f46565b612faf81612f70565b840191505092915050565b60006020820190508181036000830152612fd48184612f81565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061301b82612ff0565b9050919050565b61302b81613010565b811461303657600080fd5b50565b60008135905061304881613022565b92915050565b6000819050919050565b6130618161304e565b811461306c57600080fd5b50565b60008135905061307e81613058565b92915050565b6000806040838503121561309b5761309a612fe6565b5b60006130a985828601613039565b92505060206130ba8582860161306f565b9150509250929050565b60008115159050919050565b6130d9816130c4565b82525050565b60006020820190506130f460008301846130d0565b92915050565b613103816130c4565b811461310e57600080fd5b50565b600081359050613120816130fa565b92915050565b60006020828403121561313c5761313b612fe6565b5b600061314a84828501613111565b91505092915050565b61315c8161304e565b82525050565b60006020820190506131776000830184613153565b92915050565b6000806040838503121561319457613193612fe6565b5b60006131a28582860161306f565b92505060206131b38582860161306f565b9150509250929050565b6000806000606084860312156131d6576131d5612fe6565b5b60006131e486828701613039565b93505060206131f586828701613039565b92505060406132068682870161306f565b9150509250925092565b600060ff82169050919050565b61322681613210565b82525050565b6000602082019050613241600083018461321d565b92915050565b60006020828403121561325d5761325c612fe6565b5b600061326b84828501613039565b91505092915050565b6000806040838503121561328b5761328a612fe6565b5b600061329985828601613039565b92505060206132aa85828601613111565b9150509250929050565b6132bd81613010565b82525050565b60006020820190506132d860008301846132b4565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61331b82612f70565b810181811067ffffffffffffffff8211171561333a576133396132e3565b5b80604052505050565b600061334d612fdc565b90506133598282613312565b919050565b600067ffffffffffffffff821115613379576133786132e3565b5b602082029050602081019050919050565b600080fd5b60006133a261339d8461335e565b613343565b905080838252602082019050602084028301858111156133c5576133c461338a565b5b835b818110156133ee57806133da8882613039565b8452602084019350506020810190506133c7565b5050509392505050565b600082601f83011261340d5761340c6132de565b5b813561341d84826020860161338f565b91505092915050565b6000806040838503121561343d5761343c612fe6565b5b600083013567ffffffffffffffff81111561345b5761345a612feb565b5b613467858286016133f8565b925050602061347885828601613111565b9150509250929050565b6000806040838503121561349957613498612fe6565b5b60006134a785828601613039565b92505060206134b885828601613039565b9150509250929050565b6000819050919050565b60006134e76134e26134dd84612ff0565b6134c2565b612ff0565b9050919050565b60006134f9826134cc565b9050919050565b600061350b826134ee565b9050919050565b61351b81613500565b82525050565b60006020820190506135366000830184613512565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061358357607f821691505b6020821081036135965761359561353c565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006135d2602083612f35565b91506135dd8261359c565b602082019050919050565b60006020820190508181036000830152613601816135c5565b9050919050565b7f6d757374206b656570206d6178205468726573686f6c64206174203125206f7260008201527f206c657373000000000000000000000000000000000000000000000000000000602082015250565b6000613664602583612f35565b915061366f82613608565b604082019050919050565b6000602082019050818103600083015261369381613657565b9050919050565b7f6d696e205468726573686f6c64206d757374206265206772656174657220746860008201527f616e206f7220657175616c20746f20302e303125000000000000000000000000602082015250565b60006136f6603483612f35565b91506137018261369a565b604082019050919050565b60006020820190508181036000830152613725816136e9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156137b25780860481111561378e5761378d61372c565b5b600185161561379d5780820291505b80810290506137ab8561375b565b9450613772565b94509492505050565b6000826137cb5760019050613887565b816137d95760009050613887565b81600181146137ef57600281146137f957613828565b6001915050613887565b60ff84111561380b5761380a61372c565b5b8360020a9150848211156138225761382161372c565b5b50613887565b5060208310610133831016604e8410600b841016171561385d5782820a9050838111156138585761385761372c565b5b613887565b61386a8484846001613768565b925090508184048111156138815761388061372c565b5b81810290505b9392505050565b60006138998261304e565b91506138a483613210565b92506138d17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846137bb565b905092915050565b60006138e48261304e565b91506138ef8361304e565b92508282026138fd8161304e565b915082820484148315176139145761391361372c565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613977602883612f35565b91506139828261391b565b604082019050919050565b600060208201905081810360008301526139a68161396a565b9050919050565b60006139b88261304e565b91506139c38361304e565b92508282039050818111156139db576139da61372c565b5b92915050565b60006139ec8261304e565b91506139f78361304e565b9250828201905080821115613a0f57613a0e61372c565b5b92915050565b7f46656520416464726573732063616e6e6f74206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a71602283612f35565b9150613a7c82613a15565b604082019050919050565b60006020820190508181036000830152613aa081613a64565b9050919050565b7f46656520416464726573732063616e6e6f742062652043410000000000000000600082015250565b6000613add601883612f35565b9150613ae882613aa7565b602082019050919050565b60006020820190508181036000830152613b0c81613ad0565b9050919050565b6000604082019050613b286000830185613153565b613b356020830184613153565b9392505050565b7f43616e6e6f742072652d656e61626c652074726164696e670000000000000000600082015250565b6000613b72601883612f35565b9150613b7d82613b3c565b602082019050919050565b60006020820190508181036000830152613ba181613b65565b9050919050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c60008201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b6000613c04603683612f35565b9150613c0f82613ba8565b604082019050919050565b60006020820190508181036000830152613c3381613bf7565b9050919050565b6000604082019050613c4f60008301856132b4565b613c5c6020830184613153565b9392505050565b600081519050613c72816130fa565b92915050565b600060208284031215613c8e57613c8d612fe6565b5b6000613c9c84828501613c63565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613cdf8261304e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613d1157613d1061372c565b5b600182019050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613d78602583612f35565b9150613d8382613d1c565b604082019050919050565b60006020820190508181036000830152613da781613d6b565b9050919050565b7f43616e6e6f7420736574204d617857616c6c657420616d6f756e74206c6f776560008201527f72207468656e20302e3125000000000000000000000000000000000000000000602082015250565b6000613e0a602b83612f35565b9150613e1582613dae565b604082019050919050565b60006020820190508181036000830152613e3981613dfd565b9050919050565b7f43616e6e6f7420736574204d6178547820616d6f756e74206c6f77657220746860008201527f656e20302e312500000000000000000000000000000000000000000000000000602082015250565b6000613e9c602783612f35565b9150613ea782613e40565b604082019050919050565b60006020820190508181036000830152613ecb81613e8f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613f2e602683612f35565b9150613f3982613ed2565b604082019050919050565b60006020820190508181036000830152613f5d81613f21565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613fc0602483612f35565b9150613fcb82613f64565b604082019050919050565b60006020820190508181036000830152613fef81613fb3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614052602283612f35565b915061405d82613ff6565b604082019050919050565b6000602082019050818103600083015261408181614045565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006140e4602983612f35565b91506140ef82614088565b604082019050919050565b60006020820190508181036000830152614113816140d7565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b6000614150601983612f35565b915061415b8261411a565b602082019050919050565b6000602082019050818103600083015261417f81614143565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b60006141bc601383612f35565b91506141c782614186565b602082019050919050565b600060208201905081810360008301526141eb816141af565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000614228601983612f35565b9150614233826141f2565b602082019050919050565b600060208201905081810360008301526142578161421b565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000614294601a83612f35565b915061429f8261425e565b602082019050919050565b600060208201905081810360008301526142c381614287565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006143048261304e565b915061430f8361304e565b92508261431f5761431e6142ca565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614386602583612f35565b91506143918261432a565b604082019050919050565b600060208201905081810360008301526143b581614379565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614418602383612f35565b9150614423826143bc565b604082019050919050565b600060208201905081810360008301526144478161440b565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006144aa602683612f35565b91506144b58261444e565b604082019050919050565b600060208201905081810360008301526144d98161449d565b9050919050565b6000815190506144ef81613022565b92915050565b60006020828403121561450b5761450a612fe6565b5b6000614519848285016144e0565b91505092915050565b6000819050919050565b600061454761454261453d84614522565b6134c2565b61304e565b9050919050565b6145578161452c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61459281613010565b82525050565b60006145a48383614589565b60208301905092915050565b6000602082019050919050565b60006145c88261455d565b6145d28185614568565b93506145dd83614579565b8060005b8381101561460e5781516145f58882614598565b9750614600836145b0565b9250506001810190506145e1565b5085935050505092915050565b600060a0820190506146306000830188613153565b61463d602083018761454e565b818103604083015261464f81866145bd565b905061465e60608301856132b4565b61466b6080830184613153565b9695505050505050565b600060c08201905061468a60008301896132b4565b6146976020830188613153565b6146a4604083018761454e565b6146b1606083018661454e565b6146be60808301856132b4565b6146cb60a0830184613153565b979650505050505050565b6000815190506146e581613058565b92915050565b60008060006060848603121561470457614703612fe6565b5b6000614712868287016146d6565b9350506020614723868287016146d6565b9250506040614734868287016146d6565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000614774601d83612f35565b915061477f8261473e565b602082019050919050565b600060208201905081810360008301526147a381614767565b9050919050565b600081905092915050565b50565b60006147c56000836147aa565b91506147d0826147b5565b600082019050919050565b60006147e6826147b8565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b600061484c603a83612f35565b9150614857826147f0565b604082019050919050565b6000602082019050818103600083015261487b8161483f565b905091905056fea26469706673582212208f6525af7b54e2007effe1975b16af208007111fb70701c1d77442af789ef65d64736f6c63430008130033

Deployed Bytecode Sourcemap

12399:10739:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2598:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14433:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20233:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3718;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20354:381;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14634:485;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12853:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3560:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15127:298;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22442:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12623:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22314:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21783:305;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20747:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3889:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11006:94;;;;;;;;;;;;;:::i;:::-;;12920:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13002:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21625:147;;;;;;;;;;;;;:::i;:::-;;22842:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10783:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2817:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22098:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22669:165;;;;;;;;;;;;;:::i;:::-;;15433:409;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12512:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15850:197;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21216:397;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20975:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13406:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12794:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4558:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13263:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22556:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11108:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12484:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13329:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2598:100;2652:13;2685:5;2678:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2598:100;:::o;14433:193::-;14535:4;14557:39;14566:12;:10;:12::i;:::-;14580:7;14589:6;14557:8;:39::i;:::-;14614:4;14607:11;;14433:193;;;;:::o;20233:108::-;10929:12;:10;:12::i;:::-;10918:23;;:7;:5;:7::i;:::-;:23;;;10910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20328:5:::1;20307:18;;:26;;;;;;;;;;;;;;;;;;20233:108:::0;:::o;3718:::-;3779:7;3806:12;;3799:19;;3718:108;:::o;20354:381::-;10929:12;:10;:12::i;:::-;10918:23;;:7;:5;:7::i;:::-;:23;;;10910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20471:9:::1;20457:10;:23;;20449:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;20556:9;20542:10;:23;;20534:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;20665:10;:8;:10::i;:::-;20661:2;:14;;;;:::i;:::-;20648:10;:27;;;;:::i;:::-;20633:12;:42;;;;20717:10;:8;:10::i;:::-;20713:2;:14;;;;:::i;:::-;20700:10;:27;;;;:::i;:::-;20686:11;:41;;;;20354:381:::0;;:::o;14634:485::-;14766:4;14783:36;14793:6;14801:9;14812:6;14783:9;:36::i;:::-;14832:24;14859:11;:19;14871:6;14859:19;;;;;;;;;;;;;;;:33;14879:12;:10;:12::i;:::-;14859:33;;;;;;;;;;;;;;;;14832:60;;14945:6;14925:16;:26;;14903:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;15030:57;15039:6;15047:12;:10;:12::i;:::-;15080:6;15061:16;:25;;;;:::i;:::-;15030:8;:57::i;:::-;15107:4;15100:11;;;14634:485;;;;;:::o;12853:48::-;;;;:::o;3560:93::-;3618:5;3643:2;3636:9;;3560:93;:::o;15127:298::-;15243:4;15265:130;15288:12;:10;:12::i;:::-;15315:7;15374:10;15337:11;:25;15349:12;:10;:12::i;:::-;15337:25;;;;;;;;;;;;;;;:34;15363:7;15337:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;15265:8;:130::i;:::-;15413:4;15406:11;;15127:298;;;;:::o;22442:106::-;10929:12;:10;:12::i;:::-;10918:23;;:7;:5;:7::i;:::-;:23;;;10910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22536:4:::1;22514:9;:19;22524:8;22514:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;22442:106:::0;:::o;12623:34::-;;;;;;;;;;;;;:::o;22314:117::-;10929:12;:10;:12::i;:::-;10918:23;;:7;:5;:7::i;:::-;:23;;;10910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22418:5:::1;22394:12;:21;22407:7;22394:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;22314:117:::0;;:::o;21783:305::-;10929:12;:10;:12::i;:::-;10918:23;;:7;:5;:7::i;:::-;:23;;;10910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21889:1:::1;21868:23;;:9;:23;;::::0;21860:70:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;21970:4;21949:26;;:9;:26;;::::0;21941:63:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;22038:4;22015:9;:20;22025:9;22015:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;22071:9;22053:15;;:27;;;;;;;;;;;;;;;;;;21783:305:::0;:::o;20747:220::-;10929:12;:10;:12::i;:::-;10918:23;;:7;:5;:7::i;:::-;:23;;;10910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20858:10:::1;20840:5;:15;;:28;;;;20897:10;20879:5;:15;;:28;;;;20920:39;20936:10;20948;20920:39;;;;;;;:::i;:::-;;;;;;;;20747:220:::0;;:::o;3889:177::-;4008:7;4040:9;:18;4050:7;4040:18;;;;;;;;;;;;;;;;4033:25;;3889:177;;;:::o;11006:94::-;10929:12;:10;:12::i;:::-;10918:23;;:7;:5;:7::i;:::-;:23;;;10910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11071:21:::1;11089:1;11071:9;:21::i;:::-;11006:94::o:0;12920:75::-;;;;;;;;;;;;;:::o;13002:79::-;13039:42;13002:79;:::o;21625:147::-;10929:12;:10;:12::i;:::-;10918:23;;:7;:5;:7::i;:::-;:23;;;10910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21689:14:::1;;;;;;;;;;;21688:15;21680:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;21760:4;21743:14;;:21;;;;;;;;;;;;;;;;;;21625:147::o:0;22842:238::-;10929:12;:10;:12::i;:::-;10918:23;;:7;:5;:7::i;:::-;:23;;;10910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22955:4:::1;22935:25;;:8;:25;;::::0;22927:92:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;23037:8;23030:25;;;23056:7;:5;:7::i;:::-;23065:6;23030:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22842:238:::0;;:::o;10783:87::-;10829:7;10856:6;;;;;;;;;;;10849:13;;10783:87;:::o;2817:104::-;2873:13;2906:7;2899:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2817:104;:::o;22098:208::-;10929:12;:10;:12::i;:::-;10918:23;;:7;:5;:7::i;:::-;:23;;;10910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22198:9:::1;22193:106;22217:8;:15;22213:1;:19;22193:106;;;22282:5;22254:12;:25;22267:8;22276:1;22267:11;;;;;;;;:::i;:::-;;;;;;;;22254:25;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;22234:3;;;;;:::i;:::-;;;;22193:106;;;;22098:208:::0;;:::o;22669:165::-;10929:12;:10;:12::i;:::-;10918:23;;:7;:5;:7::i;:::-;:23;;;10910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22720:26:::1;22749:21;22720:50;;22789:7;:5;:7::i;:::-;22781:25;;:45;22807:18;22781:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22709:125;22669:165::o:0;15433:409::-;15554:4;15576:24;15603:11;:25;15615:12;:10;:12::i;:::-;15603:25;;;;;;;;;;;;;;;:34;15629:7;15603:34;;;;;;;;;;;;;;;;15576:61;;15676:15;15656:16;:35;;15648:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;15743:67;15752:12;:10;:12::i;:::-;15766:7;15794:15;15775:16;:34;;;;:::i;:::-;15743:8;:67::i;:::-;15830:4;15823:11;;;15433:409;;;;:::o;12512:19::-;;;;;;;;;;;;;:::o;15850:197::-;15955:4;15977:40;15987:10;15999:9;16010:6;15977:9;:40::i;:::-;16035:4;16028:11;;15850:197;;;;:::o;21216:397::-;10929:12;:10;:12::i;:::-;10918:23;;:7;:5;:7::i;:::-;:23;;;10910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21338:10:::1;:8;:10::i;:::-;21334:2;:14;;;;:::i;:::-;21321:10;:27;;;;:::i;:::-;21305:13;:43;;;;21387:10;:8;:10::i;:::-;21383:2;:14;;;;:::i;:::-;21374:6;:23;;;;:::i;:::-;21360:11;:37;;;;21427:8;21413:10;:22;;21404:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;21509:8;21499:6;:18;;21490:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;21573:32;21586:10;21598:6;21573:32;;;;;;;:::i;:::-;;;;;;;;21216:397:::0;;:::o;20975:229::-;10929:12;:10;:12::i;:::-;10918:23;;:7;:5;:7::i;:::-;:23;;;10910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21091:10:::1;21069:9;:19;;:32;;;;21134:10;21112:9;:19;;:32;;;;21156:40;21173:10;21185;21156:40;;;;;;;:::i;:::-;;;;;;;;20975:229:::0;;:::o;13406:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;12794:46::-;;;;:::o;4558:201::-;4692:7;4724:11;:18;4736:5;4724:18;;;;;;;;;;;;;;;:27;4743:7;4724:27;;;;;;;;;;;;;;;;4717:34;;4558:201;;;;:::o;13263:59::-;;;;:::o;22556:105::-;10929:12;:10;:12::i;:::-;10918:23;;:7;:5;:7::i;:::-;:23;;;10910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22648:5:::1;22626:9;:19;22636:8;22626:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;22556:105:::0;:::o;11108:229::-;10929:12;:10;:12::i;:::-;10918:23;;:7;:5;:7::i;:::-;:23;;;10910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11231:1:::1;11211:22;;:8;:22;;::::0;11189:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;11310:19;11320:8;11310:9;:19::i;:::-;11108:229:::0;:::o;12484:21::-;;;;;;;;;;;;;:::o;13329:68::-;;;;:::o;241:98::-;294:7;321:10;314:17;;241:98;:::o;9719:380::-;9872:1;9855:19;;:5;:19;;;9847:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9953:1;9934:21;;:7;:21;;;9926:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10037:6;10007:11;:18;10019:5;10007:18;;;;;;;;;;;;;;;:27;10026:7;10007:27;;;;;;;;;;;;;;;:36;;;;10075:7;10059:32;;10068:5;10059:32;;;10084:6;10059:32;;;;;;:::i;:::-;;;;;;;;9719:380;;;:::o;16055:1985::-;16171:1;16162:6;:10;16154:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;16239:12;:20;16252:6;16239:20;;;;;;;;;;;;;;;;;;;;;;;;;16238:21;:49;;;;;16264:12;:23;16277:9;16264:23;;;;;;;;;;;;;;;;;;;;;;;;;16263:24;16238:49;16230:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;16363:9;:17;16373:6;16363:17;;;;;;;;;;;;;;;;;;;;;;;;;16362:18;:43;;;;;16385:9;:20;16395:9;16385:20;;;;;;;;;;;;;;;;;;;;;;;;;16384:21;16362:43;16358:122;;;16430:14;;;;;;;;;;;16422:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;16358:122;16514:4;;;;;;;;;;;16504:14;;:6;:14;;;:46;;;;;16543:6;;;;;;;;;;;16522:28;;:9;:28;;;;16504:46;:71;;;;;16555:9;:20;16565:9;16555:20;;;;;;;;;;;;;;;;;;;;;;;;;16554:21;16504:71;16500:294;;;16615:11;;16605:6;:21;;16597:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;16716:13;;16706:6;16683:20;16693:9;16683;:20::i;:::-;:29;;;;:::i;:::-;:46;;16675:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;16500:294;16804:15;16830:14;16855:11;16877:25;;:::i;:::-;16990:10;;;;;;;;;;;:31;;;;17004:9;:17;17014:6;17004:17;;;;;;;;;;;;;;;;;;;;;;;;;16990:31;:55;;;;17025:9;:20;17035:9;17025:20;;;;;;;;;;;;;;;;;;;;;;;;;16990:55;16986:464;;;17066:1;17060:7;;16986:464;;;17131:4;;;;;;;;;;;17118:17;;:9;:17;;;17114:336;;17184:9;:19;;;17162:9;:19;;;:41;;;;:::i;:::-;17152:51;;17227:7;17218:16;;17264:9;17249:24;;;;;;;;;;;;;;;;;;;;;;;;;;;17114:336;;;17308:4;;;;;;;;;;;17295:17;;:9;:17;;;17291:159;;17357:5;:15;;;17339:5;:15;;;:33;;;;:::i;:::-;17329:43;;17396:7;17387:16;;17433:5;17418:20;;;;;;;;;;;;;;;;;;;;;;;;;;;17291:159;17114:336;16986:464;17489:3;17479:6;17470;:15;;;;:::i;:::-;17469:23;;;;:::i;:::-;17463:29;;17606:18;;;;;;;;;;;:36;;;;;17638:4;;;;;;;;;;;17628:14;;:6;:14;;;;17606:36;17602:85;;;17657:30;17665:7;17674:12;17657:7;:30::i;:::-;17602:85;17729:48;17745:6;17753:9;17773:3;17764:6;:12;;;;:::i;:::-;17729:15;:48::i;:::-;17798:1;17792:3;:7;17788:247;;;17874:1;17864:7;:11;17860:164;;;17896:17;17937:3;17926:7;17917:6;:16;;;;:::i;:::-;17916:24;;;;:::i;:::-;17896:44;;17959:49;17975:6;17991:4;17998:9;17959:15;:49::i;:::-;17877:147;17860:164;17788:247;16143:1897;;;;16055:1985;;;:::o;11345:173::-;11401:16;11420:6;;;;;;;;;;;11401:25;;11446:8;11437:6;;:17;;;;;;;;;;;;;;;;;;11501:8;11470:40;;11491:8;11470:40;;;;;;;;;;;;11390:128;11345:173;:::o;18048:1282::-;13755:10;;;;;;;;;;;13750:110;;13795:4;13782:10;;:17;;;;;;;;;;;;;;;;;;18152:1:::1;18141:7;:12:::0;18137:51;18170:7:::1;18137:51;18200:23;18226:24;18244:4;18226:9;:24::i;:::-;18200:50;;18284:11;;18265:15;:30;18261:1062;;18435:19;18467:1;18457:7;:11;;;;:::i;:::-;18435:33;;18483:32;18560:11;18537:9;:19;;;18519:15;:37;;;;:::i;:::-;18518:53;;;;:::i;:::-;18483:88;;18586:22;18611:21;18586:46;;18649:33;18666:15;18649:16;:33::i;:::-;18699:20;18746:14;18722:21;:38;;;;:::i;:::-;18699:61;;18775:19;18827:9;:19;;;18813:11;:33;;;;:::i;:::-;18797:12;:50;;;;:::i;:::-;18775:72;;18862:29;18908:9;:19;;;18894:11;:33;;;;:::i;:::-;18862:65;;18972:1;18948:21;:25;18944:172;;;19039:61;19052:24;19078:21;19039:12;:61::i;:::-;18944:172;19132:20;19173:9;:19;;;19169:1;19155:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;19132:60;;19226:1;19211:12;:16;19207:105;;;19248:48;19283:12;19256:15;;;;;;;;;;;19248:34;;;;:48;;;;:::i;:::-;19207:105;18297:1026;;;;;;;18261:1062;18126:1204;13814:1;13843:5:::0;13830:10;;:18;;;;;;;;;;;;;;;;;;13750:110;18048:1282;;:::o;8236:615::-;8394:1;8376:20;;:6;:20;;;8368:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8478:1;8457:23;;:9;:23;;;8449:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8533:21;8557:9;:17;8567:6;8557:17;;;;;;;;;;;;;;;;8533:41;;8624:6;8607:13;:23;;8585:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;8743:6;8727:13;:22;;;;:::i;:::-;8707:9;:17;8717:6;8707:17;;;;;;;;;;;;;;;:42;;;;8784:6;8760:9;:20;8770:9;8760:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;8825:9;8808:35;;8817:6;8808:35;;;8836:6;8808:35;;;;;;:::i;:::-;;;;;;;;8357:494;8236:615;;;:::o;19338:448::-;19404:21;19442:1;19428:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19404:40;;19473:4;19455;19460:1;19455:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19499:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19489:4;19494:1;19489:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19525:53;19542:4;19557:6;;;;;;;;;;;19566:11;19525:8;:53::i;:::-;19591:6;;;;;;;;;;;:57;;;19663:11;19689:1;19705:4;19732;19752:15;19591:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19393:393;19338:448;:::o;19794:431::-;19875:53;19892:4;19907:6;;;;;;;;;;;19916:11;19875:8;:53::i;:::-;19971:6;;;;;;;;;;;:22;;;20001:9;20034:4;20054:11;20080:1;20123;13039:42;20191:15;19971:246;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19794:431;;:::o;10129:391::-;10258:6;10233:21;:31;;10211:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;10335:12;10353:9;:14;;10375:6;10353:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10334:52;;;10419:7;10397:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;10200:320;10129:391;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:116::-;3516:21;3531:5;3516:21;:::i;:::-;3509:5;3506:32;3496:60;;3552:1;3549;3542:12;3496:60;3446:116;:::o;3568:133::-;3611:5;3649:6;3636:20;3627:29;;3665:30;3689:5;3665:30;:::i;:::-;3568:133;;;;:::o;3707:323::-;3763:6;3812:2;3800:9;3791:7;3787:23;3783:32;3780:119;;;3818:79;;:::i;:::-;3780:119;3938:1;3963:50;4005:7;3996:6;3985:9;3981:22;3963:50;:::i;:::-;3953:60;;3909:114;3707:323;;;;:::o;4036:118::-;4123:24;4141:5;4123:24;:::i;:::-;4118:3;4111:37;4036:118;;:::o;4160:222::-;4253:4;4291:2;4280:9;4276:18;4268:26;;4304:71;4372:1;4361:9;4357:17;4348:6;4304:71;:::i;:::-;4160:222;;;;:::o;4388:474::-;4456:6;4464;4513:2;4501:9;4492:7;4488:23;4484:32;4481:119;;;4519:79;;:::i;:::-;4481:119;4639:1;4664:53;4709:7;4700:6;4689:9;4685:22;4664:53;:::i;:::-;4654:63;;4610:117;4766:2;4792:53;4837:7;4828:6;4817:9;4813:22;4792:53;:::i;:::-;4782:63;;4737:118;4388:474;;;;;:::o;4868:619::-;4945:6;4953;4961;5010:2;4998:9;4989:7;4985:23;4981:32;4978:119;;;5016:79;;:::i;:::-;4978:119;5136:1;5161:53;5206:7;5197:6;5186:9;5182:22;5161:53;:::i;:::-;5151:63;;5107:117;5263:2;5289:53;5334:7;5325:6;5314:9;5310:22;5289:53;:::i;:::-;5279:63;;5234:118;5391:2;5417:53;5462:7;5453:6;5442:9;5438:22;5417:53;:::i;:::-;5407:63;;5362:118;4868:619;;;;;:::o;5493:86::-;5528:7;5568:4;5561:5;5557:16;5546:27;;5493:86;;;:::o;5585:112::-;5668:22;5684:5;5668:22;:::i;:::-;5663:3;5656:35;5585:112;;:::o;5703:214::-;5792:4;5830:2;5819:9;5815:18;5807:26;;5843:67;5907:1;5896:9;5892:17;5883:6;5843:67;:::i;:::-;5703:214;;;;:::o;5923:329::-;5982:6;6031:2;6019:9;6010:7;6006:23;6002:32;5999:119;;;6037:79;;:::i;:::-;5999:119;6157:1;6182:53;6227:7;6218:6;6207:9;6203:22;6182:53;:::i;:::-;6172:63;;6128:117;5923:329;;;;:::o;6258:468::-;6323:6;6331;6380:2;6368:9;6359:7;6355:23;6351:32;6348:119;;;6386:79;;:::i;:::-;6348:119;6506:1;6531:53;6576:7;6567:6;6556:9;6552:22;6531:53;:::i;:::-;6521:63;;6477:117;6633:2;6659:50;6701:7;6692:6;6681:9;6677:22;6659:50;:::i;:::-;6649:60;;6604:115;6258:468;;;;;:::o;6732:118::-;6819:24;6837:5;6819:24;:::i;:::-;6814:3;6807:37;6732:118;;:::o;6856:222::-;6949:4;6987:2;6976:9;6972:18;6964:26;;7000:71;7068:1;7057:9;7053:17;7044:6;7000:71;:::i;:::-;6856:222;;;;:::o;7084:117::-;7193:1;7190;7183:12;7207:180;7255:77;7252:1;7245:88;7352:4;7349:1;7342:15;7376:4;7373:1;7366:15;7393:281;7476:27;7498:4;7476:27;:::i;:::-;7468:6;7464:40;7606:6;7594:10;7591:22;7570:18;7558:10;7555:34;7552:62;7549:88;;;7617:18;;:::i;:::-;7549:88;7657:10;7653:2;7646:22;7436:238;7393:281;;:::o;7680:129::-;7714:6;7741:20;;:::i;:::-;7731:30;;7770:33;7798:4;7790:6;7770:33;:::i;:::-;7680:129;;;:::o;7815:311::-;7892:4;7982:18;7974:6;7971:30;7968:56;;;8004:18;;:::i;:::-;7968:56;8054:4;8046:6;8042:17;8034:25;;8114:4;8108;8104:15;8096:23;;7815:311;;;:::o;8132:117::-;8241:1;8238;8231:12;8272:710;8368:5;8393:81;8409:64;8466:6;8409:64;:::i;:::-;8393:81;:::i;:::-;8384:90;;8494:5;8523:6;8516:5;8509:21;8557:4;8550:5;8546:16;8539:23;;8610:4;8602:6;8598:17;8590:6;8586:30;8639:3;8631:6;8628:15;8625:122;;;8658:79;;:::i;:::-;8625:122;8773:6;8756:220;8790:6;8785:3;8782:15;8756:220;;;8865:3;8894:37;8927:3;8915:10;8894:37;:::i;:::-;8889:3;8882:50;8961:4;8956:3;8952:14;8945:21;;8832:144;8816:4;8811:3;8807:14;8800:21;;8756:220;;;8760:21;8374:608;;8272:710;;;;;:::o;9005:370::-;9076:5;9125:3;9118:4;9110:6;9106:17;9102:27;9092:122;;9133:79;;:::i;:::-;9092:122;9250:6;9237:20;9275:94;9365:3;9357:6;9350:4;9342:6;9338:17;9275:94;:::i;:::-;9266:103;;9082:293;9005:370;;;;:::o;9381:678::-;9471:6;9479;9528:2;9516:9;9507:7;9503:23;9499:32;9496:119;;;9534:79;;:::i;:::-;9496:119;9682:1;9671:9;9667:17;9654:31;9712:18;9704:6;9701:30;9698:117;;;9734:79;;:::i;:::-;9698:117;9839:78;9909:7;9900:6;9889:9;9885:22;9839:78;:::i;:::-;9829:88;;9625:302;9966:2;9992:50;10034:7;10025:6;10014:9;10010:22;9992:50;:::i;:::-;9982:60;;9937:115;9381:678;;;;;:::o;10065:474::-;10133:6;10141;10190:2;10178:9;10169:7;10165:23;10161:32;10158:119;;;10196:79;;:::i;:::-;10158:119;10316:1;10341:53;10386:7;10377:6;10366:9;10362:22;10341:53;:::i;:::-;10331:63;;10287:117;10443:2;10469:53;10514:7;10505:6;10494:9;10490:22;10469:53;:::i;:::-;10459:63;;10414:118;10065:474;;;;;:::o;10545:60::-;10573:3;10594:5;10587:12;;10545:60;;;:::o;10611:142::-;10661:9;10694:53;10712:34;10721:24;10739:5;10721:24;:::i;:::-;10712:34;:::i;:::-;10694:53;:::i;:::-;10681:66;;10611:142;;;:::o;10759:126::-;10809:9;10842:37;10873:5;10842:37;:::i;:::-;10829:50;;10759:126;;;:::o;10891:141::-;10956:9;10989:37;11020:5;10989:37;:::i;:::-;10976:50;;10891:141;;;:::o;11038:161::-;11140:52;11186:5;11140:52;:::i;:::-;11135:3;11128:65;11038:161;;:::o;11205:252::-;11313:4;11351:2;11340:9;11336:18;11328:26;;11364:86;11447:1;11436:9;11432:17;11423:6;11364:86;:::i;:::-;11205:252;;;;:::o;11463:180::-;11511:77;11508:1;11501:88;11608:4;11605:1;11598:15;11632:4;11629:1;11622:15;11649:320;11693:6;11730:1;11724:4;11720:12;11710:22;;11777:1;11771:4;11767:12;11798:18;11788:81;;11854:4;11846:6;11842:17;11832:27;;11788:81;11916:2;11908:6;11905:14;11885:18;11882:38;11879:84;;11935:18;;:::i;:::-;11879:84;11700:269;11649:320;;;:::o;11975:182::-;12115:34;12111:1;12103:6;12099:14;12092:58;11975:182;:::o;12163:366::-;12305:3;12326:67;12390:2;12385:3;12326:67;:::i;:::-;12319:74;;12402:93;12491:3;12402:93;:::i;:::-;12520:2;12515:3;12511:12;12504:19;;12163:366;;;:::o;12535:419::-;12701:4;12739:2;12728:9;12724:18;12716:26;;12788:9;12782:4;12778:20;12774:1;12763:9;12759:17;12752:47;12816:131;12942:4;12816:131;:::i;:::-;12808:139;;12535:419;;;:::o;12960:224::-;13100:34;13096:1;13088:6;13084:14;13077:58;13169:7;13164:2;13156:6;13152:15;13145:32;12960:224;:::o;13190:366::-;13332:3;13353:67;13417:2;13412:3;13353:67;:::i;:::-;13346:74;;13429:93;13518:3;13429:93;:::i;:::-;13547:2;13542:3;13538:12;13531:19;;13190:366;;;:::o;13562:419::-;13728:4;13766:2;13755:9;13751:18;13743:26;;13815:9;13809:4;13805:20;13801:1;13790:9;13786:17;13779:47;13843:131;13969:4;13843:131;:::i;:::-;13835:139;;13562:419;;;:::o;13987:239::-;14127:34;14123:1;14115:6;14111:14;14104:58;14196:22;14191:2;14183:6;14179:15;14172:47;13987:239;:::o;14232:366::-;14374:3;14395:67;14459:2;14454:3;14395:67;:::i;:::-;14388:74;;14471:93;14560:3;14471:93;:::i;:::-;14589:2;14584:3;14580:12;14573:19;;14232:366;;;:::o;14604:419::-;14770:4;14808:2;14797:9;14793:18;14785:26;;14857:9;14851:4;14847:20;14843:1;14832:9;14828:17;14821:47;14885:131;15011:4;14885:131;:::i;:::-;14877:139;;14604:419;;;:::o;15029:180::-;15077:77;15074:1;15067:88;15174:4;15171:1;15164:15;15198:4;15195:1;15188:15;15215:102;15257:8;15304:5;15301:1;15297:13;15276:34;;15215:102;;;:::o;15323:848::-;15384:5;15391:4;15415:6;15406:15;;15439:5;15430:14;;15453:712;15474:1;15464:8;15461:15;15453:712;;;15569:4;15564:3;15560:14;15554:4;15551:24;15548:50;;;15578:18;;:::i;:::-;15548:50;15628:1;15618:8;15614:16;15611:451;;;16043:4;16036:5;16032:16;16023:25;;15611:451;16093:4;16087;16083:15;16075:23;;16123:32;16146:8;16123:32;:::i;:::-;16111:44;;15453:712;;;15323:848;;;;;;;:::o;16177:1073::-;16231:5;16422:8;16412:40;;16443:1;16434:10;;16445:5;;16412:40;16471:4;16461:36;;16488:1;16479:10;;16490:5;;16461:36;16557:4;16605:1;16600:27;;;;16641:1;16636:191;;;;16550:277;;16600:27;16618:1;16609:10;;16620:5;;;16636:191;16681:3;16671:8;16668:17;16665:43;;;16688:18;;:::i;:::-;16665:43;16737:8;16734:1;16730:16;16721:25;;16772:3;16765:5;16762:14;16759:40;;;16779:18;;:::i;:::-;16759:40;16812:5;;;16550:277;;16936:2;16926:8;16923:16;16917:3;16911:4;16908:13;16904:36;16886:2;16876:8;16873:16;16868:2;16862:4;16859:12;16855:35;16839:111;16836:246;;;16992:8;16986:4;16982:19;16973:28;;17027:3;17020:5;17017:14;17014:40;;;17034:18;;:::i;:::-;17014:40;17067:5;;16836:246;17107:42;17145:3;17135:8;17129:4;17126:1;17107:42;:::i;:::-;17092:57;;;;17181:4;17176:3;17172:14;17165:5;17162:25;17159:51;;;17190:18;;:::i;:::-;17159:51;17239:4;17232:5;17228:16;17219:25;;16177:1073;;;;;;:::o;17256:281::-;17314:5;17338:23;17356:4;17338:23;:::i;:::-;17330:31;;17382:25;17398:8;17382:25;:::i;:::-;17370:37;;17426:104;17463:66;17453:8;17447:4;17426:104;:::i;:::-;17417:113;;17256:281;;;;:::o;17543:410::-;17583:7;17606:20;17624:1;17606:20;:::i;:::-;17601:25;;17640:20;17658:1;17640:20;:::i;:::-;17635:25;;17695:1;17692;17688:9;17717:30;17735:11;17717:30;:::i;:::-;17706:41;;17896:1;17887:7;17883:15;17880:1;17877:22;17857:1;17850:9;17830:83;17807:139;;17926:18;;:::i;:::-;17807:139;17591:362;17543:410;;;;:::o;17959:227::-;18099:34;18095:1;18087:6;18083:14;18076:58;18168:10;18163:2;18155:6;18151:15;18144:35;17959:227;:::o;18192:366::-;18334:3;18355:67;18419:2;18414:3;18355:67;:::i;:::-;18348:74;;18431:93;18520:3;18431:93;:::i;:::-;18549:2;18544:3;18540:12;18533:19;;18192:366;;;:::o;18564:419::-;18730:4;18768:2;18757:9;18753:18;18745:26;;18817:9;18811:4;18807:20;18803:1;18792:9;18788:17;18781:47;18845:131;18971:4;18845:131;:::i;:::-;18837:139;;18564:419;;;:::o;18989:194::-;19029:4;19049:20;19067:1;19049:20;:::i;:::-;19044:25;;19083:20;19101:1;19083:20;:::i;:::-;19078:25;;19127:1;19124;19120:9;19112:17;;19151:1;19145:4;19142:11;19139:37;;;19156:18;;:::i;:::-;19139:37;18989:194;;;;:::o;19189:191::-;19229:3;19248:20;19266:1;19248:20;:::i;:::-;19243:25;;19282:20;19300:1;19282:20;:::i;:::-;19277:25;;19325:1;19322;19318:9;19311:16;;19346:3;19343:1;19340:10;19337:36;;;19353:18;;:::i;:::-;19337:36;19189:191;;;;:::o;19386:221::-;19526:34;19522:1;19514:6;19510:14;19503:58;19595:4;19590:2;19582:6;19578:15;19571:29;19386:221;:::o;19613:366::-;19755:3;19776:67;19840:2;19835:3;19776:67;:::i;:::-;19769:74;;19852:93;19941:3;19852:93;:::i;:::-;19970:2;19965:3;19961:12;19954:19;;19613:366;;;:::o;19985:419::-;20151:4;20189:2;20178:9;20174:18;20166:26;;20238:9;20232:4;20228:20;20224:1;20213:9;20209:17;20202:47;20266:131;20392:4;20266:131;:::i;:::-;20258:139;;19985:419;;;:::o;20410:174::-;20550:26;20546:1;20538:6;20534:14;20527:50;20410:174;:::o;20590:366::-;20732:3;20753:67;20817:2;20812:3;20753:67;:::i;:::-;20746:74;;20829:93;20918:3;20829:93;:::i;:::-;20947:2;20942:3;20938:12;20931:19;;20590:366;;;:::o;20962:419::-;21128:4;21166:2;21155:9;21151:18;21143:26;;21215:9;21209:4;21205:20;21201:1;21190:9;21186:17;21179:47;21243:131;21369:4;21243:131;:::i;:::-;21235:139;;20962:419;;;:::o;21387:332::-;21508:4;21546:2;21535:9;21531:18;21523:26;;21559:71;21627:1;21616:9;21612:17;21603:6;21559:71;:::i;:::-;21640:72;21708:2;21697:9;21693:18;21684:6;21640:72;:::i;:::-;21387:332;;;;;:::o;21725:174::-;21865:26;21861:1;21853:6;21849:14;21842:50;21725:174;:::o;21905:366::-;22047:3;22068:67;22132:2;22127:3;22068:67;:::i;:::-;22061:74;;22144:93;22233:3;22144:93;:::i;:::-;22262:2;22257:3;22253:12;22246:19;;21905:366;;;:::o;22277:419::-;22443:4;22481:2;22470:9;22466:18;22458:26;;22530:9;22524:4;22520:20;22516:1;22505:9;22501:17;22494:47;22558:131;22684:4;22558:131;:::i;:::-;22550:139;;22277:419;;;:::o;22702:241::-;22842:34;22838:1;22830:6;22826:14;22819:58;22911:24;22906:2;22898:6;22894:15;22887:49;22702:241;:::o;22949:366::-;23091:3;23112:67;23176:2;23171:3;23112:67;:::i;:::-;23105:74;;23188:93;23277:3;23188:93;:::i;:::-;23306:2;23301:3;23297:12;23290:19;;22949:366;;;:::o;23321:419::-;23487:4;23525:2;23514:9;23510:18;23502:26;;23574:9;23568:4;23564:20;23560:1;23549:9;23545:17;23538:47;23602:131;23728:4;23602:131;:::i;:::-;23594:139;;23321:419;;;:::o;23746:332::-;23867:4;23905:2;23894:9;23890:18;23882:26;;23918:71;23986:1;23975:9;23971:17;23962:6;23918:71;:::i;:::-;23999:72;24067:2;24056:9;24052:18;24043:6;23999:72;:::i;:::-;23746:332;;;;;:::o;24084:137::-;24138:5;24169:6;24163:13;24154:22;;24185:30;24209:5;24185:30;:::i;:::-;24084:137;;;;:::o;24227:345::-;24294:6;24343:2;24331:9;24322:7;24318:23;24314:32;24311:119;;;24349:79;;:::i;:::-;24311:119;24469:1;24494:61;24547:7;24538:6;24527:9;24523:22;24494:61;:::i;:::-;24484:71;;24440:125;24227:345;;;;:::o;24578:180::-;24626:77;24623:1;24616:88;24723:4;24720:1;24713:15;24747:4;24744:1;24737:15;24764:233;24803:3;24826:24;24844:5;24826:24;:::i;:::-;24817:33;;24872:66;24865:5;24862:77;24859:103;;24942:18;;:::i;:::-;24859:103;24989:1;24982:5;24978:13;24971:20;;24764:233;;;:::o;25003:224::-;25143:34;25139:1;25131:6;25127:14;25120:58;25212:7;25207:2;25199:6;25195:15;25188:32;25003:224;:::o;25233:366::-;25375:3;25396:67;25460:2;25455:3;25396:67;:::i;:::-;25389:74;;25472:93;25561:3;25472:93;:::i;:::-;25590:2;25585:3;25581:12;25574:19;;25233:366;;;:::o;25605:419::-;25771:4;25809:2;25798:9;25794:18;25786:26;;25858:9;25852:4;25848:20;25844:1;25833:9;25829:17;25822:47;25886:131;26012:4;25886:131;:::i;:::-;25878:139;;25605:419;;;:::o;26030:230::-;26170:34;26166:1;26158:6;26154:14;26147:58;26239:13;26234:2;26226:6;26222:15;26215:38;26030:230;:::o;26266:366::-;26408:3;26429:67;26493:2;26488:3;26429:67;:::i;:::-;26422:74;;26505:93;26594:3;26505:93;:::i;:::-;26623:2;26618:3;26614:12;26607:19;;26266:366;;;:::o;26638:419::-;26804:4;26842:2;26831:9;26827:18;26819:26;;26891:9;26885:4;26881:20;26877:1;26866:9;26862:17;26855:47;26919:131;27045:4;26919:131;:::i;:::-;26911:139;;26638:419;;;:::o;27063:226::-;27203:34;27199:1;27191:6;27187:14;27180:58;27272:9;27267:2;27259:6;27255:15;27248:34;27063:226;:::o;27295:366::-;27437:3;27458:67;27522:2;27517:3;27458:67;:::i;:::-;27451:74;;27534:93;27623:3;27534:93;:::i;:::-;27652:2;27647:3;27643:12;27636:19;;27295:366;;;:::o;27667:419::-;27833:4;27871:2;27860:9;27856:18;27848:26;;27920:9;27914:4;27910:20;27906:1;27895:9;27891:17;27884:47;27948:131;28074:4;27948:131;:::i;:::-;27940:139;;27667:419;;;:::o;28092:225::-;28232:34;28228:1;28220:6;28216:14;28209:58;28301:8;28296:2;28288:6;28284:15;28277:33;28092:225;:::o;28323:366::-;28465:3;28486:67;28550:2;28545:3;28486:67;:::i;:::-;28479:74;;28562:93;28651:3;28562:93;:::i;:::-;28680:2;28675:3;28671:12;28664:19;;28323:366;;;:::o;28695:419::-;28861:4;28899:2;28888:9;28884:18;28876:26;;28948:9;28942:4;28938:20;28934:1;28923:9;28919:17;28912:47;28976:131;29102:4;28976:131;:::i;:::-;28968:139;;28695:419;;;:::o;29120:223::-;29260:34;29256:1;29248:6;29244:14;29237:58;29329:6;29324:2;29316:6;29312:15;29305:31;29120:223;:::o;29349:366::-;29491:3;29512:67;29576:2;29571:3;29512:67;:::i;:::-;29505:74;;29588:93;29677:3;29588:93;:::i;:::-;29706:2;29701:3;29697:12;29690:19;;29349:366;;;:::o;29721:419::-;29887:4;29925:2;29914:9;29910:18;29902:26;;29974:9;29968:4;29964:20;29960:1;29949:9;29945:17;29938:47;30002:131;30128:4;30002:131;:::i;:::-;29994:139;;29721:419;;;:::o;30146:221::-;30286:34;30282:1;30274:6;30270:14;30263:58;30355:4;30350:2;30342:6;30338:15;30331:29;30146:221;:::o;30373:366::-;30515:3;30536:67;30600:2;30595:3;30536:67;:::i;:::-;30529:74;;30612:93;30701:3;30612:93;:::i;:::-;30730:2;30725:3;30721:12;30714:19;;30373:366;;;:::o;30745:419::-;30911:4;30949:2;30938:9;30934:18;30926:26;;30998:9;30992:4;30988:20;30984:1;30973:9;30969:17;30962:47;31026:131;31152:4;31026:131;:::i;:::-;31018:139;;30745:419;;;:::o;31170:228::-;31310:34;31306:1;31298:6;31294:14;31287:58;31379:11;31374:2;31366:6;31362:15;31355:36;31170:228;:::o;31404:366::-;31546:3;31567:67;31631:2;31626:3;31567:67;:::i;:::-;31560:74;;31643:93;31732:3;31643:93;:::i;:::-;31761:2;31756:3;31752:12;31745:19;;31404:366;;;:::o;31776:419::-;31942:4;31980:2;31969:9;31965:18;31957:26;;32029:9;32023:4;32019:20;32015:1;32004:9;32000:17;31993:47;32057:131;32183:4;32057:131;:::i;:::-;32049:139;;31776:419;;;:::o;32201:175::-;32341:27;32337:1;32329:6;32325:14;32318:51;32201:175;:::o;32382:366::-;32524:3;32545:67;32609:2;32604:3;32545:67;:::i;:::-;32538:74;;32621:93;32710:3;32621:93;:::i;:::-;32739:2;32734:3;32730:12;32723:19;;32382:366;;;:::o;32754:419::-;32920:4;32958:2;32947:9;32943:18;32935:26;;33007:9;33001:4;32997:20;32993:1;32982:9;32978:17;32971:47;33035:131;33161:4;33035:131;:::i;:::-;33027:139;;32754:419;;;:::o;33179:169::-;33319:21;33315:1;33307:6;33303:14;33296:45;33179:169;:::o;33354:366::-;33496:3;33517:67;33581:2;33576:3;33517:67;:::i;:::-;33510:74;;33593:93;33682:3;33593:93;:::i;:::-;33711:2;33706:3;33702:12;33695:19;;33354:366;;;:::o;33726:419::-;33892:4;33930:2;33919:9;33915:18;33907:26;;33979:9;33973:4;33969:20;33965:1;33954:9;33950:17;33943:47;34007:131;34133:4;34007:131;:::i;:::-;33999:139;;33726:419;;;:::o;34151:175::-;34291:27;34287:1;34279:6;34275:14;34268:51;34151:175;:::o;34332:366::-;34474:3;34495:67;34559:2;34554:3;34495:67;:::i;:::-;34488:74;;34571:93;34660:3;34571:93;:::i;:::-;34689:2;34684:3;34680:12;34673:19;;34332:366;;;:::o;34704:419::-;34870:4;34908:2;34897:9;34893:18;34885:26;;34957:9;34951:4;34947:20;34943:1;34932:9;34928:17;34921:47;34985:131;35111:4;34985:131;:::i;:::-;34977:139;;34704:419;;;:::o;35129:176::-;35269:28;35265:1;35257:6;35253:14;35246:52;35129:176;:::o;35311:366::-;35453:3;35474:67;35538:2;35533:3;35474:67;:::i;:::-;35467:74;;35550:93;35639:3;35550:93;:::i;:::-;35668:2;35663:3;35659:12;35652:19;;35311:366;;;:::o;35683:419::-;35849:4;35887:2;35876:9;35872:18;35864:26;;35936:9;35930:4;35926:20;35922:1;35911:9;35907:17;35900:47;35964:131;36090:4;35964:131;:::i;:::-;35956:139;;35683:419;;;:::o;36108:180::-;36156:77;36153:1;36146:88;36253:4;36250:1;36243:15;36277:4;36274:1;36267:15;36294:185;36334:1;36351:20;36369:1;36351:20;:::i;:::-;36346:25;;36385:20;36403:1;36385:20;:::i;:::-;36380:25;;36424:1;36414:35;;36429:18;;:::i;:::-;36414:35;36471:1;36468;36464:9;36459:14;;36294:185;;;;:::o;36485:224::-;36625:34;36621:1;36613:6;36609:14;36602:58;36694:7;36689:2;36681:6;36677:15;36670:32;36485:224;:::o;36715:366::-;36857:3;36878:67;36942:2;36937:3;36878:67;:::i;:::-;36871:74;;36954:93;37043:3;36954:93;:::i;:::-;37072:2;37067:3;37063:12;37056:19;;36715:366;;;:::o;37087:419::-;37253:4;37291:2;37280:9;37276:18;37268:26;;37340:9;37334:4;37330:20;37326:1;37315:9;37311:17;37304:47;37368:131;37494:4;37368:131;:::i;:::-;37360:139;;37087:419;;;:::o;37512:222::-;37652:34;37648:1;37640:6;37636:14;37629:58;37721:5;37716:2;37708:6;37704:15;37697:30;37512:222;:::o;37740:366::-;37882:3;37903:67;37967:2;37962:3;37903:67;:::i;:::-;37896:74;;37979:93;38068:3;37979:93;:::i;:::-;38097:2;38092:3;38088:12;38081:19;;37740:366;;;:::o;38112:419::-;38278:4;38316:2;38305:9;38301:18;38293:26;;38365:9;38359:4;38355:20;38351:1;38340:9;38336:17;38329:47;38393:131;38519:4;38393:131;:::i;:::-;38385:139;;38112:419;;;:::o;38537:225::-;38677:34;38673:1;38665:6;38661:14;38654:58;38746:8;38741:2;38733:6;38729:15;38722:33;38537:225;:::o;38768:366::-;38910:3;38931:67;38995:2;38990:3;38931:67;:::i;:::-;38924:74;;39007:93;39096:3;39007:93;:::i;:::-;39125:2;39120:3;39116:12;39109:19;;38768:366;;;:::o;39140:419::-;39306:4;39344:2;39333:9;39329:18;39321:26;;39393:9;39387:4;39383:20;39379:1;39368:9;39364:17;39357:47;39421:131;39547:4;39421:131;:::i;:::-;39413:139;;39140:419;;;:::o;39565:143::-;39622:5;39653:6;39647:13;39638:22;;39669:33;39696:5;39669:33;:::i;:::-;39565:143;;;;:::o;39714:351::-;39784:6;39833:2;39821:9;39812:7;39808:23;39804:32;39801:119;;;39839:79;;:::i;:::-;39801:119;39959:1;39984:64;40040:7;40031:6;40020:9;40016:22;39984:64;:::i;:::-;39974:74;;39930:128;39714:351;;;;:::o;40071:85::-;40116:7;40145:5;40134:16;;40071:85;;;:::o;40162:158::-;40220:9;40253:61;40271:42;40280:32;40306:5;40280:32;:::i;:::-;40271:42;:::i;:::-;40253:61;:::i;:::-;40240:74;;40162:158;;;:::o;40326:147::-;40421:45;40460:5;40421:45;:::i;:::-;40416:3;40409:58;40326:147;;:::o;40479:114::-;40546:6;40580:5;40574:12;40564:22;;40479:114;;;:::o;40599:184::-;40698:11;40732:6;40727:3;40720:19;40772:4;40767:3;40763:14;40748:29;;40599:184;;;;:::o;40789:132::-;40856:4;40879:3;40871:11;;40909:4;40904:3;40900:14;40892:22;;40789:132;;;:::o;40927:108::-;41004:24;41022:5;41004:24;:::i;:::-;40999:3;40992:37;40927:108;;:::o;41041:179::-;41110:10;41131:46;41173:3;41165:6;41131:46;:::i;:::-;41209:4;41204:3;41200:14;41186:28;;41041:179;;;;:::o;41226:113::-;41296:4;41328;41323:3;41319:14;41311:22;;41226:113;;;:::o;41375:732::-;41494:3;41523:54;41571:5;41523:54;:::i;:::-;41593:86;41672:6;41667:3;41593:86;:::i;:::-;41586:93;;41703:56;41753:5;41703:56;:::i;:::-;41782:7;41813:1;41798:284;41823:6;41820:1;41817:13;41798:284;;;41899:6;41893:13;41926:63;41985:3;41970:13;41926:63;:::i;:::-;41919:70;;42012:60;42065:6;42012:60;:::i;:::-;42002:70;;41858:224;41845:1;41842;41838:9;41833:14;;41798:284;;;41802:14;42098:3;42091:10;;41499:608;;;41375:732;;;;:::o;42113:831::-;42376:4;42414:3;42403:9;42399:19;42391:27;;42428:71;42496:1;42485:9;42481:17;42472:6;42428:71;:::i;:::-;42509:80;42585:2;42574:9;42570:18;42561:6;42509:80;:::i;:::-;42636:9;42630:4;42626:20;42621:2;42610:9;42606:18;42599:48;42664:108;42767:4;42758:6;42664:108;:::i;:::-;42656:116;;42782:72;42850:2;42839:9;42835:18;42826:6;42782:72;:::i;:::-;42864:73;42932:3;42921:9;42917:19;42908:6;42864:73;:::i;:::-;42113:831;;;;;;;;:::o;42950:807::-;43199:4;43237:3;43226:9;43222:19;43214:27;;43251:71;43319:1;43308:9;43304:17;43295:6;43251:71;:::i;:::-;43332:72;43400:2;43389:9;43385:18;43376:6;43332:72;:::i;:::-;43414:80;43490:2;43479:9;43475:18;43466:6;43414:80;:::i;:::-;43504;43580:2;43569:9;43565:18;43556:6;43504:80;:::i;:::-;43594:73;43662:3;43651:9;43647:19;43638:6;43594:73;:::i;:::-;43677;43745:3;43734:9;43730:19;43721:6;43677:73;:::i;:::-;42950:807;;;;;;;;;:::o;43763:143::-;43820:5;43851:6;43845:13;43836:22;;43867:33;43894:5;43867:33;:::i;:::-;43763:143;;;;:::o;43912:663::-;44000:6;44008;44016;44065:2;44053:9;44044:7;44040:23;44036:32;44033:119;;;44071:79;;:::i;:::-;44033:119;44191:1;44216:64;44272:7;44263:6;44252:9;44248:22;44216:64;:::i;:::-;44206:74;;44162:128;44329:2;44355:64;44411:7;44402:6;44391:9;44387:22;44355:64;:::i;:::-;44345:74;;44300:129;44468:2;44494:64;44550:7;44541:6;44530:9;44526:22;44494:64;:::i;:::-;44484:74;;44439:129;43912:663;;;;;:::o;44581:179::-;44721:31;44717:1;44709:6;44705:14;44698:55;44581:179;:::o;44766:366::-;44908:3;44929:67;44993:2;44988:3;44929:67;:::i;:::-;44922:74;;45005:93;45094:3;45005:93;:::i;:::-;45123:2;45118:3;45114:12;45107:19;;44766:366;;;:::o;45138:419::-;45304:4;45342:2;45331:9;45327:18;45319:26;;45391:9;45385:4;45381:20;45377:1;45366:9;45362:17;45355:47;45419:131;45545:4;45419:131;:::i;:::-;45411:139;;45138:419;;;:::o;45563:147::-;45664:11;45701:3;45686:18;;45563:147;;;;:::o;45716:114::-;;:::o;45836:398::-;45995:3;46016:83;46097:1;46092:3;46016:83;:::i;:::-;46009:90;;46108:93;46197:3;46108:93;:::i;:::-;46226:1;46221:3;46217:11;46210:18;;45836:398;;;:::o;46240:379::-;46424:3;46446:147;46589:3;46446:147;:::i;:::-;46439:154;;46610:3;46603:10;;46240:379;;;:::o;46625:245::-;46765:34;46761:1;46753:6;46749:14;46742:58;46834:28;46829:2;46821:6;46817:15;46810:53;46625:245;:::o;46876:366::-;47018:3;47039:67;47103:2;47098:3;47039:67;:::i;:::-;47032:74;;47115:93;47204:3;47115:93;:::i;:::-;47233:2;47228:3;47224:12;47217:19;;46876:366;;;:::o;47248:419::-;47414:4;47452:2;47441:9;47437:18;47429:26;;47501:9;47495:4;47491:20;47487:1;47476:9;47472:17;47465:47;47529:131;47655:4;47529:131;:::i;:::-;47521:139;;47248:419;;;:::o

Swarm Source

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