ETH Price: $3,814.20 (+0.96%)
Gas: 14 Gwei

Token

Bells (BEL)
 

Overview

Max Total Supply

500,000,000 BEL

Holders

483

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
hatas.eth
Balance
25,000.000000000002932129 BEL

Value
$0.00
0x9beb2a114da37278e7038ea937178b1059237add
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:
Bells

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-06
*/

//SPDX-License-Identifier: UNLICENSED

/*

https://t.me/BellsCoin

In the Animal Crossing universe, Bells are the primary form of currency. To gather them, you must collect fruits, catch bugs, fish, dig for fossils, etc. and trade those items for Bells. In the crypto world, we just mine for them!

The Bell amount you get from the various items is quite random, so Bells as a cryptocurrency has random rewards in various denominations as well.

https://bitcointalk.org/index.php?topic=349695.0
https://github.com/bellscoin/bellscoin
https://twitter.com/BillyM2k/status/408815850615869440


*/

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");

        _beforeTokenTransfer(sender, recipient, amount);

        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 {
        require(account != address(0), "ERC20: generation to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

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

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * generation and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be generated for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

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 Bells is ERC20, Ownable {
    using Address for address payable;

    IRouter public router;
    address public pair;

    bool private _liquidityMutex = false;
    bool private  providingLiquidity = false;
    bool public tradingEnabled = false;
    bool public zeroFee = false;

    uint256 private tokenLiquidityThreshold = 2500000 * 10**18;
    uint256 public maxWalletLimit = 5000000 * 10**18;

    uint256 private genesis_block;
    uint256 private deadline = 5;
    uint256 private launchtax = 40;

    address private  marketingWallet = 0xcecA24b0aD595b09A688F47f510D241EFcB04FB3;
    address private devWallet = 0xcecA24b0aD595b09A688F47f510D241EFcB04FB3;
    address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

    struct Taxes {
        uint256 marketing;
        uint256 liquidity;
        uint256 dev;   
    }

    Taxes public taxes = Taxes(8, 2, 0);
    Taxes public sellTaxes = Taxes(5, 5, 0);

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


    modifier mutexLock() {
        if (!_liquidityMutex) {
            _liquidityMutex = true;
            _;
            _liquidityMutex = false;
        }
    }

    constructor() ERC20("Bells", "BEL") {
        _tokengeneration(msg.sender, 500000000 * 10**decimals());

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        // Create a pair for this new token
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;
        exemptFee[address(this)] = true;
        exemptFee[msg.sender] = true;
        exemptFee[marketingWallet] = true;
        exemptFee[devWallet] = 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 && !exemptFee[recipient] && !_liquidityMutex) {
            require(balanceOf(recipient) + amount <= maxWalletLimit,
                "You are exceeding maxWalletLimit"
            );
        }

        if (sender != pair && !exemptFee[recipient] && !exemptFee[sender] && !_liquidityMutex) {
           
            if (recipient != pair) {
                require(balanceOf(recipient) + amount <= maxWalletLimit,
                    "You are exceeding maxWalletLimit"
                );
            }
        }

        uint256 feeswap;
        uint256 feesum;
        uint256 fee;
        Taxes memory currentTaxes;

        bool useLaunchFee = !exemptFee[sender] &&
            !exemptFee[recipient] &&
            block.number < genesis_block + deadline;

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

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

        fee = (amount * feesum) / 100;

        //send fees if threshold has been reached
        //don't do this on buys, breaks swap
        if (providingLiquidity && sender != pair) handle_fees(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 handle_fees(uint256 feeswap, Taxes memory swapTaxes) private mutexLock {

    if(feeswap == 0){
            return;
        }   

        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= tokenLiquidityThreshold) {
            if (tokenLiquidityThreshold > 1) {
                contractBalance = tokenLiquidityThreshold;
            }

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

            uint256 initialBalance = address(this).balance;

            swapTokensForETH(toSwap);

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

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

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

            uint256 devAmt = unitBalance * 2 * swapTaxes.dev;
            if (devAmt > 0) {
                payable(devWallet).sendValue(devAmt);
            }

        }
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        // generate the pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

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

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);

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

    function UpdateBuyTaxes(
        uint256 _marketing,
        uint256 _liquidity,
        uint256 _dev
    ) external onlyOwner {
        taxes = Taxes(_marketing, _liquidity, _dev);
    }

    function SetSellTaxes(
        uint256 _marketing,
        uint256 _liquidity,
        uint256 _dev
    ) external onlyOwner {
        sellTaxes = Taxes(_marketing, _liquidity, _dev);
    }

   function enableTrading() external onlyOwner {
        require(!tradingEnabled, "Trading is already enabled");
        tradingEnabled = true;
        providingLiquidity = true;
        genesis_block = block.number;
    }

    function updateMarketingWallet(address newWallet) external onlyOwner {
        marketingWallet = newWallet;
    }

    function updateDevWallet(address newWallet) external onlyOwner{
        devWallet = newWallet;
    }

    function updateIsEarlyBuyer(address account, bool state) external onlyOwner {
        isearlybuyer[account] = state;
    }

    function updateLiquidityProvide(bool state) external onlyOwner {
        //update liquidity providing state
        providingLiquidity = state;
    }

    function updateLiquidityTreshhold(uint256 new_amount) public{
        //update the treshhold
        require(msg.sender==devWallet,"only devWallet can update threshold");
        tokenLiquidityThreshold = new_amount * 10**decimals();
    }

    function toggleZeroFee(bool _zeroFee)public {
        require(msg.sender==devWallet,"only devWallet can update zeroFee");
        zeroFee=_zeroFee;
    }

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

    function updateExemptFee(address _address, bool state) external onlyOwner {
        exemptFee[_address] = state;
    }

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


    
    function updateMaxWalletLimit(uint256 maxWallet) external onlyOwner {
        maxWalletLimit = maxWallet * 10**decimals(); 
    }

    function rescueETH(uint256 weiAmount) external {
        payable(devWallet).transfer(weiAmount);
    }

    function rescueERC20(address tokenAdd, uint256 amount) external {
        IERC20(tokenAdd).transfer(devWallet, 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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"SetSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"UpdateBuyTaxes","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":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkIsEarlyBuyer","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":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_zeroFee","type":"bool"}],"name":"toggleZeroFee","outputs":[],"stateMutability":"nonpayable","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":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateIsEarlyBuyer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"updateMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"zeroFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f600760146101000a81548160ff0219169083151502179055505f600760156101000a81548160ff0219169083151502179055505f600760166101000a81548160ff0219169083151502179055505f600760176101000a81548160ff0219169083151502179055506a02116545850052128000006008556a0422ca8b0a00a4250000006009556005600b556028600c5573ceca24b0ad595b09a688f47f510d241efcb04fb3600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ceca24b0ad595b09a688f47f510d241efcb04fb3600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051806060016040528060088152602001600281526020015f815250600f5f820151815f015560208201518160010155604082015181600201555050604051806060016040528060058152602001600581526020015f81525060125f820151815f015560208201518160010155604082015181600201555050348015620001c2575f80fd5b506040518060400160405280600581526020017f42656c6c730000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f42454c0000000000000000000000000000000000000000000000000000000000815250816003908162000240919062000b15565b50806004908162000252919062000b15565b5050506200027562000269620006a360201b60201c565b620006aa60201b60201c565b620002b5336200028a6200076d60201b60201c565b600a62000298919062000d82565b631dcd6500620002a9919062000dd2565b6200077560201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000318573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200033e919062000e81565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003a4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003ca919062000e81565b6040518363ffffffff1660e01b8152600401620003e992919062000ec2565b6020604051808303815f875af115801562000406573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200042c919062000e81565b90508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160155f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160155f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160155f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160155f600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160155f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550505062000fbd565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620007e6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007dd9062000f71565b60405180910390fd5b620007f95f8383620008ac60201b60201c565b80600281905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620008a0919062000fa2565b60405180910390a35050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200092d57607f821691505b602082108103620009435762000942620008e8565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620009a77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200096a565b620009b386836200096a565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620009fd620009f7620009f184620009cb565b620009d4565b620009cb565b9050919050565b5f819050919050565b62000a1883620009dd565b62000a3062000a278262000a04565b84845462000976565b825550505050565b5f90565b62000a4662000a38565b62000a5381848462000a0d565b505050565b5b8181101562000a7a5762000a6e5f8262000a3c565b60018101905062000a59565b5050565b601f82111562000ac95762000a938162000949565b62000a9e846200095b565b8101602085101562000aae578190505b62000ac662000abd856200095b565b83018262000a58565b50505b505050565b5f82821c905092915050565b5f62000aeb5f198460080262000ace565b1980831691505092915050565b5f62000b05838362000ada565b9150826002028217905092915050565b62000b2082620008b1565b67ffffffffffffffff81111562000b3c5762000b3b620008bb565b5b62000b48825462000915565b62000b5582828562000a7e565b5f60209050601f83116001811462000b8b575f841562000b76578287015190505b62000b82858262000af8565b86555062000bf1565b601f19841662000b9b8662000949565b5f5b8281101562000bc45784890151825560018201915060208501945060208101905062000b9d565b8683101562000be4578489015162000be0601f89168262000ada565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000c835780860481111562000c5b5762000c5a62000bf9565b5b600185161562000c6b5780820291505b808102905062000c7b8562000c26565b945062000c3b565b94509492505050565b5f8262000c9d576001905062000d6f565b8162000cac575f905062000d6f565b816001811462000cc5576002811462000cd05762000d06565b600191505062000d6f565b60ff84111562000ce55762000ce462000bf9565b5b8360020a91508482111562000cff5762000cfe62000bf9565b5b5062000d6f565b5060208310610133831016604e8410600b841016171562000d405782820a90508381111562000d3a5762000d3962000bf9565b5b62000d6f565b62000d4f848484600162000c32565b9250905081840481111562000d695762000d6862000bf9565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000d8e82620009cb565b915062000d9b8362000d76565b925062000dca7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c8c565b905092915050565b5f62000dde82620009cb565b915062000deb83620009cb565b925082820262000dfb81620009cb565b9150828204841483151762000e155762000e1462000bf9565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000e4b8262000e20565b9050919050565b62000e5d8162000e3f565b811462000e68575f80fd5b50565b5f8151905062000e7b8162000e52565b92915050565b5f6020828403121562000e995762000e9862000e1c565b5b5f62000ea88482850162000e6b565b91505092915050565b62000ebc8162000e3f565b82525050565b5f60408201905062000ed75f83018562000eb1565b62000ee6602083018462000eb1565b9392505050565b5f82825260208201905092915050565b7f45524332303a2067656e65726174696f6e20746f20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f62000f5960258362000eed565b915062000f668262000efd565b604082019050919050565b5f6020820190508181035f83015262000f8a8162000f4b565b9050919050565b62000f9c81620009cb565b82525050565b5f60208201905062000fb75f83018462000f91565b92915050565b6144f18062000fcb5f395ff3fe608060405260043610610228575f3560e01c8063715018a6116101225780639e252f00116100aa578063c5d32bb21161006e578063c5d32bb2146107c7578063dd62ed3e14610803578063f2fde38b1461083f578063f66895a314610867578063f887ea40146108935761022f565b80639e252f00146106d5578063a457c2d7146106fd578063a8aa1b3114610739578063a9059cbb14610763578063aacebbe31461079f5761022f565b80638a8c523c116100f15780638a8c523c1461061b5780638cd4426d146106315780638da5cb5b1461065957806395d89b41146106835780639d282cd6146106ad5761022f565b8063715018a614610587578063728f8eea1461059d5780638514022d146105c957806385141a77146105f15761022f565b8063313ce567116101b05780634ada218b116101745780634ada218b146104a75780634e736f22146104d157806366a88d96146104f95780636e3d970f1461052357806370a082311461054b5761022f565b8063313ce567146103c9578063355496ca146103f3578063395093511461041b57806342b6fa11146104575780634324deae1461047f5761022f565b806318160ddd116101f757806318160ddd146102e95780631816467f14610313578063215d92a61461033b57806323b872dd146103635780632bd182d31461039f5761022f565b806306fdde0314610233578063095ea7b31461025d5780630e375a5c146102995780631340538f146102c15761022f565b3661022f57005b5f80fd5b34801561023e575f80fd5b506102476108bd565b6040516102549190612fc1565b60405180910390f35b348015610268575f80fd5b50610283600480360381019061027e919061307f565b61094d565b60405161029091906130d7565b60405180910390f35b3480156102a4575f80fd5b506102bf60048036038101906102ba919061325a565b61096a565b005b3480156102cc575f80fd5b506102e760048036038101906102e291906132b4565b610a71565b005b3480156102f4575f80fd5b506102fd610b0a565b60405161030a91906132ee565b60405180910390f35b34801561031e575f80fd5b5061033960048036038101906103349190613307565b610b13565b005b348015610346575f80fd5b50610361600480360381019061035c919061325a565b610bd2565b005b34801561036e575f80fd5b5061038960048036038101906103849190613332565b610cd9565b60405161039691906130d7565b60405180910390f35b3480156103aa575f80fd5b506103b3610dd4565b6040516103c091906130d7565b60405180910390f35b3480156103d4575f80fd5b506103dd610de7565b6040516103ea919061339d565b60405180910390f35b3480156103fe575f80fd5b50610419600480360381019061041491906133b6565b610def565b005b348015610426575f80fd5b50610441600480360381019061043c919061307f565b610ec3565b60405161044e91906130d7565b60405180910390f35b348015610462575f80fd5b5061047d600480360381019061047891906133f4565b610f6a565b005b34801561048a575f80fd5b506104a560048036038101906104a091906133f4565b611021565b005b3480156104b2575f80fd5b506104bb6110c5565b6040516104c891906130d7565b60405180910390f35b3480156104dc575f80fd5b506104f760048036038101906104f2919061341f565b6110d8565b005b348015610504575f80fd5b5061050d611195565b60405161051a91906132ee565b60405180910390f35b34801561052e575f80fd5b50610549600480360381019061054491906132b4565b61119b565b005b348015610556575f80fd5b50610571600480360381019061056c9190613307565b611247565b60405161057e91906132ee565b60405180910390f35b348015610592575f80fd5b5061059b61128c565b005b3480156105a8575f80fd5b506105b1611313565b6040516105c09392919061346f565b60405180910390f35b3480156105d4575f80fd5b506105ef60048036038101906105ea91906133b6565b61132a565b005b3480156105fc575f80fd5b506106056113fe565b60405161061291906134b3565b60405180910390f35b348015610626575f80fd5b5061062f611404565b005b34801561063c575f80fd5b506106576004803603810190610652919061307f565b61150f565b005b348015610664575f80fd5b5061066d6115b0565b60405161067a91906134b3565b60405180910390f35b34801561068e575f80fd5b506106976115d8565b6040516106a49190612fc1565b60405180910390f35b3480156106b8575f80fd5b506106d360048036038101906106ce919061341f565b611668565b005b3480156106e0575f80fd5b506106fb60048036038101906106f691906133f4565b611725565b005b348015610708575f80fd5b50610723600480360381019061071e919061307f565b61178d565b60405161073091906130d7565b60405180910390f35b348015610744575f80fd5b5061074d61187c565b60405161075a91906134b3565b60405180910390f35b34801561076e575f80fd5b506107896004803603810190610784919061307f565b6118a1565b60405161079691906130d7565b60405180910390f35b3480156107aa575f80fd5b506107c560048036038101906107c09190613307565b6118b7565b005b3480156107d2575f80fd5b506107ed60048036038101906107e89190613307565b611976565b6040516107fa91906130d7565b60405180910390f35b34801561080e575f80fd5b50610829600480360381019061082491906134cc565b611993565b60405161083691906132ee565b60405180910390f35b34801561084a575f80fd5b5061086560048036038101906108609190613307565b611a15565b005b348015610872575f80fd5b5061087b611b0b565b60405161088a9392919061346f565b60405180910390f35b34801561089e575f80fd5b506108a7611b22565b6040516108b49190613565565b60405180910390f35b6060600380546108cc906135ab565b80601f01602080910402602001604051908101604052809291908181526020018280546108f8906135ab565b80156109435780601f1061091a57610100808354040283529160200191610943565b820191905f5260205f20905b81548152906001019060200180831161092657829003601f168201915b5050505050905090565b5f610960610959611b47565b8484611b4e565b6001905092915050565b610972611b47565b73ffffffffffffffffffffffffffffffffffffffff166109906115b0565b73ffffffffffffffffffffffffffffffffffffffff16146109e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109dd90613625565b60405180910390fd5b5f5b8251811015610a6c578160155f858481518110610a0857610a07613643565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506109e8565b505050565b610a79611b47565b73ffffffffffffffffffffffffffffffffffffffff16610a976115b0565b73ffffffffffffffffffffffffffffffffffffffff1614610aed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae490613625565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b5f600254905090565b610b1b611b47565b73ffffffffffffffffffffffffffffffffffffffff16610b396115b0565b73ffffffffffffffffffffffffffffffffffffffff1614610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8690613625565b60405180910390fd5b80600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610bda611b47565b73ffffffffffffffffffffffffffffffffffffffff16610bf86115b0565b73ffffffffffffffffffffffffffffffffffffffff1614610c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4590613625565b60405180910390fd5b5f5b8251811015610cd4578160165f858481518110610c7057610c6f613643565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610c50565b505050565b5f610ce5848484611d11565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610d2c611b47565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610dab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da2906136e0565b60405180910390fd5b610dc885610db7611b47565b8584610dc3919061372b565b611b4e565b60019150509392505050565b600760179054906101000a900460ff1681565b5f6012905090565b610df7611b47565b73ffffffffffffffffffffffffffffffffffffffff16610e156115b0565b73ffffffffffffffffffffffffffffffffffffffff1614610e6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6290613625565b60405180910390fd5b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f610f60610ecf611b47565b848460015f610edc611b47565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f5b919061375e565b611b4e565b6001905092915050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ff9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff090613801565b60405180910390fd5b611001610de7565b600a61100d919061394e565b816110189190613998565b60088190555050565b611029611b47565b73ffffffffffffffffffffffffffffffffffffffff166110476115b0565b73ffffffffffffffffffffffffffffffffffffffff161461109d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109490613625565b60405180910390fd5b6110a5610de7565b600a6110b1919061394e565b816110bc9190613998565b60098190555050565b600760169054906101000a900460ff1681565b6110e0611b47565b73ffffffffffffffffffffffffffffffffffffffff166110fe6115b0565b73ffffffffffffffffffffffffffffffffffffffff1614611154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114b90613625565b60405180910390fd5b60405180606001604052808481526020018381526020018281525060125f820151815f01556020820151816001015560408201518160020155905050505050565b60095481565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461122a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122190613a49565b60405180910390fd5b80600760176101000a81548160ff02191690831515021790555050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611294611b47565b73ffffffffffffffffffffffffffffffffffffffff166112b26115b0565b73ffffffffffffffffffffffffffffffffffffffff1614611308576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ff90613625565b60405180910390fd5b6113115f6125b6565b565b600f805f0154908060010154908060020154905083565b611332611b47565b73ffffffffffffffffffffffffffffffffffffffff166113506115b0565b73ffffffffffffffffffffffffffffffffffffffff16146113a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139d90613625565b60405180910390fd5b8060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b61dead81565b61140c611b47565b73ffffffffffffffffffffffffffffffffffffffff1661142a6115b0565b73ffffffffffffffffffffffffffffffffffffffff1614611480576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147790613625565b60405180910390fd5b600760169054906101000a900460ff16156114d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c790613ab1565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff02191690831515021790555043600a81905550565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161156b929190613acf565b6020604051808303815f875af1158015611587573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ab9190613b0a565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546115e7906135ab565b80601f0160208091040260200160405190810160405280929190818152602001828054611613906135ab565b801561165e5780601f106116355761010080835404028352916020019161165e565b820191905f5260205f20905b81548152906001019060200180831161164157829003601f168201915b5050505050905090565b611670611b47565b73ffffffffffffffffffffffffffffffffffffffff1661168e6115b0565b73ffffffffffffffffffffffffffffffffffffffff16146116e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116db90613625565b60405180910390fd5b604051806060016040528084815260200183815260200182815250600f5f820151815f01556020820151816001015560408201518160020155905050505050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611789573d5f803e3d5ffd5b5050565b5f8060015f61179a611b47565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611854576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184b90613ba5565b60405180910390fd5b61187161185f611b47565b85858461186c919061372b565b611b4e565b600191505092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6118ad338484611d11565b6001905092915050565b6118bf611b47565b73ffffffffffffffffffffffffffffffffffffffff166118dd6115b0565b73ffffffffffffffffffffffffffffffffffffffff1614611933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192a90613625565b60405180910390fd5b80600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6015602052805f5260405f205f915054906101000a900460ff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611a1d611b47565b73ffffffffffffffffffffffffffffffffffffffff16611a3b6115b0565b73ffffffffffffffffffffffffffffffffffffffff1614611a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8890613625565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af690613c33565b60405180910390fd5b611b08816125b6565b50565b6012805f0154908060010154908060020154905083565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb390613cc1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2190613d4f565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d0491906132ee565b60405180910390a3505050565b5f8111611d53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4a90613ddd565b60405180910390fd5b60165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611df1575060165f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2790613e45565b60405180910390fd5b60155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611ece575060155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f2357600760169054906101000a900460ff16611f22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1990613ead565b60405180910390fd5b5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611fc6575060155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611fdf5750600760149054906101000a900460ff16155b1561203d5760095481611ff184611247565b611ffb919061375e565b111561203c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203390613f15565b60405180910390fd5b5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120e1575060155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612134575060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561214d5750600760149054906101000a900460ff16155b156122005760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146121ff57600954816121b384611247565b6121bd919061375e565b11156121fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f590613f15565b60405180910390fd5b5b5b5f805f61220b612f19565b5f60155f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156122aa575060155f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156122c45750600b54600a546122c1919061375e565b43105b9050600760149054906101000a900460ff1680612327575060155f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80612378575060155f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8061238f5750600760179054906101000a900460ff165b1561239c575f92506124ca565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161480156123f6575080155b156124565760126002015460125f0154601260010154612416919061375e565b612420919061375e565b945084935060126040518060600160405290815f82015481526020016001820154815260200160028201548152505091506124c9565b806124b657600f60020154600f5f0154600f60010154612476919061375e565b612480919061375e565b9450849350600f6040518060600160405290815f82015481526020016001820154815260200160028201548152505091506124c8565b80156124c757600c549450600c5493505b5b5b5b606484876124d89190613998565b6124e29190613f60565b9250600760159054906101000a900460ff16801561254d575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b1561255d5761255c8583612679565b5b6125738888858961256e919061372b565b612881565b5f8311156125ac575f8511156125ab575f606486886125929190613998565b61259c9190613f60565b90506125a9893083612881565b505b5b5050505050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff1661287d576001600760146101000a81548160ff0219169083151502179055505f820315612862575f6126ba30611247565b9050600854811061286057600160085411156126d65760085490505b5f6002846126e49190613998565b90505f818460200151846126f89190613998565b6127029190613f60565b90505f8184612711919061372b565b90505f47905061272082612af4565b5f814761272d919061372b565b90505f876020015186612740919061372b565b8261274b9190613f60565b90505f88602001518261275e9190613998565b90505f811115612773576127728682612d2a565b5b5f895f01516002846127859190613998565b61278f9190613998565b90505f8111156127e4576127e381600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612e2490919063ffffffff16565b5b5f8a604001516002856127f79190613998565b6128019190613998565b90505f8111156128565761285581600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612e2490919063ffffffff16565b5b5050505050505050505b505b5f600760146101000a81548160ff0219169083151502179055505b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036128ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e690614000565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361295d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129549061408e565b60405180910390fd5b612968838383612f14565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156129eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e29061411c565b60405180910390fd5b81816129f7919061372b565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612a82919061375e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ae691906132ee565b60405180910390a350505050565b5f600267ffffffffffffffff811115612b1057612b0f6130f4565b5b604051908082528060200260200182016040528015612b3e5781602001602082028036833780820191505090505b50905030815f81518110612b5557612b54613643565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bf9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c1d919061414e565b81600181518110612c3157612c30613643565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612c973060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b4e565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612cf9959493929190614269565b5f604051808303815f87803b158015612d10575f80fd5b505af1158015612d22573d5f803e3d5ffd5b505050505050565b612d563060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b4e565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f80600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612ddc969594939291906142c1565b60606040518083038185885af1158015612df8573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612e1d9190614334565b5050505050565b80471015612e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e5e906143ce565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051612e8c90614419565b5f6040518083038185875af1925050503d805f8114612ec6576040519150601f19603f3d011682016040523d82523d5f602084013e612ecb565b606091505b5050905080612f0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f069061449d565b60405180910390fd5b505050565b505050565b60405180606001604052805f81526020015f81526020015f81525090565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612f6e578082015181840152602081019050612f53565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612f9382612f37565b612f9d8185612f41565b9350612fad818560208601612f51565b612fb681612f79565b840191505092915050565b5f6020820190508181035f830152612fd98184612f89565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61301b82612ff2565b9050919050565b61302b81613011565b8114613035575f80fd5b50565b5f8135905061304681613022565b92915050565b5f819050919050565b61305e8161304c565b8114613068575f80fd5b50565b5f8135905061307981613055565b92915050565b5f806040838503121561309557613094612fea565b5b5f6130a285828601613038565b92505060206130b38582860161306b565b9150509250929050565b5f8115159050919050565b6130d1816130bd565b82525050565b5f6020820190506130ea5f8301846130c8565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61312a82612f79565b810181811067ffffffffffffffff82111715613149576131486130f4565b5b80604052505050565b5f61315b612fe1565b90506131678282613121565b919050565b5f67ffffffffffffffff821115613186576131856130f4565b5b602082029050602081019050919050565b5f80fd5b5f6131ad6131a88461316c565b613152565b905080838252602082019050602084028301858111156131d0576131cf613197565b5b835b818110156131f957806131e58882613038565b8452602084019350506020810190506131d2565b5050509392505050565b5f82601f830112613217576132166130f0565b5b813561322784826020860161319b565b91505092915050565b613239816130bd565b8114613243575f80fd5b50565b5f8135905061325481613230565b92915050565b5f80604083850312156132705761326f612fea565b5b5f83013567ffffffffffffffff81111561328d5761328c612fee565b5b61329985828601613203565b92505060206132aa85828601613246565b9150509250929050565b5f602082840312156132c9576132c8612fea565b5b5f6132d684828501613246565b91505092915050565b6132e88161304c565b82525050565b5f6020820190506133015f8301846132df565b92915050565b5f6020828403121561331c5761331b612fea565b5b5f61332984828501613038565b91505092915050565b5f805f6060848603121561334957613348612fea565b5b5f61335686828701613038565b935050602061336786828701613038565b92505060406133788682870161306b565b9150509250925092565b5f60ff82169050919050565b61339781613382565b82525050565b5f6020820190506133b05f83018461338e565b92915050565b5f80604083850312156133cc576133cb612fea565b5b5f6133d985828601613038565b92505060206133ea85828601613246565b9150509250929050565b5f6020828403121561340957613408612fea565b5b5f6134168482850161306b565b91505092915050565b5f805f6060848603121561343657613435612fea565b5b5f6134438682870161306b565b93505060206134548682870161306b565b92505060406134658682870161306b565b9150509250925092565b5f6060820190506134825f8301866132df565b61348f60208301856132df565b61349c60408301846132df565b949350505050565b6134ad81613011565b82525050565b5f6020820190506134c65f8301846134a4565b92915050565b5f80604083850312156134e2576134e1612fea565b5b5f6134ef85828601613038565b925050602061350085828601613038565b9150509250929050565b5f819050919050565b5f61352d61352861352384612ff2565b61350a565b612ff2565b9050919050565b5f61353e82613513565b9050919050565b5f61354f82613534565b9050919050565b61355f81613545565b82525050565b5f6020820190506135785f830184613556565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806135c257607f821691505b6020821081036135d5576135d461357e565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61360f602083612f41565b915061361a826135db565b602082019050919050565b5f6020820190508181035f83015261363c81613603565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6136ca602883612f41565b91506136d582613670565b604082019050919050565b5f6020820190508181035f8301526136f7816136be565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6137358261304c565b91506137408361304c565b9250828203905081811115613758576137576136fe565b5b92915050565b5f6137688261304c565b91506137738361304c565b925082820190508082111561378b5761378a6136fe565b5b92915050565b7f6f6e6c792064657657616c6c65742063616e20757064617465207468726573685f8201527f6f6c640000000000000000000000000000000000000000000000000000000000602082015250565b5f6137eb602383612f41565b91506137f682613791565b604082019050919050565b5f6020820190508181035f830152613818816137df565b9050919050565b5f8160011c9050919050565b5f808291508390505b6001851115613874578086048111156138505761384f6136fe565b5b600185161561385f5780820291505b808102905061386d8561381f565b9450613834565b94509492505050565b5f8261388c5760019050613947565b81613899575f9050613947565b81600181146138af57600281146138b9576138e8565b6001915050613947565b60ff8411156138cb576138ca6136fe565b5b8360020a9150848211156138e2576138e16136fe565b5b50613947565b5060208310610133831016604e8410600b841016171561391d5782820a905083811115613918576139176136fe565b5b613947565b61392a848484600161382b565b92509050818404811115613941576139406136fe565b5b81810290505b9392505050565b5f6139588261304c565b915061396383613382565b92506139907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461387d565b905092915050565b5f6139a28261304c565b91506139ad8361304c565b92508282026139bb8161304c565b915082820484148315176139d2576139d16136fe565b5b5092915050565b7f6f6e6c792064657657616c6c65742063616e20757064617465207a65726f46655f8201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b5f613a33602183612f41565b9150613a3e826139d9565b604082019050919050565b5f6020820190508181035f830152613a6081613a27565b9050919050565b7f54726164696e6720697320616c726561647920656e61626c65640000000000005f82015250565b5f613a9b601a83612f41565b9150613aa682613a67565b602082019050919050565b5f6020820190508181035f830152613ac881613a8f565b9050919050565b5f604082019050613ae25f8301856134a4565b613aef60208301846132df565b9392505050565b5f81519050613b0481613230565b92915050565b5f60208284031215613b1f57613b1e612fea565b5b5f613b2c84828501613af6565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613b8f602583612f41565b9150613b9a82613b35565b604082019050919050565b5f6020820190508181035f830152613bbc81613b83565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613c1d602683612f41565b9150613c2882613bc3565b604082019050919050565b5f6020820190508181035f830152613c4a81613c11565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613cab602483612f41565b9150613cb682613c51565b604082019050919050565b5f6020820190508181035f830152613cd881613c9f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613d39602283612f41565b9150613d4482613cdf565b604082019050919050565b5f6020820190508181035f830152613d6681613d2d565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613dc7602983612f41565b9150613dd282613d6d565b604082019050919050565b5f6020820190508181035f830152613df481613dbb565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e73000000000000005f82015250565b5f613e2f601983612f41565b9150613e3a82613dfb565b602082019050919050565b5f6020820190508181035f830152613e5c81613e23565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f613e97601383612f41565b9150613ea282613e63565b602082019050919050565b5f6020820190508181035f830152613ec481613e8b565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c65744c696d69745f82015250565b5f613eff602083612f41565b9150613f0a82613ecb565b602082019050919050565b5f6020820190508181035f830152613f2c81613ef3565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613f6a8261304c565b9150613f758361304c565b925082613f8557613f84613f33565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613fea602583612f41565b9150613ff582613f90565b604082019050919050565b5f6020820190508181035f83015261401781613fde565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f614078602383612f41565b91506140838261401e565b604082019050919050565b5f6020820190508181035f8301526140a58161406c565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f614106602683612f41565b9150614111826140ac565b604082019050919050565b5f6020820190508181035f830152614133816140fa565b9050919050565b5f8151905061414881613022565b92915050565b5f6020828403121561416357614162612fea565b5b5f6141708482850161413a565b91505092915050565b5f819050919050565b5f61419c61419761419284614179565b61350a565b61304c565b9050919050565b6141ac81614182565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6141e481613011565b82525050565b5f6141f583836141db565b60208301905092915050565b5f602082019050919050565b5f614217826141b2565b61422181856141bc565b935061422c836141cc565b805f5b8381101561425c57815161424388826141ea565b975061424e83614201565b92505060018101905061422f565b5085935050505092915050565b5f60a08201905061427c5f8301886132df565b61428960208301876141a3565b818103604083015261429b818661420d565b90506142aa60608301856134a4565b6142b760808301846132df565b9695505050505050565b5f60c0820190506142d45f8301896134a4565b6142e160208301886132df565b6142ee60408301876141a3565b6142fb60608301866141a3565b61430860808301856134a4565b61431560a08301846132df565b979650505050505050565b5f8151905061432e81613055565b92915050565b5f805f6060848603121561434b5761434a612fea565b5b5f61435886828701614320565b935050602061436986828701614320565b925050604061437a86828701614320565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e63650000005f82015250565b5f6143b8601d83612f41565b91506143c382614384565b602082019050919050565b5f6020820190508181035f8301526143e5816143ac565b9050919050565b5f81905092915050565b50565b5f6144045f836143ec565b915061440f826143f6565b5f82019050919050565b5f614423826143f9565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c20725f8201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b5f614487603a83612f41565b91506144928261442d565b604082019050919050565b5f6020820190508181035f8301526144b48161447b565b905091905056fea2646970667358221220e68969870cd9e2a98b9e65992a37b14848164c5fd0d43f96897c864d0a72f87664736f6c63430008160033

Deployed Bytecode

0x608060405260043610610228575f3560e01c8063715018a6116101225780639e252f00116100aa578063c5d32bb21161006e578063c5d32bb2146107c7578063dd62ed3e14610803578063f2fde38b1461083f578063f66895a314610867578063f887ea40146108935761022f565b80639e252f00146106d5578063a457c2d7146106fd578063a8aa1b3114610739578063a9059cbb14610763578063aacebbe31461079f5761022f565b80638a8c523c116100f15780638a8c523c1461061b5780638cd4426d146106315780638da5cb5b1461065957806395d89b41146106835780639d282cd6146106ad5761022f565b8063715018a614610587578063728f8eea1461059d5780638514022d146105c957806385141a77146105f15761022f565b8063313ce567116101b05780634ada218b116101745780634ada218b146104a75780634e736f22146104d157806366a88d96146104f95780636e3d970f1461052357806370a082311461054b5761022f565b8063313ce567146103c9578063355496ca146103f3578063395093511461041b57806342b6fa11146104575780634324deae1461047f5761022f565b806318160ddd116101f757806318160ddd146102e95780631816467f14610313578063215d92a61461033b57806323b872dd146103635780632bd182d31461039f5761022f565b806306fdde0314610233578063095ea7b31461025d5780630e375a5c146102995780631340538f146102c15761022f565b3661022f57005b5f80fd5b34801561023e575f80fd5b506102476108bd565b6040516102549190612fc1565b60405180910390f35b348015610268575f80fd5b50610283600480360381019061027e919061307f565b61094d565b60405161029091906130d7565b60405180910390f35b3480156102a4575f80fd5b506102bf60048036038101906102ba919061325a565b61096a565b005b3480156102cc575f80fd5b506102e760048036038101906102e291906132b4565b610a71565b005b3480156102f4575f80fd5b506102fd610b0a565b60405161030a91906132ee565b60405180910390f35b34801561031e575f80fd5b5061033960048036038101906103349190613307565b610b13565b005b348015610346575f80fd5b50610361600480360381019061035c919061325a565b610bd2565b005b34801561036e575f80fd5b5061038960048036038101906103849190613332565b610cd9565b60405161039691906130d7565b60405180910390f35b3480156103aa575f80fd5b506103b3610dd4565b6040516103c091906130d7565b60405180910390f35b3480156103d4575f80fd5b506103dd610de7565b6040516103ea919061339d565b60405180910390f35b3480156103fe575f80fd5b50610419600480360381019061041491906133b6565b610def565b005b348015610426575f80fd5b50610441600480360381019061043c919061307f565b610ec3565b60405161044e91906130d7565b60405180910390f35b348015610462575f80fd5b5061047d600480360381019061047891906133f4565b610f6a565b005b34801561048a575f80fd5b506104a560048036038101906104a091906133f4565b611021565b005b3480156104b2575f80fd5b506104bb6110c5565b6040516104c891906130d7565b60405180910390f35b3480156104dc575f80fd5b506104f760048036038101906104f2919061341f565b6110d8565b005b348015610504575f80fd5b5061050d611195565b60405161051a91906132ee565b60405180910390f35b34801561052e575f80fd5b50610549600480360381019061054491906132b4565b61119b565b005b348015610556575f80fd5b50610571600480360381019061056c9190613307565b611247565b60405161057e91906132ee565b60405180910390f35b348015610592575f80fd5b5061059b61128c565b005b3480156105a8575f80fd5b506105b1611313565b6040516105c09392919061346f565b60405180910390f35b3480156105d4575f80fd5b506105ef60048036038101906105ea91906133b6565b61132a565b005b3480156105fc575f80fd5b506106056113fe565b60405161061291906134b3565b60405180910390f35b348015610626575f80fd5b5061062f611404565b005b34801561063c575f80fd5b506106576004803603810190610652919061307f565b61150f565b005b348015610664575f80fd5b5061066d6115b0565b60405161067a91906134b3565b60405180910390f35b34801561068e575f80fd5b506106976115d8565b6040516106a49190612fc1565b60405180910390f35b3480156106b8575f80fd5b506106d360048036038101906106ce919061341f565b611668565b005b3480156106e0575f80fd5b506106fb60048036038101906106f691906133f4565b611725565b005b348015610708575f80fd5b50610723600480360381019061071e919061307f565b61178d565b60405161073091906130d7565b60405180910390f35b348015610744575f80fd5b5061074d61187c565b60405161075a91906134b3565b60405180910390f35b34801561076e575f80fd5b506107896004803603810190610784919061307f565b6118a1565b60405161079691906130d7565b60405180910390f35b3480156107aa575f80fd5b506107c560048036038101906107c09190613307565b6118b7565b005b3480156107d2575f80fd5b506107ed60048036038101906107e89190613307565b611976565b6040516107fa91906130d7565b60405180910390f35b34801561080e575f80fd5b50610829600480360381019061082491906134cc565b611993565b60405161083691906132ee565b60405180910390f35b34801561084a575f80fd5b5061086560048036038101906108609190613307565b611a15565b005b348015610872575f80fd5b5061087b611b0b565b60405161088a9392919061346f565b60405180910390f35b34801561089e575f80fd5b506108a7611b22565b6040516108b49190613565565b60405180910390f35b6060600380546108cc906135ab565b80601f01602080910402602001604051908101604052809291908181526020018280546108f8906135ab565b80156109435780601f1061091a57610100808354040283529160200191610943565b820191905f5260205f20905b81548152906001019060200180831161092657829003601f168201915b5050505050905090565b5f610960610959611b47565b8484611b4e565b6001905092915050565b610972611b47565b73ffffffffffffffffffffffffffffffffffffffff166109906115b0565b73ffffffffffffffffffffffffffffffffffffffff16146109e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109dd90613625565b60405180910390fd5b5f5b8251811015610a6c578160155f858481518110610a0857610a07613643565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506109e8565b505050565b610a79611b47565b73ffffffffffffffffffffffffffffffffffffffff16610a976115b0565b73ffffffffffffffffffffffffffffffffffffffff1614610aed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae490613625565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b5f600254905090565b610b1b611b47565b73ffffffffffffffffffffffffffffffffffffffff16610b396115b0565b73ffffffffffffffffffffffffffffffffffffffff1614610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8690613625565b60405180910390fd5b80600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610bda611b47565b73ffffffffffffffffffffffffffffffffffffffff16610bf86115b0565b73ffffffffffffffffffffffffffffffffffffffff1614610c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4590613625565b60405180910390fd5b5f5b8251811015610cd4578160165f858481518110610c7057610c6f613643565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610c50565b505050565b5f610ce5848484611d11565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610d2c611b47565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610dab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da2906136e0565b60405180910390fd5b610dc885610db7611b47565b8584610dc3919061372b565b611b4e565b60019150509392505050565b600760179054906101000a900460ff1681565b5f6012905090565b610df7611b47565b73ffffffffffffffffffffffffffffffffffffffff16610e156115b0565b73ffffffffffffffffffffffffffffffffffffffff1614610e6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6290613625565b60405180910390fd5b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f610f60610ecf611b47565b848460015f610edc611b47565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f5b919061375e565b611b4e565b6001905092915050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ff9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff090613801565b60405180910390fd5b611001610de7565b600a61100d919061394e565b816110189190613998565b60088190555050565b611029611b47565b73ffffffffffffffffffffffffffffffffffffffff166110476115b0565b73ffffffffffffffffffffffffffffffffffffffff161461109d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109490613625565b60405180910390fd5b6110a5610de7565b600a6110b1919061394e565b816110bc9190613998565b60098190555050565b600760169054906101000a900460ff1681565b6110e0611b47565b73ffffffffffffffffffffffffffffffffffffffff166110fe6115b0565b73ffffffffffffffffffffffffffffffffffffffff1614611154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114b90613625565b60405180910390fd5b60405180606001604052808481526020018381526020018281525060125f820151815f01556020820151816001015560408201518160020155905050505050565b60095481565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461122a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122190613a49565b60405180910390fd5b80600760176101000a81548160ff02191690831515021790555050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611294611b47565b73ffffffffffffffffffffffffffffffffffffffff166112b26115b0565b73ffffffffffffffffffffffffffffffffffffffff1614611308576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ff90613625565b60405180910390fd5b6113115f6125b6565b565b600f805f0154908060010154908060020154905083565b611332611b47565b73ffffffffffffffffffffffffffffffffffffffff166113506115b0565b73ffffffffffffffffffffffffffffffffffffffff16146113a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139d90613625565b60405180910390fd5b8060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b61dead81565b61140c611b47565b73ffffffffffffffffffffffffffffffffffffffff1661142a6115b0565b73ffffffffffffffffffffffffffffffffffffffff1614611480576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147790613625565b60405180910390fd5b600760169054906101000a900460ff16156114d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c790613ab1565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff02191690831515021790555043600a81905550565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161156b929190613acf565b6020604051808303815f875af1158015611587573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ab9190613b0a565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546115e7906135ab565b80601f0160208091040260200160405190810160405280929190818152602001828054611613906135ab565b801561165e5780601f106116355761010080835404028352916020019161165e565b820191905f5260205f20905b81548152906001019060200180831161164157829003601f168201915b5050505050905090565b611670611b47565b73ffffffffffffffffffffffffffffffffffffffff1661168e6115b0565b73ffffffffffffffffffffffffffffffffffffffff16146116e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116db90613625565b60405180910390fd5b604051806060016040528084815260200183815260200182815250600f5f820151815f01556020820151816001015560408201518160020155905050505050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611789573d5f803e3d5ffd5b5050565b5f8060015f61179a611b47565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611854576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184b90613ba5565b60405180910390fd5b61187161185f611b47565b85858461186c919061372b565b611b4e565b600191505092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6118ad338484611d11565b6001905092915050565b6118bf611b47565b73ffffffffffffffffffffffffffffffffffffffff166118dd6115b0565b73ffffffffffffffffffffffffffffffffffffffff1614611933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192a90613625565b60405180910390fd5b80600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6015602052805f5260405f205f915054906101000a900460ff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611a1d611b47565b73ffffffffffffffffffffffffffffffffffffffff16611a3b6115b0565b73ffffffffffffffffffffffffffffffffffffffff1614611a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8890613625565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af690613c33565b60405180910390fd5b611b08816125b6565b50565b6012805f0154908060010154908060020154905083565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb390613cc1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2190613d4f565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d0491906132ee565b60405180910390a3505050565b5f8111611d53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4a90613ddd565b60405180910390fd5b60165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611df1575060165f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2790613e45565b60405180910390fd5b60155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611ece575060155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f2357600760169054906101000a900460ff16611f22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1990613ead565b60405180910390fd5b5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611fc6575060155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611fdf5750600760149054906101000a900460ff16155b1561203d5760095481611ff184611247565b611ffb919061375e565b111561203c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203390613f15565b60405180910390fd5b5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120e1575060155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612134575060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561214d5750600760149054906101000a900460ff16155b156122005760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146121ff57600954816121b384611247565b6121bd919061375e565b11156121fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f590613f15565b60405180910390fd5b5b5b5f805f61220b612f19565b5f60155f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156122aa575060155f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156122c45750600b54600a546122c1919061375e565b43105b9050600760149054906101000a900460ff1680612327575060155f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80612378575060155f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8061238f5750600760179054906101000a900460ff165b1561239c575f92506124ca565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161480156123f6575080155b156124565760126002015460125f0154601260010154612416919061375e565b612420919061375e565b945084935060126040518060600160405290815f82015481526020016001820154815260200160028201548152505091506124c9565b806124b657600f60020154600f5f0154600f60010154612476919061375e565b612480919061375e565b9450849350600f6040518060600160405290815f82015481526020016001820154815260200160028201548152505091506124c8565b80156124c757600c549450600c5493505b5b5b5b606484876124d89190613998565b6124e29190613f60565b9250600760159054906101000a900460ff16801561254d575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b1561255d5761255c8583612679565b5b6125738888858961256e919061372b565b612881565b5f8311156125ac575f8511156125ab575f606486886125929190613998565b61259c9190613f60565b90506125a9893083612881565b505b5b5050505050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff1661287d576001600760146101000a81548160ff0219169083151502179055505f820315612862575f6126ba30611247565b9050600854811061286057600160085411156126d65760085490505b5f6002846126e49190613998565b90505f818460200151846126f89190613998565b6127029190613f60565b90505f8184612711919061372b565b90505f47905061272082612af4565b5f814761272d919061372b565b90505f876020015186612740919061372b565b8261274b9190613f60565b90505f88602001518261275e9190613998565b90505f811115612773576127728682612d2a565b5b5f895f01516002846127859190613998565b61278f9190613998565b90505f8111156127e4576127e381600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612e2490919063ffffffff16565b5b5f8a604001516002856127f79190613998565b6128019190613998565b90505f8111156128565761285581600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612e2490919063ffffffff16565b5b5050505050505050505b505b5f600760146101000a81548160ff0219169083151502179055505b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036128ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e690614000565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361295d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129549061408e565b60405180910390fd5b612968838383612f14565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156129eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e29061411c565b60405180910390fd5b81816129f7919061372b565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612a82919061375e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ae691906132ee565b60405180910390a350505050565b5f600267ffffffffffffffff811115612b1057612b0f6130f4565b5b604051908082528060200260200182016040528015612b3e5781602001602082028036833780820191505090505b50905030815f81518110612b5557612b54613643565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bf9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c1d919061414e565b81600181518110612c3157612c30613643565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612c973060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b4e565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612cf9959493929190614269565b5f604051808303815f87803b158015612d10575f80fd5b505af1158015612d22573d5f803e3d5ffd5b505050505050565b612d563060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b4e565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f80600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612ddc969594939291906142c1565b60606040518083038185885af1158015612df8573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612e1d9190614334565b5050505050565b80471015612e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e5e906143ce565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051612e8c90614419565b5f6040518083038185875af1925050503d805f8114612ec6576040519150601f19603f3d011682016040523d82523d5f602084013e612ecb565b606091505b5050905080612f0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f069061449d565b60405180910390fd5b505050565b505050565b60405180606001604052805f81526020015f81526020015f81525090565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612f6e578082015181840152602081019050612f53565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612f9382612f37565b612f9d8185612f41565b9350612fad818560208601612f51565b612fb681612f79565b840191505092915050565b5f6020820190508181035f830152612fd98184612f89565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61301b82612ff2565b9050919050565b61302b81613011565b8114613035575f80fd5b50565b5f8135905061304681613022565b92915050565b5f819050919050565b61305e8161304c565b8114613068575f80fd5b50565b5f8135905061307981613055565b92915050565b5f806040838503121561309557613094612fea565b5b5f6130a285828601613038565b92505060206130b38582860161306b565b9150509250929050565b5f8115159050919050565b6130d1816130bd565b82525050565b5f6020820190506130ea5f8301846130c8565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61312a82612f79565b810181811067ffffffffffffffff82111715613149576131486130f4565b5b80604052505050565b5f61315b612fe1565b90506131678282613121565b919050565b5f67ffffffffffffffff821115613186576131856130f4565b5b602082029050602081019050919050565b5f80fd5b5f6131ad6131a88461316c565b613152565b905080838252602082019050602084028301858111156131d0576131cf613197565b5b835b818110156131f957806131e58882613038565b8452602084019350506020810190506131d2565b5050509392505050565b5f82601f830112613217576132166130f0565b5b813561322784826020860161319b565b91505092915050565b613239816130bd565b8114613243575f80fd5b50565b5f8135905061325481613230565b92915050565b5f80604083850312156132705761326f612fea565b5b5f83013567ffffffffffffffff81111561328d5761328c612fee565b5b61329985828601613203565b92505060206132aa85828601613246565b9150509250929050565b5f602082840312156132c9576132c8612fea565b5b5f6132d684828501613246565b91505092915050565b6132e88161304c565b82525050565b5f6020820190506133015f8301846132df565b92915050565b5f6020828403121561331c5761331b612fea565b5b5f61332984828501613038565b91505092915050565b5f805f6060848603121561334957613348612fea565b5b5f61335686828701613038565b935050602061336786828701613038565b92505060406133788682870161306b565b9150509250925092565b5f60ff82169050919050565b61339781613382565b82525050565b5f6020820190506133b05f83018461338e565b92915050565b5f80604083850312156133cc576133cb612fea565b5b5f6133d985828601613038565b92505060206133ea85828601613246565b9150509250929050565b5f6020828403121561340957613408612fea565b5b5f6134168482850161306b565b91505092915050565b5f805f6060848603121561343657613435612fea565b5b5f6134438682870161306b565b93505060206134548682870161306b565b92505060406134658682870161306b565b9150509250925092565b5f6060820190506134825f8301866132df565b61348f60208301856132df565b61349c60408301846132df565b949350505050565b6134ad81613011565b82525050565b5f6020820190506134c65f8301846134a4565b92915050565b5f80604083850312156134e2576134e1612fea565b5b5f6134ef85828601613038565b925050602061350085828601613038565b9150509250929050565b5f819050919050565b5f61352d61352861352384612ff2565b61350a565b612ff2565b9050919050565b5f61353e82613513565b9050919050565b5f61354f82613534565b9050919050565b61355f81613545565b82525050565b5f6020820190506135785f830184613556565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806135c257607f821691505b6020821081036135d5576135d461357e565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61360f602083612f41565b915061361a826135db565b602082019050919050565b5f6020820190508181035f83015261363c81613603565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6136ca602883612f41565b91506136d582613670565b604082019050919050565b5f6020820190508181035f8301526136f7816136be565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6137358261304c565b91506137408361304c565b9250828203905081811115613758576137576136fe565b5b92915050565b5f6137688261304c565b91506137738361304c565b925082820190508082111561378b5761378a6136fe565b5b92915050565b7f6f6e6c792064657657616c6c65742063616e20757064617465207468726573685f8201527f6f6c640000000000000000000000000000000000000000000000000000000000602082015250565b5f6137eb602383612f41565b91506137f682613791565b604082019050919050565b5f6020820190508181035f830152613818816137df565b9050919050565b5f8160011c9050919050565b5f808291508390505b6001851115613874578086048111156138505761384f6136fe565b5b600185161561385f5780820291505b808102905061386d8561381f565b9450613834565b94509492505050565b5f8261388c5760019050613947565b81613899575f9050613947565b81600181146138af57600281146138b9576138e8565b6001915050613947565b60ff8411156138cb576138ca6136fe565b5b8360020a9150848211156138e2576138e16136fe565b5b50613947565b5060208310610133831016604e8410600b841016171561391d5782820a905083811115613918576139176136fe565b5b613947565b61392a848484600161382b565b92509050818404811115613941576139406136fe565b5b81810290505b9392505050565b5f6139588261304c565b915061396383613382565b92506139907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461387d565b905092915050565b5f6139a28261304c565b91506139ad8361304c565b92508282026139bb8161304c565b915082820484148315176139d2576139d16136fe565b5b5092915050565b7f6f6e6c792064657657616c6c65742063616e20757064617465207a65726f46655f8201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b5f613a33602183612f41565b9150613a3e826139d9565b604082019050919050565b5f6020820190508181035f830152613a6081613a27565b9050919050565b7f54726164696e6720697320616c726561647920656e61626c65640000000000005f82015250565b5f613a9b601a83612f41565b9150613aa682613a67565b602082019050919050565b5f6020820190508181035f830152613ac881613a8f565b9050919050565b5f604082019050613ae25f8301856134a4565b613aef60208301846132df565b9392505050565b5f81519050613b0481613230565b92915050565b5f60208284031215613b1f57613b1e612fea565b5b5f613b2c84828501613af6565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613b8f602583612f41565b9150613b9a82613b35565b604082019050919050565b5f6020820190508181035f830152613bbc81613b83565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613c1d602683612f41565b9150613c2882613bc3565b604082019050919050565b5f6020820190508181035f830152613c4a81613c11565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613cab602483612f41565b9150613cb682613c51565b604082019050919050565b5f6020820190508181035f830152613cd881613c9f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613d39602283612f41565b9150613d4482613cdf565b604082019050919050565b5f6020820190508181035f830152613d6681613d2d565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613dc7602983612f41565b9150613dd282613d6d565b604082019050919050565b5f6020820190508181035f830152613df481613dbb565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e73000000000000005f82015250565b5f613e2f601983612f41565b9150613e3a82613dfb565b602082019050919050565b5f6020820190508181035f830152613e5c81613e23565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f613e97601383612f41565b9150613ea282613e63565b602082019050919050565b5f6020820190508181035f830152613ec481613e8b565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c65744c696d69745f82015250565b5f613eff602083612f41565b9150613f0a82613ecb565b602082019050919050565b5f6020820190508181035f830152613f2c81613ef3565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613f6a8261304c565b9150613f758361304c565b925082613f8557613f84613f33565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613fea602583612f41565b9150613ff582613f90565b604082019050919050565b5f6020820190508181035f83015261401781613fde565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f614078602383612f41565b91506140838261401e565b604082019050919050565b5f6020820190508181035f8301526140a58161406c565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f614106602683612f41565b9150614111826140ac565b604082019050919050565b5f6020820190508181035f830152614133816140fa565b9050919050565b5f8151905061414881613022565b92915050565b5f6020828403121561416357614162612fea565b5b5f6141708482850161413a565b91505092915050565b5f819050919050565b5f61419c61419761419284614179565b61350a565b61304c565b9050919050565b6141ac81614182565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6141e481613011565b82525050565b5f6141f583836141db565b60208301905092915050565b5f602082019050919050565b5f614217826141b2565b61422181856141bc565b935061422c836141cc565b805f5b8381101561425c57815161424388826141ea565b975061424e83614201565b92505060018101905061422f565b5085935050505092915050565b5f60a08201905061427c5f8301886132df565b61428960208301876141a3565b818103604083015261429b818661420d565b90506142aa60608301856134a4565b6142b760808301846132df565b9695505050505050565b5f60c0820190506142d45f8301896134a4565b6142e160208301886132df565b6142ee60408301876141a3565b6142fb60608301866141a3565b61430860808301856134a4565b61431560a08301846132df565b979650505050505050565b5f8151905061432e81613055565b92915050565b5f805f6060848603121561434b5761434a612fea565b5b5f61435886828701614320565b935050602061436986828701614320565b925050604061437a86828701614320565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e63650000005f82015250565b5f6143b8601d83612f41565b91506143c382614384565b602082019050919050565b5f6020820190508181035f8301526143e5816143ac565b9050919050565b5f81905092915050565b50565b5f6144045f836143ec565b915061440f826143f6565b5f82019050919050565b5f614423826143f9565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c20725f8201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b5f614487603a83612f41565b91506144928261442d565b604082019050919050565b5f6020820190508181035f8301526144b48161447b565b905091905056fea2646970667358221220e68969870cd9e2a98b9e65992a37b14848164c5fd0d43f96897c864d0a72f87664736f6c63430008160033

Deployed Bytecode Sourcemap

13262:11224:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2953:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15122:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23832:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22913:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4073:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22671:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23488:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15291:448;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13531:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3915:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23704:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15747:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23073:243;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24050:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13490:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22114:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13632:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23324:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4244:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11925:94;;;;;;;;;;;;;:::i;:::-;;14158:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;22781:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13960:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22316:224;;;;;;;;;;;;;:::i;:::-;;24301:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11702:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3172:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21913:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24189:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16003:410;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13372:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16421:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22548:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14248:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4863:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12027:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14200:39;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;13344:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2953:100;3007:13;3040:5;3033:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2953:100;:::o;15122:161::-;15197:4;15214:39;15223:12;:10;:12::i;:::-;15237:7;15246:6;15214:8;:39::i;:::-;15271:4;15264:11;;15122:161;;;;:::o;23832:202::-;11848:12;:10;:12::i;:::-;11837:23;;:7;:5;:7::i;:::-;:23;;;11829:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23929:9:::1;23924:103;23948:8;:15;23944:1;:19;23924:103;;;24010:5;23985:9;:22;23995:8;24004:1;23995:11;;;;;;;;:::i;:::-;;;;;;;;23985:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;23965:3;;;;;;;23924:103;;;;23832:202:::0;;:::o;22913:152::-;11848:12;:10;:12::i;:::-;11837:23;;:7;:5;:7::i;:::-;:23;;;11829:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23052:5:::1;23031:18;;:26;;;;;;;;;;;;;;;;;;22913:152:::0;:::o;4073:108::-;4134:7;4161:12;;4154:19;;4073:108;:::o;22671:102::-;11848:12;:10;:12::i;:::-;11837:23;;:7;:5;:7::i;:::-;:23;;;11829:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22756:9:::1;22744;;:21;;;;;;;;;;;;;;;;;;22671:102:::0;:::o;23488:208::-;11848:12;:10;:12::i;:::-;11837:23;;:7;:5;:7::i;:::-;:23;;;11829:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23588:9:::1;23583:106;23607:8;:15;23603:1;:19;23583:106;;;23672:5;23644:12;:25;23657:8;23666:1;23657:11;;;;;;;;:::i;:::-;;;;;;;;23644:25;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;23624:3;;;;;;;23583:106;;;;23488:208:::0;;:::o;15291:448::-;15423:4;15440:36;15450:6;15458:9;15469:6;15440:9;:36::i;:::-;15489:24;15516:11;:19;15528:6;15516:19;;;;;;;;;;;;;;;:33;15536:12;:10;:12::i;:::-;15516:33;;;;;;;;;;;;;;;;15489:60;;15588:6;15568:16;:26;;15560:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;15650:57;15659:6;15667:12;:10;:12::i;:::-;15700:6;15681:16;:25;;;;:::i;:::-;15650:8;:57::i;:::-;15727:4;15720:11;;;15291:448;;;;;:::o;13531:27::-;;;;;;;;;;;;;:::o;3915:93::-;3973:5;3998:2;3991:9;;3915:93;:::o;23704:120::-;11848:12;:10;:12::i;:::-;11837:23;;:7;:5;:7::i;:::-;:23;;;11829:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23811:5:::1;23789:9;:19;23799:8;23789:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;23704:120:::0;;:::o;15747:248::-;15863:4;15885:80;15894:12;:10;:12::i;:::-;15908:7;15954:10;15917:11;:25;15929:12;:10;:12::i;:::-;15917:25;;;;;;;;;;;;;;;:34;15943:7;15917:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;15885:8;:80::i;:::-;15983:4;15976:11;;15747:248;;;;:::o;23073:243::-;23196:9;;;;;;;;;;;23184:21;;:10;:21;;;23176:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23298:10;:8;:10::i;:::-;23294:2;:14;;;;:::i;:::-;23281:10;:27;;;;:::i;:::-;23255:23;:53;;;;23073:243;:::o;24050:131::-;11848:12;:10;:12::i;:::-;11837:23;;:7;:5;:7::i;:::-;:23;;;11829:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24162:10:::1;:8;:10::i;:::-;24158:2;:14;;;;:::i;:::-;24146:9;:26;;;;:::i;:::-;24129:14;:43;;;;24050:131:::0;:::o;13490:34::-;;;;;;;;;;;;;:::o;22114:195::-;11848:12;:10;:12::i;:::-;11837:23;;:7;:5;:7::i;:::-;:23;;;11829:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22266:35:::1;;;;;;;;22272:10;22266:35;;;;22284:10;22266:35;;;;22296:4;22266:35;;::::0;22254:9:::1;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;22114:195:::0;;;:::o;13632:48::-;;;;:::o;23324:156::-;23399:9;;;;;;;;;;;23387:21;;:10;:21;;;23379:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;23464:8;23456:7;;:16;;;;;;;;;;;;;;;;;;23324:156;:::o;4244:127::-;4318:7;4345:9;:18;4355:7;4345:18;;;;;;;;;;;;;;;;4338:25;;4244:127;;;:::o;11925:94::-;11848:12;:10;:12::i;:::-;11837:23;;:7;:5;:7::i;:::-;:23;;;11829:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11990:21:::1;12008:1;11990:9;:21::i;:::-;11925:94::o:0;14158:35::-;;;;;;;;;;;;;;;;;;;:::o;22781:124::-;11848:12;:10;:12::i;:::-;11837:23;;:7;:5;:7::i;:::-;:23;;;11829:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22892:5:::1;22868:12;:21;22881:7;22868:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;22781:124:::0;;:::o;13960:79::-;13997:42;13960:79;:::o;22316:224::-;11848:12;:10;:12::i;:::-;11837:23;;:7;:5;:7::i;:::-;:23;;;11829:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22380:14:::1;;;;;;;;;;;22379:15;22371:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;22453:4;22436:14;;:21;;;;;;;;;;;;;;;;;;22489:4;22468:18;;:25;;;;;;;;;;;;;;;;;;22520:12;22504:13;:28;;;;22316:224::o:0;24301:127::-;24383:8;24376:25;;;24402:9;;;;;;;;;;;24413:6;24376:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24301:127;;:::o;11702:87::-;11748:7;11775:6;;;;;;;;;;;11768:13;;11702:87;:::o;3172:104::-;3228:13;3261:7;3254:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3172:104;:::o;21913:193::-;11848:12;:10;:12::i;:::-;11837:23;;:7;:5;:7::i;:::-;:23;;;11829:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22063:35:::1;;;;;;;;22069:10;22063:35;;;;22081:10;22063:35;;;;22093:4;22063:35;;::::0;22055:5:::1;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;21913:193:::0;;;:::o;24189:104::-;24255:9;;;;;;;;;;;24247:27;;:38;24275:9;24247:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24189:104;:::o;16003:410::-;16124:4;16146:24;16173:11;:25;16185:12;:10;:12::i;:::-;16173:25;;;;;;;;;;;;;;;:34;16199:7;16173:34;;;;;;;;;;;;;;;;16146:61;;16246:15;16226:16;:35;;16218:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;16314:67;16323:12;:10;:12::i;:::-;16337:7;16365:15;16346:16;:34;;;;:::i;:::-;16314:8;:67::i;:::-;16401:4;16394:11;;;16003:410;;;;:::o;13372:19::-;;;;;;;;;;;;;:::o;16421:165::-;16499:4;16516:40;16526:10;16538:9;16549:6;16516:9;:40::i;:::-;16574:4;16567:11;;16421:165;;;;:::o;22548:115::-;11848:12;:10;:12::i;:::-;11837:23;;:7;:5;:7::i;:::-;:23;;;11829:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22646:9:::1;22628:15;;:27;;;;;;;;;;;;;;;;;;22548:115:::0;:::o;14248:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;4863:201::-;4997:7;5029:11;:18;5041:5;5029:18;;;;;;;;;;;;;;;:27;5048:7;5029:27;;;;;;;;;;;;;;;;5022:34;;4863:201;;;;:::o;12027:192::-;11848:12;:10;:12::i;:::-;11837:23;;:7;:5;:7::i;:::-;:23;;;11829:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12136:1:::1;12116:22;;:8;:22;;::::0;12108:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12192:19;12202:8;12192:9;:19::i;:::-;12027:192:::0;:::o;14200:39::-;;;;;;;;;;;;;;;;;;;:::o;13344:21::-;;;;;;;;;;;;;:::o;675:98::-;728:7;755:10;748:17;;675:98;:::o;10001:380::-;10154:1;10137:19;;:5;:19;;;10129:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10235:1;10216:21;;:7;:21;;;10208:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10319:6;10289:11;:18;10301:5;10289:18;;;;;;;;;;;;;;;:27;10308:7;10289:27;;;;;;;;;;;;;;;:36;;;;10357:7;10341:32;;10350:5;10341:32;;;10366:6;10341:32;;;;;;:::i;:::-;;;;;;;;10001:380;;;:::o;16594:2669::-;16744:1;16735:6;:10;16727:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;16811:12;:20;16824:6;16811:20;;;;;;;;;;;;;;;;;;;;;;;;;16810:21;:49;;;;;16836:12;:23;16849:9;16836:23;;;;;;;;;;;;;;;;;;;;;;;;;16835:24;16810:49;16802:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;16930:9;:17;16940:6;16930:17;;;;;;;;;;;;;;;;;;;;;;;;;16929:18;:43;;;;;16952:9;:20;16962:9;16952:20;;;;;;;;;;;;;;;;;;;;;;;;;16951:21;16929:43;16925:122;;;16997:14;;;;;;;;;;;16989:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;16925:122;17073:4;;;;;;;;;;;17063:14;;:6;:14;;;:39;;;;;17082:9;:20;17092:9;17082:20;;;;;;;;;;;;;;;;;;;;;;;;;17081:21;17063:39;:59;;;;;17107:15;;;;;;;;;;;17106:16;17063:59;17059:215;;;17180:14;;17170:6;17147:20;17157:9;17147;:20::i;:::-;:29;;;;:::i;:::-;:47;;17139:123;;;;;;;;;;;;:::i;:::-;;;;;;;;;17059:215;17300:4;;;;;;;;;;;17290:14;;:6;:14;;;;:39;;;;;17309:9;:20;17319:9;17309:20;;;;;;;;;;;;;;;;;;;;;;;;;17308:21;17290:39;:61;;;;;17334:9;:17;17344:6;17334:17;;;;;;;;;;;;;;;;;;;;;;;;;17333:18;17290:61;:81;;;;;17356:15;;;;;;;;;;;17355:16;17290:81;17286:315;;;17418:4;;;;;;;;;;;17405:17;;:9;:17;;;17401:189;;17484:14;;17474:6;17451:20;17461:9;17451;:20::i;:::-;:29;;;;:::i;:::-;:47;;17443:131;;;;;;;;;;;;:::i;:::-;;;;;;;;;17401:189;17286:315;17613:15;17639:14;17664:11;17686:25;;:::i;:::-;17724:17;17745:9;:17;17755:6;17745:17;;;;;;;;;;;;;;;;;;;;;;;;;17744:18;:56;;;;;17780:9;:20;17790:9;17780:20;;;;;;;;;;;;;;;;;;;;;;;;;17779:21;17744:56;:112;;;;;17848:8;;17832:13;;:24;;;;:::i;:::-;17817:12;:39;17744:112;17724:132;;17944:15;;;;;;;;;;;:36;;;;17963:9;:17;17973:6;17963:17;;;;;;;;;;;;;;;;;;;;;;;;;17944:36;:60;;;;17984:9;:20;17994:9;17984:20;;;;;;;;;;;;;;;;;;;;;;;;;17944:60;:71;;;;18008:7;;;;;;;;;;;17944:71;17940:739;;;18036:1;18030:7;;17940:739;;;18101:4;;;;;;;;;;;18088:17;;:9;:17;;;:34;;;;;18110:12;18109:13;18088:34;18084:595;;;18255:9;:13;;;18205:9;:19;;;18166:9;:19;;;:58;;;;:::i;:::-;:102;;;;:::i;:::-;18139:129;;18293:7;18284:16;;18330:9;18315:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18084:595;;;18362:12;18357:322;;18488:5;:9;;;18453:5;:15;;;18418:5;:15;;;:50;;;;:::i;:::-;:79;;;;:::i;:::-;18391:106;;18522:7;18513:16;;18559:5;18544:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18357:322;;;18586:12;18582:97;;;18625:9;;18615:19;;18658:9;;18649:18;;18582:97;18357:322;18084:595;17940:739;18717:3;18707:6;18698;:15;;;;:::i;:::-;18697:23;;;;:::i;:::-;18691:29;;18834:18;;;;;;;;;;;:36;;;;;18866:4;;;;;;;;;;;18856:14;;:6;:14;;;;18834:36;18830:76;;;18872:34;18884:7;18893:12;18872:11;:34::i;:::-;18830:76;18948:48;18964:6;18972:9;18992:3;18983:6;:12;;;;:::i;:::-;18948:15;:48::i;:::-;19017:1;19011:3;:7;19007:249;;;19093:1;19083:7;:11;19079:164;;;19115:17;19156:3;19145:7;19136:6;:16;;;;:::i;:::-;19135:24;;;;:::i;:::-;19115:44;;19178:49;19194:6;19210:4;19217:9;19178:15;:49::i;:::-;19096:147;19079:164;19007:249;16716:2547;;;;;16594:2669;;;:::o;12227:173::-;12283:16;12302:6;;;;;;;;;;;12283:25;;12328:8;12319:6;;:17;;;;;;;;;;;;;;;;;;12383:8;12352:40;;12373:8;12352:40;;;;;;;;;;;;12272:128;12227:173;:::o;19271:1593::-;14389:15;;;;;;;;;;;14384:125;;14439:4;14421:15;;:22;;;;;;;;;;;;;;;;;;19374:1:::1;19363:7;:12:::0;19360:49;19391:7:::1;19360:49;19424:23;19450:24;19468:4;19450:9;:24::i;:::-;19424:50;;19508:23;;19489:15;:42;19485:1372;;19578:1;19552:23;;:27;19548:109;;;19618:23;;19600:41;;19548:109;19728:19;19760:1;19750:7;:11;;;;:::i;:::-;19728:33;;19776:32;19870:11;19830:9;:19;;;19812:15;:37;;;;:::i;:::-;19811:70;;;;:::i;:::-;19776:105;;19896:14;19931:24;19913:15;:42;;;;:::i;:::-;19896:59;;19972:22;19997:21;19972:46;;20035:24;20052:6;20035:16;:24::i;:::-;20076:20;20123:14;20099:21;:38;;;;:::i;:::-;20076:61;;20152:19;20204:9;:19;;;20190:11;:33;;;;:::i;:::-;20174:12;:50;;;;:::i;:::-;20152:72;;20239:29;20285:9;:19;;;20271:11;:33;;;;:::i;:::-;20239:65;;20349:1;20325:21;:25;20321:161;;;20405:61;20418:24;20444:21;20405:12;:61::i;:::-;20321:161;20498:20;20539:9;:19;;;20535:1;20521:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;20498:60;;20592:1;20577:12;:16;20573:105;;;20614:48;20649:12;20622:15;;;;;;;;;;;20614:34;;;;:48;;;;:::i;:::-;20573:105;20694:14;20729:9;:13;;;20725:1;20711:11;:15;;;;:::i;:::-;:31;;;;:::i;:::-;20694:48;;20770:1;20761:6;:10;20757:87;;;20792:36;20821:6;20800:9;;;;;;;;;;;20792:28;;;;:36;;;;:::i;:::-;20757:87;19533:1324;;;;;;;;;19485:1372;19351:1513;14458:1;14492:5:::0;14474:15;;:23;;;;;;;;;;;;;;;;;;14384:125;19271:1593;;:::o;8376:638::-;8534:1;8516:20;;:6;:20;;;8508:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8618:1;8597:23;;:9;:23;;;8589:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8673:47;8694:6;8702:9;8713:6;8673:20;:47::i;:::-;8733:21;8757:9;:17;8767:6;8757:17;;;;;;;;;;;;;;;;8733:41;;8810:6;8793:13;:23;;8785:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8906:6;8890:13;:22;;;;:::i;:::-;8870:9;:17;8880:6;8870:17;;;;;;;;;;;;;;;:42;;;;8947:6;8923:9;:20;8933:9;8923:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;8988:9;8971:35;;8980:6;8971:35;;;8999:6;8971:35;;;;;;:::i;:::-;;;;;;;;8497:517;8376:638;;;:::o;20872:526::-;20990:21;21028:1;21014:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20990:40;;21059:4;21041;21046:1;21041:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21085:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21075:4;21080:1;21075:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21111:53;21128:4;21143:6;;;;;;;;;;;21152:11;21111:8;:53::i;:::-;21203:6;;;;;;;;;;;:57;;;21275:11;21301:1;21317:4;21344;21364:15;21203:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20927:471;20872:526;:::o;21406:499::-;21554:53;21571:4;21586:6;;;;;;;;;;;21595:11;21554:8;:53::i;:::-;21650:6;;;;;;;;;;;:22;;;21681:9;21715:4;21735:11;21761:1;21804;21847:9;;;;;;;;;;;21871:15;21650:247;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21406:499;;:::o;11145:319::-;11260:6;11235:21;:31;;11227:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11314:12;11332:9;:14;;11355:6;11332:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11313:54;;;11386:7;11378:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;11216:248;11145:319;;:::o;10990:125::-;;;;:::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:117::-;3555:1;3552;3545:12;3569:180;3617:77;3614:1;3607:88;3714:4;3711:1;3704:15;3738:4;3735:1;3728:15;3755:281;3838:27;3860:4;3838:27;:::i;:::-;3830:6;3826:40;3968:6;3956:10;3953:22;3932:18;3920:10;3917:34;3914:62;3911:88;;;3979:18;;:::i;:::-;3911:88;4019:10;4015:2;4008:22;3798:238;3755:281;;:::o;4042:129::-;4076:6;4103:20;;:::i;:::-;4093:30;;4132:33;4160:4;4152:6;4132:33;:::i;:::-;4042:129;;;:::o;4177:311::-;4254:4;4344:18;4336:6;4333:30;4330:56;;;4366:18;;:::i;:::-;4330:56;4416:4;4408:6;4404:17;4396:25;;4476:4;4470;4466:15;4458:23;;4177:311;;;:::o;4494:117::-;4603:1;4600;4593:12;4634:710;4730:5;4755:81;4771:64;4828:6;4771:64;:::i;:::-;4755:81;:::i;:::-;4746:90;;4856:5;4885:6;4878:5;4871:21;4919:4;4912:5;4908:16;4901:23;;4972:4;4964:6;4960:17;4952:6;4948:30;5001:3;4993:6;4990:15;4987:122;;;5020:79;;:::i;:::-;4987:122;5135:6;5118:220;5152:6;5147:3;5144:15;5118:220;;;5227:3;5256:37;5289:3;5277:10;5256:37;:::i;:::-;5251:3;5244:50;5323:4;5318:3;5314:14;5307:21;;5194:144;5178:4;5173:3;5169:14;5162:21;;5118:220;;;5122:21;4736:608;;4634:710;;;;;:::o;5367:370::-;5438:5;5487:3;5480:4;5472:6;5468:17;5464:27;5454:122;;5495:79;;:::i;:::-;5454:122;5612:6;5599:20;5637:94;5727:3;5719:6;5712:4;5704:6;5700:17;5637:94;:::i;:::-;5628:103;;5444:293;5367:370;;;;:::o;5743:116::-;5813:21;5828:5;5813:21;:::i;:::-;5806:5;5803:32;5793:60;;5849:1;5846;5839:12;5793:60;5743:116;:::o;5865:133::-;5908:5;5946:6;5933:20;5924:29;;5962:30;5986:5;5962:30;:::i;:::-;5865:133;;;;:::o;6004:678::-;6094:6;6102;6151:2;6139:9;6130:7;6126:23;6122:32;6119:119;;;6157:79;;:::i;:::-;6119:119;6305:1;6294:9;6290:17;6277:31;6335:18;6327:6;6324:30;6321:117;;;6357:79;;:::i;:::-;6321:117;6462:78;6532:7;6523:6;6512:9;6508:22;6462:78;:::i;:::-;6452:88;;6248:302;6589:2;6615:50;6657:7;6648:6;6637:9;6633:22;6615:50;:::i;:::-;6605:60;;6560:115;6004:678;;;;;:::o;6688:323::-;6744:6;6793:2;6781:9;6772:7;6768:23;6764:32;6761:119;;;6799:79;;:::i;:::-;6761:119;6919:1;6944:50;6986:7;6977:6;6966:9;6962:22;6944:50;:::i;:::-;6934:60;;6890:114;6688:323;;;;:::o;7017:118::-;7104:24;7122:5;7104:24;:::i;:::-;7099:3;7092:37;7017:118;;:::o;7141:222::-;7234:4;7272:2;7261:9;7257:18;7249:26;;7285:71;7353:1;7342:9;7338:17;7329:6;7285:71;:::i;:::-;7141:222;;;;:::o;7369:329::-;7428:6;7477:2;7465:9;7456:7;7452:23;7448:32;7445:119;;;7483:79;;:::i;:::-;7445:119;7603:1;7628:53;7673:7;7664:6;7653:9;7649:22;7628:53;:::i;:::-;7618:63;;7574:117;7369:329;;;;:::o;7704:619::-;7781:6;7789;7797;7846:2;7834:9;7825:7;7821:23;7817:32;7814:119;;;7852:79;;:::i;:::-;7814:119;7972:1;7997:53;8042:7;8033:6;8022:9;8018:22;7997:53;:::i;:::-;7987:63;;7943:117;8099:2;8125:53;8170:7;8161:6;8150:9;8146:22;8125:53;:::i;:::-;8115:63;;8070:118;8227:2;8253:53;8298:7;8289:6;8278:9;8274:22;8253:53;:::i;:::-;8243:63;;8198:118;7704:619;;;;;:::o;8329:86::-;8364:7;8404:4;8397:5;8393:16;8382:27;;8329:86;;;:::o;8421:112::-;8504:22;8520:5;8504:22;:::i;:::-;8499:3;8492:35;8421:112;;:::o;8539:214::-;8628:4;8666:2;8655:9;8651:18;8643:26;;8679:67;8743:1;8732:9;8728:17;8719:6;8679:67;:::i;:::-;8539:214;;;;:::o;8759:468::-;8824:6;8832;8881:2;8869:9;8860:7;8856:23;8852:32;8849:119;;;8887:79;;:::i;:::-;8849:119;9007:1;9032:53;9077:7;9068:6;9057:9;9053:22;9032:53;:::i;:::-;9022:63;;8978:117;9134:2;9160:50;9202:7;9193:6;9182:9;9178:22;9160:50;:::i;:::-;9150:60;;9105:115;8759:468;;;;;:::o;9233:329::-;9292:6;9341:2;9329:9;9320:7;9316:23;9312:32;9309:119;;;9347:79;;:::i;:::-;9309:119;9467:1;9492:53;9537:7;9528:6;9517:9;9513:22;9492:53;:::i;:::-;9482:63;;9438:117;9233:329;;;;:::o;9568:619::-;9645:6;9653;9661;9710:2;9698:9;9689:7;9685:23;9681:32;9678:119;;;9716:79;;:::i;:::-;9678:119;9836:1;9861:53;9906:7;9897:6;9886:9;9882:22;9861:53;:::i;:::-;9851:63;;9807:117;9963:2;9989:53;10034:7;10025:6;10014:9;10010:22;9989:53;:::i;:::-;9979:63;;9934:118;10091:2;10117:53;10162:7;10153:6;10142:9;10138:22;10117:53;:::i;:::-;10107:63;;10062:118;9568:619;;;;;:::o;10193:442::-;10342:4;10380:2;10369:9;10365:18;10357:26;;10393:71;10461:1;10450:9;10446:17;10437:6;10393:71;:::i;:::-;10474:72;10542:2;10531:9;10527:18;10518:6;10474:72;:::i;:::-;10556;10624:2;10613:9;10609:18;10600:6;10556:72;:::i;:::-;10193:442;;;;;;:::o;10641:118::-;10728:24;10746:5;10728:24;:::i;:::-;10723:3;10716:37;10641:118;;:::o;10765:222::-;10858:4;10896:2;10885:9;10881:18;10873:26;;10909:71;10977:1;10966:9;10962:17;10953:6;10909:71;:::i;:::-;10765:222;;;;:::o;10993:474::-;11061:6;11069;11118:2;11106:9;11097:7;11093:23;11089:32;11086:119;;;11124:79;;:::i;:::-;11086:119;11244:1;11269:53;11314:7;11305:6;11294:9;11290:22;11269:53;:::i;:::-;11259:63;;11215:117;11371:2;11397:53;11442:7;11433:6;11422:9;11418:22;11397:53;:::i;:::-;11387:63;;11342:118;10993:474;;;;;:::o;11473:60::-;11501:3;11522:5;11515:12;;11473:60;;;:::o;11539:142::-;11589:9;11622:53;11640:34;11649:24;11667:5;11649:24;:::i;:::-;11640:34;:::i;:::-;11622:53;:::i;:::-;11609:66;;11539:142;;;:::o;11687:126::-;11737:9;11770:37;11801:5;11770:37;:::i;:::-;11757:50;;11687:126;;;:::o;11819:141::-;11884:9;11917:37;11948:5;11917:37;:::i;:::-;11904:50;;11819:141;;;:::o;11966:161::-;12068:52;12114:5;12068:52;:::i;:::-;12063:3;12056:65;11966:161;;:::o;12133:252::-;12241:4;12279:2;12268:9;12264:18;12256:26;;12292:86;12375:1;12364:9;12360:17;12351:6;12292:86;:::i;:::-;12133:252;;;;:::o;12391:180::-;12439:77;12436:1;12429:88;12536:4;12533:1;12526:15;12560:4;12557:1;12550:15;12577:320;12621:6;12658:1;12652:4;12648:12;12638:22;;12705:1;12699:4;12695:12;12726:18;12716:81;;12782:4;12774:6;12770:17;12760:27;;12716:81;12844:2;12836:6;12833:14;12813:18;12810:38;12807:84;;12863:18;;:::i;:::-;12807:84;12628:269;12577:320;;;:::o;12903:182::-;13043:34;13039:1;13031:6;13027:14;13020:58;12903:182;:::o;13091:366::-;13233:3;13254:67;13318:2;13313:3;13254:67;:::i;:::-;13247:74;;13330:93;13419:3;13330:93;:::i;:::-;13448:2;13443:3;13439:12;13432:19;;13091:366;;;:::o;13463:419::-;13629:4;13667:2;13656:9;13652:18;13644:26;;13716:9;13710:4;13706:20;13702:1;13691:9;13687:17;13680:47;13744:131;13870:4;13744:131;:::i;:::-;13736:139;;13463:419;;;:::o;13888:180::-;13936:77;13933:1;13926:88;14033:4;14030:1;14023:15;14057:4;14054:1;14047:15;14074:227;14214:34;14210:1;14202:6;14198:14;14191:58;14283:10;14278:2;14270:6;14266:15;14259:35;14074:227;:::o;14307:366::-;14449:3;14470:67;14534:2;14529:3;14470:67;:::i;:::-;14463:74;;14546:93;14635:3;14546:93;:::i;:::-;14664:2;14659:3;14655:12;14648:19;;14307:366;;;:::o;14679:419::-;14845:4;14883:2;14872:9;14868:18;14860:26;;14932:9;14926:4;14922:20;14918:1;14907:9;14903:17;14896:47;14960:131;15086:4;14960:131;:::i;:::-;14952:139;;14679:419;;;:::o;15104:180::-;15152:77;15149:1;15142:88;15249:4;15246:1;15239:15;15273:4;15270:1;15263:15;15290:194;15330:4;15350:20;15368:1;15350:20;:::i;:::-;15345:25;;15384:20;15402:1;15384:20;:::i;:::-;15379:25;;15428:1;15425;15421:9;15413:17;;15452:1;15446:4;15443:11;15440:37;;;15457:18;;:::i;:::-;15440:37;15290:194;;;;:::o;15490:191::-;15530:3;15549:20;15567:1;15549:20;:::i;:::-;15544:25;;15583:20;15601:1;15583:20;:::i;:::-;15578:25;;15626:1;15623;15619:9;15612:16;;15647:3;15644:1;15641:10;15638:36;;;15654:18;;:::i;:::-;15638:36;15490:191;;;;:::o;15687:222::-;15827:34;15823:1;15815:6;15811:14;15804:58;15896:5;15891:2;15883:6;15879:15;15872:30;15687:222;:::o;15915:366::-;16057:3;16078:67;16142:2;16137:3;16078:67;:::i;:::-;16071:74;;16154:93;16243:3;16154:93;:::i;:::-;16272:2;16267:3;16263:12;16256:19;;15915:366;;;:::o;16287:419::-;16453:4;16491:2;16480:9;16476:18;16468:26;;16540:9;16534:4;16530:20;16526:1;16515:9;16511:17;16504:47;16568:131;16694:4;16568:131;:::i;:::-;16560:139;;16287:419;;;:::o;16712:102::-;16754:8;16801:5;16798:1;16794:13;16773:34;;16712:102;;;:::o;16820:848::-;16881:5;16888:4;16912:6;16903:15;;16936:5;16927:14;;16950:712;16971:1;16961:8;16958:15;16950:712;;;17066:4;17061:3;17057:14;17051:4;17048:24;17045:50;;;17075:18;;:::i;:::-;17045:50;17125:1;17115:8;17111:16;17108:451;;;17540:4;17533:5;17529:16;17520:25;;17108:451;17590:4;17584;17580:15;17572:23;;17620:32;17643:8;17620:32;:::i;:::-;17608:44;;16950:712;;;16820:848;;;;;;;:::o;17674:1073::-;17728:5;17919:8;17909:40;;17940:1;17931:10;;17942:5;;17909:40;17968:4;17958:36;;17985:1;17976:10;;17987:5;;17958:36;18054:4;18102:1;18097:27;;;;18138:1;18133:191;;;;18047:277;;18097:27;18115:1;18106:10;;18117:5;;;18133:191;18178:3;18168:8;18165:17;18162:43;;;18185:18;;:::i;:::-;18162:43;18234:8;18231:1;18227:16;18218:25;;18269:3;18262:5;18259:14;18256:40;;;18276:18;;:::i;:::-;18256:40;18309:5;;;18047:277;;18433:2;18423:8;18420:16;18414:3;18408:4;18405:13;18401:36;18383:2;18373:8;18370:16;18365:2;18359:4;18356:12;18352:35;18336:111;18333:246;;;18489:8;18483:4;18479:19;18470:28;;18524:3;18517:5;18514:14;18511:40;;;18531:18;;:::i;:::-;18511:40;18564:5;;18333:246;18604:42;18642:3;18632:8;18626:4;18623:1;18604:42;:::i;:::-;18589:57;;;;18678:4;18673:3;18669:14;18662:5;18659:25;18656:51;;;18687:18;;:::i;:::-;18656:51;18736:4;18729:5;18725:16;18716:25;;17674:1073;;;;;;:::o;18753:281::-;18811:5;18835:23;18853:4;18835:23;:::i;:::-;18827:31;;18879:25;18895:8;18879:25;:::i;:::-;18867:37;;18923:104;18960:66;18950:8;18944:4;18923:104;:::i;:::-;18914:113;;18753:281;;;;:::o;19040:410::-;19080:7;19103:20;19121:1;19103:20;:::i;:::-;19098:25;;19137:20;19155:1;19137:20;:::i;:::-;19132:25;;19192:1;19189;19185:9;19214:30;19232:11;19214:30;:::i;:::-;19203:41;;19393:1;19384:7;19380:15;19377:1;19374:22;19354:1;19347:9;19327:83;19304:139;;19423:18;;:::i;:::-;19304:139;19088:362;19040:410;;;;:::o;19456:220::-;19596:34;19592:1;19584:6;19580:14;19573:58;19665:3;19660:2;19652:6;19648:15;19641:28;19456:220;:::o;19682:366::-;19824:3;19845:67;19909:2;19904:3;19845:67;:::i;:::-;19838:74;;19921:93;20010:3;19921:93;:::i;:::-;20039:2;20034:3;20030:12;20023:19;;19682:366;;;:::o;20054:419::-;20220:4;20258:2;20247:9;20243:18;20235:26;;20307:9;20301:4;20297:20;20293:1;20282:9;20278:17;20271:47;20335:131;20461:4;20335:131;:::i;:::-;20327:139;;20054:419;;;:::o;20479:176::-;20619:28;20615:1;20607:6;20603:14;20596:52;20479:176;:::o;20661:366::-;20803:3;20824:67;20888:2;20883:3;20824:67;:::i;:::-;20817:74;;20900:93;20989:3;20900:93;:::i;:::-;21018:2;21013:3;21009:12;21002:19;;20661:366;;;:::o;21033:419::-;21199:4;21237:2;21226:9;21222:18;21214:26;;21286:9;21280:4;21276:20;21272:1;21261:9;21257:17;21250:47;21314:131;21440:4;21314:131;:::i;:::-;21306:139;;21033:419;;;:::o;21458:332::-;21579:4;21617:2;21606:9;21602:18;21594:26;;21630:71;21698:1;21687:9;21683:17;21674:6;21630:71;:::i;:::-;21711:72;21779:2;21768:9;21764:18;21755:6;21711:72;:::i;:::-;21458:332;;;;;:::o;21796:137::-;21850:5;21881:6;21875:13;21866:22;;21897:30;21921:5;21897:30;:::i;:::-;21796:137;;;;:::o;21939:345::-;22006:6;22055:2;22043:9;22034:7;22030:23;22026:32;22023:119;;;22061:79;;:::i;:::-;22023:119;22181:1;22206:61;22259:7;22250:6;22239:9;22235:22;22206:61;:::i;:::-;22196:71;;22152:125;21939:345;;;;:::o;22290:224::-;22430:34;22426:1;22418:6;22414:14;22407:58;22499:7;22494:2;22486:6;22482:15;22475:32;22290:224;:::o;22520:366::-;22662:3;22683:67;22747:2;22742:3;22683:67;:::i;:::-;22676:74;;22759:93;22848:3;22759:93;:::i;:::-;22877:2;22872:3;22868:12;22861:19;;22520:366;;;:::o;22892:419::-;23058:4;23096:2;23085:9;23081:18;23073:26;;23145:9;23139:4;23135:20;23131:1;23120:9;23116:17;23109:47;23173:131;23299:4;23173:131;:::i;:::-;23165:139;;22892:419;;;:::o;23317:225::-;23457:34;23453:1;23445:6;23441:14;23434:58;23526:8;23521:2;23513:6;23509:15;23502:33;23317:225;:::o;23548:366::-;23690:3;23711:67;23775:2;23770:3;23711:67;:::i;:::-;23704:74;;23787:93;23876:3;23787:93;:::i;:::-;23905:2;23900:3;23896:12;23889:19;;23548:366;;;:::o;23920:419::-;24086:4;24124:2;24113:9;24109:18;24101:26;;24173:9;24167:4;24163:20;24159:1;24148:9;24144:17;24137:47;24201:131;24327:4;24201:131;:::i;:::-;24193:139;;23920:419;;;:::o;24345:223::-;24485:34;24481:1;24473:6;24469:14;24462:58;24554:6;24549:2;24541:6;24537:15;24530:31;24345:223;:::o;24574:366::-;24716:3;24737:67;24801:2;24796:3;24737:67;:::i;:::-;24730:74;;24813:93;24902:3;24813:93;:::i;:::-;24931:2;24926:3;24922:12;24915:19;;24574:366;;;:::o;24946:419::-;25112:4;25150:2;25139:9;25135:18;25127:26;;25199:9;25193:4;25189:20;25185:1;25174:9;25170:17;25163:47;25227:131;25353:4;25227:131;:::i;:::-;25219:139;;24946:419;;;:::o;25371:221::-;25511:34;25507:1;25499:6;25495:14;25488:58;25580:4;25575:2;25567:6;25563:15;25556:29;25371:221;:::o;25598:366::-;25740:3;25761:67;25825:2;25820:3;25761:67;:::i;:::-;25754:74;;25837:93;25926:3;25837:93;:::i;:::-;25955:2;25950:3;25946:12;25939:19;;25598:366;;;:::o;25970:419::-;26136:4;26174:2;26163:9;26159:18;26151:26;;26223:9;26217:4;26213:20;26209:1;26198:9;26194:17;26187:47;26251:131;26377:4;26251:131;:::i;:::-;26243:139;;25970:419;;;:::o;26395:228::-;26535:34;26531:1;26523:6;26519:14;26512:58;26604:11;26599:2;26591:6;26587:15;26580:36;26395:228;:::o;26629:366::-;26771:3;26792:67;26856:2;26851:3;26792:67;:::i;:::-;26785:74;;26868:93;26957:3;26868:93;:::i;:::-;26986:2;26981:3;26977:12;26970:19;;26629:366;;;:::o;27001:419::-;27167:4;27205:2;27194:9;27190:18;27182:26;;27254:9;27248:4;27244:20;27240:1;27229:9;27225:17;27218:47;27282:131;27408:4;27282:131;:::i;:::-;27274:139;;27001:419;;;:::o;27426:175::-;27566:27;27562:1;27554:6;27550:14;27543:51;27426:175;:::o;27607:366::-;27749:3;27770:67;27834:2;27829:3;27770:67;:::i;:::-;27763:74;;27846:93;27935:3;27846:93;:::i;:::-;27964:2;27959:3;27955:12;27948:19;;27607:366;;;:::o;27979:419::-;28145:4;28183:2;28172:9;28168:18;28160:26;;28232:9;28226:4;28222:20;28218:1;28207:9;28203:17;28196:47;28260:131;28386:4;28260:131;:::i;:::-;28252:139;;27979:419;;;:::o;28404:169::-;28544:21;28540:1;28532:6;28528:14;28521:45;28404:169;:::o;28579:366::-;28721:3;28742:67;28806:2;28801:3;28742:67;:::i;:::-;28735:74;;28818:93;28907:3;28818:93;:::i;:::-;28936:2;28931:3;28927:12;28920:19;;28579:366;;;:::o;28951:419::-;29117:4;29155:2;29144:9;29140:18;29132:26;;29204:9;29198:4;29194:20;29190:1;29179:9;29175:17;29168:47;29232:131;29358:4;29232:131;:::i;:::-;29224:139;;28951:419;;;:::o;29376:182::-;29516:34;29512:1;29504:6;29500:14;29493:58;29376:182;:::o;29564:366::-;29706:3;29727:67;29791:2;29786:3;29727:67;:::i;:::-;29720:74;;29803:93;29892:3;29803:93;:::i;:::-;29921:2;29916:3;29912:12;29905:19;;29564:366;;;:::o;29936:419::-;30102:4;30140:2;30129:9;30125:18;30117:26;;30189:9;30183:4;30179:20;30175:1;30164:9;30160:17;30153:47;30217:131;30343:4;30217:131;:::i;:::-;30209:139;;29936:419;;;:::o;30361:180::-;30409:77;30406:1;30399:88;30506:4;30503:1;30496:15;30530:4;30527:1;30520:15;30547:185;30587:1;30604:20;30622:1;30604:20;:::i;:::-;30599:25;;30638:20;30656:1;30638:20;:::i;:::-;30633:25;;30677:1;30667:35;;30682:18;;:::i;:::-;30667:35;30724:1;30721;30717:9;30712:14;;30547:185;;;;:::o;30738:224::-;30878:34;30874:1;30866:6;30862:14;30855:58;30947:7;30942:2;30934:6;30930:15;30923:32;30738:224;:::o;30968:366::-;31110:3;31131:67;31195:2;31190:3;31131:67;:::i;:::-;31124:74;;31207:93;31296:3;31207:93;:::i;:::-;31325:2;31320:3;31316:12;31309:19;;30968:366;;;:::o;31340:419::-;31506:4;31544:2;31533:9;31529:18;31521:26;;31593:9;31587:4;31583:20;31579:1;31568:9;31564:17;31557:47;31621:131;31747:4;31621:131;:::i;:::-;31613:139;;31340:419;;;:::o;31765:222::-;31905:34;31901:1;31893:6;31889:14;31882:58;31974:5;31969:2;31961:6;31957:15;31950:30;31765:222;:::o;31993:366::-;32135:3;32156:67;32220:2;32215:3;32156:67;:::i;:::-;32149:74;;32232:93;32321:3;32232:93;:::i;:::-;32350:2;32345:3;32341:12;32334:19;;31993:366;;;:::o;32365:419::-;32531:4;32569:2;32558:9;32554:18;32546:26;;32618:9;32612:4;32608:20;32604:1;32593:9;32589:17;32582:47;32646:131;32772:4;32646:131;:::i;:::-;32638:139;;32365:419;;;:::o;32790:225::-;32930:34;32926:1;32918:6;32914:14;32907:58;32999:8;32994:2;32986:6;32982:15;32975:33;32790:225;:::o;33021:366::-;33163:3;33184:67;33248:2;33243:3;33184:67;:::i;:::-;33177:74;;33260:93;33349:3;33260:93;:::i;:::-;33378:2;33373:3;33369:12;33362:19;;33021:366;;;:::o;33393:419::-;33559:4;33597:2;33586:9;33582:18;33574:26;;33646:9;33640:4;33636:20;33632:1;33621:9;33617:17;33610:47;33674:131;33800:4;33674:131;:::i;:::-;33666:139;;33393:419;;;:::o;33818:143::-;33875:5;33906:6;33900:13;33891:22;;33922:33;33949:5;33922:33;:::i;:::-;33818:143;;;;:::o;33967:351::-;34037:6;34086:2;34074:9;34065:7;34061:23;34057:32;34054:119;;;34092:79;;:::i;:::-;34054:119;34212:1;34237:64;34293:7;34284:6;34273:9;34269:22;34237:64;:::i;:::-;34227:74;;34183:128;33967:351;;;;:::o;34324:85::-;34369:7;34398:5;34387:16;;34324:85;;;:::o;34415:158::-;34473:9;34506:61;34524:42;34533:32;34559:5;34533:32;:::i;:::-;34524:42;:::i;:::-;34506:61;:::i;:::-;34493:74;;34415:158;;;:::o;34579:147::-;34674:45;34713:5;34674:45;:::i;:::-;34669:3;34662:58;34579:147;;:::o;34732:114::-;34799:6;34833:5;34827:12;34817:22;;34732:114;;;:::o;34852:184::-;34951:11;34985:6;34980:3;34973:19;35025:4;35020:3;35016:14;35001:29;;34852:184;;;;:::o;35042:132::-;35109:4;35132:3;35124:11;;35162:4;35157:3;35153:14;35145:22;;35042:132;;;:::o;35180:108::-;35257:24;35275:5;35257:24;:::i;:::-;35252:3;35245:37;35180:108;;:::o;35294:179::-;35363:10;35384:46;35426:3;35418:6;35384:46;:::i;:::-;35462:4;35457:3;35453:14;35439:28;;35294:179;;;;:::o;35479:113::-;35549:4;35581;35576:3;35572:14;35564:22;;35479:113;;;:::o;35628:732::-;35747:3;35776:54;35824:5;35776:54;:::i;:::-;35846:86;35925:6;35920:3;35846:86;:::i;:::-;35839:93;;35956:56;36006:5;35956:56;:::i;:::-;36035:7;36066:1;36051:284;36076:6;36073:1;36070:13;36051:284;;;36152:6;36146:13;36179:63;36238:3;36223:13;36179:63;:::i;:::-;36172:70;;36265:60;36318:6;36265:60;:::i;:::-;36255:70;;36111:224;36098:1;36095;36091:9;36086:14;;36051:284;;;36055:14;36351:3;36344:10;;35752:608;;;35628:732;;;;:::o;36366:831::-;36629:4;36667:3;36656:9;36652:19;36644:27;;36681:71;36749:1;36738:9;36734:17;36725:6;36681:71;:::i;:::-;36762:80;36838:2;36827:9;36823:18;36814:6;36762:80;:::i;:::-;36889:9;36883:4;36879:20;36874:2;36863:9;36859:18;36852:48;36917:108;37020:4;37011:6;36917:108;:::i;:::-;36909:116;;37035:72;37103:2;37092:9;37088:18;37079:6;37035:72;:::i;:::-;37117:73;37185:3;37174:9;37170:19;37161:6;37117:73;:::i;:::-;36366:831;;;;;;;;:::o;37203:807::-;37452:4;37490:3;37479:9;37475:19;37467:27;;37504:71;37572:1;37561:9;37557:17;37548:6;37504:71;:::i;:::-;37585:72;37653:2;37642:9;37638:18;37629:6;37585:72;:::i;:::-;37667:80;37743:2;37732:9;37728:18;37719:6;37667:80;:::i;:::-;37757;37833:2;37822:9;37818:18;37809:6;37757:80;:::i;:::-;37847:73;37915:3;37904:9;37900:19;37891:6;37847:73;:::i;:::-;37930;37998:3;37987:9;37983:19;37974:6;37930:73;:::i;:::-;37203:807;;;;;;;;;:::o;38016:143::-;38073:5;38104:6;38098:13;38089:22;;38120:33;38147:5;38120:33;:::i;:::-;38016:143;;;;:::o;38165:663::-;38253:6;38261;38269;38318:2;38306:9;38297:7;38293:23;38289:32;38286:119;;;38324:79;;:::i;:::-;38286:119;38444:1;38469:64;38525:7;38516:6;38505:9;38501:22;38469:64;:::i;:::-;38459:74;;38415:128;38582:2;38608:64;38664:7;38655:6;38644:9;38640:22;38608:64;:::i;:::-;38598:74;;38553:129;38721:2;38747:64;38803:7;38794:6;38783:9;38779:22;38747:64;:::i;:::-;38737:74;;38692:129;38165:663;;;;;:::o;38834:179::-;38974:31;38970:1;38962:6;38958:14;38951:55;38834:179;:::o;39019:366::-;39161:3;39182:67;39246:2;39241:3;39182:67;:::i;:::-;39175:74;;39258:93;39347:3;39258:93;:::i;:::-;39376:2;39371:3;39367:12;39360:19;;39019:366;;;:::o;39391:419::-;39557:4;39595:2;39584:9;39580:18;39572:26;;39644:9;39638:4;39634:20;39630:1;39619:9;39615:17;39608:47;39672:131;39798:4;39672:131;:::i;:::-;39664:139;;39391:419;;;:::o;39816:147::-;39917:11;39954:3;39939:18;;39816:147;;;;:::o;39969:114::-;;:::o;40089:398::-;40248:3;40269:83;40350:1;40345:3;40269:83;:::i;:::-;40262:90;;40361:93;40450:3;40361:93;:::i;:::-;40479:1;40474:3;40470:11;40463:18;;40089:398;;;:::o;40493:379::-;40677:3;40699:147;40842:3;40699:147;:::i;:::-;40692:154;;40863:3;40856:10;;40493:379;;;:::o;40878:245::-;41018:34;41014:1;41006:6;41002:14;40995:58;41087:28;41082:2;41074:6;41070:15;41063:53;40878:245;:::o;41129:366::-;41271:3;41292:67;41356:2;41351:3;41292:67;:::i;:::-;41285:74;;41368:93;41457:3;41368:93;:::i;:::-;41486:2;41481:3;41477:12;41470:19;;41129:366;;;:::o;41501:419::-;41667:4;41705:2;41694:9;41690:18;41682:26;;41754:9;41748:4;41744:20;41740:1;41729:9;41725:17;41718:47;41782:131;41908:4;41782:131;:::i;:::-;41774:139;;41501:419;;;:::o

Swarm Source

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