ETH Price: $3,246.68 (+2.39%)
Gas: 2 Gwei

Token

APU (APU)
 

Overview

Max Total Supply

420,696,696,969 APU

Holders

72

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,961,704,746.4 APU

Value
$0.00
0x5A6Ef9D80379E91f76d95Ebe14b2749d9CA7fB50
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:
APU

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-01
*/

/**
Apu might be the greatest token ever seen, but he’ll still jeet you an expired hotdog for $1.99 plus 🌭

apueth.app
*/

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

pragma solidity ^0.8.0;

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

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

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

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

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

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

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

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

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

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

pragma solidity ^0.8.20;

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

    function WETH() external pure returns (address);

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

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address UNISWAP_V2_PAIR);
}

contract APU is IERC20, Ownable {

    event Reflect(uint256 amountReflected, uint256 newTotalProportion);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO = 0x0000000000000000000000000000000000000000;

    uint256 constant MAX_FEE = 10;

    IUniswapV2Router02 public constant UNISWAP_V2_ROUTER =
        IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public immutable UNISWAP_V2_PAIR;
    mapping(address => bool) public automatedMarketMakerPairs;

    struct Fee {
        uint8 reflection;
        uint8 marketing;
        uint8 lp;
        uint8 buyback;
        uint8 burn;
        uint128 total;
    }

    string _name = "APU";
    string _symbol = "APU";

    uint256 _totalSupply = 420_696_696_969 ether;
    uint256 public _maxTxAmount = _totalSupply * 10 / 1000;
    uint256 public _maxWalletAmount = _totalSupply * 10 / 1000;

    /* rOwned = ratio of tokens owned relative to circulating supply (NOT total supply, since circulating <= total) */
    mapping(address => uint256) public _rOwned;
    uint256 public _totalProportion = _totalSupply;

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

    bool public tradingActive = false;
    bool public transferDelayEnabled = false;
    bool public limitsEnabled = true;
    mapping(address => bool) isFeeExempt;
    mapping(address => bool) isLimitExempt;

    Fee public buyFee = Fee({reflection: 0, marketing: 10, lp: 0, buyback: 10, burn: 0, total: 20});
    Fee public sellFee = Fee({reflection: 0, marketing: 10, lp: 0, buyback: 10, burn: 0, total: 20});

    address private marketingFeeReceiver;
    address private lpFeeReceiver;
    address private buybackFeeReceiver;

    bool public claimingFees = false;
    uint256 public swapThreshold = (_totalSupply * 3) / 1000;
    bool inSwap;
    mapping(address => bool) public blacklists;
    mapping(address => uint256) private _holderLastTransferTimestamp;

    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        // create uniswap pair
        address _uniswapPair =
            IUniswapV2Factory(UNISWAP_V2_ROUTER.factory()).createPair(address(this), UNISWAP_V2_ROUTER.WETH());
        UNISWAP_V2_PAIR = _uniswapPair;
        _setAutomatedMarketMakerPair(address(_uniswapPair), true);

        _allowances[address(this)][address(UNISWAP_V2_ROUTER)] = type(uint256).max;
        _allowances[address(this)][owner()] = type(uint256).max;

        isLimitExempt[address(this)] = true;
        isLimitExempt[DEAD] = true;
        isLimitExempt[owner()] = true;
        isLimitExempt[UNISWAP_V2_PAIR] = true;
        
        isFeeExempt[address(this)] = true;
        isFeeExempt[DEAD] = true;
        isFeeExempt[owner()] = true;

        marketingFeeReceiver = 0x392aE78c8d93983A6BD5Aa5ee8eE3Fa53B3D328F;
        lpFeeReceiver = 0x392aE78c8d93983A6BD5Aa5ee8eE3Fa53B3D328F;
        buybackFeeReceiver = 0x392aE78c8d93983A6BD5Aa5ee8eE3Fa53B3D328F;

        _rOwned[tx.origin] = _totalSupply;
        emit Transfer(address(0), tx.origin, _totalSupply);
    }

    receive() external payable {}

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

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

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

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

        return _transferFrom(sender, recipient, amount);
    }

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

    function decimals() external pure returns (uint8) {
        return 18;
    }

    function name() external view returns (string memory) {
        return _name;
    }

    function symbol() external view returns (string memory) {
        return _symbol;
    }

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

    function allowance(address holder, address spender) external view override returns (uint256) {
        return _allowances[holder][spender];
    }

    function tokensToProportion(uint256 tokens) public view returns (uint256) {
        return tokens * _totalProportion / _totalSupply;
    }

    function tokenFromReflection(uint256 proportion) public view returns (uint256) {
        return proportion * _totalSupply / _totalProportion;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply - balanceOf(DEAD) - balanceOf(ZERO);
    }

    function enableTrading() external onlyOwner {
        tradingActive = true;
        claimingFees = true;
    }

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

        _setAutomatedMarketMakerPair(pair, value);
    }

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

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((_totalSupply * 1) / 1000) / 1e18,
            "Cannot set maxTransactionAmount lower than 0.1%"
        );
        _maxTxAmount = newNum * (10**18);
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((_totalSupply * 5) / 1000) / 1e18,
            "Cannot set maxWallet lower than 0.5%"
        );
        _maxWalletAmount = newNum * (10**18);
    }

    function clearStuckBalance() external onlyOwner {
        (bool success,) = payable(msg.sender).call{value: address(this).balance}("");
        require(success);
    }

    function clearStuckToken() external onlyOwner {
        _transferFrom(address(this), msg.sender, balanceOf(address(this)));
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        claimingFees = _enabled;
        swapThreshold = _amount;
    }

    function changeFees(
        uint8 reflectionFeeBuy,
        uint8 marketingFeeBuy,
        uint8 lpFeeBuy,
        uint8 buybackFeeBuy,
        uint8 burnFeeBuy,
        uint8 reflectionFeeSell,
        uint8 marketingFeeSell,
        uint8 lpFeeSell,
        uint8 buybackFeeSell,
        uint8 burnFeeSell
    ) external onlyOwner {
        uint128 __totalBuyFee = reflectionFeeBuy + marketingFeeBuy + lpFeeBuy + buybackFeeBuy + burnFeeBuy;
        uint128 __totalSellFee = reflectionFeeSell + marketingFeeSell + lpFeeSell + buybackFeeSell + burnFeeSell;

        buyFee = Fee({
            reflection: reflectionFeeBuy,
            marketing: marketingFeeBuy,
            lp: lpFeeBuy,
            buyback: buybackFeeBuy,
            burn: burnFeeBuy,
            total: __totalBuyFee
        });

        sellFee = Fee({
            reflection: reflectionFeeSell,
            marketing: marketingFeeSell,
            lp: lpFeeSell,
            buyback: buybackFeeSell,
            burn: burnFeeSell,
            total: __totalSellFee
        });
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setisLimitExempt(address holder, bool exempt) external onlyOwner {
        isLimitExempt[holder] = exempt;
    }

    function setFeeReceivers(address m_, address lp_, address b_) external onlyOwner {
        marketingFeeReceiver = m_;
        lpFeeReceiver = lp_;
        buybackFeeReceiver = b_;
    }

    function setLimitsEnabled(bool e_) external onlyOwner {
        limitsEnabled = e_;
    }

    // Set Transfer delay
    function disableTransferDelay(bool e_) external onlyOwner returns (bool) {
        transferDelayEnabled = e_;
        return true;
    }

    function blacklist(address _address, bool _isBlacklisting) external onlyOwner {
        blacklists[_address] = _isBlacklisting;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(!blacklists[recipient] && !blacklists[sender], "Blacklisted");

        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }

        if (limitsEnabled) {
            if (!tradingActive) 
            {
                require(
                    isFeeExempt[sender] || isFeeExempt[recipient],
                    "Trading is not active."
                );
            }

            //when buy
            if (automatedMarketMakerPairs[sender] && !isLimitExempt[recipient]) 
            {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
                require(amount + balanceOf(recipient) <= _maxWalletAmount, "Max wallet exceeded");
            }
            //when sell
            else if (automatedMarketMakerPairs[recipient] && !isLimitExempt[sender])
            {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            }
            else if (!isLimitExempt[recipient]) 
            {
                require(amount + balanceOf(recipient) <= _maxWalletAmount, "Max wallet exceeded");
            }
            
            // at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch.
            if (transferDelayEnabled) {
                if (
                    recipient != owner() &&
                    recipient != address(UNISWAP_V2_ROUTER) &&
                    recipient != UNISWAP_V2_PAIR
                ) {
                    require(
                        _holderLastTransferTimestamp[tx.origin] + 1 <
                            block.number,
                        "_transfer:: Transfer Delay enabled.  Only one purchase per two blocks allowed."
                    );
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }
        }

        if (_shouldSwapBack()) {
            _swapBack();
        }

        uint256 proportionAmount = tokensToProportion(amount);
        require(_rOwned[sender] >= proportionAmount, "Insufficient Balance");
        _rOwned[sender] = _rOwned[sender] - proportionAmount;

        uint256 proportionReceived = _shouldTakeFee(sender, recipient)
            ? _takeFeeInProportions(sender == UNISWAP_V2_PAIR ? true : false, sender, proportionAmount)
            : proportionAmount;
        _rOwned[recipient] = _rOwned[recipient] + proportionReceived;

        emit Transfer(sender, recipient, tokenFromReflection(proportionReceived));
        return true;
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        uint256 proportionAmount = tokensToProportion(amount);
        require(_rOwned[sender] >= proportionAmount, "Insufficient Balance");
        _rOwned[sender] = _rOwned[sender] - proportionAmount;
        _rOwned[recipient] = _rOwned[recipient] + proportionAmount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function _takeFeeInProportions(bool buying, address sender, uint256 proportionAmount) internal returns (uint256) {
        Fee memory __buyFee = buyFee;
        Fee memory __sellFee = sellFee;

        uint256 proportionFeeAmount =
            buying == true ? proportionAmount * __buyFee.total / 100 : proportionAmount * __sellFee.total / 100;

        // reflect
        uint256 proportionReflected = buying == true
            ? proportionFeeAmount * __buyFee.reflection / __buyFee.total
            : proportionFeeAmount * __sellFee.reflection / __sellFee.total;

        _totalProportion = _totalProportion - proportionReflected;

        // take fees
        uint256 _proportionToContract = proportionFeeAmount - proportionReflected;
        if (_proportionToContract > 0) {
            _rOwned[address(this)] = _rOwned[address(this)] + _proportionToContract;

            emit Transfer(sender, address(this), tokenFromReflection(_proportionToContract));
        }
        emit Reflect(proportionReflected, _totalProportion);
        return proportionAmount - proportionFeeAmount;
    }

    function _shouldSwapBack() internal view returns (bool) {
        return msg.sender != UNISWAP_V2_PAIR && !inSwap && claimingFees && balanceOf(address(this)) >= swapThreshold;
    }

    function _swapBack() internal swapping {
        Fee memory __sellFee = sellFee;

        uint256 __swapThreshold = swapThreshold;
        uint256 amountToBurn = __swapThreshold * __sellFee.burn / __sellFee.total;
        uint256 amountToSwap = __swapThreshold - amountToBurn;
        approve(address(UNISWAP_V2_ROUTER), amountToSwap);

        if(amountToBurn > 0)
        {
            // burn
            _transferFrom(address(this), DEAD, amountToBurn);
        }

        // swap
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = UNISWAP_V2_ROUTER.WETH();

        UNISWAP_V2_ROUTER.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap, 0, path, address(this), block.timestamp
        );

        uint256 amountETH = address(this).balance;

        uint256 totalSwapFee = __sellFee.total - __sellFee.reflection - __sellFee.burn;
        uint256 amountETHMarketing = amountETH * __sellFee.marketing / totalSwapFee;
        uint256 amountETHLP = amountETH * __sellFee.lp / totalSwapFee;
        uint256 amountETHBuyback = amountETH * __sellFee.buyback / totalSwapFee;

        // send
        (bool tmpSuccess,) = payable(lpFeeReceiver).call{value: amountETHLP}("");
        (tmpSuccess,) = payable(buybackFeeReceiver).call{value: amountETHBuyback}("");
        (tmpSuccess,) = address(marketingFeeReceiver).call{value: address(this).balance}("");
    }

    function _shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !isFeeExempt[sender] && !isFeeExempt[recipient];
    }
}

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":false,"internalType":"uint256","name":"amountReflected","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTotalProportion","type":"uint256"}],"name":"Reflect","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"UNISWAP_V2_PAIR","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNISWAP_V2_ROUTER","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_rOwned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalProportion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isBlacklisting","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint8","name":"reflection","type":"uint8"},{"internalType":"uint8","name":"marketing","type":"uint8"},{"internalType":"uint8","name":"lp","type":"uint8"},{"internalType":"uint8","name":"buyback","type":"uint8"},{"internalType":"uint8","name":"burn","type":"uint8"},{"internalType":"uint128","name":"total","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"reflectionFeeBuy","type":"uint8"},{"internalType":"uint8","name":"marketingFeeBuy","type":"uint8"},{"internalType":"uint8","name":"lpFeeBuy","type":"uint8"},{"internalType":"uint8","name":"buybackFeeBuy","type":"uint8"},{"internalType":"uint8","name":"burnFeeBuy","type":"uint8"},{"internalType":"uint8","name":"reflectionFeeSell","type":"uint8"},{"internalType":"uint8","name":"marketingFeeSell","type":"uint8"},{"internalType":"uint8","name":"lpFeeSell","type":"uint8"},{"internalType":"uint8","name":"buybackFeeSell","type":"uint8"},{"internalType":"uint8","name":"burnFeeSell","type":"uint8"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimingFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"e_","type":"bool"}],"name":"disableTransferDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint8","name":"reflection","type":"uint8"},{"internalType":"uint8","name":"marketing","type":"uint8"},{"internalType":"uint8","name":"lp","type":"uint8"},{"internalType":"uint8","name":"buyback","type":"uint8"},{"internalType":"uint8","name":"burn","type":"uint8"},{"internalType":"uint128","name":"total","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"m_","type":"address"},{"internalType":"address","name":"lp_","type":"address"},{"internalType":"address","name":"b_","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"e_","type":"bool"}],"name":"setLimitsEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setisLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proportion","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"tokensToProportion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526040518060400160405280600381526020017f4150550000000000000000000000000000000000000000000000000000000000815250600290816200004a919062000f4e565b506040518060400160405280600381526020017f41505500000000000000000000000000000000000000000000000000000000008152506003908162000091919062000f4e565b506c054f5826c8903389f4348400006004556103e8600a600454620000b791906200105f565b620000c39190620010d6565b6005556103e8600a600454620000da91906200105f565b620000e69190620010d6565b6006556004546008555f600a5f6101000a81548160ff0219169083151502179055505f600a60016101000a81548160ff0219169083151502179055506001600a60026101000a81548160ff0219169083151502179055506040518060c001604052805f60ff168152602001600a60ff1681526020015f60ff168152602001600a60ff1681526020015f60ff16815260200160146fffffffffffffffffffffffffffffffff16815250600d5f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151815f0160036101000a81548160ff021916908360ff1602179055506080820151815f0160046101000a81548160ff021916908360ff16021790555060a0820151815f0160056101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050506040518060c001604052805f60ff168152602001600a60ff1681526020015f60ff168152602001600a60ff1681526020015f60ff16815260200160146fffffffffffffffffffffffffffffffff16815250600e5f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151815f0160036101000a81548160ff021916908360ff1602179055506080820151815f0160046101000a81548160ff021916908360ff16021790555060a0820151815f0160056101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505f601160146101000a81548160ff0219169083151502179055506103e86003600454620003cd91906200105f565b620003d99190620010d6565b601255348015620003e8575f80fd5b5062000409620003fd62000b5d60201b60201c565b62000b6460201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000468573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200048e919062001172565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000508573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200052e919062001172565b6040518363ffffffff1660e01b81526004016200054d929190620011b3565b6020604051808303815f875af11580156200056a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000590919062001172565b90508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050620005d981600162000c2560201b60201c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f620006f962000cc360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506001600c5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f620007f762000cc360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f6200095e62000cc360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555073392ae78c8d93983a6bd5aa5ee8ee3fa53b3d328f600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073392ae78c8d93983a6bd5aa5ee8ee3fa53b3d328f60105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073392ae78c8d93983a6bd5aa5ee8ee3fa53b3d328f60115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060045460075f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60045460405162000b4e9190620011ef565b60405180910390a3506200120a565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000d6657607f821691505b60208210810362000d7c5762000d7b62000d21565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000de07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000da3565b62000dec868362000da3565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000e3662000e3062000e2a8462000e04565b62000e0d565b62000e04565b9050919050565b5f819050919050565b62000e518362000e16565b62000e6962000e608262000e3d565b84845462000daf565b825550505050565b5f90565b62000e7f62000e71565b62000e8c81848462000e46565b505050565b5b8181101562000eb35762000ea75f8262000e75565b60018101905062000e92565b5050565b601f82111562000f025762000ecc8162000d82565b62000ed78462000d94565b8101602085101562000ee7578190505b62000eff62000ef68562000d94565b83018262000e91565b50505b505050565b5f82821c905092915050565b5f62000f245f198460080262000f07565b1980831691505092915050565b5f62000f3e838362000f13565b9150826002028217905092915050565b62000f598262000cea565b67ffffffffffffffff81111562000f755762000f7462000cf4565b5b62000f81825462000d4e565b62000f8e82828562000eb7565b5f60209050601f83116001811462000fc4575f841562000faf578287015190505b62000fbb858262000f31565b8655506200102a565b601f19841662000fd48662000d82565b5f5b8281101562000ffd5784890151825560018201915060208501945060208101905062000fd6565b868310156200101d578489015162001019601f89168262000f13565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6200106b8262000e04565b9150620010788362000e04565b9250828202620010888162000e04565b91508282048414831517620010a257620010a162001032565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620010e28262000e04565b9150620010ef8362000e04565b925082620011025762001101620010a9565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200113c8262001111565b9050919050565b6200114e8162001130565b811462001159575f80fd5b50565b5f815190506200116c8162001143565b92915050565b5f602082840312156200118a57620011896200110d565b5b5f62001199848285016200115c565b91505092915050565b620011ad8162001130565b82525050565b5f604082019050620011c85f830185620011a2565b620011d76020830184620011a2565b9392505050565b620011e98162000e04565b82525050565b5f602082019050620012045f830184620011de565b92915050565b6080516144416200123f5f395f818161144601528181611aef015281816121100152818161237a015261285e01526144415ff3fe608060405260043610610275575f3560e01c8063658d4b7f1161014e578063b0f7ec38116100c0578063d7c0103211610079578063d7c010321461096a578063d85a282814610992578063dd62ed3e146109a8578063df20fd49146109e4578063f2fde38b14610a0c578063f40acc3d14610a345761027c565b8063b0f7ec3814610860578063b62496f51461088a578063bbc0c742146108c6578063c18bc195146108f0578063c38a31de14610918578063c876d0b9146109405761027c565b80638a8c523c116101125780638a8c523c146107685780638da5cb5b1461077e57806395d89b41146107a85780639a7a23d6146107d2578063a82ed9ec146107fa578063a9059cbb146108245761027c565b8063658d4b7f1461069a5780636c0a24eb146106c257806370a08231146106ec578063715018a6146107285780637d1db4a51461073e5761027c565b80632b14ca56116101e7578063364333f4116101ab578063364333f41461058d578063404e5129146105a357806341aea9de146105cb57806345ce5365146105f3578063470624021461062f578063571ac8b01461065e5761027c565b80632b14ca56146104925780632d838119146104c1578063313ce567146104fd57806334b86560146105275780633582ad23146105635761027c565b80631780028711610239578063178002871461038857806318160ddd146103b2578063203e727e146103dc57806323b872dd1461040457806324c39023146104405780632b112e49146104685761027c565b80630445b6671461028057806306fdde03146102aa578063095ea7b3146102d45780630cfc15f91461031057806316c021291461034c5761027c565b3661027c57005b5f80fd5b34801561028b575f80fd5b50610294610a5e565b6040516102a191906133b6565b60405180910390f35b3480156102b5575f80fd5b506102be610a64565b6040516102cb9190613459565b60405180910390f35b3480156102df575f80fd5b506102fa60048036038101906102f59190613501565b610af4565b6040516103079190613559565b60405180910390f35b34801561031b575f80fd5b5061033660048036038101906103319190613572565b610be1565b60405161034391906133b6565b60405180910390f35b348015610357575f80fd5b50610372600480360381019061036d9190613572565b610bf6565b60405161037f9190613559565b60405180910390f35b348015610393575f80fd5b5061039c610c13565b6040516103a991906133b6565b60405180910390f35b3480156103bd575f80fd5b506103c6610c19565b6040516103d391906133b6565b60405180910390f35b3480156103e7575f80fd5b5061040260048036038101906103fd919061359d565b610c22565b005b34801561040f575f80fd5b5061042a600480360381019061042591906135c8565b610cb8565b6040516104379190613559565b60405180910390f35b34801561044b575f80fd5b5061046660048036038101906104619190613642565b610f28565b005b348015610473575f80fd5b5061047c610f88565b60405161048991906133b6565b60405180910390f35b34801561049d575f80fd5b506104a6610fb9565b6040516104b8969594939291906136c5565b60405180910390f35b3480156104cc575f80fd5b506104e760048036038101906104e2919061359d565b611039565b6040516104f491906133b6565b60405180910390f35b348015610508575f80fd5b5061051161105c565b60405161051e9190613724565b60405180910390f35b348015610532575f80fd5b5061054d6004803603810190610548919061373d565b611064565b60405161055a9190613559565b60405180910390f35b34801561056e575f80fd5b50610577611090565b6040516105849190613559565b60405180910390f35b348015610598575f80fd5b506105a16110a3565b005b3480156105ae575f80fd5b506105c960048036038101906105c49190613642565b61111f565b005b3480156105d6575f80fd5b506105f160048036038101906105ec919061373d565b61117f565b005b3480156105fe575f80fd5b506106196004803603810190610614919061359d565b6111a4565b60405161062691906133b6565b60405180910390f35b34801561063a575f80fd5b506106436111c7565b604051610655969594939291906136c5565b60405180910390f35b348015610669575f80fd5b50610684600480360381019061067f9190613572565b611247565b6040516106919190613559565b60405180910390f35b3480156106a5575f80fd5b506106c060048036038101906106bb9190613642565b611279565b005b3480156106cd575f80fd5b506106d66112d9565b6040516106e391906133b6565b60405180910390f35b3480156106f7575f80fd5b50610712600480360381019061070d9190613572565b6112df565b60405161071f91906133b6565b60405180910390f35b348015610733575f80fd5b5061073c61132d565b005b348015610749575f80fd5b50610752611340565b60405161075f91906133b6565b60405180910390f35b348015610773575f80fd5b5061077c611346565b005b348015610789575f80fd5b50610792611385565b60405161079f9190613777565b60405180910390f35b3480156107b3575f80fd5b506107bc6113ac565b6040516107c99190613459565b60405180910390f35b3480156107dd575f80fd5b506107f860048036038101906107f39190613642565b61143c565b005b348015610805575f80fd5b5061080e6114e0565b60405161081b91906137eb565b60405180910390f35b34801561082f575f80fd5b5061084a60048036038101906108459190613501565b6114f8565b6040516108579190613559565b60405180910390f35b34801561086b575f80fd5b5061087461150c565b6040516108819190613559565b60405180910390f35b348015610895575f80fd5b506108b060048036038101906108ab9190613572565b61151f565b6040516108bd9190613559565b60405180910390f35b3480156108d1575f80fd5b506108da61153c565b6040516108e79190613559565b60405180910390f35b3480156108fb575f80fd5b506109166004803603810190610911919061359d565b61154e565b005b348015610923575f80fd5b5061093e6004803603810190610939919061382e565b6115e4565b005b34801561094b575f80fd5b506109546118be565b6040516109619190613559565b60405180910390f35b348015610975575f80fd5b50610990600480360381019061098b9190613907565b6118d1565b005b34801561099d575f80fd5b506109a661199e565b005b3480156109b3575f80fd5b506109ce60048036038101906109c99190613957565b6119bc565b6040516109db91906133b6565b60405180910390f35b3480156109ef575f80fd5b50610a0a6004803603810190610a059190613995565b611a3e565b005b348015610a17575f80fd5b50610a326004803603810190610a2d9190613572565b611a6b565b005b348015610a3f575f80fd5b50610a48611aed565b604051610a559190613777565b60405180910390f35b60125481565b606060028054610a7390613a00565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9f90613a00565b8015610aea5780601f10610ac157610100808354040283529160200191610aea565b820191905f5260205f20905b815481529060010190602001808311610acd57829003601f168201915b5050505050905090565b5f8160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610bcf91906133b6565b60405180910390a36001905092915050565b6007602052805f5260405f205f915090505481565b6014602052805f5260405f205f915054906101000a900460ff1681565b60085481565b5f600454905090565b610c2a611b11565b670de0b6b3a76400006103e86001600454610c459190613a5d565b610c4f9190613acb565b610c599190613acb565b811015610c9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9290613b6b565b60405180910390fd5b670de0b6b3a764000081610caf9190613a5d565b60058190555050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610f14578160095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610e13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0a90613bd3565b60405180910390fd5b8160095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610e979190613bf1565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610f1f848484611b8f565b90509392505050565b610f30611b11565b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f610f925f6112df565b610f9d61dead6112df565b600454610faa9190613bf1565b610fb49190613bf1565b905090565b600e805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a900460ff1690805f0160039054906101000a900460ff1690805f0160049054906101000a900460ff1690805f0160059054906101000a90046fffffffffffffffffffffffffffffffff16905086565b5f6008546004548361104b9190613a5d565b6110559190613acb565b9050919050565b5f6012905090565b5f61106d611b11565b81600a60016101000a81548160ff02191690831515021790555060019050919050565b600a60029054906101000a900460ff1681565b6110ab611b11565b5f3373ffffffffffffffffffffffffffffffffffffffff16476040516110d090613c51565b5f6040518083038185875af1925050503d805f811461110a576040519150601f19603f3d011682016040523d82523d5f602084013e61110f565b606091505b505090508061111c575f80fd5b50565b611127611b11565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b611187611b11565b80600a60026101000a81548160ff02191690831515021790555050565b5f600454600854836111b69190613a5d565b6111c09190613acb565b9050919050565b600d805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a900460ff1690805f0160039054906101000a900460ff1690805f0160049054906101000a900460ff1690805f0160059054906101000a90046fffffffffffffffffffffffffffffffff16905086565b5f611272827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610af4565b9050919050565b611281611b11565b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60065481565b5f61132660075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611039565b9050919050565b611335611b11565b61133e5f6124e3565b565b60055481565b61134e611b11565b6001600a5f6101000a81548160ff0219169083151502179055506001601160146101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600380546113bb90613a00565b80601f01602080910402602001604051908101604052809291908181526020018280546113e790613a00565b80156114325780601f1061140957610100808354040283529160200191611432565b820191905f5260205f20905b81548152906001019060200180831161141557829003601f168201915b5050505050905090565b611444611b11565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c990613cd5565b60405180910390fd5b6114dc82826125a4565b5050565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f611504338484611b8f565b905092915050565b601160149054906101000a900460ff1681565b6001602052805f5260405f205f915054906101000a900460ff1681565b600a5f9054906101000a900460ff1681565b611556611b11565b670de0b6b3a76400006103e860056004546115719190613a5d565b61157b9190613acb565b6115859190613acb565b8110156115c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115be90613d63565b60405180910390fd5b670de0b6b3a7640000816115db9190613a5d565b60068190555050565b6115ec611b11565b5f86888a8c8e6115fc9190613d81565b6116069190613d81565b6116109190613d81565b61161a9190613d81565b60ff1690505f828486888a61162f9190613d81565b6116399190613d81565b6116439190613d81565b61164d9190613d81565b60ff1690506040518060c001604052808d60ff1681526020018c60ff1681526020018b60ff1681526020018a60ff1681526020018960ff168152602001836fffffffffffffffffffffffffffffffff16815250600d5f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151815f0160036101000a81548160ff021916908360ff1602179055506080820151815f0160046101000a81548160ff021916908360ff16021790555060a0820151815f0160056101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055509050506040518060c001604052808860ff1681526020018760ff1681526020018660ff1681526020018560ff1681526020018460ff168152602001826fffffffffffffffffffffffffffffffff16815250600e5f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151815f0160036101000a81548160ff021916908360ff1602179055506080820151815f0160046101000a81548160ff021916908360ff16021790555060a0820151815f0160056101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550905050505050505050505050505050565b600a60019054906101000a900460ff1681565b6118d9611b11565b82600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6119a6611b11565b6119b930336119b4306112df565b611b8f565b50565b5f60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611a46611b11565b81601160146101000a81548160ff021916908315150217905550806012819055505050565b611a73611b11565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ae1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad890613e25565b60405180910390fd5b611aea816124e3565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b611b19612642565b73ffffffffffffffffffffffffffffffffffffffff16611b37611385565b73ffffffffffffffffffffffffffffffffffffffff1614611b8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8490613e8d565b60405180910390fd5b565b5f60145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611c2e575060145f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611c6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6490613ef5565b60405180910390fd5b60135f9054906101000a900460ff1615611c9357611c8c848484612649565b90506124dc565b600a60029054906101000a900460ff161561223457600a5f9054906101000a900460ff16611d9657600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611d565750600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8c90613f5d565b60405180910390fd5b5b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611e335750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611eda57600554821115611e7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7490613feb565b60405180910390fd5b600654611e89846112df565b83611e949190614009565b1115611ed5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ecc90614086565b60405180910390fd5b61206f565b60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611f775750600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611fc657600554821115611fc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb890613feb565b60405180910390fd5b61206e565b600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661206d57600654612020846112df565b8361202b9190614009565b111561206c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206390614086565b60405180910390fd5b5b5b5b600a60019054906101000a900460ff16156122335761208c611385565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156121075750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561215f57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122325743600160155f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121af9190614009565b106121ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e69061413a565b60405180910390fd5b4360155f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b5b61223c61285b565b1561224a576122496128f7565b5b5f612254836111a4565b90508060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156122d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122cd906141a2565b60405180910390fd5b8060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461231f9190613bf1565b60075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f61236b8686612eca565b61237557816123dc565b6123db7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16146123d1575f6123d4565b60015b8784612f71565b5b90508060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124279190614009565b60075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6124c084611039565b6040516124cd91906133b6565b60405180910390a36001925050505b9392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f33905090565b5f80612654836111a4565b90508060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156126d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cd906141a2565b60405180910390fd5b8060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461271f9190613bf1565b60075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127a99190614009565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161284791906133b6565b60405180910390a360019150509392505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156128c4575060135f9054906101000a900460ff16155b80156128dc5750601160149054906101000a900460ff165b80156128f257506012546128ef306112df565b10155b905090565b600160135f6101000a81548160ff0219169083151502179055505f600e6040518060c00160405290815f82015f9054906101000a900460ff1660ff1660ff1681526020015f820160019054906101000a900460ff1660ff1660ff1681526020015f820160029054906101000a900460ff1660ff1660ff1681526020015f820160039054906101000a900460ff1660ff1660ff1681526020015f820160049054906101000a900460ff1660ff1660ff1681526020015f820160059054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090505f60125490505f8260a001516fffffffffffffffffffffffffffffffff16836080015160ff1683612a269190613a5d565b612a309190613acb565b90505f8183612a3f9190613bf1565b9050612a5f737a250d5630b4cf539739df2c5dacb4c659f2488d82610af4565b505f821115612a7757612a753061dead84611b8f565b505b5f600267ffffffffffffffff811115612a9357612a926141c0565b5b604051908082528060200260200182016040528015612ac15781602001602082028036833780820191505090505b50905030815f81518110612ad857612ad76141ed565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b6f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b93919061422e565b81600181518110612ba757612ba66141ed565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612c36959493929190614349565b5f604051808303815f87803b158015612c4d575f80fd5b505af1158015612c5f573d5f803e3d5ffd5b505050505f4790505f866080015160ff16875f015160ff168860a00151612c8691906143a1565b612c9091906143a1565b6fffffffffffffffffffffffffffffffff1690505f81886020015160ff1684612cb99190613a5d565b612cc39190613acb565b90505f82896040015160ff1685612cda9190613a5d565b612ce49190613acb565b90505f838a6060015160ff1686612cfb9190613a5d565b612d059190613acb565b90505f60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612d4d90613c51565b5f6040518083038185875af1925050503d805f8114612d87576040519150601f19603f3d011682016040523d82523d5f602084013e612d8c565b606091505b5050905060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612dd590613c51565b5f6040518083038185875af1925050503d805f8114612e0f576040519150601f19603f3d011682016040523d82523d5f602084013e612e14565b606091505b505080915050600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612e5f90613c51565b5f6040518083038185875af1925050503d805f8114612e99576040519150601f19603f3d011682016040523d82523d5f602084013e612e9e565b606091505b50508091505050505050505050505050505f60135f6101000a81548160ff021916908315150217905550565b5f600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612f695750600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b905092915050565b5f80600d6040518060c00160405290815f82015f9054906101000a900460ff1660ff1660ff1681526020015f820160019054906101000a900460ff1660ff1660ff1681526020015f820160029054906101000a900460ff1660ff1660ff1681526020015f820160039054906101000a900460ff1660ff1660ff1681526020015f820160049054906101000a900460ff1660ff1660ff1681526020015f820160059054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090505f600e6040518060c00160405290815f82015f9054906101000a900460ff1660ff1660ff1681526020015f820160019054906101000a900460ff1660ff1660ff1681526020015f820160029054906101000a900460ff1660ff1660ff1681526020015f820160039054906101000a900460ff1660ff1660ff1681526020015f820160049054906101000a900460ff1660ff1660ff1681526020015f820160059054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090505f600115158715151461317a5760648260a001516fffffffffffffffffffffffffffffffff168661316b9190613a5d565b6131759190613acb565b6131a9565b60648360a001516fffffffffffffffffffffffffffffffff168661319e9190613a5d565b6131a89190613acb565b5b90505f60011515881515146131f0578260a001516fffffffffffffffffffffffffffffffff16835f015160ff16836131e19190613a5d565b6131eb9190613acb565b613224565b8360a001516fffffffffffffffffffffffffffffffff16845f015160ff16836132199190613a5d565b6132239190613acb565b5b9050806008546132349190613bf1565b6008819055505f81836132479190613bf1565b90505f811115613349578060075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461329a9190614009565b60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61333384611039565b60405161334091906133b6565b60405180910390a35b7fc3b3cc73ac1faef58c428c22be6cb344acfd92a699c8cd758c753af27071b5ac8260085460405161337c9291906143e4565b60405180910390a182876133909190613bf1565b955050505050509392505050565b5f819050919050565b6133b08161339e565b82525050565b5f6020820190506133c95f8301846133a7565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156134065780820151818401526020810190506133eb565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61342b826133cf565b61343581856133d9565b93506134458185602086016133e9565b61344e81613411565b840191505092915050565b5f6020820190508181035f8301526134718184613421565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6134a68261347d565b9050919050565b6134b68161349c565b81146134c0575f80fd5b50565b5f813590506134d1816134ad565b92915050565b6134e08161339e565b81146134ea575f80fd5b50565b5f813590506134fb816134d7565b92915050565b5f806040838503121561351757613516613479565b5b5f613524858286016134c3565b9250506020613535858286016134ed565b9150509250929050565b5f8115159050919050565b6135538161353f565b82525050565b5f60208201905061356c5f83018461354a565b92915050565b5f6020828403121561358757613586613479565b5b5f613594848285016134c3565b91505092915050565b5f602082840312156135b2576135b1613479565b5b5f6135bf848285016134ed565b91505092915050565b5f805f606084860312156135df576135de613479565b5b5f6135ec868287016134c3565b93505060206135fd868287016134c3565b925050604061360e868287016134ed565b9150509250925092565b6136218161353f565b811461362b575f80fd5b50565b5f8135905061363c81613618565b92915050565b5f806040838503121561365857613657613479565b5b5f613665858286016134c3565b92505060206136768582860161362e565b9150509250929050565b5f60ff82169050919050565b61369581613680565b82525050565b5f6fffffffffffffffffffffffffffffffff82169050919050565b6136bf8161369b565b82525050565b5f60c0820190506136d85f83018961368c565b6136e5602083018861368c565b6136f2604083018761368c565b6136ff606083018661368c565b61370c608083018561368c565b61371960a08301846136b6565b979650505050505050565b5f6020820190506137375f83018461368c565b92915050565b5f6020828403121561375257613751613479565b5b5f61375f8482850161362e565b91505092915050565b6137718161349c565b82525050565b5f60208201905061378a5f830184613768565b92915050565b5f819050919050565b5f6137b36137ae6137a98461347d565b613790565b61347d565b9050919050565b5f6137c482613799565b9050919050565b5f6137d5826137ba565b9050919050565b6137e5816137cb565b82525050565b5f6020820190506137fe5f8301846137dc565b92915050565b61380d81613680565b8114613817575f80fd5b50565b5f8135905061382881613804565b92915050565b5f805f805f805f805f806101408b8d03121561384d5761384c613479565b5b5f61385a8d828e0161381a565b9a5050602061386b8d828e0161381a565b995050604061387c8d828e0161381a565b985050606061388d8d828e0161381a565b975050608061389e8d828e0161381a565b96505060a06138af8d828e0161381a565b95505060c06138c08d828e0161381a565b94505060e06138d18d828e0161381a565b9350506101006138e38d828e0161381a565b9250506101206138f58d828e0161381a565b9150509295989b9194979a5092959850565b5f805f6060848603121561391e5761391d613479565b5b5f61392b868287016134c3565b935050602061393c868287016134c3565b925050604061394d868287016134c3565b9150509250925092565b5f806040838503121561396d5761396c613479565b5b5f61397a858286016134c3565b925050602061398b858286016134c3565b9150509250929050565b5f80604083850312156139ab576139aa613479565b5b5f6139b88582860161362e565b92505060206139c9858286016134ed565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613a1757607f821691505b602082108103613a2a57613a296139d3565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613a678261339e565b9150613a728361339e565b9250828202613a808161339e565b91508282048414831517613a9757613a96613a30565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613ad58261339e565b9150613ae08361339e565b925082613af057613aef613a9e565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e74205f8201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b5f613b55602f836133d9565b9150613b6082613afb565b604082019050919050565b5f6020820190508181035f830152613b8281613b49565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f613bbd601d836133d9565b9150613bc882613b89565b602082019050919050565b5f6020820190508181035f830152613bea81613bb1565b9050919050565b5f613bfb8261339e565b9150613c068361339e565b9250828203905081811115613c1e57613c1d613a30565b5b92915050565b5f81905092915050565b50565b5f613c3c5f83613c24565b9150613c4782613c2e565b5f82019050919050565b5f613c5b82613c31565b9150819050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613cbf6039836133d9565b9150613cca82613c65565b604082019050919050565b5f6020820190508181035f830152613cec81613cb3565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b5f613d4d6024836133d9565b9150613d5882613cf3565b604082019050919050565b5f6020820190508181035f830152613d7a81613d41565b9050919050565b5f613d8b82613680565b9150613d9683613680565b9250828201905060ff811115613daf57613dae613a30565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613e0f6026836133d9565b9150613e1a82613db5565b604082019050919050565b5f6020820190508181035f830152613e3c81613e03565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613e776020836133d9565b9150613e8282613e43565b602082019050919050565b5f6020820190508181035f830152613ea481613e6b565b9050919050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f613edf600b836133d9565b9150613eea82613eab565b602082019050919050565b5f6020820190508181035f830152613f0c81613ed3565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613f476016836133d9565b9150613f5282613f13565b602082019050919050565b5f6020820190508181035f830152613f7481613f3b565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178545f8201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b5f613fd56028836133d9565b9150613fe082613f7b565b604082019050919050565b5f6020820190508181035f83015261400281613fc9565b9050919050565b5f6140138261339e565b915061401e8361339e565b925082820190508082111561403657614035613a30565b5b92915050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6140706013836133d9565b915061407b8261403c565b602082019050919050565b5f6020820190508181035f83015261409d81614064565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e65207075726368617365207065722074776f206260208201527f6c6f636b7320616c6c6f7765642e000000000000000000000000000000000000604082015250565b5f614124604e836133d9565b915061412f826140a4565b606082019050919050565b5f6020820190508181035f83015261415181614118565b9050919050565b7f496e73756666696369656e742042616c616e63650000000000000000000000005f82015250565b5f61418c6014836133d9565b915061419782614158565b602082019050919050565b5f6020820190508181035f8301526141b981614180565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050614228816134ad565b92915050565b5f6020828403121561424357614242613479565b5b5f6142508482850161421a565b91505092915050565b5f819050919050565b5f61427c61427761427284614259565b613790565b61339e565b9050919050565b61428c81614262565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6142c48161349c565b82525050565b5f6142d583836142bb565b60208301905092915050565b5f602082019050919050565b5f6142f782614292565b614301818561429c565b935061430c836142ac565b805f5b8381101561433c57815161432388826142ca565b975061432e836142e1565b92505060018101905061430f565b5085935050505092915050565b5f60a08201905061435c5f8301886133a7565b6143696020830187614283565b818103604083015261437b81866142ed565b905061438a6060830185613768565b61439760808301846133a7565b9695505050505050565b5f6143ab8261369b565b91506143b68361369b565b925082820390506fffffffffffffffffffffffffffffffff8111156143de576143dd613a30565b5b92915050565b5f6040820190506143f75f8301856133a7565b61440460208301846133a7565b939250505056fea264697066735822122079f5263379efc12640f7e80854cd95deb1f3f4ac23e169f5da059f7f7bf25f3e64736f6c63430008140033

Deployed Bytecode

0x608060405260043610610275575f3560e01c8063658d4b7f1161014e578063b0f7ec38116100c0578063d7c0103211610079578063d7c010321461096a578063d85a282814610992578063dd62ed3e146109a8578063df20fd49146109e4578063f2fde38b14610a0c578063f40acc3d14610a345761027c565b8063b0f7ec3814610860578063b62496f51461088a578063bbc0c742146108c6578063c18bc195146108f0578063c38a31de14610918578063c876d0b9146109405761027c565b80638a8c523c116101125780638a8c523c146107685780638da5cb5b1461077e57806395d89b41146107a85780639a7a23d6146107d2578063a82ed9ec146107fa578063a9059cbb146108245761027c565b8063658d4b7f1461069a5780636c0a24eb146106c257806370a08231146106ec578063715018a6146107285780637d1db4a51461073e5761027c565b80632b14ca56116101e7578063364333f4116101ab578063364333f41461058d578063404e5129146105a357806341aea9de146105cb57806345ce5365146105f3578063470624021461062f578063571ac8b01461065e5761027c565b80632b14ca56146104925780632d838119146104c1578063313ce567146104fd57806334b86560146105275780633582ad23146105635761027c565b80631780028711610239578063178002871461038857806318160ddd146103b2578063203e727e146103dc57806323b872dd1461040457806324c39023146104405780632b112e49146104685761027c565b80630445b6671461028057806306fdde03146102aa578063095ea7b3146102d45780630cfc15f91461031057806316c021291461034c5761027c565b3661027c57005b5f80fd5b34801561028b575f80fd5b50610294610a5e565b6040516102a191906133b6565b60405180910390f35b3480156102b5575f80fd5b506102be610a64565b6040516102cb9190613459565b60405180910390f35b3480156102df575f80fd5b506102fa60048036038101906102f59190613501565b610af4565b6040516103079190613559565b60405180910390f35b34801561031b575f80fd5b5061033660048036038101906103319190613572565b610be1565b60405161034391906133b6565b60405180910390f35b348015610357575f80fd5b50610372600480360381019061036d9190613572565b610bf6565b60405161037f9190613559565b60405180910390f35b348015610393575f80fd5b5061039c610c13565b6040516103a991906133b6565b60405180910390f35b3480156103bd575f80fd5b506103c6610c19565b6040516103d391906133b6565b60405180910390f35b3480156103e7575f80fd5b5061040260048036038101906103fd919061359d565b610c22565b005b34801561040f575f80fd5b5061042a600480360381019061042591906135c8565b610cb8565b6040516104379190613559565b60405180910390f35b34801561044b575f80fd5b5061046660048036038101906104619190613642565b610f28565b005b348015610473575f80fd5b5061047c610f88565b60405161048991906133b6565b60405180910390f35b34801561049d575f80fd5b506104a6610fb9565b6040516104b8969594939291906136c5565b60405180910390f35b3480156104cc575f80fd5b506104e760048036038101906104e2919061359d565b611039565b6040516104f491906133b6565b60405180910390f35b348015610508575f80fd5b5061051161105c565b60405161051e9190613724565b60405180910390f35b348015610532575f80fd5b5061054d6004803603810190610548919061373d565b611064565b60405161055a9190613559565b60405180910390f35b34801561056e575f80fd5b50610577611090565b6040516105849190613559565b60405180910390f35b348015610598575f80fd5b506105a16110a3565b005b3480156105ae575f80fd5b506105c960048036038101906105c49190613642565b61111f565b005b3480156105d6575f80fd5b506105f160048036038101906105ec919061373d565b61117f565b005b3480156105fe575f80fd5b506106196004803603810190610614919061359d565b6111a4565b60405161062691906133b6565b60405180910390f35b34801561063a575f80fd5b506106436111c7565b604051610655969594939291906136c5565b60405180910390f35b348015610669575f80fd5b50610684600480360381019061067f9190613572565b611247565b6040516106919190613559565b60405180910390f35b3480156106a5575f80fd5b506106c060048036038101906106bb9190613642565b611279565b005b3480156106cd575f80fd5b506106d66112d9565b6040516106e391906133b6565b60405180910390f35b3480156106f7575f80fd5b50610712600480360381019061070d9190613572565b6112df565b60405161071f91906133b6565b60405180910390f35b348015610733575f80fd5b5061073c61132d565b005b348015610749575f80fd5b50610752611340565b60405161075f91906133b6565b60405180910390f35b348015610773575f80fd5b5061077c611346565b005b348015610789575f80fd5b50610792611385565b60405161079f9190613777565b60405180910390f35b3480156107b3575f80fd5b506107bc6113ac565b6040516107c99190613459565b60405180910390f35b3480156107dd575f80fd5b506107f860048036038101906107f39190613642565b61143c565b005b348015610805575f80fd5b5061080e6114e0565b60405161081b91906137eb565b60405180910390f35b34801561082f575f80fd5b5061084a60048036038101906108459190613501565b6114f8565b6040516108579190613559565b60405180910390f35b34801561086b575f80fd5b5061087461150c565b6040516108819190613559565b60405180910390f35b348015610895575f80fd5b506108b060048036038101906108ab9190613572565b61151f565b6040516108bd9190613559565b60405180910390f35b3480156108d1575f80fd5b506108da61153c565b6040516108e79190613559565b60405180910390f35b3480156108fb575f80fd5b506109166004803603810190610911919061359d565b61154e565b005b348015610923575f80fd5b5061093e6004803603810190610939919061382e565b6115e4565b005b34801561094b575f80fd5b506109546118be565b6040516109619190613559565b60405180910390f35b348015610975575f80fd5b50610990600480360381019061098b9190613907565b6118d1565b005b34801561099d575f80fd5b506109a661199e565b005b3480156109b3575f80fd5b506109ce60048036038101906109c99190613957565b6119bc565b6040516109db91906133b6565b60405180910390f35b3480156109ef575f80fd5b50610a0a6004803603810190610a059190613995565b611a3e565b005b348015610a17575f80fd5b50610a326004803603810190610a2d9190613572565b611a6b565b005b348015610a3f575f80fd5b50610a48611aed565b604051610a559190613777565b60405180910390f35b60125481565b606060028054610a7390613a00565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9f90613a00565b8015610aea5780601f10610ac157610100808354040283529160200191610aea565b820191905f5260205f20905b815481529060010190602001808311610acd57829003601f168201915b5050505050905090565b5f8160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610bcf91906133b6565b60405180910390a36001905092915050565b6007602052805f5260405f205f915090505481565b6014602052805f5260405f205f915054906101000a900460ff1681565b60085481565b5f600454905090565b610c2a611b11565b670de0b6b3a76400006103e86001600454610c459190613a5d565b610c4f9190613acb565b610c599190613acb565b811015610c9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9290613b6b565b60405180910390fd5b670de0b6b3a764000081610caf9190613a5d565b60058190555050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610f14578160095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610e13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0a90613bd3565b60405180910390fd5b8160095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610e979190613bf1565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610f1f848484611b8f565b90509392505050565b610f30611b11565b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f610f925f6112df565b610f9d61dead6112df565b600454610faa9190613bf1565b610fb49190613bf1565b905090565b600e805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a900460ff1690805f0160039054906101000a900460ff1690805f0160049054906101000a900460ff1690805f0160059054906101000a90046fffffffffffffffffffffffffffffffff16905086565b5f6008546004548361104b9190613a5d565b6110559190613acb565b9050919050565b5f6012905090565b5f61106d611b11565b81600a60016101000a81548160ff02191690831515021790555060019050919050565b600a60029054906101000a900460ff1681565b6110ab611b11565b5f3373ffffffffffffffffffffffffffffffffffffffff16476040516110d090613c51565b5f6040518083038185875af1925050503d805f811461110a576040519150601f19603f3d011682016040523d82523d5f602084013e61110f565b606091505b505090508061111c575f80fd5b50565b611127611b11565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b611187611b11565b80600a60026101000a81548160ff02191690831515021790555050565b5f600454600854836111b69190613a5d565b6111c09190613acb565b9050919050565b600d805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a900460ff1690805f0160039054906101000a900460ff1690805f0160049054906101000a900460ff1690805f0160059054906101000a90046fffffffffffffffffffffffffffffffff16905086565b5f611272827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610af4565b9050919050565b611281611b11565b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60065481565b5f61132660075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611039565b9050919050565b611335611b11565b61133e5f6124e3565b565b60055481565b61134e611b11565b6001600a5f6101000a81548160ff0219169083151502179055506001601160146101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600380546113bb90613a00565b80601f01602080910402602001604051908101604052809291908181526020018280546113e790613a00565b80156114325780601f1061140957610100808354040283529160200191611432565b820191905f5260205f20905b81548152906001019060200180831161141557829003601f168201915b5050505050905090565b611444611b11565b7f000000000000000000000000141e92e49f6728b497c38b900da80ae7d7e67a8473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c990613cd5565b60405180910390fd5b6114dc82826125a4565b5050565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f611504338484611b8f565b905092915050565b601160149054906101000a900460ff1681565b6001602052805f5260405f205f915054906101000a900460ff1681565b600a5f9054906101000a900460ff1681565b611556611b11565b670de0b6b3a76400006103e860056004546115719190613a5d565b61157b9190613acb565b6115859190613acb565b8110156115c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115be90613d63565b60405180910390fd5b670de0b6b3a7640000816115db9190613a5d565b60068190555050565b6115ec611b11565b5f86888a8c8e6115fc9190613d81565b6116069190613d81565b6116109190613d81565b61161a9190613d81565b60ff1690505f828486888a61162f9190613d81565b6116399190613d81565b6116439190613d81565b61164d9190613d81565b60ff1690506040518060c001604052808d60ff1681526020018c60ff1681526020018b60ff1681526020018a60ff1681526020018960ff168152602001836fffffffffffffffffffffffffffffffff16815250600d5f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151815f0160036101000a81548160ff021916908360ff1602179055506080820151815f0160046101000a81548160ff021916908360ff16021790555060a0820151815f0160056101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055509050506040518060c001604052808860ff1681526020018760ff1681526020018660ff1681526020018560ff1681526020018460ff168152602001826fffffffffffffffffffffffffffffffff16815250600e5f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151815f0160036101000a81548160ff021916908360ff1602179055506080820151815f0160046101000a81548160ff021916908360ff16021790555060a0820151815f0160056101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550905050505050505050505050505050565b600a60019054906101000a900460ff1681565b6118d9611b11565b82600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6119a6611b11565b6119b930336119b4306112df565b611b8f565b50565b5f60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611a46611b11565b81601160146101000a81548160ff021916908315150217905550806012819055505050565b611a73611b11565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ae1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad890613e25565b60405180910390fd5b611aea816124e3565b50565b7f000000000000000000000000141e92e49f6728b497c38b900da80ae7d7e67a8481565b611b19612642565b73ffffffffffffffffffffffffffffffffffffffff16611b37611385565b73ffffffffffffffffffffffffffffffffffffffff1614611b8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8490613e8d565b60405180910390fd5b565b5f60145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611c2e575060145f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611c6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6490613ef5565b60405180910390fd5b60135f9054906101000a900460ff1615611c9357611c8c848484612649565b90506124dc565b600a60029054906101000a900460ff161561223457600a5f9054906101000a900460ff16611d9657600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611d565750600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8c90613f5d565b60405180910390fd5b5b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611e335750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611eda57600554821115611e7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7490613feb565b60405180910390fd5b600654611e89846112df565b83611e949190614009565b1115611ed5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ecc90614086565b60405180910390fd5b61206f565b60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611f775750600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611fc657600554821115611fc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb890613feb565b60405180910390fd5b61206e565b600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661206d57600654612020846112df565b8361202b9190614009565b111561206c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206390614086565b60405180910390fd5b5b5b5b600a60019054906101000a900460ff16156122335761208c611385565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156121075750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561215f57507f000000000000000000000000141e92e49f6728b497c38b900da80ae7d7e67a8473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122325743600160155f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121af9190614009565b106121ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e69061413a565b60405180910390fd5b4360155f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b5b61223c61285b565b1561224a576122496128f7565b5b5f612254836111a4565b90508060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156122d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122cd906141a2565b60405180910390fd5b8060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461231f9190613bf1565b60075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f61236b8686612eca565b61237557816123dc565b6123db7f000000000000000000000000141e92e49f6728b497c38b900da80ae7d7e67a8473ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16146123d1575f6123d4565b60015b8784612f71565b5b90508060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124279190614009565b60075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6124c084611039565b6040516124cd91906133b6565b60405180910390a36001925050505b9392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f33905090565b5f80612654836111a4565b90508060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156126d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cd906141a2565b60405180910390fd5b8060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461271f9190613bf1565b60075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127a99190614009565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161284791906133b6565b60405180910390a360019150509392505050565b5f7f000000000000000000000000141e92e49f6728b497c38b900da80ae7d7e67a8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156128c4575060135f9054906101000a900460ff16155b80156128dc5750601160149054906101000a900460ff165b80156128f257506012546128ef306112df565b10155b905090565b600160135f6101000a81548160ff0219169083151502179055505f600e6040518060c00160405290815f82015f9054906101000a900460ff1660ff1660ff1681526020015f820160019054906101000a900460ff1660ff1660ff1681526020015f820160029054906101000a900460ff1660ff1660ff1681526020015f820160039054906101000a900460ff1660ff1660ff1681526020015f820160049054906101000a900460ff1660ff1660ff1681526020015f820160059054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090505f60125490505f8260a001516fffffffffffffffffffffffffffffffff16836080015160ff1683612a269190613a5d565b612a309190613acb565b90505f8183612a3f9190613bf1565b9050612a5f737a250d5630b4cf539739df2c5dacb4c659f2488d82610af4565b505f821115612a7757612a753061dead84611b8f565b505b5f600267ffffffffffffffff811115612a9357612a926141c0565b5b604051908082528060200260200182016040528015612ac15781602001602082028036833780820191505090505b50905030815f81518110612ad857612ad76141ed565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b6f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b93919061422e565b81600181518110612ba757612ba66141ed565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612c36959493929190614349565b5f604051808303815f87803b158015612c4d575f80fd5b505af1158015612c5f573d5f803e3d5ffd5b505050505f4790505f866080015160ff16875f015160ff168860a00151612c8691906143a1565b612c9091906143a1565b6fffffffffffffffffffffffffffffffff1690505f81886020015160ff1684612cb99190613a5d565b612cc39190613acb565b90505f82896040015160ff1685612cda9190613a5d565b612ce49190613acb565b90505f838a6060015160ff1686612cfb9190613a5d565b612d059190613acb565b90505f60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612d4d90613c51565b5f6040518083038185875af1925050503d805f8114612d87576040519150601f19603f3d011682016040523d82523d5f602084013e612d8c565b606091505b5050905060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612dd590613c51565b5f6040518083038185875af1925050503d805f8114612e0f576040519150601f19603f3d011682016040523d82523d5f602084013e612e14565b606091505b505080915050600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612e5f90613c51565b5f6040518083038185875af1925050503d805f8114612e99576040519150601f19603f3d011682016040523d82523d5f602084013e612e9e565b606091505b50508091505050505050505050505050505f60135f6101000a81548160ff021916908315150217905550565b5f600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612f695750600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b905092915050565b5f80600d6040518060c00160405290815f82015f9054906101000a900460ff1660ff1660ff1681526020015f820160019054906101000a900460ff1660ff1660ff1681526020015f820160029054906101000a900460ff1660ff1660ff1681526020015f820160039054906101000a900460ff1660ff1660ff1681526020015f820160049054906101000a900460ff1660ff1660ff1681526020015f820160059054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090505f600e6040518060c00160405290815f82015f9054906101000a900460ff1660ff1660ff1681526020015f820160019054906101000a900460ff1660ff1660ff1681526020015f820160029054906101000a900460ff1660ff1660ff1681526020015f820160039054906101000a900460ff1660ff1660ff1681526020015f820160049054906101000a900460ff1660ff1660ff1681526020015f820160059054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090505f600115158715151461317a5760648260a001516fffffffffffffffffffffffffffffffff168661316b9190613a5d565b6131759190613acb565b6131a9565b60648360a001516fffffffffffffffffffffffffffffffff168661319e9190613a5d565b6131a89190613acb565b5b90505f60011515881515146131f0578260a001516fffffffffffffffffffffffffffffffff16835f015160ff16836131e19190613a5d565b6131eb9190613acb565b613224565b8360a001516fffffffffffffffffffffffffffffffff16845f015160ff16836132199190613a5d565b6132239190613acb565b5b9050806008546132349190613bf1565b6008819055505f81836132479190613bf1565b90505f811115613349578060075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461329a9190614009565b60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61333384611039565b60405161334091906133b6565b60405180910390a35b7fc3b3cc73ac1faef58c428c22be6cb344acfd92a699c8cd758c753af27071b5ac8260085460405161337c9291906143e4565b60405180910390a182876133909190613bf1565b955050505050509392505050565b5f819050919050565b6133b08161339e565b82525050565b5f6020820190506133c95f8301846133a7565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156134065780820151818401526020810190506133eb565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61342b826133cf565b61343581856133d9565b93506134458185602086016133e9565b61344e81613411565b840191505092915050565b5f6020820190508181035f8301526134718184613421565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6134a68261347d565b9050919050565b6134b68161349c565b81146134c0575f80fd5b50565b5f813590506134d1816134ad565b92915050565b6134e08161339e565b81146134ea575f80fd5b50565b5f813590506134fb816134d7565b92915050565b5f806040838503121561351757613516613479565b5b5f613524858286016134c3565b9250506020613535858286016134ed565b9150509250929050565b5f8115159050919050565b6135538161353f565b82525050565b5f60208201905061356c5f83018461354a565b92915050565b5f6020828403121561358757613586613479565b5b5f613594848285016134c3565b91505092915050565b5f602082840312156135b2576135b1613479565b5b5f6135bf848285016134ed565b91505092915050565b5f805f606084860312156135df576135de613479565b5b5f6135ec868287016134c3565b93505060206135fd868287016134c3565b925050604061360e868287016134ed565b9150509250925092565b6136218161353f565b811461362b575f80fd5b50565b5f8135905061363c81613618565b92915050565b5f806040838503121561365857613657613479565b5b5f613665858286016134c3565b92505060206136768582860161362e565b9150509250929050565b5f60ff82169050919050565b61369581613680565b82525050565b5f6fffffffffffffffffffffffffffffffff82169050919050565b6136bf8161369b565b82525050565b5f60c0820190506136d85f83018961368c565b6136e5602083018861368c565b6136f2604083018761368c565b6136ff606083018661368c565b61370c608083018561368c565b61371960a08301846136b6565b979650505050505050565b5f6020820190506137375f83018461368c565b92915050565b5f6020828403121561375257613751613479565b5b5f61375f8482850161362e565b91505092915050565b6137718161349c565b82525050565b5f60208201905061378a5f830184613768565b92915050565b5f819050919050565b5f6137b36137ae6137a98461347d565b613790565b61347d565b9050919050565b5f6137c482613799565b9050919050565b5f6137d5826137ba565b9050919050565b6137e5816137cb565b82525050565b5f6020820190506137fe5f8301846137dc565b92915050565b61380d81613680565b8114613817575f80fd5b50565b5f8135905061382881613804565b92915050565b5f805f805f805f805f806101408b8d03121561384d5761384c613479565b5b5f61385a8d828e0161381a565b9a5050602061386b8d828e0161381a565b995050604061387c8d828e0161381a565b985050606061388d8d828e0161381a565b975050608061389e8d828e0161381a565b96505060a06138af8d828e0161381a565b95505060c06138c08d828e0161381a565b94505060e06138d18d828e0161381a565b9350506101006138e38d828e0161381a565b9250506101206138f58d828e0161381a565b9150509295989b9194979a5092959850565b5f805f6060848603121561391e5761391d613479565b5b5f61392b868287016134c3565b935050602061393c868287016134c3565b925050604061394d868287016134c3565b9150509250925092565b5f806040838503121561396d5761396c613479565b5b5f61397a858286016134c3565b925050602061398b858286016134c3565b9150509250929050565b5f80604083850312156139ab576139aa613479565b5b5f6139b88582860161362e565b92505060206139c9858286016134ed565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613a1757607f821691505b602082108103613a2a57613a296139d3565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613a678261339e565b9150613a728361339e565b9250828202613a808161339e565b91508282048414831517613a9757613a96613a30565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613ad58261339e565b9150613ae08361339e565b925082613af057613aef613a9e565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e74205f8201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b5f613b55602f836133d9565b9150613b6082613afb565b604082019050919050565b5f6020820190508181035f830152613b8281613b49565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f613bbd601d836133d9565b9150613bc882613b89565b602082019050919050565b5f6020820190508181035f830152613bea81613bb1565b9050919050565b5f613bfb8261339e565b9150613c068361339e565b9250828203905081811115613c1e57613c1d613a30565b5b92915050565b5f81905092915050565b50565b5f613c3c5f83613c24565b9150613c4782613c2e565b5f82019050919050565b5f613c5b82613c31565b9150819050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613cbf6039836133d9565b9150613cca82613c65565b604082019050919050565b5f6020820190508181035f830152613cec81613cb3565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b5f613d4d6024836133d9565b9150613d5882613cf3565b604082019050919050565b5f6020820190508181035f830152613d7a81613d41565b9050919050565b5f613d8b82613680565b9150613d9683613680565b9250828201905060ff811115613daf57613dae613a30565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613e0f6026836133d9565b9150613e1a82613db5565b604082019050919050565b5f6020820190508181035f830152613e3c81613e03565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613e776020836133d9565b9150613e8282613e43565b602082019050919050565b5f6020820190508181035f830152613ea481613e6b565b9050919050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f613edf600b836133d9565b9150613eea82613eab565b602082019050919050565b5f6020820190508181035f830152613f0c81613ed3565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613f476016836133d9565b9150613f5282613f13565b602082019050919050565b5f6020820190508181035f830152613f7481613f3b565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178545f8201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b5f613fd56028836133d9565b9150613fe082613f7b565b604082019050919050565b5f6020820190508181035f83015261400281613fc9565b9050919050565b5f6140138261339e565b915061401e8361339e565b925082820190508082111561403657614035613a30565b5b92915050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6140706013836133d9565b915061407b8261403c565b602082019050919050565b5f6020820190508181035f83015261409d81614064565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e65207075726368617365207065722074776f206260208201527f6c6f636b7320616c6c6f7765642e000000000000000000000000000000000000604082015250565b5f614124604e836133d9565b915061412f826140a4565b606082019050919050565b5f6020820190508181035f83015261415181614118565b9050919050565b7f496e73756666696369656e742042616c616e63650000000000000000000000005f82015250565b5f61418c6014836133d9565b915061419782614158565b602082019050919050565b5f6020820190508181035f8301526141b981614180565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050614228816134ad565b92915050565b5f6020828403121561424357614242613479565b5b5f6142508482850161421a565b91505092915050565b5f819050919050565b5f61427c61427761427284614259565b613790565b61339e565b9050919050565b61428c81614262565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6142c48161349c565b82525050565b5f6142d583836142bb565b60208301905092915050565b5f602082019050919050565b5f6142f782614292565b614301818561429c565b935061430c836142ac565b805f5b8381101561433c57815161432388826142ca565b975061432e836142e1565b92505060018101905061430f565b5085935050505092915050565b5f60a08201905061435c5f8301886133a7565b6143696020830187614283565b818103604083015261437b81866142ed565b905061438a6060830185613768565b61439760808301846133a7565b9695505050505050565b5f6143ab8261369b565b91506143b68361369b565b925082820390506fffffffffffffffffffffffffffffffff8111156143de576143dd613a30565b5b92915050565b5f6040820190506143f75f8301856133a7565b61440460208301846133a7565b939250505056fea264697066735822122079f5263379efc12640f7e80854cd95deb1f3f4ac23e169f5da059f7f7bf25f3e64736f6c63430008140033

Deployed Bytecode Sourcemap

7002:15234:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8913:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11510:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10347:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8157:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8994;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8206:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11314:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13081:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10865:441;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15329:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12306:136;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8647:96;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;12149:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11424:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15783:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8416:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13625:170;;;;;;;;;;;;;:::i;:::-;;15930:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15657:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12001:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8545:95;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;10571:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15202:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7970:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11700:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2828:103;;;;;;;;;;;;;:::i;:::-;;7909:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12450:113;;;;;;;;;;;;;:::i;:::-;;2180:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11603:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12571:306;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7386:126;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10701:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8874:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7566:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8329:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13355:262;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14106:1088;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8369:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15460:189;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13803:131;;;;;;;;;;;;;:::i;:::-;;11846:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13942:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3086:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7519:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8913:56;;;;:::o;11510:85::-;11549:13;11582:5;11575:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11510:85;:::o;10347:216::-;10422:4;10474:6;10439:11;:23;10451:10;10439:23;;;;;;;;;;;;;;;:32;10463:7;10439:32;;;;;;;;;;;;;;;:41;;;;10517:7;10496:37;;10505:10;10496:37;;;10526:6;10496:37;;;;;;:::i;:::-;;;;;;;;10551:4;10544:11;;10347:216;;;;:::o;8157:42::-;;;;;;;;;;;;;;;;;:::o;8994:::-;;;;;;;;;;;;;;;;;;;;;;:::o;8206:46::-;;;;:::o;11314:102::-;11369:7;11396:12;;11389:19;;11314:102;:::o;13081:266::-;2066:13;:11;:13::i;:::-;13217:4:::1;13209;13204:1;13189:12;;:16;;;;:::i;:::-;13188:25;;;;:::i;:::-;13187:34;;;;:::i;:::-;13177:6;:44;;13155:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;13332:6;13322;:17;;;;:::i;:::-;13307:12;:32;;;;13081:266:::0;:::o;10865:441::-;10965:4;11021:17;10986:11;:19;10998:6;10986:19;;;;;;;;;;;;;;;:31;11006:10;10986:31;;;;;;;;;;;;;;;;:52;10982:257;;11098:6;11063:11;:19;11075:6;11063:19;;;;;;;;;;;;;;;:31;11083:10;11063:31;;;;;;;;;;;;;;;;:41;;11055:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;11221:6;11187:11;:19;11199:6;11187:19;;;;;;;;;;;;;;;:31;11207:10;11187:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;11153:11;:19;11165:6;11153:19;;;;;;;;;;;;;;;:31;11173:10;11153:31;;;;;;;;;;;;;;;:74;;;;10982:257;11258:40;11272:6;11280:9;11291:6;11258:13;:40::i;:::-;11251:47;;10865:441;;;;;:::o;15329:123::-;2066:13;:11;:13::i;:::-;15438:6:::1;15414:13;:21;15428:6;15414:21;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;15329:123:::0;;:::o;12306:136::-;12359:7;12419:15;7297:42;12419:9;:15::i;:::-;12401;7224:42;12401:9;:15::i;:::-;12386:12;;:30;;;;:::i;:::-;:48;;;;:::i;:::-;12379:55;;12306:136;:::o;8647:96::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12149:149::-;12219:7;12274:16;;12259:12;;12246:10;:25;;;;:::i;:::-;:44;;;;:::i;:::-;12239:51;;12149:149;;;:::o;11424:78::-;11467:5;11492:2;11485:9;;11424:78;:::o;15783:139::-;15850:4;2066:13;:11;:13::i;:::-;15890:2:::1;15867:20;;:25;;;;;;;;;;;;;;;;;;15910:4;15903:11;;15783:139:::0;;;:::o;8416:32::-;;;;;;;;;;;;;:::o;13625:170::-;2066:13;:11;:13::i;:::-;13685:12:::1;13710:10;13702:24;;13734:21;13702:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13684:76;;;13779:7;13771:16;;;::::0;::::1;;13673:122;13625:170::o:0;15930:135::-;2066:13;:11;:13::i;:::-;16042:15:::1;16019:10;:20;16030:8;16019:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;15930:135:::0;;:::o;15657:91::-;2066:13;:11;:13::i;:::-;15738:2:::1;15722:13;;:18;;;;;;;;;;;;;;;;;;15657:91:::0;:::o;12001:140::-;12066:7;12121:12;;12102:16;;12093:6;:25;;;;:::i;:::-;:40;;;;:::i;:::-;12086:47;;12001:140;;;:::o;8545:95::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10571:122::-;10626:4;10650:35;10658:7;10667:17;10650:7;:35::i;:::-;10643:42;;10571:122;;;:::o;15202:119::-;2066:13;:11;:13::i;:::-;15307:6:::1;15285:11;:19;15297:6;15285:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;15202:119:::0;;:::o;7970:58::-;;;;:::o;11700:138::-;11766:7;11793:37;11813:7;:16;11821:7;11813:16;;;;;;;;;;;;;;;;11793:19;:37::i;:::-;11786:44;;11700:138;;;:::o;2828:103::-;2066:13;:11;:13::i;:::-;2893:30:::1;2920:1;2893:18;:30::i;:::-;2828:103::o:0;7909:54::-;;;;:::o;12450:113::-;2066:13;:11;:13::i;:::-;12521:4:::1;12505:13;;:20;;;;;;;;;;;;;;;;;;12551:4;12536:12;;:19;;;;;;;;;;;;;;;;;;12450:113::o:0;2180:87::-;2226:7;2253:6;;;;;;;;;;;2246:13;;2180:87;:::o;11603:89::-;11644:13;11677:7;11670:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11603:89;:::o;12571:306::-;2066:13;:11;:13::i;:::-;12715:15:::1;12707:23;;:4;:23;;::::0;12685:130:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12828:41;12857:4;12863:5;12828:28;:41::i;:::-;12571:306:::0;;:::o;7386:126::-;7469:42;7386:126;:::o;10701:156::-;10781:4;10805:44;10819:10;10831:9;10842:6;10805:13;:44::i;:::-;10798:51;;10701:156;;;;:::o;8874:32::-;;;;;;;;;;;;;:::o;7566:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;8329:33::-;;;;;;;;;;;;;:::o;13355:262::-;2066:13;:11;:13::i;:::-;13494:4:::1;13486;13481:1;13466:12;;:16;;;;:::i;:::-;13465:25;;;;:::i;:::-;13464:34;;;;:::i;:::-;13454:6;:44;;13432:130;;;;;;;;;;;;:::i;:::-;;;;;;;;;13602:6;13592;:17;;;;:::i;:::-;13573:16;:36;;;;13355:262:::0;:::o;14106:1088::-;2066:13;:11;:13::i;:::-;14462:21:::1;14550:10;14534:13;14523:8;14505:15;14486:16;:34;;;;:::i;:::-;:45;;;;:::i;:::-;:61;;;;:::i;:::-;:74;;;;:::i;:::-;14462:98;;;;14571:22;14664:11;14647:14;14635:9;14616:16;14596:17;:36;;;;:::i;:::-;:48;;;;:::i;:::-;:65;;;;:::i;:::-;:79;;;;:::i;:::-;14571:104;;;;14697:230;;;;;;;;14728:16;14697:230;;;;;;14770:15;14697:230;;;;;;14804:8;14697:230;;;;;;14836:13;14697:230;;;;;;14870:10;14697:230;;;;;;14902:13;14697:230;;;;::::0;14688:6:::1;:239;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14950:236;;;;;;;;14981:17;14950:236;;;;;;15024:16;14950:236;;;;;;15059:9;14950:236;;;;;;15092:14;14950:236;;;;;;15127:11;14950:236;;;;;;15160:14;14950:236;;;;::::0;14940:7:::1;:246;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14451:743;;14106:1088:::0;;;;;;;;;;:::o;8369:40::-;;;;;;;;;;;;;:::o;15460:189::-;2066:13;:11;:13::i;:::-;15575:2:::1;15552:20;;:25;;;;;;;;;;;;;;;;;;15604:3;15588:13;;:19;;;;;;;;;;;;;;;;;;15639:2;15618:18;;:23;;;;;;;;;;;;;;;;;;15460:189:::0;;;:::o;13803:131::-;2066:13;:11;:13::i;:::-;13860:66:::1;13882:4;13889:10;13901:24;13919:4;13901:9;:24::i;:::-;13860:13;:66::i;:::-;;13803:131::o:0;11846:147::-;11930:7;11957:11;:19;11969:6;11957:19;;;;;;;;;;;;;;;:28;11977:7;11957:28;;;;;;;;;;;;;;;;11950:35;;11846:147;;;;:::o;13942:156::-;2066:13;:11;:13::i;:::-;14048:8:::1;14033:12;;:23;;;;;;;;;;;;;;;;;;14083:7;14067:13;:23;;;;13942:156:::0;;:::o;3086:201::-;2066:13;:11;:13::i;:::-;3195:1:::1;3175:22;;:8;:22;;::::0;3167:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3251:28;3270:8;3251:18;:28::i;:::-;3086:201:::0;:::o;7519:40::-;;;:::o;2345:132::-;2420:12;:10;:12::i;:::-;2409:23;;:7;:5;:7::i;:::-;:23;;;2401:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2345:132::o;16073:2741::-;16165:4;16191:10;:21;16202:9;16191:21;;;;;;;;;;;;;;;;;;;;;;;;;16190:22;:45;;;;;16217:10;:18;16228:6;16217:18;;;;;;;;;;;;;;;;;;;;;;;;;16216:19;16190:45;16182:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;16268:6;;;;;;;;;;;16264:87;;;16298:41;16313:6;16321:9;16332:6;16298:14;:41::i;:::-;16291:48;;;;16264:87;16367:13;;;;;;;;;;;16363:1772;;;16402:13;;;;;;;;;;;16397:210;;16480:11;:19;16492:6;16480:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;16503:11;:22;16515:9;16503:22;;;;;;;;;;;;;;;;;;;;;;;;;16480:45;16450:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;16397:210;16651:25;:33;16677:6;16651:33;;;;;;;;;;;;;;;;;;;;;;;;;:62;;;;;16689:13;:24;16703:9;16689:24;;;;;;;;;;;;;;;;;;;;;;;;;16688:25;16651:62;16647:707;;;16766:12;;16756:6;:22;;16748:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;16883:16;;16859:20;16869:9;16859;:20::i;:::-;16850:6;:29;;;;:::i;:::-;:49;;16842:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;16647:707;;;16987:25;:36;17013:9;16987:36;;;;;;;;;;;;;;;;;;;;;;;;;:62;;;;;17028:13;:21;17042:6;17028:21;;;;;;;;;;;;;;;;;;;;;;;;;17027:22;16987:62;16983:371;;;17101:12;;17091:6;:22;;17083:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;16983:371;;;17198:13;:24;17212:9;17198:24;;;;;;;;;;;;;;;;;;;;;;;;;17193:161;;17298:16;;17274:20;17284:9;17274;:20::i;:::-;17265:6;:29;;;;:::i;:::-;:49;;17257:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;17193:161;16983:371;16647:707;17514:20;;;;;;;;;;;17510:614;;;17594:7;:5;:7::i;:::-;17581:20;;:9;:20;;;;:84;;;;;7469:42;17626:39;;:9;:39;;;;17581:84;:137;;;;;17703:15;17690:28;;:9;:28;;;;17581:137;17555:554;;;17870:12;17837:1;17795:28;:39;17824:9;17795:39;;;;;;;;;;;;;;;;:43;;;;:::i;:::-;:87;17761:251;;;;;;;;;;;;:::i;:::-;;;;;;;;;18077:12;18035:28;:39;18064:9;18035:39;;;;;;;;;;;;;;;:54;;;;17555:554;17510:614;16363:1772;18151:17;:15;:17::i;:::-;18147:61;;;18185:11;:9;:11::i;:::-;18147:61;18220:24;18247:26;18266:6;18247:18;:26::i;:::-;18220:53;;18311:16;18292:7;:15;18300:6;18292:15;;;;;;;;;;;;;;;;:35;;18284:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18399:16;18381:7;:15;18389:6;18381:15;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;18363:7;:15;18371:6;18363:15;;;;;;;;;;;;;;;:52;;;;18428:26;18457:33;18472:6;18480:9;18457:14;:33::i;:::-;:170;;18611:16;18457:170;;;18506:89;18538:15;18528:25;;:6;:25;;;:40;;18563:5;18528:40;;;18556:4;18528:40;18570:6;18578:16;18506:21;:89::i;:::-;18457:170;18428:199;;18680:18;18659:7;:18;18667:9;18659:18;;;;;;;;;;;;;;;;:39;;;;:::i;:::-;18638:7;:18;18646:9;18638:18;;;;;;;;;;;;;;;:60;;;;18733:9;18716:68;;18725:6;18716:68;;;18744:39;18764:18;18744:19;:39::i;:::-;18716:68;;;;;;:::i;:::-;;;;;;;;18802:4;18795:11;;;;16073:2741;;;;;;:::o;3447:191::-;3521:16;3540:6;;;;;;;;;;;3521:25;;3566:8;3557:6;;:17;;;;;;;;;;;;;;;;;;3621:8;3590:40;;3611:8;3590:40;;;;;;;;;;;;3510:128;3447:191;:::o;12885:188::-;13002:5;12968:25;:31;12994:4;12968:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;13059:5;13025:40;;13053:4;13025:40;;;;;;;;;;;;12885:188;;:::o;790:98::-;843:7;870:10;863:17;;790:98;:::o;18822:455::-;18915:4;18932:24;18959:26;18978:6;18959:18;:26::i;:::-;18932:53;;19023:16;19004:7;:15;19012:6;19004:15;;;;;;;;;;;;;;;;:35;;18996:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19111:16;19093:7;:15;19101:6;19093:15;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;19075:7;:15;19083:6;19075:15;;;;;;;;;;;;;;;:52;;;;19180:16;19159:7;:18;19167:9;19159:18;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;19138:7;:18;19146:9;19138:18;;;;;;;;;;;;;;;:58;;;;19229:9;19212:35;;19221:6;19212:35;;;19240:6;19212:35;;;;;;:::i;:::-;;;;;;;;19265:4;19258:11;;;18822:455;;;;;:::o;20408:183::-;20458:4;20496:15;20482:29;;:10;:29;;;;:40;;;;;20516:6;;;;;;;;;;;20515:7;20482:40;:56;;;;;20526:12;;;;;;;;;;;20482:56;:101;;;;;20570:13;;20542:24;20560:4;20542:9;:24::i;:::-;:41;;20482:101;20475:108;;20408:183;:::o;20599:1465::-;9156:4;9147:6;;:13;;;;;;;;;;;;;;;;;;20649:20:::1;20672:7;20649:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;20692:23;20718:13;;20692:39;;20742:20;20800:9;:15;;;20765:50;;20783:9;:14;;;20765:32;;:15;:32;;;;:::i;:::-;:50;;;;:::i;:::-;20742:73;;20826:20;20867:12;20849:15;:30;;;;:::i;:::-;20826:53;;20890:49;7469:42;20926:12;20890:7;:49::i;:::-;;20970:1;20955:12;:16;20952:126;;;21018:48;21040:4;7224:42;21053:12;21018:13;:48::i;:::-;;20952:126;21107:21;21145:1;21131:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21107:40;;21176:4;21158;21163:1;21158:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;7469:42;21202:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21192:4;21197:1;21192:7;;;;;;;;:::i;:::-;;;;;;;:34;;;;;;;;;::::0;::::1;7469:42;21239:68;;;21322:12;21336:1;21339:4;21353;21360:15;21239:147;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21399:17;21419:21;21399:41;;21453:20;21517:9;:14;;;21476:55;;21494:9;:20;;;21476:38;;:9;:15;;;:38;;;;:::i;:::-;:55;;;;:::i;:::-;21453:78;;;;21542:26;21605:12;21583:9;:19;;;21571:31;;:9;:31;;;;:::i;:::-;:46;;;;:::i;:::-;21542:75;;21628:19;21677:12;21662:9;:12;;;21650:24;;:9;:24;;;;:::i;:::-;:39;;;;:::i;:::-;21628:61;;21700:24;21759:12;21739:9;:17;;;21727:29;;:9;:29;;;;:::i;:::-;:44;;;;:::i;:::-;21700:71;;21802:15;21830:13;;;;;;;;;;;21822:27;;21857:11;21822:51;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21801:72;;;21908:18;;;;;;;;;;;21900:32;;21940:16;21900:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21884:77;;;;;21996:20;;;;;;;;;;;21988:34;;22030:21;21988:68;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21972:84;;;;;20638:1426;;;;;;;;;;;9192:5:::0;9183:6;;:14;;;;;;;;;;;;;;;;;;20599:1465::o;22072:161::-;22154:4;22179:11;:19;22191:6;22179:19;;;;;;;;;;;;;;;;;;;;;;;;;22178:20;:47;;;;;22203:11;:22;22215:9;22203:22;;;;;;;;;;;;;;;;;;;;;;;;;22202:23;22178:47;22171:54;;22072:161;;;;:::o;19285:1115::-;19389:7;19409:19;19431:6;19409:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19448:20;19471:7;19448:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19491:27;19544:4;19534:14;;:6;:14;;;:99;;19630:3;19612:9;:15;;;19593:34;;:16;:34;;;;:::i;:::-;:40;;;;:::i;:::-;19534:99;;;19587:3;19570:8;:14;;;19551:33;;:16;:33;;;;:::i;:::-;:39;;;;:::i;:::-;19534:99;19491:142;;19666:27;19706:4;19696:14;;:6;:14;;;:164;;19845:9;:15;;;19800:60;;19822:9;:20;;;19800:42;;:19;:42;;;;:::i;:::-;:60;;;;:::i;:::-;19696:164;;;19770:8;:14;;;19726:58;;19748:8;:19;;;19726:41;;:19;:41;;;;:::i;:::-;:58;;;;:::i;:::-;19696:164;19666:194;;19911:19;19892:16;;:38;;;;:::i;:::-;19873:16;:57;;;;19965:29;20019:19;19997;:41;;;;:::i;:::-;19965:73;;20077:1;20053:21;:25;20049:226;;;20145:21;20120:7;:22;20136:4;20120:22;;;;;;;;;;;;;;;;:46;;;;:::i;:::-;20095:7;:22;20111:4;20095:22;;;;;;;;;;;;;;;:71;;;;20213:4;20188:75;;20197:6;20188:75;;;20220:42;20240:21;20220:19;:42::i;:::-;20188:75;;;;;;:::i;:::-;;;;;;;;20049:226;20290:46;20298:19;20319:16;;20290:46;;;;;;;:::i;:::-;;;;;;;;20373:19;20354:16;:38;;;;:::i;:::-;20347:45;;;;;;;19285:1115;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:::-;4192:6;4241:2;4229:9;4220:7;4216:23;4212:32;4209:119;;;4247:79;;:::i;:::-;4209:119;4367:1;4392:53;4437:7;4428:6;4417:9;4413:22;4392:53;:::i;:::-;4382:63;;4338:117;4133:329;;;;:::o;4468:619::-;4545:6;4553;4561;4610:2;4598:9;4589:7;4585:23;4581:32;4578:119;;;4616:79;;:::i;:::-;4578:119;4736:1;4761:53;4806:7;4797:6;4786:9;4782:22;4761:53;:::i;:::-;4751:63;;4707:117;4863:2;4889:53;4934:7;4925:6;4914:9;4910:22;4889:53;:::i;:::-;4879:63;;4834:118;4991:2;5017:53;5062:7;5053:6;5042:9;5038:22;5017:53;:::i;:::-;5007:63;;4962:118;4468:619;;;;;:::o;5093:116::-;5163:21;5178:5;5163:21;:::i;:::-;5156:5;5153:32;5143:60;;5199:1;5196;5189:12;5143:60;5093:116;:::o;5215:133::-;5258:5;5296:6;5283:20;5274:29;;5312:30;5336:5;5312:30;:::i;:::-;5215:133;;;;:::o;5354:468::-;5419:6;5427;5476:2;5464:9;5455:7;5451:23;5447:32;5444:119;;;5482:79;;:::i;:::-;5444:119;5602:1;5627:53;5672:7;5663:6;5652:9;5648:22;5627:53;:::i;:::-;5617:63;;5573:117;5729:2;5755:50;5797:7;5788:6;5777:9;5773:22;5755:50;:::i;:::-;5745:60;;5700:115;5354:468;;;;;:::o;5828:86::-;5863:7;5903:4;5896:5;5892:16;5881:27;;5828:86;;;:::o;5920:112::-;6003:22;6019:5;6003:22;:::i;:::-;5998:3;5991:35;5920:112;;:::o;6038:118::-;6075:7;6115:34;6108:5;6104:46;6093:57;;6038:118;;;:::o;6162:::-;6249:24;6267:5;6249:24;:::i;:::-;6244:3;6237:37;6162:118;;:::o;6286:735::-;6499:4;6537:3;6526:9;6522:19;6514:27;;6551:67;6615:1;6604:9;6600:17;6591:6;6551:67;:::i;:::-;6628:68;6692:2;6681:9;6677:18;6668:6;6628:68;:::i;:::-;6706;6770:2;6759:9;6755:18;6746:6;6706:68;:::i;:::-;6784;6848:2;6837:9;6833:18;6824:6;6784:68;:::i;:::-;6862:69;6926:3;6915:9;6911:19;6902:6;6862:69;:::i;:::-;6941:73;7009:3;6998:9;6994:19;6985:6;6941:73;:::i;:::-;6286:735;;;;;;;;;:::o;7027:214::-;7116:4;7154:2;7143:9;7139:18;7131:26;;7167:67;7231:1;7220:9;7216:17;7207:6;7167:67;:::i;:::-;7027:214;;;;:::o;7247:323::-;7303:6;7352:2;7340:9;7331:7;7327:23;7323:32;7320:119;;;7358:79;;:::i;:::-;7320:119;7478:1;7503:50;7545:7;7536:6;7525:9;7521:22;7503:50;:::i;:::-;7493:60;;7449:114;7247:323;;;;:::o;7576:118::-;7663:24;7681:5;7663:24;:::i;:::-;7658:3;7651:37;7576:118;;:::o;7700:222::-;7793:4;7831:2;7820:9;7816:18;7808:26;;7844:71;7912:1;7901:9;7897:17;7888:6;7844:71;:::i;:::-;7700:222;;;;:::o;7928:60::-;7956:3;7977:5;7970:12;;7928:60;;;:::o;7994:142::-;8044:9;8077:53;8095:34;8104:24;8122:5;8104:24;:::i;:::-;8095:34;:::i;:::-;8077:53;:::i;:::-;8064:66;;7994:142;;;:::o;8142:126::-;8192:9;8225:37;8256:5;8225:37;:::i;:::-;8212:50;;8142:126;;;:::o;8274:152::-;8350:9;8383:37;8414:5;8383:37;:::i;:::-;8370:50;;8274:152;;;:::o;8432:183::-;8545:63;8602:5;8545:63;:::i;:::-;8540:3;8533:76;8432:183;;:::o;8621:274::-;8740:4;8778:2;8767:9;8763:18;8755:26;;8791:97;8885:1;8874:9;8870:17;8861:6;8791:97;:::i;:::-;8621:274;;;;:::o;8901:118::-;8972:22;8988:5;8972:22;:::i;:::-;8965:5;8962:33;8952:61;;9009:1;9006;8999:12;8952:61;8901:118;:::o;9025:135::-;9069:5;9107:6;9094:20;9085:29;;9123:31;9148:5;9123:31;:::i;:::-;9025:135;;;;:::o;9166:1601::-;9286:6;9294;9302;9310;9318;9326;9334;9342;9350;9358;9407:3;9395:9;9386:7;9382:23;9378:33;9375:120;;;9414:79;;:::i;:::-;9375:120;9534:1;9559:51;9602:7;9593:6;9582:9;9578:22;9559:51;:::i;:::-;9549:61;;9505:115;9659:2;9685:51;9728:7;9719:6;9708:9;9704:22;9685:51;:::i;:::-;9675:61;;9630:116;9785:2;9811:51;9854:7;9845:6;9834:9;9830:22;9811:51;:::i;:::-;9801:61;;9756:116;9911:2;9937:51;9980:7;9971:6;9960:9;9956:22;9937:51;:::i;:::-;9927:61;;9882:116;10037:3;10064:51;10107:7;10098:6;10087:9;10083:22;10064:51;:::i;:::-;10054:61;;10008:117;10164:3;10191:51;10234:7;10225:6;10214:9;10210:22;10191:51;:::i;:::-;10181:61;;10135:117;10291:3;10318:51;10361:7;10352:6;10341:9;10337:22;10318:51;:::i;:::-;10308:61;;10262:117;10418:3;10445:51;10488:7;10479:6;10468:9;10464:22;10445:51;:::i;:::-;10435:61;;10389:117;10545:3;10572:51;10615:7;10606:6;10595:9;10591:22;10572:51;:::i;:::-;10562:61;;10516:117;10672:3;10699:51;10742:7;10733:6;10722:9;10718:22;10699:51;:::i;:::-;10689:61;;10643:117;9166:1601;;;;;;;;;;;;;:::o;10773:619::-;10850:6;10858;10866;10915:2;10903:9;10894:7;10890:23;10886:32;10883:119;;;10921:79;;:::i;:::-;10883:119;11041:1;11066:53;11111:7;11102:6;11091:9;11087:22;11066:53;:::i;:::-;11056:63;;11012:117;11168:2;11194:53;11239:7;11230:6;11219:9;11215:22;11194:53;:::i;:::-;11184:63;;11139:118;11296:2;11322:53;11367:7;11358:6;11347:9;11343:22;11322:53;:::i;:::-;11312:63;;11267:118;10773:619;;;;;:::o;11398:474::-;11466:6;11474;11523:2;11511:9;11502:7;11498:23;11494:32;11491:119;;;11529:79;;:::i;:::-;11491:119;11649:1;11674:53;11719:7;11710:6;11699:9;11695:22;11674:53;:::i;:::-;11664:63;;11620:117;11776:2;11802:53;11847:7;11838:6;11827:9;11823:22;11802:53;:::i;:::-;11792:63;;11747:118;11398:474;;;;;:::o;11878:468::-;11943:6;11951;12000:2;11988:9;11979:7;11975:23;11971:32;11968:119;;;12006:79;;:::i;:::-;11968:119;12126:1;12151:50;12193:7;12184:6;12173:9;12169:22;12151:50;:::i;:::-;12141:60;;12097:114;12250:2;12276:53;12321:7;12312:6;12301:9;12297:22;12276:53;:::i;:::-;12266:63;;12221:118;11878:468;;;;;:::o;12352:180::-;12400:77;12397:1;12390:88;12497:4;12494:1;12487:15;12521:4;12518:1;12511:15;12538:320;12582:6;12619:1;12613:4;12609:12;12599:22;;12666:1;12660:4;12656:12;12687:18;12677:81;;12743:4;12735:6;12731:17;12721:27;;12677:81;12805:2;12797:6;12794:14;12774:18;12771:38;12768:84;;12824:18;;:::i;:::-;12768:84;12589:269;12538:320;;;:::o;12864:180::-;12912:77;12909:1;12902:88;13009:4;13006:1;12999:15;13033:4;13030:1;13023:15;13050:410;13090:7;13113:20;13131:1;13113:20;:::i;:::-;13108:25;;13147:20;13165:1;13147:20;:::i;:::-;13142:25;;13202:1;13199;13195:9;13224:30;13242:11;13224:30;:::i;:::-;13213:41;;13403:1;13394:7;13390:15;13387:1;13384:22;13364:1;13357:9;13337:83;13314:139;;13433:18;;:::i;:::-;13314:139;13098:362;13050:410;;;;:::o;13466:180::-;13514:77;13511:1;13504:88;13611:4;13608:1;13601:15;13635:4;13632:1;13625:15;13652:185;13692:1;13709:20;13727:1;13709:20;:::i;:::-;13704:25;;13743:20;13761:1;13743:20;:::i;:::-;13738:25;;13782:1;13772:35;;13787:18;;:::i;:::-;13772:35;13829:1;13826;13822:9;13817:14;;13652:185;;;;:::o;13843:234::-;13983:34;13979:1;13971:6;13967:14;13960:58;14052:17;14047:2;14039:6;14035:15;14028:42;13843:234;:::o;14083:366::-;14225:3;14246:67;14310:2;14305:3;14246:67;:::i;:::-;14239:74;;14322:93;14411:3;14322:93;:::i;:::-;14440:2;14435:3;14431:12;14424:19;;14083:366;;;:::o;14455:419::-;14621:4;14659:2;14648:9;14644:18;14636:26;;14708:9;14702:4;14698:20;14694:1;14683:9;14679:17;14672:47;14736:131;14862:4;14736:131;:::i;:::-;14728:139;;14455:419;;;:::o;14880:179::-;15020:31;15016:1;15008:6;15004:14;14997:55;14880:179;:::o;15065:366::-;15207:3;15228:67;15292:2;15287:3;15228:67;:::i;:::-;15221:74;;15304:93;15393:3;15304:93;:::i;:::-;15422:2;15417:3;15413:12;15406:19;;15065:366;;;:::o;15437:419::-;15603:4;15641:2;15630:9;15626:18;15618:26;;15690:9;15684:4;15680:20;15676:1;15665:9;15661:17;15654:47;15718:131;15844:4;15718:131;:::i;:::-;15710:139;;15437:419;;;:::o;15862:194::-;15902:4;15922:20;15940:1;15922:20;:::i;:::-;15917:25;;15956:20;15974:1;15956:20;:::i;:::-;15951:25;;16000:1;15997;15993:9;15985:17;;16024:1;16018:4;16015:11;16012:37;;;16029:18;;:::i;:::-;16012:37;15862:194;;;;:::o;16062:147::-;16163:11;16200:3;16185:18;;16062:147;;;;:::o;16215:114::-;;:::o;16335:398::-;16494:3;16515:83;16596:1;16591:3;16515:83;:::i;:::-;16508:90;;16607:93;16696:3;16607:93;:::i;:::-;16725:1;16720:3;16716:11;16709:18;;16335:398;;;:::o;16739:379::-;16923:3;16945:147;17088:3;16945:147;:::i;:::-;16938:154;;17109:3;17102:10;;16739:379;;;:::o;17124:244::-;17264:34;17260:1;17252:6;17248:14;17241:58;17333:27;17328:2;17320:6;17316:15;17309:52;17124:244;:::o;17374:366::-;17516:3;17537:67;17601:2;17596:3;17537:67;:::i;:::-;17530:74;;17613:93;17702:3;17613:93;:::i;:::-;17731:2;17726:3;17722:12;17715:19;;17374:366;;;:::o;17746:419::-;17912:4;17950:2;17939:9;17935:18;17927:26;;17999:9;17993:4;17989:20;17985:1;17974:9;17970:17;17963:47;18027:131;18153:4;18027:131;:::i;:::-;18019:139;;17746:419;;;:::o;18171:223::-;18311:34;18307:1;18299:6;18295:14;18288:58;18380:6;18375:2;18367:6;18363:15;18356:31;18171:223;:::o;18400:366::-;18542:3;18563:67;18627:2;18622:3;18563:67;:::i;:::-;18556:74;;18639:93;18728:3;18639:93;:::i;:::-;18757:2;18752:3;18748:12;18741:19;;18400:366;;;:::o;18772:419::-;18938:4;18976:2;18965:9;18961:18;18953:26;;19025:9;19019:4;19015:20;19011:1;19000:9;18996:17;18989:47;19053:131;19179:4;19053:131;:::i;:::-;19045:139;;18772:419;;;:::o;19197:188::-;19235:3;19254:18;19270:1;19254:18;:::i;:::-;19249:23;;19286:18;19302:1;19286:18;:::i;:::-;19281:23;;19327:1;19324;19320:9;19313:16;;19350:4;19345:3;19342:13;19339:39;;;19358:18;;:::i;:::-;19339:39;19197:188;;;;:::o;19391:225::-;19531:34;19527:1;19519:6;19515:14;19508:58;19600:8;19595:2;19587:6;19583:15;19576:33;19391:225;:::o;19622:366::-;19764:3;19785:67;19849:2;19844:3;19785:67;:::i;:::-;19778:74;;19861:93;19950:3;19861:93;:::i;:::-;19979:2;19974:3;19970:12;19963:19;;19622:366;;;:::o;19994:419::-;20160:4;20198:2;20187:9;20183:18;20175:26;;20247:9;20241:4;20237:20;20233:1;20222:9;20218:17;20211:47;20275:131;20401:4;20275:131;:::i;:::-;20267:139;;19994:419;;;:::o;20419:182::-;20559:34;20555:1;20547:6;20543:14;20536:58;20419:182;:::o;20607:366::-;20749:3;20770:67;20834:2;20829:3;20770:67;:::i;:::-;20763:74;;20846:93;20935:3;20846:93;:::i;:::-;20964:2;20959:3;20955:12;20948:19;;20607:366;;;:::o;20979:419::-;21145:4;21183:2;21172:9;21168:18;21160:26;;21232:9;21226:4;21222:20;21218:1;21207:9;21203:17;21196:47;21260:131;21386:4;21260:131;:::i;:::-;21252:139;;20979:419;;;:::o;21404:161::-;21544:13;21540:1;21532:6;21528:14;21521:37;21404:161;:::o;21571:366::-;21713:3;21734:67;21798:2;21793:3;21734:67;:::i;:::-;21727:74;;21810:93;21899:3;21810:93;:::i;:::-;21928:2;21923:3;21919:12;21912:19;;21571:366;;;:::o;21943:419::-;22109:4;22147:2;22136:9;22132:18;22124:26;;22196:9;22190:4;22186:20;22182:1;22171:9;22167:17;22160:47;22224:131;22350:4;22224:131;:::i;:::-;22216:139;;21943:419;;;:::o;22368:172::-;22508:24;22504:1;22496:6;22492:14;22485:48;22368:172;:::o;22546:366::-;22688:3;22709:67;22773:2;22768:3;22709:67;:::i;:::-;22702:74;;22785:93;22874:3;22785:93;:::i;:::-;22903:2;22898:3;22894:12;22887:19;;22546:366;;;:::o;22918:419::-;23084:4;23122:2;23111:9;23107:18;23099:26;;23171:9;23165:4;23161:20;23157:1;23146:9;23142:17;23135:47;23199:131;23325:4;23199:131;:::i;:::-;23191:139;;22918:419;;;:::o;23343:227::-;23483:34;23479:1;23471:6;23467:14;23460:58;23552:10;23547:2;23539:6;23535:15;23528:35;23343:227;:::o;23576:366::-;23718:3;23739:67;23803:2;23798:3;23739:67;:::i;:::-;23732:74;;23815:93;23904:3;23815:93;:::i;:::-;23933:2;23928:3;23924:12;23917:19;;23576:366;;;:::o;23948:419::-;24114:4;24152:2;24141:9;24137:18;24129:26;;24201:9;24195:4;24191:20;24187:1;24176:9;24172:17;24165:47;24229:131;24355:4;24229:131;:::i;:::-;24221:139;;23948:419;;;:::o;24373:191::-;24413:3;24432:20;24450:1;24432:20;:::i;:::-;24427:25;;24466:20;24484:1;24466:20;:::i;:::-;24461:25;;24509:1;24506;24502:9;24495:16;;24530:3;24527:1;24524:10;24521:36;;;24537:18;;:::i;:::-;24521:36;24373:191;;;;:::o;24570:169::-;24710:21;24706:1;24698:6;24694:14;24687:45;24570:169;:::o;24745:366::-;24887:3;24908:67;24972:2;24967:3;24908:67;:::i;:::-;24901:74;;24984:93;25073:3;24984:93;:::i;:::-;25102:2;25097:3;25093:12;25086:19;;24745:366;;;:::o;25117:419::-;25283:4;25321:2;25310:9;25306:18;25298:26;;25370:9;25364:4;25360:20;25356:1;25345:9;25341:17;25334:47;25398:131;25524:4;25398:131;:::i;:::-;25390:139;;25117:419;;;:::o;25542:302::-;25682:34;25678:1;25670:6;25666:14;25659:58;25751:34;25746:2;25738:6;25734:15;25727:59;25820:16;25815:2;25807:6;25803:15;25796:41;25542:302;:::o;25850:366::-;25992:3;26013:67;26077:2;26072:3;26013:67;:::i;:::-;26006:74;;26089:93;26178:3;26089:93;:::i;:::-;26207:2;26202:3;26198:12;26191:19;;25850:366;;;:::o;26222:419::-;26388:4;26426:2;26415:9;26411:18;26403:26;;26475:9;26469:4;26465:20;26461:1;26450:9;26446:17;26439:47;26503:131;26629:4;26503:131;:::i;:::-;26495:139;;26222:419;;;:::o;26647:170::-;26787:22;26783:1;26775:6;26771:14;26764:46;26647:170;:::o;26823:366::-;26965:3;26986:67;27050:2;27045:3;26986:67;:::i;:::-;26979:74;;27062:93;27151:3;27062:93;:::i;:::-;27180:2;27175:3;27171:12;27164:19;;26823:366;;;:::o;27195:419::-;27361:4;27399:2;27388:9;27384:18;27376:26;;27448:9;27442:4;27438:20;27434:1;27423:9;27419:17;27412:47;27476:131;27602:4;27476:131;:::i;:::-;27468:139;;27195:419;;;:::o;27620:180::-;27668:77;27665:1;27658:88;27765:4;27762:1;27755:15;27789:4;27786:1;27779:15;27806:180;27854:77;27851:1;27844:88;27951:4;27948:1;27941:15;27975:4;27972:1;27965:15;27992:143;28049:5;28080:6;28074:13;28065:22;;28096:33;28123:5;28096:33;:::i;:::-;27992:143;;;;:::o;28141:351::-;28211:6;28260:2;28248:9;28239:7;28235:23;28231:32;28228:119;;;28266:79;;:::i;:::-;28228:119;28386:1;28411:64;28467:7;28458:6;28447:9;28443:22;28411:64;:::i;:::-;28401:74;;28357:128;28141:351;;;;:::o;28498:85::-;28543:7;28572:5;28561:16;;28498:85;;;:::o;28589:158::-;28647:9;28680:61;28698:42;28707:32;28733:5;28707:32;:::i;:::-;28698:42;:::i;:::-;28680:61;:::i;:::-;28667:74;;28589:158;;;:::o;28753:147::-;28848:45;28887:5;28848:45;:::i;:::-;28843:3;28836:58;28753:147;;:::o;28906:114::-;28973:6;29007:5;29001:12;28991:22;;28906:114;;;:::o;29026:184::-;29125:11;29159:6;29154:3;29147:19;29199:4;29194:3;29190:14;29175:29;;29026:184;;;;:::o;29216:132::-;29283:4;29306:3;29298:11;;29336:4;29331:3;29327:14;29319:22;;29216:132;;;:::o;29354:108::-;29431:24;29449:5;29431:24;:::i;:::-;29426:3;29419:37;29354:108;;:::o;29468:179::-;29537:10;29558:46;29600:3;29592:6;29558:46;:::i;:::-;29636:4;29631:3;29627:14;29613:28;;29468:179;;;;:::o;29653:113::-;29723:4;29755;29750:3;29746:14;29738:22;;29653:113;;;:::o;29802:732::-;29921:3;29950:54;29998:5;29950:54;:::i;:::-;30020:86;30099:6;30094:3;30020:86;:::i;:::-;30013:93;;30130:56;30180:5;30130:56;:::i;:::-;30209:7;30240:1;30225:284;30250:6;30247:1;30244:13;30225:284;;;30326:6;30320:13;30353:63;30412:3;30397:13;30353:63;:::i;:::-;30346:70;;30439:60;30492:6;30439:60;:::i;:::-;30429:70;;30285:224;30272:1;30269;30265:9;30260:14;;30225:284;;;30229:14;30525:3;30518:10;;29926:608;;;29802:732;;;;:::o;30540:831::-;30803:4;30841:3;30830:9;30826:19;30818:27;;30855:71;30923:1;30912:9;30908:17;30899:6;30855:71;:::i;:::-;30936:80;31012:2;31001:9;30997:18;30988:6;30936:80;:::i;:::-;31063:9;31057:4;31053:20;31048:2;31037:9;31033:18;31026:48;31091:108;31194:4;31185:6;31091:108;:::i;:::-;31083:116;;31209:72;31277:2;31266:9;31262:18;31253:6;31209:72;:::i;:::-;31291:73;31359:3;31348:9;31344:19;31335:6;31291:73;:::i;:::-;30540:831;;;;;;;;:::o;31377:227::-;31417:4;31437:20;31455:1;31437:20;:::i;:::-;31432:25;;31471:20;31489:1;31471:20;:::i;:::-;31466:25;;31515:1;31512;31508:9;31500:17;;31539:34;31533:4;31530:44;31527:70;;;31577:18;;:::i;:::-;31527:70;31377:227;;;;:::o;31610:332::-;31731:4;31769:2;31758:9;31754:18;31746:26;;31782:71;31850:1;31839:9;31835:17;31826:6;31782:71;:::i;:::-;31863:72;31931:2;31920:9;31916:18;31907:6;31863:72;:::i;:::-;31610:332;;;;;:::o

Swarm Source

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