ETH Price: $2,946.72 (+1.00%)
 

Overview

Max Total Supply

1,000,000,000 MISSED

Holders

75,584

Transfers

-
0

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
MISSED

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at basescan.org on 2024-07-16
*/

/**
 *Submitted for verification at basescan.org on 2024-07-16
*/

/**
 *Submitted for verification at basescan.org on 2024-05-03
*/

/**
Website: https://www.missedonbase.com/
Telegram: https://t.me/missedonbase
Twitter: https://x.com/missedonbase 
**/


// File: @openzeppelin/contracts/utils/Context.sol


// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)

pragma solidity ^0.8.20;

/**
 * @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;
    }

    function _contextSuffixLength() internal view virtual returns (uint256) {
        return 0;
    }
}

// File: @openzeppelin/contracts/access/Ownable.sol


// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)

pragma solidity ^0.8.20;


/**
 * @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.
 *
 * The initial owner is set to the address provided by the deployer. 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;

    /**
     * @dev The caller account is not authorized to perform an operation.
     */
    error OwnableUnauthorizedAccount(address account);

    /**
     * @dev The owner is not a valid owner account. (eg. `address(0)`)
     */
    error OwnableInvalidOwner(address owner);

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

    /**
     * @dev Initializes the contract setting the address provided by the deployer as the initial owner.
     */
    constructor(address initialOwner) {
        if (initialOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(initialOwner);
    }

    /**
     * @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 {
        if (owner() != _msgSender()) {
            revert OwnableUnauthorizedAccount(_msgSender());
        }
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling 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 {
        if (newOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _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);
    }
}

// File: @openzeppelin/contracts/security/Pausable.sol


// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)

pragma solidity ^0.8.0;


/**
 * @dev Contract module which allows children to implement an emergency stop
 * mechanism that can be triggered by an authorized account.
 *
 * This module is used through inheritance. It will make available the
 * modifiers `whenNotPaused` and `whenPaused`, which can be applied to
 * the functions of your contract. Note that they will not be pausable by
 * simply including this module, only once the modifiers are put in place.
 */
abstract contract Pausable is Context {
    /**
     * @dev Emitted when the pause is triggered by `account`.
     */
    event Paused(address account);

    /**
     * @dev Emitted when the pause is lifted by `account`.
     */
    event Unpaused(address account);

    bool private _paused;

    /**
     * @dev Initializes the contract in unpaused state.
     */
    constructor() {
        _paused = false;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    modifier whenNotPaused() {
        _requireNotPaused();
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    modifier whenPaused() {
        _requirePaused();
        _;
    }

    /**
     * @dev Returns true if the contract is paused, and false otherwise.
     */
    function paused() public view virtual returns (bool) {
        return _paused;
    }

    /**
     * @dev Throws if the contract is paused.
     */
    function _requireNotPaused() internal view virtual {
        require(!paused(), "Pausable: paused");
    }

    /**
     * @dev Throws if the contract is not paused.
     */
    function _requirePaused() internal view virtual {
        require(paused(), "Pausable: not paused");
    }

    /**
     * @dev Triggers stopped state.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    function _pause() internal virtual whenNotPaused {
        _paused = true;
        emit Paused(_msgSender());
    }

    /**
     * @dev Returns to normal state.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    function _unpause() internal virtual whenPaused {
        _paused = false;
        emit Unpaused(_msgSender());
    }
}

// File: @openzeppelin/contracts/utils/math/SafeMath.sol


// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/SafeMath.sol)

pragma solidity ^0.8.0;

// CAUTION
// This version of SafeMath should only be used with Solidity 0.8 or later,
// because it relies on the compiler's built in overflow checks.

/**
 * @dev Wrappers over Solidity's arithmetic operations.
 *
 * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler
 * now has built in overflow checking.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator.
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

// File: @openzeppelin/contracts/token/ERC20/IERC20.sol


// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.20;

/**
 * @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 value of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

    /**
     * @dev Moves a `value` amount of 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 value) 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 a `value` amount of tokens 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 value) external returns (bool);

    /**
     * @dev Moves a `value` amount of tokens from `from` to `to` using the
     * allowance mechanism. `value` 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 value) external returns (bool);
}

// File: MISSED.sol

//SPDX-License-Identifier: MIT

pragma solidity ^0.8.26;





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

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

    function WETH() external pure returns (address);

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

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

contract MISSED is IERC20, Ownable, Pausable {
    using SafeMath for uint256;
    Router public router = Router(0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24);

    string _name = "Missed On Base";
    string _symbol = "MISSED";

    uint256 _totalSupply = 1000000000000000000;

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

    mapping(address => bool) public isFeeExempt;

    uint256 public liquidityFee = 1;
    uint256 public marketingFee = 1;
    uint256 public devFee = 1;
    uint256 public extraFeeOnSell = 1;

    uint256 public totalFee = 3;
    uint256 public totalFeeIfSelling = 4;

    address public marketingWallet = 0x731f1643C11cEC18eeb4Bfe368167301e2eF1C20;
    address public devWallet = 0x731f1643C11cEC18eeb4Bfe368167301e2eF1C20;

    address public pair;

    uint256 public launchedAt;

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;

    uint256 public swapThreshold = 2100000000000;

    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor() Ownable(msg.sender) {
        pair = Factory(router.factory()).createPair(
            router.WETH(),
            address(this)
        );

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

        isFeeExempt[msg.sender] = true;

        isFeeExempt[address(this)] = true;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

    //========== TOKEN FUNCTIONS ==========\\
    function name() external view returns (string memory) {
        return _name;
    }

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

    function decimals() public pure returns (uint8) {
        return 9;
    }

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

    function getCirculatingSupply() public view returns (uint256) {
        return
            _totalSupply
                .sub(balanceOf(0x000000000000000000000000000000000000dEaD))
                .sub(balanceOf(0x0000000000000000000000000000000000000000));
    }

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

    function allowance(address _holder, address _spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[_holder][_spender];
    }

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

    //========== LAUNCH FUNCTIONS ==========\\
    function launchToken() external onlyOwner {
        require(!launched(), "Token is launched");
        launch();
    }

    function pauseTransfers() external onlyOwner {
        _pause();
    }

    function unpauseTransfers() external onlyOwner {
        _unpause();
    }

    //========== TAX FUNCTIONS ==========\\
    function changeIsFeeExempt(address _holder, bool _exempt) public onlyOwner {
        isFeeExempt[_holder] = _exempt;
    }

    function changeSwapThreshold(uint256 _newLimit) external onlyOwner {
        swapThreshold = _newLimit;
    }

    function changeFees(
        uint256 _lpFee,
        uint256 _devFee,
        uint256 _marketingFee,
        uint256 _sellFee
    ) external onlyOwner {
        liquidityFee = _lpFee;
        devFee = _devFee;
        marketingFee = _marketingFee;
        extraFeeOnSell = _sellFee;

        totalFee = liquidityFee.add(marketingFee).add(devFee);
        totalFeeIfSelling = totalFee.add(extraFeeOnSell);
    }

    function changeFeeReceiver(
        address _newMarketingWallet,
        address _newDevWallet
    ) external onlyOwner {
        marketingWallet = _newMarketingWallet;
        devWallet = _newDevWallet;
    }

    //========== TRANSFER FUNCTIONS ==========\\
    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender]
                .sub(amount, "Insufficient Allowance");
        }
        return _transferFrom(sender, recipient, amount);
    }

    //========== INTERNAL FUNCTIONS ==========\\
    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        require(
            sender == owner() || (launched() && !paused()),
            "Token must be launched and not paused"
        );

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

        if (
            msg.sender != pair &&
            !inSwapAndLiquify &&
            swapAndLiquifyEnabled &&
            _balances[address(this)] >= swapThreshold
        ) {
            swapBack();
        }

        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );

        uint256 finalAmount = isFeeExempt[sender] ||
            isFeeExempt[recipient] ||
            (recipient != pair && sender != pair)
            ? amount
            : takeFee(sender, recipient, amount);

        _balances[recipient] = _balances[recipient].add(finalAmount);

        emit Transfer(sender, recipient, finalAmount);
        return true;
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function takeFee(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (uint256) {
        uint256 feeApplicable = pair == recipient
            ? totalFeeIfSelling
            : totalFee;
        uint256 feeAmount = amount.mul(feeApplicable).div(100);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

    function swapBack() internal lockTheSwap {
        uint256 ttl = _balances[address(this)]; //total tokens built as taxes
        uint256 atl = ttl.mul(liquidityFee).div(totalFee).div(2); //the tokens to keep to make liq

        uint256 ats = ttl.sub(atl); //rest of the tokens left over
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            ats,
            0,
            path,
            address(this),
            block.timestamp
        ); //swap the tokens

        uint256 eth = address(this).balance;

        uint256 teth = totalFee.sub(liquidityFee.div(2));

        uint256 lp = eth.mul(liquidityFee).div(teth).div(2);

        uint256 c = eth.mul(devFee).div(teth);
        uint256 m = eth.sub(lp).sub(c);

        (bool tmpSuccess, ) = payable(devWallet).call{value: c, gas: 30000}(
            ""
        );

        (bool tmpSuccess1, ) = payable(marketingWallet).call{
            value: m,
            gas: 30000
        }("");

        tmpSuccess = false;
        tmpSuccess1 = false;

        if (atl > 0) {
            router.addLiquidityETH{value: lp}(
                address(this),
                atl,
                0,
                0,
                marketingWallet,
                block.timestamp
            );
            emit AutoLiquify(lp, atl);
        }
    }

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
    }

    //========== EVENTS ==========\\
    event AutoLiquify(uint256 amountETH, uint256 amountTOKEN);
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTOKEN","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"address","name":"_holder","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newMarketingWallet","type":"address"},{"internalType":"address","name":"_newDevWallet","type":"address"}],"name":"changeFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lpFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_holder","type":"address"},{"internalType":"bool","name":"_exempt","type":"bool"}],"name":"changeIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newLimit","type":"uint256"}],"name":"changeSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"extraFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseTransfers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseTransfers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052734752ba5dbc23f44d87826276bf6fd6b1c372ad2460015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600e81526020017f4d6973736564204f6e20426173650000000000000000000000000000000000008152506002908161009c9190610966565b506040518060400160405280600681526020017f4d49535345440000000000000000000000000000000000000000000000000000815250600390816100e19190610966565b50670de0b6b3a7640000600455600160085560016009556001600a556001600b556003600c556004600d5573731f1643c11cec18eeb4bfe368167301e2ef1c20600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073731f1643c11cec18eeb4bfe368167301e2ef1c20600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601260016101000a81548160ff0219169083151502179055506501e8f1c108006013553480156101e4575f80fd5b50335f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610256575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161024d9190610a74565b60405180910390fd5b6102658161066b60201b60201c565b505f8060146101000a81548160ff02191690831515021790555060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030d9190610abb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610392573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103b69190610abb565b306040518363ffffffff1660e01b81526004016103d4929190610ae6565b6020604051808303815f875af11580156103f0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104149190610abb565b60105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060045460055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60045460405161065e9190610b1c565b60405180910390a3610b35565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806107a757607f821691505b6020821081036107ba576107b9610763565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261081c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826107e1565b61082686836107e1565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61086a6108656108608461083e565b610847565b61083e565b9050919050565b5f819050919050565b61088383610850565b61089761088f82610871565b8484546107ed565b825550505050565b5f90565b6108ab61089f565b6108b681848461087a565b505050565b5b818110156108d9576108ce5f826108a3565b6001810190506108bc565b5050565b601f82111561091e576108ef816107c0565b6108f8846107d2565b81016020851015610907578190505b61091b610913856107d2565b8301826108bb565b50505b505050565b5f82821c905092915050565b5f61093e5f1984600802610923565b1980831691505092915050565b5f610956838361092f565b9150826002028217905092915050565b61096f8261072c565b67ffffffffffffffff81111561098857610987610736565b5b6109928254610790565b61099d8282856108dd565b5f60209050601f8311600181146109ce575f84156109bc578287015190505b6109c6858261094b565b865550610a2d565b601f1984166109dc866107c0565b5f5b82811015610a03578489015182556001820191506020850194506020810190506109de565b86831015610a205784890151610a1c601f89168261092f565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a5e82610a35565b9050919050565b610a6e81610a54565b82525050565b5f602082019050610a875f830184610a65565b92915050565b5f80fd5b610a9a81610a54565b8114610aa4575f80fd5b50565b5f81519050610ab581610a91565b92915050565b5f60208284031215610ad057610acf610a8d565b5b5f610add84828501610aa7565b91505092915050565b5f604082019050610af95f830185610a65565b610b066020830184610a65565b9392505050565b610b168161083e565b82525050565b5f602082019050610b2f5f830184610b0d565b92915050565b612d6f80610b425f395ff3fe608060405260043610610212575f3560e01c8063715018a611610117578063a28a4d861161009f578063bf56b3711161006e578063bf56b37114610747578063ca987b0e14610771578063dd62ed3e1461079b578063f2fde38b146107d7578063f887ea40146107ff57610219565b8063a28a4d86146106a3578063a3a2e89e146106b9578063a8aa1b31146106e1578063a9059cbb1461070b57610219565b806389f425e7116100e657806389f425e7146105d35780638da5cb5b146105fb5780638ea5220f1461062557806395d89b411461064f57806398118cb41461067957610219565b8063715018a61461055557806375f0a8741461056b578063840b31cb146105955780638936a91f146105bd57610219565b806347af99571161019a578063650c422611610169578063650c4226146104735780636827e7641461049b57806369cf17d4146104c55780636b67c4df146104ef57806370a082311461051957610219565b806347af9957146103cd5780634a74bb02146103e3578063571ac8b01461040d5780635c975abb1461044957610219565b80631df4ccfc116101e15780631df4ccfc146102d757806323b872dd146103015780632b112e491461033d578063313ce567146103675780633f4218e01461039157610219565b80630445b6671461021d57806306fdde0314610247578063095ea7b31461027157806318160ddd146102ad57610219565b3661021957005b5f80fd5b348015610228575f80fd5b50610231610829565b60405161023e91906122b7565b60405180910390f35b348015610252575f80fd5b5061025b61082f565b6040516102689190612340565b60405180910390f35b34801561027c575f80fd5b50610297600480360381019061029291906123e8565b6108bf565b6040516102a49190612440565b60405180910390f35b3480156102b8575f80fd5b506102c16109ac565b6040516102ce91906122b7565b60405180910390f35b3480156102e2575f80fd5b506102eb6109b5565b6040516102f891906122b7565b60405180910390f35b34801561030c575f80fd5b5061032760048036038101906103229190612459565b6109bb565b6040516103349190612440565b60405180910390f35b348015610348575f80fd5b50610351610bae565b60405161035e91906122b7565b60405180910390f35b348015610372575f80fd5b5061037b610bed565b60405161038891906124c4565b60405180910390f35b34801561039c575f80fd5b506103b760048036038101906103b291906124dd565b610bf5565b6040516103c49190612440565b60405180910390f35b3480156103d8575f80fd5b506103e1610c12565b005b3480156103ee575f80fd5b506103f7610c24565b6040516104049190612440565b60405180910390f35b348015610418575f80fd5b50610433600480360381019061042e91906124dd565b610c37565b6040516104409190612440565b60405180910390f35b348015610454575f80fd5b5061045d610c69565b60405161046a9190612440565b60405180910390f35b34801561047e575f80fd5b5061049960048036038101906104949190612508565b610c7e565b005b3480156104a6575f80fd5b506104af610cf6565b6040516104bc91906122b7565b60405180910390f35b3480156104d0575f80fd5b506104d9610cfc565b6040516104e691906122b7565b60405180910390f35b3480156104fa575f80fd5b50610503610d02565b60405161051091906122b7565b60405180910390f35b348015610524575f80fd5b5061053f600480360381019061053a91906124dd565b610d08565b60405161054c91906122b7565b60405180910390f35b348015610560575f80fd5b50610569610d4e565b005b348015610576575f80fd5b5061057f610d61565b60405161058c919061257b565b60405180910390f35b3480156105a0575f80fd5b506105bb60048036038101906105b69190612594565b610d86565b005b3480156105c8575f80fd5b506105d1610e12565b005b3480156105de575f80fd5b506105f960048036038101906105f491906125d2565b610e24565b005b348015610606575f80fd5b5061060f610e36565b60405161061c919061257b565b60405180910390f35b348015610630575f80fd5b50610639610e5d565b604051610646919061257b565b60405180910390f35b34801561065a575f80fd5b50610663610e82565b6040516106709190612340565b60405180910390f35b348015610684575f80fd5b5061068d610f12565b60405161069a91906122b7565b60405180910390f35b3480156106ae575f80fd5b506106b7610f18565b005b3480156106c4575f80fd5b506106df60048036038101906106da9190612627565b610f72565b005b3480156106ec575f80fd5b506106f5610fd2565b604051610702919061257b565b60405180910390f35b348015610716575f80fd5b50610731600480360381019061072c91906123e8565b610ff7565b60405161073e9190612440565b60405180910390f35b348015610752575f80fd5b5061075b61100b565b60405161076891906122b7565b60405180910390f35b34801561077c575f80fd5b50610785611011565b60405161079291906122b7565b60405180910390f35b3480156107a6575f80fd5b506107c160048036038101906107bc9190612594565b611017565b6040516107ce91906122b7565b60405180910390f35b3480156107e2575f80fd5b506107fd60048036038101906107f891906124dd565b611099565b005b34801561080a575f80fd5b5061081361111d565b60405161082091906126c0565b60405180910390f35b60135481565b60606002805461083e90612706565b80601f016020809104026020016040519081016040528092919081815260200182805461086a90612706565b80156108b55780601f1061088c576101008083540402835291602001916108b5565b820191905f5260205f20905b81548152906001019060200180831161089857829003601f168201915b5050505050905090565b5f8160065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161099a91906122b7565b60405180910390a36001905092915050565b5f600454905090565b600c5481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610b9a57610b1d826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546111429092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610ba5848484611196565b90509392505050565b5f610be8610bbb5f610d08565b610bda610bc961dead610d08565b60045461165c90919063ffffffff16565b61165c90919063ffffffff16565b905090565b5f6009905090565b6007602052805f5260405f205f915054906101000a900460ff1681565b610c1a611671565b610c226116f8565b565b601260019054906101000a900460ff1681565b5f610c62827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108bf565b9050919050565b5f8060149054906101000a900460ff16905090565b610c86611671565b8360088190555082600a819055508160098190555080600b81905550610ccd600a54610cbf60095460085461175a90919063ffffffff16565b61175a90919063ffffffff16565b600c81905550610cea600b54600c5461175a90919063ffffffff16565b600d8190555050505050565b600a5481565b600b5481565b60095481565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610d56611671565b610d5f5f61176f565b565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d8e611671565b81600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b610e1a611671565b610e22611830565b565b610e2c611671565b8060138190555050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060038054610e9190612706565b80601f0160208091040260200160405190810160405280929190818152602001828054610ebd90612706565b8015610f085780601f10610edf57610100808354040283529160200191610f08565b820191905f5260205f20905b815481529060010190602001808311610eeb57829003601f168201915b5050505050905090565b60085481565b610f20611671565b610f28611891565b15610f68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5f90612780565b60405180910390fd5b610f7061189d565b565b610f7a611671565b8060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f611003338484611196565b905092915050565b60115481565b600d5481565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6110a1611671565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611111575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401611108919061257b565b60405180910390fd5b61111a8161176f565b50565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f838311158290611189576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111809190612340565b60405180910390fd5b5082840390509392505050565b5f61119f610e36565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806111ed57506111db611891565b80156111ec57506111ea610c69565b155b5b61122c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112239061280e565b60405180910390fd5b60125f9054906101000a900460ff16156112525761124b8484846118a6565b9050611655565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156112bb575060125f9054906101000a900460ff16155b80156112d35750601260019054906101000a900460ff165b801561131e575060135460055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b1561132c5761132b611a70565b5b6113b3826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546111429092919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611490575060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611541575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611540575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b5b6115555761155085858561203a565b611557565b825b90506115a98160055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461175a90919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161164791906122b7565b60405180910390a360019150505b9392505050565b5f81836116699190612859565b905092915050565b6116796121db565b73ffffffffffffffffffffffffffffffffffffffff16611697610e36565b73ffffffffffffffffffffffffffffffffffffffff16146116f6576116ba6121db565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016116ed919061257b565b60405180910390fd5b565b6117006121e2565b60015f60146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586117436121db565b604051611750919061257b565b60405180910390a1565b5f8183611767919061288c565b905092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61183861222c565b5f8060146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61187a6121db565b604051611887919061257b565b60405180910390a1565b5f806011541415905090565b43601181905550565b5f61192e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546111429092919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506119bf8260055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461175a90919063ffffffff16565b60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a5d91906122b7565b60405180910390a3600190509392505050565b600160125f6101000a81548160ff0219169083151502179055505f60055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f611b086002611afa600c54611aec6008548761227590919063ffffffff16565b61228a90919063ffffffff16565b61228a90919063ffffffff16565b90505f611b1e828461165c90919063ffffffff16565b90505f600267ffffffffffffffff811115611b3c57611b3b6128bf565b5b604051908082528060200260200182016040528015611b6a5781602001602082028036833780820191505090505b50905030815f81518110611b8157611b806128ec565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c25573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c49919061292d565b81600181518110611c5d57611c5c6128ec565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611cf9959493929190612a48565b5f604051808303815f87803b158015611d10575f80fd5b505af1158015611d22573d5f803e3d5ffd5b505050505f4790505f611d55611d44600260085461228a90919063ffffffff16565b600c5461165c90919063ffffffff16565b90505f611d926002611d8484611d766008548861227590919063ffffffff16565b61228a90919063ffffffff16565b61228a90919063ffffffff16565b90505f611dbc83611dae600a548761227590919063ffffffff16565b61228a90919063ffffffff16565b90505f611de482611dd6858861165c90919063ffffffff16565b61165c90919063ffffffff16565b90505f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051611e3090612acd565b5f60405180830381858888f193505050503d805f8114611e6b576040519150601f19603f3d011682016040523d82523d5f602084013e611e70565b606091505b505090505f600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051611ebe90612acd565b5f60405180830381858888f193505050503d805f8114611ef9576040519150601f19603f3d011682016040523d82523d5f602084013e611efe565b606091505b505090505f91505f90505f8a11156120145760015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308d5f80600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401611f9696959493929190612ae1565b60606040518083038185885af1158015611fb2573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611fd79190612b54565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858b60405161200b929190612ba4565b60405180910390a15b50505050505050505050505f60125f6101000a81548160ff021916908315150217905550565b5f808373ffffffffffffffffffffffffffffffffffffffff1660105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461209857600c5461209c565b600d545b90505f6120c560646120b7848761227590919063ffffffff16565b61228a90919063ffffffff16565b90506121178160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461175a90919063ffffffff16565b60055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121b591906122b7565b60405180910390a36121d0818561165c90919063ffffffff16565b925050509392505050565b5f33905090565b6121ea610c69565b1561222a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222190612c15565b60405180910390fd5b565b612234610c69565b612273576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226a90612c7d565b60405180910390fd5b565b5f81836122829190612c9b565b905092915050565b5f81836122979190612d09565b905092915050565b5f819050919050565b6122b18161229f565b82525050565b5f6020820190506122ca5f8301846122a8565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612312826122d0565b61231c81856122da565b935061232c8185602086016122ea565b612335816122f8565b840191505092915050565b5f6020820190508181035f8301526123588184612308565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61238d82612364565b9050919050565b61239d81612383565b81146123a7575f80fd5b50565b5f813590506123b881612394565b92915050565b6123c78161229f565b81146123d1575f80fd5b50565b5f813590506123e2816123be565b92915050565b5f80604083850312156123fe576123fd612360565b5b5f61240b858286016123aa565b925050602061241c858286016123d4565b9150509250929050565b5f8115159050919050565b61243a81612426565b82525050565b5f6020820190506124535f830184612431565b92915050565b5f805f606084860312156124705761246f612360565b5b5f61247d868287016123aa565b935050602061248e868287016123aa565b925050604061249f868287016123d4565b9150509250925092565b5f60ff82169050919050565b6124be816124a9565b82525050565b5f6020820190506124d75f8301846124b5565b92915050565b5f602082840312156124f2576124f1612360565b5b5f6124ff848285016123aa565b91505092915050565b5f805f80608085870312156125205761251f612360565b5b5f61252d878288016123d4565b945050602061253e878288016123d4565b935050604061254f878288016123d4565b9250506060612560878288016123d4565b91505092959194509250565b61257581612383565b82525050565b5f60208201905061258e5f83018461256c565b92915050565b5f80604083850312156125aa576125a9612360565b5b5f6125b7858286016123aa565b92505060206125c8858286016123aa565b9150509250929050565b5f602082840312156125e7576125e6612360565b5b5f6125f4848285016123d4565b91505092915050565b61260681612426565b8114612610575f80fd5b50565b5f81359050612621816125fd565b92915050565b5f806040838503121561263d5761263c612360565b5b5f61264a858286016123aa565b925050602061265b85828601612613565b9150509250929050565b5f819050919050565b5f61268861268361267e84612364565b612665565b612364565b9050919050565b5f6126998261266e565b9050919050565b5f6126aa8261268f565b9050919050565b6126ba816126a0565b82525050565b5f6020820190506126d35f8301846126b1565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061271d57607f821691505b6020821081036127305761272f6126d9565b5b50919050565b7f546f6b656e206973206c61756e636865640000000000000000000000000000005f82015250565b5f61276a6011836122da565b915061277582612736565b602082019050919050565b5f6020820190508181035f8301526127978161275e565b9050919050565b7f546f6b656e206d757374206265206c61756e6368656420616e64206e6f7420705f8201527f6175736564000000000000000000000000000000000000000000000000000000602082015250565b5f6127f86025836122da565b91506128038261279e565b604082019050919050565b5f6020820190508181035f830152612825816127ec565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6128638261229f565b915061286e8361229f565b92508282039050818111156128865761288561282c565b5b92915050565b5f6128968261229f565b91506128a18361229f565b92508282019050808211156128b9576128b861282c565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061292781612394565b92915050565b5f6020828403121561294257612941612360565b5b5f61294f84828501612919565b91505092915050565b5f819050919050565b5f61297b61297661297184612958565b612665565b61229f565b9050919050565b61298b81612961565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6129c381612383565b82525050565b5f6129d483836129ba565b60208301905092915050565b5f602082019050919050565b5f6129f682612991565b612a00818561299b565b9350612a0b836129ab565b805f5b83811015612a3b578151612a2288826129c9565b9750612a2d836129e0565b925050600181019050612a0e565b5085935050505092915050565b5f60a082019050612a5b5f8301886122a8565b612a686020830187612982565b8181036040830152612a7a81866129ec565b9050612a89606083018561256c565b612a9660808301846122a8565b9695505050505050565b5f81905092915050565b50565b5f612ab85f83612aa0565b9150612ac382612aaa565b5f82019050919050565b5f612ad782612aad565b9150819050919050565b5f60c082019050612af45f83018961256c565b612b0160208301886122a8565b612b0e6040830187612982565b612b1b6060830186612982565b612b28608083018561256c565b612b3560a08301846122a8565b979650505050505050565b5f81519050612b4e816123be565b92915050565b5f805f60608486031215612b6b57612b6a612360565b5b5f612b7886828701612b40565b9350506020612b8986828701612b40565b9250506040612b9a86828701612b40565b9150509250925092565b5f604082019050612bb75f8301856122a8565b612bc460208301846122a8565b9392505050565b7f5061757361626c653a20706175736564000000000000000000000000000000005f82015250565b5f612bff6010836122da565b9150612c0a82612bcb565b602082019050919050565b5f6020820190508181035f830152612c2c81612bf3565b9050919050565b7f5061757361626c653a206e6f74207061757365640000000000000000000000005f82015250565b5f612c676014836122da565b9150612c7282612c33565b602082019050919050565b5f6020820190508181035f830152612c9481612c5b565b9050919050565b5f612ca58261229f565b9150612cb08361229f565b9250828202612cbe8161229f565b91508282048414831517612cd557612cd461282c565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612d138261229f565b9150612d1e8361229f565b925082612d2e57612d2d612cdc565b5b82820490509291505056fea26469706673582212206d856bbfc26fdc6dc1c5930e2e6481dd13067cd5395f457f6bb716d946603bf664736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610212575f3560e01c8063715018a611610117578063a28a4d861161009f578063bf56b3711161006e578063bf56b37114610747578063ca987b0e14610771578063dd62ed3e1461079b578063f2fde38b146107d7578063f887ea40146107ff57610219565b8063a28a4d86146106a3578063a3a2e89e146106b9578063a8aa1b31146106e1578063a9059cbb1461070b57610219565b806389f425e7116100e657806389f425e7146105d35780638da5cb5b146105fb5780638ea5220f1461062557806395d89b411461064f57806398118cb41461067957610219565b8063715018a61461055557806375f0a8741461056b578063840b31cb146105955780638936a91f146105bd57610219565b806347af99571161019a578063650c422611610169578063650c4226146104735780636827e7641461049b57806369cf17d4146104c55780636b67c4df146104ef57806370a082311461051957610219565b806347af9957146103cd5780634a74bb02146103e3578063571ac8b01461040d5780635c975abb1461044957610219565b80631df4ccfc116101e15780631df4ccfc146102d757806323b872dd146103015780632b112e491461033d578063313ce567146103675780633f4218e01461039157610219565b80630445b6671461021d57806306fdde0314610247578063095ea7b31461027157806318160ddd146102ad57610219565b3661021957005b5f80fd5b348015610228575f80fd5b50610231610829565b60405161023e91906122b7565b60405180910390f35b348015610252575f80fd5b5061025b61082f565b6040516102689190612340565b60405180910390f35b34801561027c575f80fd5b50610297600480360381019061029291906123e8565b6108bf565b6040516102a49190612440565b60405180910390f35b3480156102b8575f80fd5b506102c16109ac565b6040516102ce91906122b7565b60405180910390f35b3480156102e2575f80fd5b506102eb6109b5565b6040516102f891906122b7565b60405180910390f35b34801561030c575f80fd5b5061032760048036038101906103229190612459565b6109bb565b6040516103349190612440565b60405180910390f35b348015610348575f80fd5b50610351610bae565b60405161035e91906122b7565b60405180910390f35b348015610372575f80fd5b5061037b610bed565b60405161038891906124c4565b60405180910390f35b34801561039c575f80fd5b506103b760048036038101906103b291906124dd565b610bf5565b6040516103c49190612440565b60405180910390f35b3480156103d8575f80fd5b506103e1610c12565b005b3480156103ee575f80fd5b506103f7610c24565b6040516104049190612440565b60405180910390f35b348015610418575f80fd5b50610433600480360381019061042e91906124dd565b610c37565b6040516104409190612440565b60405180910390f35b348015610454575f80fd5b5061045d610c69565b60405161046a9190612440565b60405180910390f35b34801561047e575f80fd5b5061049960048036038101906104949190612508565b610c7e565b005b3480156104a6575f80fd5b506104af610cf6565b6040516104bc91906122b7565b60405180910390f35b3480156104d0575f80fd5b506104d9610cfc565b6040516104e691906122b7565b60405180910390f35b3480156104fa575f80fd5b50610503610d02565b60405161051091906122b7565b60405180910390f35b348015610524575f80fd5b5061053f600480360381019061053a91906124dd565b610d08565b60405161054c91906122b7565b60405180910390f35b348015610560575f80fd5b50610569610d4e565b005b348015610576575f80fd5b5061057f610d61565b60405161058c919061257b565b60405180910390f35b3480156105a0575f80fd5b506105bb60048036038101906105b69190612594565b610d86565b005b3480156105c8575f80fd5b506105d1610e12565b005b3480156105de575f80fd5b506105f960048036038101906105f491906125d2565b610e24565b005b348015610606575f80fd5b5061060f610e36565b60405161061c919061257b565b60405180910390f35b348015610630575f80fd5b50610639610e5d565b604051610646919061257b565b60405180910390f35b34801561065a575f80fd5b50610663610e82565b6040516106709190612340565b60405180910390f35b348015610684575f80fd5b5061068d610f12565b60405161069a91906122b7565b60405180910390f35b3480156106ae575f80fd5b506106b7610f18565b005b3480156106c4575f80fd5b506106df60048036038101906106da9190612627565b610f72565b005b3480156106ec575f80fd5b506106f5610fd2565b604051610702919061257b565b60405180910390f35b348015610716575f80fd5b50610731600480360381019061072c91906123e8565b610ff7565b60405161073e9190612440565b60405180910390f35b348015610752575f80fd5b5061075b61100b565b60405161076891906122b7565b60405180910390f35b34801561077c575f80fd5b50610785611011565b60405161079291906122b7565b60405180910390f35b3480156107a6575f80fd5b506107c160048036038101906107bc9190612594565b611017565b6040516107ce91906122b7565b60405180910390f35b3480156107e2575f80fd5b506107fd60048036038101906107f891906124dd565b611099565b005b34801561080a575f80fd5b5061081361111d565b60405161082091906126c0565b60405180910390f35b60135481565b60606002805461083e90612706565b80601f016020809104026020016040519081016040528092919081815260200182805461086a90612706565b80156108b55780601f1061088c576101008083540402835291602001916108b5565b820191905f5260205f20905b81548152906001019060200180831161089857829003601f168201915b5050505050905090565b5f8160065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161099a91906122b7565b60405180910390a36001905092915050565b5f600454905090565b600c5481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610b9a57610b1d826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546111429092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610ba5848484611196565b90509392505050565b5f610be8610bbb5f610d08565b610bda610bc961dead610d08565b60045461165c90919063ffffffff16565b61165c90919063ffffffff16565b905090565b5f6009905090565b6007602052805f5260405f205f915054906101000a900460ff1681565b610c1a611671565b610c226116f8565b565b601260019054906101000a900460ff1681565b5f610c62827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108bf565b9050919050565b5f8060149054906101000a900460ff16905090565b610c86611671565b8360088190555082600a819055508160098190555080600b81905550610ccd600a54610cbf60095460085461175a90919063ffffffff16565b61175a90919063ffffffff16565b600c81905550610cea600b54600c5461175a90919063ffffffff16565b600d8190555050505050565b600a5481565b600b5481565b60095481565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610d56611671565b610d5f5f61176f565b565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d8e611671565b81600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b610e1a611671565b610e22611830565b565b610e2c611671565b8060138190555050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060038054610e9190612706565b80601f0160208091040260200160405190810160405280929190818152602001828054610ebd90612706565b8015610f085780601f10610edf57610100808354040283529160200191610f08565b820191905f5260205f20905b815481529060010190602001808311610eeb57829003601f168201915b5050505050905090565b60085481565b610f20611671565b610f28611891565b15610f68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5f90612780565b60405180910390fd5b610f7061189d565b565b610f7a611671565b8060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f611003338484611196565b905092915050565b60115481565b600d5481565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6110a1611671565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611111575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401611108919061257b565b60405180910390fd5b61111a8161176f565b50565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f838311158290611189576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111809190612340565b60405180910390fd5b5082840390509392505050565b5f61119f610e36565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806111ed57506111db611891565b80156111ec57506111ea610c69565b155b5b61122c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112239061280e565b60405180910390fd5b60125f9054906101000a900460ff16156112525761124b8484846118a6565b9050611655565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156112bb575060125f9054906101000a900460ff16155b80156112d35750601260019054906101000a900460ff165b801561131e575060135460055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b1561132c5761132b611a70565b5b6113b3826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546111429092919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611490575060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611541575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611540575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b5b6115555761155085858561203a565b611557565b825b90506115a98160055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461175a90919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161164791906122b7565b60405180910390a360019150505b9392505050565b5f81836116699190612859565b905092915050565b6116796121db565b73ffffffffffffffffffffffffffffffffffffffff16611697610e36565b73ffffffffffffffffffffffffffffffffffffffff16146116f6576116ba6121db565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016116ed919061257b565b60405180910390fd5b565b6117006121e2565b60015f60146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586117436121db565b604051611750919061257b565b60405180910390a1565b5f8183611767919061288c565b905092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61183861222c565b5f8060146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61187a6121db565b604051611887919061257b565b60405180910390a1565b5f806011541415905090565b43601181905550565b5f61192e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546111429092919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506119bf8260055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461175a90919063ffffffff16565b60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a5d91906122b7565b60405180910390a3600190509392505050565b600160125f6101000a81548160ff0219169083151502179055505f60055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f611b086002611afa600c54611aec6008548761227590919063ffffffff16565b61228a90919063ffffffff16565b61228a90919063ffffffff16565b90505f611b1e828461165c90919063ffffffff16565b90505f600267ffffffffffffffff811115611b3c57611b3b6128bf565b5b604051908082528060200260200182016040528015611b6a5781602001602082028036833780820191505090505b50905030815f81518110611b8157611b806128ec565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c25573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c49919061292d565b81600181518110611c5d57611c5c6128ec565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611cf9959493929190612a48565b5f604051808303815f87803b158015611d10575f80fd5b505af1158015611d22573d5f803e3d5ffd5b505050505f4790505f611d55611d44600260085461228a90919063ffffffff16565b600c5461165c90919063ffffffff16565b90505f611d926002611d8484611d766008548861227590919063ffffffff16565b61228a90919063ffffffff16565b61228a90919063ffffffff16565b90505f611dbc83611dae600a548761227590919063ffffffff16565b61228a90919063ffffffff16565b90505f611de482611dd6858861165c90919063ffffffff16565b61165c90919063ffffffff16565b90505f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051611e3090612acd565b5f60405180830381858888f193505050503d805f8114611e6b576040519150601f19603f3d011682016040523d82523d5f602084013e611e70565b606091505b505090505f600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051611ebe90612acd565b5f60405180830381858888f193505050503d805f8114611ef9576040519150601f19603f3d011682016040523d82523d5f602084013e611efe565b606091505b505090505f91505f90505f8a11156120145760015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308d5f80600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401611f9696959493929190612ae1565b60606040518083038185885af1158015611fb2573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611fd79190612b54565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858b60405161200b929190612ba4565b60405180910390a15b50505050505050505050505f60125f6101000a81548160ff021916908315150217905550565b5f808373ffffffffffffffffffffffffffffffffffffffff1660105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461209857600c5461209c565b600d545b90505f6120c560646120b7848761227590919063ffffffff16565b61228a90919063ffffffff16565b90506121178160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461175a90919063ffffffff16565b60055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121b591906122b7565b60405180910390a36121d0818561165c90919063ffffffff16565b925050509392505050565b5f33905090565b6121ea610c69565b1561222a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222190612c15565b60405180910390fd5b565b612234610c69565b612273576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226a90612c7d565b60405180910390fd5b565b5f81836122829190612c9b565b905092915050565b5f81836122979190612d09565b905092915050565b5f819050919050565b6122b18161229f565b82525050565b5f6020820190506122ca5f8301846122a8565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612312826122d0565b61231c81856122da565b935061232c8185602086016122ea565b612335816122f8565b840191505092915050565b5f6020820190508181035f8301526123588184612308565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61238d82612364565b9050919050565b61239d81612383565b81146123a7575f80fd5b50565b5f813590506123b881612394565b92915050565b6123c78161229f565b81146123d1575f80fd5b50565b5f813590506123e2816123be565b92915050565b5f80604083850312156123fe576123fd612360565b5b5f61240b858286016123aa565b925050602061241c858286016123d4565b9150509250929050565b5f8115159050919050565b61243a81612426565b82525050565b5f6020820190506124535f830184612431565b92915050565b5f805f606084860312156124705761246f612360565b5b5f61247d868287016123aa565b935050602061248e868287016123aa565b925050604061249f868287016123d4565b9150509250925092565b5f60ff82169050919050565b6124be816124a9565b82525050565b5f6020820190506124d75f8301846124b5565b92915050565b5f602082840312156124f2576124f1612360565b5b5f6124ff848285016123aa565b91505092915050565b5f805f80608085870312156125205761251f612360565b5b5f61252d878288016123d4565b945050602061253e878288016123d4565b935050604061254f878288016123d4565b9250506060612560878288016123d4565b91505092959194509250565b61257581612383565b82525050565b5f60208201905061258e5f83018461256c565b92915050565b5f80604083850312156125aa576125a9612360565b5b5f6125b7858286016123aa565b92505060206125c8858286016123aa565b9150509250929050565b5f602082840312156125e7576125e6612360565b5b5f6125f4848285016123d4565b91505092915050565b61260681612426565b8114612610575f80fd5b50565b5f81359050612621816125fd565b92915050565b5f806040838503121561263d5761263c612360565b5b5f61264a858286016123aa565b925050602061265b85828601612613565b9150509250929050565b5f819050919050565b5f61268861268361267e84612364565b612665565b612364565b9050919050565b5f6126998261266e565b9050919050565b5f6126aa8261268f565b9050919050565b6126ba816126a0565b82525050565b5f6020820190506126d35f8301846126b1565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061271d57607f821691505b6020821081036127305761272f6126d9565b5b50919050565b7f546f6b656e206973206c61756e636865640000000000000000000000000000005f82015250565b5f61276a6011836122da565b915061277582612736565b602082019050919050565b5f6020820190508181035f8301526127978161275e565b9050919050565b7f546f6b656e206d757374206265206c61756e6368656420616e64206e6f7420705f8201527f6175736564000000000000000000000000000000000000000000000000000000602082015250565b5f6127f86025836122da565b91506128038261279e565b604082019050919050565b5f6020820190508181035f830152612825816127ec565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6128638261229f565b915061286e8361229f565b92508282039050818111156128865761288561282c565b5b92915050565b5f6128968261229f565b91506128a18361229f565b92508282019050808211156128b9576128b861282c565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061292781612394565b92915050565b5f6020828403121561294257612941612360565b5b5f61294f84828501612919565b91505092915050565b5f819050919050565b5f61297b61297661297184612958565b612665565b61229f565b9050919050565b61298b81612961565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6129c381612383565b82525050565b5f6129d483836129ba565b60208301905092915050565b5f602082019050919050565b5f6129f682612991565b612a00818561299b565b9350612a0b836129ab565b805f5b83811015612a3b578151612a2288826129c9565b9750612a2d836129e0565b925050600181019050612a0e565b5085935050505092915050565b5f60a082019050612a5b5f8301886122a8565b612a686020830187612982565b8181036040830152612a7a81866129ec565b9050612a89606083018561256c565b612a9660808301846122a8565b9695505050505050565b5f81905092915050565b50565b5f612ab85f83612aa0565b9150612ac382612aaa565b5f82019050919050565b5f612ad782612aad565b9150819050919050565b5f60c082019050612af45f83018961256c565b612b0160208301886122a8565b612b0e6040830187612982565b612b1b6060830186612982565b612b28608083018561256c565b612b3560a08301846122a8565b979650505050505050565b5f81519050612b4e816123be565b92915050565b5f805f60608486031215612b6b57612b6a612360565b5b5f612b7886828701612b40565b9350506020612b8986828701612b40565b9250506040612b9a86828701612b40565b9150509250925092565b5f604082019050612bb75f8301856122a8565b612bc460208301846122a8565b9392505050565b7f5061757361626c653a20706175736564000000000000000000000000000000005f82015250565b5f612bff6010836122da565b9150612c0a82612bcb565b602082019050919050565b5f6020820190508181035f830152612c2c81612bf3565b9050919050565b7f5061757361626c653a206e6f74207061757365640000000000000000000000005f82015250565b5f612c676014836122da565b9150612c7282612c33565b602082019050919050565b5f6020820190508181035f830152612c9481612c5b565b9050919050565b5f612ca58261229f565b9150612cb08361229f565b9250828202612cbe8161229f565b91508282048414831517612cd557612cd461282c565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612d138261229f565b9150612d1e8361229f565b925082612d2e57612d2d612cdc565b5b82820490509291505056fea26469706673582212206d856bbfc26fdc6dc1c5930e2e6481dd13067cd5395f457f6bb716d946603bf664736f6c634300081a0033

Deployed Bytecode Sourcemap

17914:8916:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18896:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19600:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20624:254;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19873:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18518:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22553:420;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19981:267;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19790:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18316:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21195:72;;;;;;;;;;;;;:::i;:::-;;18847:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20886:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6141:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21655:423;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18444:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18476:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18406:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20256:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3632:103;;;;;;;;;;;;;:::i;:::-;;18597:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22086:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21275:76;;;;;;;;;;;;;:::i;:::-;;21536:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2957:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18679:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19693:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18368:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21066:121;;;;;;;;;;;;;:::i;:::-;;21404:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18757:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22359:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18785:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18552:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20426:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3890:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17999:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18896:44;;;;:::o;19600:85::-;19639:13;19672:5;19665:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19600:85;:::o;20624:254::-;20728:4;20786:7;20750:11;:23;20762:10;20750:23;;;;;;;;;;;;;;;:33;20774:8;20750:33;;;;;;;;;;;;;;;:43;;;;20830:8;20809:39;;20818:10;20809:39;;;20840:7;20809:39;;;;;;:::i;:::-;;;;;;;;20866:4;20859:11;;20624:254;;;;:::o;19873:100::-;19926:7;19953:12;;19946:19;;19873:100;:::o;18518:27::-;;;;:::o;22553:420::-;22685:4;22741:17;22706:11;:19;22718:6;22706:19;;;;;;;;;;;;;;;:31;22726:10;22706:31;;;;;;;;;;;;;;;;:52;22702:206;;22809:87;22863:6;22809:87;;;;;;;;;;;;;;;;;:11;:19;22821:6;22809:19;;;;;;;;;;;;;;;:31;22829:10;22809:31;;;;;;;;;;;;;;;;:53;;:87;;;;;:::i;:::-;22775:11;:19;22787:6;22775:19;;;;;;;;;;;;;;;:31;22795:10;22775:31;;;;;;;;;;;;;;;:121;;;;22702:206;22925:40;22939:6;22947:9;22958:6;22925:13;:40::i;:::-;22918:47;;22553:420;;;;;:::o;19981:267::-;20034:7;20074:166;20186:53;20196:42;20186:9;:53::i;:::-;20074:89;20109:53;20119:42;20109:9;:53::i;:::-;20074:12;;:34;;:89;;;;:::i;:::-;:111;;:166;;;;:::i;:::-;20054:186;;19981:267;:::o;19790:75::-;19831:5;19856:1;19849:8;;19790:75;:::o;18316:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;21195:72::-;2843:13;:11;:13::i;:::-;21251:8:::1;:6;:8::i;:::-;21195:72::o:0;18847:40::-;;;;;;;;;;;;;:::o;20886:124::-;20942:4;20966:36;20974:8;20984:17;20966:7;:36::i;:::-;20959:43;;20886:124;;;:::o;6141:86::-;6188:4;6212:7;;;;;;;;;;;6205:14;;6141:86;:::o;21655:423::-;2843:13;:11;:13::i;:::-;21837:6:::1;21822:12;:21;;;;21863:7;21854:6;:16;;;;21896:13;21881:12;:28;;;;21937:8;21920:14;:25;;;;21969:42;22004:6;;21969:30;21986:12;;21969;;:16;;:30;;;;:::i;:::-;:34;;:42;;;;:::i;:::-;21958:8;:53;;;;22042:28;22055:14;;22042:8;;:12;;:28;;;;:::i;:::-;22022:17;:48;;;;21655:423:::0;;;;:::o;18444:25::-;;;;:::o;18476:33::-;;;;:::o;18406:31::-;;;;:::o;20256:162::-;20359:7;20391:9;:19;20401:8;20391:19;;;;;;;;;;;;;;;;20384:26;;20256:162;;;:::o;3632:103::-;2843:13;:11;:13::i;:::-;3697:30:::1;3724:1;3697:18;:30::i;:::-;3632:103::o:0;18597:75::-;;;;;;;;;;;;;:::o;22086:215::-;2843:13;:11;:13::i;:::-;22238:19:::1;22220:15;;:37;;;;;;;;;;;;;;;;;;22280:13;22268:9;;:25;;;;;;;;;;;;;;;;;;22086:215:::0;;:::o;21275:76::-;2843:13;:11;:13::i;:::-;21333:10:::1;:8;:10::i;:::-;21275:76::o:0;21536:111::-;2843:13;:11;:13::i;:::-;21630:9:::1;21614:13;:25;;;;21536:111:::0;:::o;2957:87::-;3003:7;3030:6;;;;;;;;;;;3023:13;;2957:87;:::o;18679:69::-;;;;;;;;;;;;;:::o;19693:89::-;19734:13;19767:7;19760:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19693:89;:::o;18368:31::-;;;;:::o;21066:121::-;2843:13;:11;:13::i;:::-;21128:10:::1;:8;:10::i;:::-;21127:11;21119:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;21171:8;:6;:8::i;:::-;21066:121::o:0;21404:124::-;2843:13;:11;:13::i;:::-;21513:7:::1;21490:11;:20;21502:7;21490:20;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;21404:124:::0;;:::o;18757:19::-;;;;;;;;;;;;;:::o;22359:186::-;22464:4;22493:44;22507:10;22519:9;22530:6;22493:13;:44::i;:::-;22486:51;;22359:186;;;;:::o;18785:25::-;;;;:::o;18552:36::-;;;;:::o;20426:190::-;20546:7;20578:11;:20;20590:7;20578:20;;;;;;;;;;;;;;;:30;20599:8;20578:30;;;;;;;;;;;;;;;;20571:37;;20426:190;;;;:::o;3890:220::-;2843:13;:11;:13::i;:::-;3995:1:::1;3975:22;;:8;:22;;::::0;3971:93:::1;;4049:1;4021:31;;;;;;;;;;;:::i;:::-;;;;;;;;3971:93;4074:28;4093:8;4074:18;:28::i;:::-;3890:220:::0;:::o;17999:73::-;;;;;;;;;;;;;:::o;12278:206::-;12364:7;12422:1;12417;:6;;12425:12;12409:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;12464:1;12460;:5;12453:12;;12278:206;;;;;:::o;23031:1115::-;23157:4;23206:7;:5;:7::i;:::-;23196:17;;:6;:17;;;:46;;;;23218:10;:8;:10::i;:::-;:23;;;;;23233:8;:6;:8::i;:::-;23232:9;23218:23;23196:46;23174:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;23324:16;;;;;;;;;;;23320:97;;;23364:41;23379:6;23387:9;23398:6;23364:14;:41::i;:::-;23357:48;;;;23320:97;23461:4;;;;;;;;;;;23447:18;;:10;:18;;;;:52;;;;;23483:16;;;;;;;;;;;23482:17;23447:52;:90;;;;;23516:21;;;;;;;;;;;23447:90;:148;;;;;23582:13;;23554:9;:24;23572:4;23554:24;;;;;;;;;;;;;;;;:41;;23447:148;23429:215;;;23622:10;:8;:10::i;:::-;23429:215;23676:90;23712:6;23676:90;;;;;;;;;;;;;;;;;:9;:17;23686:6;23676:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;23656:9;:17;23666:6;23656:17;;;;;;;;;;;;;;;:110;;;;23779:19;23801:11;:19;23813:6;23801:19;;;;;;;;;;;;;;;;;;;;;;;;;:58;;;;23837:11;:22;23849:9;23837:22;;;;;;;;;;;;;;;;;;;;;;;;;23801:58;:112;;;;23890:4;;;;;;;;;;;23877:17;;:9;:17;;;;:35;;;;;23908:4;;;;;;;;;;;23898:14;;:6;:14;;;;23877:35;23801:112;:184;;23951:34;23959:6;23967:9;23978:6;23951:7;:34::i;:::-;23801:184;;;23929:6;23801:184;23779:206;;24021:37;24046:11;24021:9;:20;24031:9;24021:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;23998:9;:20;24008:9;23998:20;;;;;;;;;;;;;;;:60;;;;24093:9;24076:40;;24085:6;24076:40;;;24104:11;24076:40;;;;;;:::i;:::-;;;;;;;;24134:4;24127:11;;;23031:1115;;;;;;:::o;10380:98::-;10438:7;10469:1;10465;:5;;;;:::i;:::-;10458:12;;10380:98;;;;:::o;3122:166::-;3193:12;:10;:12::i;:::-;3182:23;;:7;:5;:7::i;:::-;:23;;;3178:103;;3256:12;:10;:12::i;:::-;3229:40;;;;;;;;;;;:::i;:::-;;;;;;;;3178:103;3122:166::o;6737:118::-;5746:19;:17;:19::i;:::-;6807:4:::1;6797:7;;:14;;;;;;;;;;;;;;;;;;6827:20;6834:12;:10;:12::i;:::-;6827:20;;;;;;:::i;:::-;;;;;;;;6737:118::o:0;9999:98::-;10057:7;10088:1;10084;:5;;;;:::i;:::-;10077:12;;9999:98;;;;:::o;4270:191::-;4344:16;4363:6;;;;;;;;;;;4344:25;;4389:8;4380:6;;:17;;;;;;;;;;;;;;;;;;4444:8;4413:40;;4434:8;4413:40;;;;;;;;;;;;4333:128;4270:191;:::o;6996:120::-;6005:16;:14;:16::i;:::-;7065:5:::1;7055:7:::0;::::1;:15;;;;;;;;;;;;;;;;;;7086:22;7095:12;:10;:12::i;:::-;7086:22;;;;;;:::i;:::-;;;;;;;;6996:120::o:0;26554:90::-;26597:4;26635:1;26621:10;;:15;;26614:22;;26554:90;:::o;26652:71::-;26703:12;26690:10;:25;;;;26652:71::o;24154:401::-;24281:4;24318:90;24354:6;24318:90;;;;;;;;;;;;;;;;;:9;:17;24328:6;24318:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;24298:9;:17;24308:6;24298:17;;;;;;;;;;;;;;;:110;;;;24442:32;24467:6;24442:9;:20;24452:9;24442:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;24419:9;:20;24429:9;24419:20;;;;;;;;;;;;;;;:55;;;;24507:9;24490:35;;24499:6;24490:35;;;24518:6;24490:35;;;;;;:::i;:::-;;;;;;;;24543:4;24536:11;;24154:401;;;;;:::o;25058:1488::-;19002:4;18983:16;;:23;;;;;;;;;;;;;;;;;;25110:11:::1;25124:9;:24;25142:4;25124:24;;;;;;;;;;;;;;;;25110:38;;25189:11;25203:42;25243:1;25203:35;25229:8;;25203:21;25211:12;;25203:3;:7;;:21;;;;:::i;:::-;:25;;:35;;;;:::i;:::-;:39;;:42;;;;:::i;:::-;25189:56;;25291:11;25305:12;25313:3;25305;:7;;:12;;;;:::i;:::-;25291:26;;25359:21;25397:1;25383:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25359:40;;25428:4;25410;25415:1;25410:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;25454:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25444:4;25449:1;25444:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;25478:6;;;;;;;;;;;:57;;;25550:3;25568:1;25584:4;25611;25631:15;25478:179;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;25688:11;25702:21;25688:35;;25736:12;25751:33;25764:19;25781:1;25764:12;;:16;;:19;;;;:::i;:::-;25751:8;;:12;;:33;;;;:::i;:::-;25736:48;;25797:10;25810:38;25846:1;25810:31;25836:4;25810:21;25818:12;;25810:3;:7;;:21;;;;:::i;:::-;:25;;:31;;;;:::i;:::-;:35;;:38;;;;:::i;:::-;25797:51;;25861:9;25873:25;25893:4;25873:15;25881:6;;25873:3;:7;;:15;;;;:::i;:::-;:19;;:25;;;;:::i;:::-;25861:37;;25909:9;25921:18;25937:1;25921:11;25929:2;25921:3;:7;;:11;;;;:::i;:::-;:15;;:18;;;;:::i;:::-;25909:30;;25953:15;25982:9;;;;;;;;;;;25974:23;;26005:1;26013:5;25974:73;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25952:95;;;26061:16;26091:15;;;;;;;;;;;26083:29;;26134:1;26155:5;26083:92;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26060:115;;;26201:5;26188:18;;26231:5;26217:19;;26259:1;26253:3;:7;26249:290;;;26277:6;;;;;;;;;;;:22;;;26307:2;26337:4;26361:3;26383:1;26403::::0;26423:15:::1;;;;;;;;;;;26457;26277:210;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;26507:20;26519:2;26523:3;26507:20;;;;;;;:::i;:::-;;;;;;;;26249:290;25099:1447;;;;;;;;;;;19048:5:::0;19029:16;;:24;;;;;;;;;;;;;;;;;;25058:1488::o;24563:487::-;24683:7;24703:21;24735:9;24727:17;;:4;;;;;;;;;;;:17;;;:74;;24793:8;;24727:74;;;24760:17;;24727:74;24703:98;;24812:17;24832:34;24862:3;24832:25;24843:13;24832:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;24812:54;;24906:39;24935:9;24906;:24;24924:4;24906:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;24879:9;:24;24897:4;24879:24;;;;;;;;;;;;;;;:66;;;;24986:4;24961:42;;24970:6;24961:42;;;24993:9;24961:42;;;;;;:::i;:::-;;;;;;;;25021:21;25032:9;25021:6;:10;;:21;;;;:::i;:::-;25014:28;;;;24563:487;;;;;:::o;966:98::-;1019:7;1046:10;1039:17;;966:98;:::o;6300:108::-;6371:8;:6;:8::i;:::-;6370:9;6362:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;6300:108::o;6485:::-;6552:8;:6;:8::i;:::-;6544:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;6485:108::o;10737:98::-;10795:7;10826:1;10822;:5;;;;:::i;:::-;10815:12;;10737:98;;;;:::o;11136:::-;11194:7;11225:1;11221;:5;;;;:::i;:::-;11214:12;;11136:98;;;;:::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:139::-;811:6;806:3;801;795:23;852:1;843:6;838:3;834:16;827:27;722:139;;;:::o;867:102::-;908:6;959:2;955:7;950:2;943:5;939:14;935:28;925:38;;867:102;;;:::o;975:377::-;1063:3;1091:39;1124:5;1091:39;:::i;:::-;1146:71;1210:6;1205:3;1146:71;:::i;:::-;1139:78;;1226:65;1284:6;1279:3;1272:4;1265:5;1261:16;1226:65;:::i;:::-;1316:29;1338:6;1316:29;:::i;:::-;1311:3;1307:39;1300:46;;1067:285;975:377;;;;:::o;1358:313::-;1471:4;1509:2;1498:9;1494:18;1486:26;;1558:9;1552:4;1548:20;1544:1;1533:9;1529:17;1522:47;1586:78;1659:4;1650:6;1586:78;:::i;:::-;1578:86;;1358:313;;;;:::o;1758:117::-;1867:1;1864;1857:12;2004:126;2041:7;2081:42;2074:5;2070:54;2059:65;;2004:126;;;:::o;2136:96::-;2173:7;2202:24;2220:5;2202:24;:::i;:::-;2191:35;;2136:96;;;:::o;2238:122::-;2311:24;2329:5;2311:24;:::i;:::-;2304:5;2301:35;2291:63;;2350:1;2347;2340:12;2291:63;2238:122;:::o;2366:139::-;2412:5;2450:6;2437:20;2428:29;;2466:33;2493:5;2466:33;:::i;:::-;2366:139;;;;:::o;2511:122::-;2584:24;2602:5;2584:24;:::i;:::-;2577:5;2574:35;2564:63;;2623:1;2620;2613:12;2564:63;2511:122;:::o;2639:139::-;2685:5;2723:6;2710:20;2701:29;;2739:33;2766:5;2739:33;:::i;:::-;2639:139;;;;:::o;2784:474::-;2852:6;2860;2909:2;2897:9;2888:7;2884:23;2880:32;2877:119;;;2915:79;;:::i;:::-;2877:119;3035:1;3060:53;3105:7;3096:6;3085:9;3081:22;3060:53;:::i;:::-;3050:63;;3006:117;3162:2;3188:53;3233:7;3224:6;3213:9;3209:22;3188:53;:::i;:::-;3178:63;;3133:118;2784:474;;;;;:::o;3264:90::-;3298:7;3341:5;3334:13;3327:21;3316:32;;3264:90;;;:::o;3360:109::-;3441:21;3456:5;3441:21;:::i;:::-;3436:3;3429:34;3360:109;;:::o;3475:210::-;3562:4;3600:2;3589:9;3585:18;3577:26;;3613:65;3675:1;3664:9;3660:17;3651:6;3613:65;:::i;:::-;3475:210;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:765::-;5167:6;5175;5183;5191;5240:3;5228:9;5219:7;5215:23;5211:33;5208:120;;;5247:79;;:::i;:::-;5208:120;5367:1;5392:53;5437:7;5428:6;5417:9;5413:22;5392:53;:::i;:::-;5382:63;;5338:117;5494:2;5520:53;5565:7;5556:6;5545:9;5541:22;5520:53;:::i;:::-;5510:63;;5465:118;5622:2;5648:53;5693:7;5684:6;5673:9;5669:22;5648:53;:::i;:::-;5638:63;;5593:118;5750:2;5776:53;5821:7;5812:6;5801:9;5797:22;5776:53;:::i;:::-;5766:63;;5721:118;5081:765;;;;;;;:::o;5852:118::-;5939:24;5957:5;5939:24;:::i;:::-;5934:3;5927:37;5852:118;;:::o;5976:222::-;6069:4;6107:2;6096:9;6092:18;6084:26;;6120:71;6188:1;6177:9;6173:17;6164:6;6120:71;:::i;:::-;5976:222;;;;:::o;6204:474::-;6272:6;6280;6329:2;6317:9;6308:7;6304:23;6300:32;6297:119;;;6335:79;;:::i;:::-;6297:119;6455:1;6480:53;6525:7;6516:6;6505:9;6501:22;6480:53;:::i;:::-;6470:63;;6426:117;6582:2;6608:53;6653:7;6644:6;6633:9;6629:22;6608:53;:::i;:::-;6598:63;;6553:118;6204:474;;;;;:::o;6684:329::-;6743:6;6792:2;6780:9;6771:7;6767:23;6763:32;6760:119;;;6798:79;;:::i;:::-;6760:119;6918:1;6943:53;6988:7;6979:6;6968:9;6964:22;6943:53;:::i;:::-;6933:63;;6889:117;6684:329;;;;:::o;7019:116::-;7089:21;7104:5;7089:21;:::i;:::-;7082:5;7079:32;7069:60;;7125:1;7122;7115:12;7069:60;7019:116;:::o;7141:133::-;7184:5;7222:6;7209:20;7200:29;;7238:30;7262:5;7238:30;:::i;:::-;7141:133;;;;:::o;7280:468::-;7345:6;7353;7402:2;7390:9;7381:7;7377:23;7373:32;7370:119;;;7408:79;;:::i;:::-;7370:119;7528:1;7553:53;7598:7;7589:6;7578:9;7574:22;7553:53;:::i;:::-;7543:63;;7499:117;7655:2;7681:50;7723:7;7714:6;7703:9;7699:22;7681:50;:::i;:::-;7671:60;;7626:115;7280:468;;;;;:::o;7754:60::-;7782:3;7803:5;7796:12;;7754:60;;;:::o;7820:142::-;7870:9;7903:53;7921:34;7930:24;7948:5;7930:24;:::i;:::-;7921:34;:::i;:::-;7903:53;:::i;:::-;7890:66;;7820:142;;;:::o;7968:126::-;8018:9;8051:37;8082:5;8051:37;:::i;:::-;8038:50;;7968:126;;;:::o;8100:140::-;8164:9;8197:37;8228:5;8197:37;:::i;:::-;8184:50;;8100:140;;;:::o;8246:159::-;8347:51;8392:5;8347:51;:::i;:::-;8342:3;8335:64;8246:159;;:::o;8411:250::-;8518:4;8556:2;8545:9;8541:18;8533:26;;8569:85;8651:1;8640:9;8636:17;8627:6;8569:85;:::i;:::-;8411:250;;;;:::o;8667:180::-;8715:77;8712:1;8705:88;8812:4;8809:1;8802:15;8836:4;8833:1;8826:15;8853:320;8897:6;8934:1;8928:4;8924:12;8914:22;;8981:1;8975:4;8971:12;9002:18;8992:81;;9058:4;9050:6;9046:17;9036:27;;8992:81;9120:2;9112:6;9109:14;9089:18;9086:38;9083:84;;9139:18;;:::i;:::-;9083:84;8904:269;8853:320;;;:::o;9179:167::-;9319:19;9315:1;9307:6;9303:14;9296:43;9179:167;:::o;9352:366::-;9494:3;9515:67;9579:2;9574:3;9515:67;:::i;:::-;9508:74;;9591:93;9680:3;9591:93;:::i;:::-;9709:2;9704:3;9700:12;9693:19;;9352:366;;;:::o;9724:419::-;9890:4;9928:2;9917:9;9913:18;9905:26;;9977:9;9971:4;9967:20;9963:1;9952:9;9948:17;9941:47;10005:131;10131:4;10005:131;:::i;:::-;9997:139;;9724:419;;;:::o;10149:224::-;10289:34;10285:1;10277:6;10273:14;10266:58;10358:7;10353:2;10345:6;10341:15;10334:32;10149:224;:::o;10379:366::-;10521:3;10542:67;10606:2;10601:3;10542:67;:::i;:::-;10535:74;;10618:93;10707:3;10618:93;:::i;:::-;10736:2;10731:3;10727:12;10720:19;;10379:366;;;:::o;10751:419::-;10917:4;10955:2;10944:9;10940:18;10932:26;;11004:9;10998:4;10994:20;10990:1;10979:9;10975:17;10968:47;11032:131;11158:4;11032:131;:::i;:::-;11024:139;;10751:419;;;:::o;11176:180::-;11224:77;11221:1;11214:88;11321:4;11318:1;11311:15;11345:4;11342:1;11335:15;11362:194;11402:4;11422:20;11440:1;11422:20;:::i;:::-;11417:25;;11456:20;11474:1;11456:20;:::i;:::-;11451:25;;11500:1;11497;11493:9;11485:17;;11524:1;11518:4;11515:11;11512:37;;;11529:18;;:::i;:::-;11512:37;11362:194;;;;:::o;11562:191::-;11602:3;11621:20;11639:1;11621:20;:::i;:::-;11616:25;;11655:20;11673:1;11655:20;:::i;:::-;11650:25;;11698:1;11695;11691:9;11684:16;;11719:3;11716:1;11713:10;11710:36;;;11726:18;;:::i;:::-;11710:36;11562:191;;;;:::o;11759:180::-;11807:77;11804:1;11797:88;11904:4;11901:1;11894:15;11928:4;11925:1;11918:15;11945:180;11993:77;11990:1;11983:88;12090:4;12087:1;12080:15;12114:4;12111:1;12104:15;12131:143;12188:5;12219:6;12213:13;12204:22;;12235:33;12262:5;12235:33;:::i;:::-;12131:143;;;;:::o;12280:351::-;12350:6;12399:2;12387:9;12378:7;12374:23;12370:32;12367:119;;;12405:79;;:::i;:::-;12367:119;12525:1;12550:64;12606:7;12597:6;12586:9;12582:22;12550:64;:::i;:::-;12540:74;;12496:128;12280:351;;;;:::o;12637:85::-;12682:7;12711:5;12700:16;;12637:85;;;:::o;12728:158::-;12786:9;12819:61;12837:42;12846:32;12872:5;12846:32;:::i;:::-;12837:42;:::i;:::-;12819:61;:::i;:::-;12806:74;;12728:158;;;:::o;12892:147::-;12987:45;13026:5;12987:45;:::i;:::-;12982:3;12975:58;12892:147;;:::o;13045:114::-;13112:6;13146:5;13140:12;13130:22;;13045:114;;;:::o;13165:184::-;13264:11;13298:6;13293:3;13286:19;13338:4;13333:3;13329:14;13314:29;;13165:184;;;;:::o;13355:132::-;13422:4;13445:3;13437:11;;13475:4;13470:3;13466:14;13458:22;;13355:132;;;:::o;13493:108::-;13570:24;13588:5;13570:24;:::i;:::-;13565:3;13558:37;13493:108;;:::o;13607:179::-;13676:10;13697:46;13739:3;13731:6;13697:46;:::i;:::-;13775:4;13770:3;13766:14;13752:28;;13607:179;;;;:::o;13792:113::-;13862:4;13894;13889:3;13885:14;13877:22;;13792:113;;;:::o;13941:732::-;14060:3;14089:54;14137:5;14089:54;:::i;:::-;14159:86;14238:6;14233:3;14159:86;:::i;:::-;14152:93;;14269:56;14319:5;14269:56;:::i;:::-;14348:7;14379:1;14364:284;14389:6;14386:1;14383:13;14364:284;;;14465:6;14459:13;14492:63;14551:3;14536:13;14492:63;:::i;:::-;14485:70;;14578:60;14631:6;14578:60;:::i;:::-;14568:70;;14424:224;14411:1;14408;14404:9;14399:14;;14364:284;;;14368:14;14664:3;14657:10;;14065:608;;;13941:732;;;;:::o;14679:831::-;14942:4;14980:3;14969:9;14965:19;14957:27;;14994:71;15062:1;15051:9;15047:17;15038:6;14994:71;:::i;:::-;15075:80;15151:2;15140:9;15136:18;15127:6;15075:80;:::i;:::-;15202:9;15196:4;15192:20;15187:2;15176:9;15172:18;15165:48;15230:108;15333:4;15324:6;15230:108;:::i;:::-;15222:116;;15348:72;15416:2;15405:9;15401:18;15392:6;15348:72;:::i;:::-;15430:73;15498:3;15487:9;15483:19;15474:6;15430:73;:::i;:::-;14679:831;;;;;;;;:::o;15516:147::-;15617:11;15654:3;15639:18;;15516:147;;;;:::o;15669:114::-;;:::o;15789:398::-;15948:3;15969:83;16050:1;16045:3;15969:83;:::i;:::-;15962:90;;16061:93;16150:3;16061:93;:::i;:::-;16179:1;16174:3;16170:11;16163:18;;15789:398;;;:::o;16193:379::-;16377:3;16399:147;16542:3;16399:147;:::i;:::-;16392:154;;16563:3;16556:10;;16193:379;;;:::o;16578:807::-;16827:4;16865:3;16854:9;16850:19;16842:27;;16879:71;16947:1;16936:9;16932:17;16923:6;16879:71;:::i;:::-;16960:72;17028:2;17017:9;17013:18;17004:6;16960:72;:::i;:::-;17042:80;17118:2;17107:9;17103:18;17094:6;17042:80;:::i;:::-;17132;17208:2;17197:9;17193:18;17184:6;17132:80;:::i;:::-;17222:73;17290:3;17279:9;17275:19;17266:6;17222:73;:::i;:::-;17305;17373:3;17362:9;17358:19;17349:6;17305:73;:::i;:::-;16578:807;;;;;;;;;:::o;17391:143::-;17448:5;17479:6;17473:13;17464:22;;17495:33;17522:5;17495:33;:::i;:::-;17391:143;;;;:::o;17540:663::-;17628:6;17636;17644;17693:2;17681:9;17672:7;17668:23;17664:32;17661:119;;;17699:79;;:::i;:::-;17661:119;17819:1;17844:64;17900:7;17891:6;17880:9;17876:22;17844:64;:::i;:::-;17834:74;;17790:128;17957:2;17983:64;18039:7;18030:6;18019:9;18015:22;17983:64;:::i;:::-;17973:74;;17928:129;18096:2;18122:64;18178:7;18169:6;18158:9;18154:22;18122:64;:::i;:::-;18112:74;;18067:129;17540:663;;;;;:::o;18209:332::-;18330:4;18368:2;18357:9;18353:18;18345:26;;18381:71;18449:1;18438:9;18434:17;18425:6;18381:71;:::i;:::-;18462:72;18530:2;18519:9;18515:18;18506:6;18462:72;:::i;:::-;18209:332;;;;;:::o;18547:166::-;18687:18;18683:1;18675:6;18671:14;18664:42;18547:166;:::o;18719:366::-;18861:3;18882:67;18946:2;18941:3;18882:67;:::i;:::-;18875:74;;18958:93;19047:3;18958:93;:::i;:::-;19076:2;19071:3;19067:12;19060:19;;18719:366;;;:::o;19091:419::-;19257:4;19295:2;19284:9;19280:18;19272:26;;19344:9;19338:4;19334:20;19330:1;19319:9;19315:17;19308:47;19372:131;19498:4;19372:131;:::i;:::-;19364:139;;19091:419;;;:::o;19516:170::-;19656:22;19652:1;19644:6;19640:14;19633:46;19516:170;:::o;19692:366::-;19834:3;19855:67;19919:2;19914:3;19855:67;:::i;:::-;19848:74;;19931:93;20020:3;19931:93;:::i;:::-;20049:2;20044:3;20040:12;20033:19;;19692:366;;;:::o;20064:419::-;20230:4;20268:2;20257:9;20253:18;20245:26;;20317:9;20311:4;20307:20;20303:1;20292:9;20288:17;20281:47;20345:131;20471:4;20345:131;:::i;:::-;20337:139;;20064:419;;;:::o;20489:410::-;20529:7;20552:20;20570:1;20552:20;:::i;:::-;20547:25;;20586:20;20604:1;20586:20;:::i;:::-;20581:25;;20641:1;20638;20634:9;20663:30;20681:11;20663:30;:::i;:::-;20652:41;;20842:1;20833:7;20829:15;20826:1;20823:22;20803:1;20796:9;20776:83;20753:139;;20872:18;;:::i;:::-;20753:139;20537:362;20489:410;;;;:::o;20905:180::-;20953:77;20950:1;20943:88;21050:4;21047:1;21040:15;21074:4;21071:1;21064:15;21091:185;21131:1;21148:20;21166:1;21148:20;:::i;:::-;21143:25;;21182:20;21200:1;21182:20;:::i;:::-;21177:25;;21221:1;21211:35;;21226:18;;:::i;:::-;21211:35;21268:1;21265;21261:9;21256:14;;21091:185;;;;:::o

Swarm Source

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