ETH Price: $3,616.02 (+4.78%)
 

Overview

Max Total Supply

10,000 A

Holders

60

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
3.854520740278906124 A

Value
$0.00
0xb8ca097e2897b983feff104da21f3dd31e9998c8
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Autism

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-09-07
*/

// Sources flattened with hardhat v2.7.0 https://hardhat.org

// File @openzeppelin/contracts/utils/[email protected]

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

pragma solidity ^0.8.0;

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

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


// File @openzeppelin/contracts/access/[email protected]


// OpenZeppelin Contracts v4.4.0 (access/Ownable.sol)

pragma solidity ^0.8.0;

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

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

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

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

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

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

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

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


// File @openzeppelin/contracts/token/ERC20/[email protected]


// OpenZeppelin Contracts v4.4.0 (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

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

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

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

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

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

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

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

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


// File @openzeppelin/contracts/token/ERC20/extensions/[email protected]


// OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

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

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


// File @openzeppelin/contracts/token/ERC20/[email protected]


// OpenZeppelin Contracts v4.4.0 (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;



/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

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

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

        return true;
    }

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

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

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

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

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


// File contracts/PepeToken.sol



pragma solidity ^0.8.0;


contract Autism is Ownable, ERC20 {
    bool public limited = true;
    uint256 private _totalSupply = 10000 * 1e18;
    uint256 public maxHoldingAmount;
    uint256 public minHoldingAmount;
    address public uniswapV2Pair;
    string public attributeSaver;

    constructor() ERC20("Autism", unicode"A") {
        _mint(msg.sender, _totalSupply);
    }

    function setRule(bool _limited, address _uniswapV2Pair, uint256 _maxHoldingAmount, uint256 _minHoldingAmount) external onlyOwner {
        limited = _limited;
        uniswapV2Pair = _uniswapV2Pair;
        maxHoldingAmount = _maxHoldingAmount;
        minHoldingAmount = _minHoldingAmount;
    }

    function disableLiumits(bool _limited) external onlyOwner {
        limited = _limited;
    }

  

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) override internal virtual {
        if (uniswapV2Pair == address(0)) {
            require(from == owner() || to == owner(), "Trading has not started");
            return;
        }

        if (limited && from == uniswapV2Pair) {
          
           
            require(
                balanceOf(to) + amount <= maxHoldingAmount &&
                balanceOf(to) + amount >= minHoldingAmount,
                "Forbid"
            );
        }
    }


    function burn(uint256 value) external {
        _burn(msg.sender, value);
    }

    

    function enable_Accessoires(string memory data) external onlyOwner() {
        attributeSaver = string(abi.encodePacked(attributeSaver, data));
    }

    function enable_Body(string memory data) external onlyOwner() {
        attributeSaver = string(abi.encodePacked(attributeSaver, data));
    }

    function enable_Color_Base_Step(string memory data) external onlyOwner() {
        attributeSaver = string(abi.encodePacked(attributeSaver, data));
    }

    function enable_Eyes(string memory data) external onlyOwner() {
        attributeSaver = string(abi.encodePacked(attributeSaver, data));
    }
    

    function enable_Eyes_Base(string memory data) external onlyOwner() {
        attributeSaver = string(abi.encodePacked(attributeSaver, data));
    }

    function enable_Facial_Hair(string memory data) external onlyOwner() {
        attributeSaver = string(abi.encodePacked(attributeSaver, data));
    }

    function enable_Hair(string memory data) external onlyOwner() {
        attributeSaver = string(abi.encodePacked(attributeSaver, data));
    }

    function enable_Hat(string memory data) external onlyOwner() {
        attributeSaver = string(abi.encodePacked(attributeSaver, data));
    }

    function enable_Max_Base(string memory data) external onlyOwner() {
       attributeSaver = string(abi.encodePacked(attributeSaver, data));
    }

    function enable_Mouth(string memory data) external onlyOwner() {
        attributeSaver = string(abi.encodePacked(attributeSaver, data));
    }

    function enable_Nose(string memory data) external onlyOwner() {
        attributeSaver = string(abi.encodePacked(attributeSaver, data));
    }

    function enable_Shirt_1(string memory data) external onlyOwner() {
        attributeSaver = string(abi.encodePacked(attributeSaver, data));
    }

    function enable_Shirt_2(string memory data) external onlyOwner() {
       attributeSaver = string(abi.encodePacked(attributeSaver, data));
    }

    function enable_Shirt_3(string memory data) external onlyOwner() {
        attributeSaver = string(abi.encodePacked(attributeSaver, data));
    }

   
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"attributeSaver","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_limited","type":"bool"}],"name":"disableLiumits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"enable_Accessoires","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"enable_Body","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"enable_Color_Base_Step","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"enable_Eyes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"enable_Eyes_Base","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"enable_Facial_Hair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"enable_Hair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"enable_Hat","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"enable_Max_Base","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"enable_Mouth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"enable_Nose","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"enable_Shirt_1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"enable_Shirt_2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"enable_Shirt_3","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limited","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minHoldingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_limited","type":"bool"},{"internalType":"address","name":"_uniswapV2Pair","type":"address"},{"internalType":"uint256","name":"_maxHoldingAmount","type":"uint256"},{"internalType":"uint256","name":"_minHoldingAmount","type":"uint256"}],"name":"setRule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

6080604052600160065f6101000a81548160ff02191690831515021790555069021e19e0c9bab2400000600755348015610037575f80fd5b506040518060400160405280600681526020017f41757469736d00000000000000000000000000000000000000000000000000008152506040518060400160405280600181526020017f41000000000000000000000000000000000000000000000000000000000000008152506100c06100b56100f960201b60201c565b61010060201b60201c565b81600490816100cf91906107e0565b5080600590816100df91906107e0565b5050506100f4336007546101c160201b60201c565b610a7f565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361022f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022690610909565b60405180910390fd5b6102405f838361032560201b60201c565b8060035f8282546102519190610954565b925050819055508060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546102a49190610954565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516103089190610996565b60405180910390a36103215f838361053460201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361043c5761038761053960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806103f857506103c961053960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b610437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042e906109f9565b60405180910390fd5b61052f565b60065f9054906101000a900460ff1680156104a35750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561052e57600854816104bb8461056060201b60201c565b6104c59190610954565b111580156104ee5750600954816104e18461056060201b60201c565b6104eb9190610954565b10155b61052d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052490610a61565b60405180910390fd5b5b5b505050565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061062157607f821691505b602082108103610634576106336105dd565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026106967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261065b565b6106a0868361065b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6106e46106df6106da846106b8565b6106c1565b6106b8565b9050919050565b5f819050919050565b6106fd836106ca565b610711610709826106eb565b848454610667565b825550505050565b5f90565b610725610719565b6107308184846106f4565b505050565b5b81811015610753576107485f8261071d565b600181019050610736565b5050565b601f821115610798576107698161063a565b6107728461064c565b81016020851015610781578190505b61079561078d8561064c565b830182610735565b50505b505050565b5f82821c905092915050565b5f6107b85f198460080261079d565b1980831691505092915050565b5f6107d083836107a9565b9150826002028217905092915050565b6107e9826105a6565b67ffffffffffffffff811115610802576108016105b0565b5b61080c825461060a565b610817828285610757565b5f60209050601f831160018114610848575f8415610836578287015190505b61084085826107c5565b8655506108a7565b601f1984166108568661063a565b5f5b8281101561087d57848901518255600182019150602085019450602081019050610858565b8683101561089a5784890151610896601f8916826107a9565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f6108f3601f836108af565b91506108fe826108bf565b602082019050919050565b5f6020820190508181035f830152610920816108e7565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61095e826106b8565b9150610969836106b8565b925082820190508082111561098157610980610927565b5b92915050565b610990816106b8565b82525050565b5f6020820190506109a95f830184610987565b92915050565b7f54726164696e6720686173206e6f7420737461727465640000000000000000005f82015250565b5f6109e36017836108af565b91506109ee826109af565b602082019050919050565b5f6020820190508181035f830152610a10816109d7565b9050919050565b7f466f7262696400000000000000000000000000000000000000000000000000005f82015250565b5f610a4b6006836108af565b9150610a5682610a17565b602082019050919050565b5f6020820190508181035f830152610a7881610a3f565b9050919050565b61323080610a8c5f395ff3fe608060405234801561000f575f80fd5b506004361061021a575f3560e01c8063715018a611610123578063a9059cbb116100ab578063f2fde38b1161007a578063f2fde38b14610610578063f45593aa1461062c578063f4d79e1214610648578063f50164fe14610664578063f6a48792146106805761021a565b8063a9059cbb14610576578063aae6b6cc146105a6578063cbfe6433146105c4578063dd62ed3e146105e05761021a565b8063904b9116116100f2578063904b9116146104d457806395d89b41146104f05780639e61d3ec1461050e578063a457c2d71461052a578063a6e6777e1461055a5761021a565b8063715018a614610470578063860a32ec1461047a57806389f9a1d3146104985780638da5cb5b146104b65761021a565b80633aa633aa116101a657806349bd5a5e1161017557806349bd5a5e146103ce5780634d49af5f146103ec5780634d957a181461040857806353290b2e1461042457806370a08231146104405761021a565b80633aa633aa1461035e5780633fcd75681461037a57806342966c681461039657806342cfcd13146103b25761021a565b80631ab99e12116101ed5780631ab99e12146102a65780631eef77d3146102c457806323b872dd146102e0578063313ce56714610310578063395093511461032e5761021a565b8063016407a11461021e57806306fdde031461023a578063095ea7b31461025857806318160ddd14610288575b5f80fd5b61023860048036038101906102339190612317565b61069c565b005b61024261074d565b60405161024f91906123be565b60405180910390f35b610272600480360381019061026d919061246b565b6107dd565b60405161027f91906124c3565b60405180910390f35b6102906107fa565b60405161029d91906124eb565b60405180910390f35b6102ae610803565b6040516102bb91906124eb565b60405180910390f35b6102de60048036038101906102d99190612317565b610809565b005b6102fa60048036038101906102f59190612504565b6108ba565b60405161030791906124c3565b60405180910390f35b6103186109ac565b604051610325919061256f565b60405180910390f35b6103486004803603810190610343919061246b565b6109b4565b60405161035591906124c3565b60405180910390f35b610378600480360381019061037391906125b2565b610a5b565b005b610394600480360381019061038f9190612317565b610b44565b005b6103b060048036038101906103ab9190612616565b610bf5565b005b6103cc60048036038101906103c79190612317565b610c02565b005b6103d6610cb3565b6040516103e39190612650565b60405180910390f35b61040660048036038101906104019190612317565b610cd8565b005b610422600480360381019061041d9190612317565b610d89565b005b61043e60048036038101906104399190612317565b610e3a565b005b61045a60048036038101906104559190612669565b610eeb565b60405161046791906124eb565b60405180910390f35b610478610f31565b005b610482610fb8565b60405161048f91906124c3565b60405180910390f35b6104a0610fca565b6040516104ad91906124eb565b60405180910390f35b6104be610fd0565b6040516104cb9190612650565b60405180910390f35b6104ee60048036038101906104e99190612317565b610ff7565b005b6104f86110a8565b60405161050591906123be565b60405180910390f35b61052860048036038101906105239190612317565b611138565b005b610544600480360381019061053f919061246b565b6111e9565b60405161055191906124c3565b60405180910390f35b610574600480360381019061056f9190612317565b6112cf565b005b610590600480360381019061058b919061246b565b611380565b60405161059d91906124c3565b60405180910390f35b6105ae61139d565b6040516105bb91906123be565b60405180910390f35b6105de60048036038101906105d99190612694565b611429565b005b6105fa60048036038101906105f591906126bf565b6114c1565b60405161060791906124eb565b60405180910390f35b61062a60048036038101906106259190612669565b611543565b005b61064660048036038101906106419190612317565b611639565b005b610662600480360381019061065d9190612317565b6116ea565b005b61067e60048036038101906106799190612317565b61179b565b005b61069a60048036038101906106959190612317565b61184c565b005b6106a46118fd565b73ffffffffffffffffffffffffffffffffffffffff166106c2610fd0565b73ffffffffffffffffffffffffffffffffffffffff1614610718576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070f90612747565b60405180910390fd5b600b8160405160200161072c92919061288e565b604051602081830303815290604052600b90816107499190612a3c565b5050565b60606004805461075c90612792565b80601f016020809104026020016040519081016040528092919081815260200182805461078890612792565b80156107d35780601f106107aa576101008083540402835291602001916107d3565b820191905f5260205f20905b8154815290600101906020018083116107b657829003601f168201915b5050505050905090565b5f6107f06107e96118fd565b8484611904565b6001905092915050565b5f600354905090565b60095481565b6108116118fd565b73ffffffffffffffffffffffffffffffffffffffff1661082f610fd0565b73ffffffffffffffffffffffffffffffffffffffff1614610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c90612747565b60405180910390fd5b600b8160405160200161089992919061288e565b604051602081830303815290604052600b90816108b69190612a3c565b5050565b5f6108c6848484611ac7565b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61090d6118fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561098c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098390612b7b565b60405180910390fd5b6109a0856109986118fd565b858403611904565b60019150509392505050565b5f6012905090565b5f610a516109c06118fd565b848460025f6109cd6118fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a4c9190612bc6565b611904565b6001905092915050565b610a636118fd565b73ffffffffffffffffffffffffffffffffffffffff16610a81610fd0565b73ffffffffffffffffffffffffffffffffffffffff1614610ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ace90612747565b60405180910390fd5b8360065f6101000a81548160ff02191690831515021790555082600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816008819055508060098190555050505050565b610b4c6118fd565b73ffffffffffffffffffffffffffffffffffffffff16610b6a610fd0565b73ffffffffffffffffffffffffffffffffffffffff1614610bc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb790612747565b60405180910390fd5b600b81604051602001610bd492919061288e565b604051602081830303815290604052600b9081610bf19190612a3c565b5050565b610bff3382611d3f565b50565b610c0a6118fd565b73ffffffffffffffffffffffffffffffffffffffff16610c28610fd0565b73ffffffffffffffffffffffffffffffffffffffff1614610c7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7590612747565b60405180910390fd5b600b81604051602001610c9292919061288e565b604051602081830303815290604052600b9081610caf9190612a3c565b5050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ce06118fd565b73ffffffffffffffffffffffffffffffffffffffff16610cfe610fd0565b73ffffffffffffffffffffffffffffffffffffffff1614610d54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4b90612747565b60405180910390fd5b600b81604051602001610d6892919061288e565b604051602081830303815290604052600b9081610d859190612a3c565b5050565b610d916118fd565b73ffffffffffffffffffffffffffffffffffffffff16610daf610fd0565b73ffffffffffffffffffffffffffffffffffffffff1614610e05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfc90612747565b60405180910390fd5b600b81604051602001610e1992919061288e565b604051602081830303815290604052600b9081610e369190612a3c565b5050565b610e426118fd565b73ffffffffffffffffffffffffffffffffffffffff16610e60610fd0565b73ffffffffffffffffffffffffffffffffffffffff1614610eb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ead90612747565b60405180910390fd5b600b81604051602001610eca92919061288e565b604051602081830303815290604052600b9081610ee79190612a3c565b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610f396118fd565b73ffffffffffffffffffffffffffffffffffffffff16610f57610fd0565b73ffffffffffffffffffffffffffffffffffffffff1614610fad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa490612747565b60405180910390fd5b610fb65f611f0d565b565b60065f9054906101000a900460ff1681565b60085481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610fff6118fd565b73ffffffffffffffffffffffffffffffffffffffff1661101d610fd0565b73ffffffffffffffffffffffffffffffffffffffff1614611073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106a90612747565b60405180910390fd5b600b8160405160200161108792919061288e565b604051602081830303815290604052600b90816110a49190612a3c565b5050565b6060600580546110b790612792565b80601f01602080910402602001604051908101604052809291908181526020018280546110e390612792565b801561112e5780601f106111055761010080835404028352916020019161112e565b820191905f5260205f20905b81548152906001019060200180831161111157829003601f168201915b5050505050905090565b6111406118fd565b73ffffffffffffffffffffffffffffffffffffffff1661115e610fd0565b73ffffffffffffffffffffffffffffffffffffffff16146111b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ab90612747565b60405180910390fd5b600b816040516020016111c892919061288e565b604051602081830303815290604052600b90816111e59190612a3c565b5050565b5f8060025f6111f66118fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156112b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a790612c69565b60405180910390fd5b6112c46112bb6118fd565b85858403611904565b600191505092915050565b6112d76118fd565b73ffffffffffffffffffffffffffffffffffffffff166112f5610fd0565b73ffffffffffffffffffffffffffffffffffffffff161461134b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134290612747565b60405180910390fd5b600b8160405160200161135f92919061288e565b604051602081830303815290604052600b908161137c9190612a3c565b5050565b5f61139361138c6118fd565b8484611ac7565b6001905092915050565b600b80546113aa90612792565b80601f01602080910402602001604051908101604052809291908181526020018280546113d690612792565b80156114215780601f106113f857610100808354040283529160200191611421565b820191905f5260205f20905b81548152906001019060200180831161140457829003601f168201915b505050505081565b6114316118fd565b73ffffffffffffffffffffffffffffffffffffffff1661144f610fd0565b73ffffffffffffffffffffffffffffffffffffffff16146114a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149c90612747565b60405180910390fd5b8060065f6101000a81548160ff02191690831515021790555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61154b6118fd565b73ffffffffffffffffffffffffffffffffffffffff16611569610fd0565b73ffffffffffffffffffffffffffffffffffffffff16146115bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b690612747565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361162d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162490612cf7565b60405180910390fd5b61163681611f0d565b50565b6116416118fd565b73ffffffffffffffffffffffffffffffffffffffff1661165f610fd0565b73ffffffffffffffffffffffffffffffffffffffff16146116b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ac90612747565b60405180910390fd5b600b816040516020016116c992919061288e565b604051602081830303815290604052600b90816116e69190612a3c565b5050565b6116f26118fd565b73ffffffffffffffffffffffffffffffffffffffff16611710610fd0565b73ffffffffffffffffffffffffffffffffffffffff1614611766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175d90612747565b60405180910390fd5b600b8160405160200161177a92919061288e565b604051602081830303815290604052600b90816117979190612a3c565b5050565b6117a36118fd565b73ffffffffffffffffffffffffffffffffffffffff166117c1610fd0565b73ffffffffffffffffffffffffffffffffffffffff1614611817576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180e90612747565b60405180910390fd5b600b8160405160200161182b92919061288e565b604051602081830303815290604052600b90816118489190612a3c565b5050565b6118546118fd565b73ffffffffffffffffffffffffffffffffffffffff16611872610fd0565b73ffffffffffffffffffffffffffffffffffffffff16146118c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bf90612747565b60405180910390fd5b600b816040516020016118dc92919061288e565b604051602081830303815290604052600b90816118f99190612a3c565b5050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611972576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196990612d85565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d790612e13565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611aba91906124eb565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2c90612ea1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ba3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9a90612f2f565b60405180910390fd5b611bae838383611fce565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611c32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2990612fbd565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611cc29190612bc6565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d2691906124eb565b60405180910390a3611d398484846121c5565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611dad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da49061304b565b60405180910390fd5b611db8825f83611fce565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e33906130d9565b60405180910390fd5b81810360015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160035f828254611e9191906130f7565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ef591906124eb565b60405180910390a3611f08835f846121c5565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036120d95761202a610fd0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806120955750612066610fd0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6120d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cb90613174565b60405180910390fd5b6121c0565b60065f9054906101000a900460ff1680156121405750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156121bf576008548161215284610eeb565b61215c9190612bc6565b1115801561217f57506009548161217284610eeb565b61217c9190612bc6565b10155b6121be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b5906131dc565b60405180910390fd5b5b5b505050565b505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612229826121e3565b810181811067ffffffffffffffff82111715612248576122476121f3565b5b80604052505050565b5f61225a6121ca565b90506122668282612220565b919050565b5f67ffffffffffffffff821115612285576122846121f3565b5b61228e826121e3565b9050602081019050919050565b828183375f83830152505050565b5f6122bb6122b68461226b565b612251565b9050828152602081018484840111156122d7576122d66121df565b5b6122e284828561229b565b509392505050565b5f82601f8301126122fe576122fd6121db565b5b813561230e8482602086016122a9565b91505092915050565b5f6020828403121561232c5761232b6121d3565b5b5f82013567ffffffffffffffff811115612349576123486121d7565b5b612355848285016122ea565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6123908261235e565b61239a8185612368565b93506123aa818560208601612378565b6123b3816121e3565b840191505092915050565b5f6020820190508181035f8301526123d68184612386565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612407826123de565b9050919050565b612417816123fd565b8114612421575f80fd5b50565b5f813590506124328161240e565b92915050565b5f819050919050565b61244a81612438565b8114612454575f80fd5b50565b5f8135905061246581612441565b92915050565b5f8060408385031215612481576124806121d3565b5b5f61248e85828601612424565b925050602061249f85828601612457565b9150509250929050565b5f8115159050919050565b6124bd816124a9565b82525050565b5f6020820190506124d65f8301846124b4565b92915050565b6124e581612438565b82525050565b5f6020820190506124fe5f8301846124dc565b92915050565b5f805f6060848603121561251b5761251a6121d3565b5b5f61252886828701612424565b935050602061253986828701612424565b925050604061254a86828701612457565b9150509250925092565b5f60ff82169050919050565b61256981612554565b82525050565b5f6020820190506125825f830184612560565b92915050565b612591816124a9565b811461259b575f80fd5b50565b5f813590506125ac81612588565b92915050565b5f805f80608085870312156125ca576125c96121d3565b5b5f6125d78782880161259e565b94505060206125e887828801612424565b93505060406125f987828801612457565b925050606061260a87828801612457565b91505092959194509250565b5f6020828403121561262b5761262a6121d3565b5b5f61263884828501612457565b91505092915050565b61264a816123fd565b82525050565b5f6020820190506126635f830184612641565b92915050565b5f6020828403121561267e5761267d6121d3565b5b5f61268b84828501612424565b91505092915050565b5f602082840312156126a9576126a86121d3565b5b5f6126b68482850161259e565b91505092915050565b5f80604083850312156126d5576126d46121d3565b5b5f6126e285828601612424565b92505060206126f385828601612424565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612731602083612368565b915061273c826126fd565b602082019050919050565b5f6020820190508181035f83015261275e81612725565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806127a957607f821691505b6020821081036127bc576127bb612765565b5b50919050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f81546127ea81612792565b6127f481866127c2565b9450600182165f811461280e576001811461282357612855565b60ff1983168652811515820286019350612855565b61282c856127cc565b5f5b8381101561284d5781548189015260018201915060208101905061282e565b838801955050505b50505092915050565b5f6128688261235e565b61287281856127c2565b9350612882818560208601612378565b80840191505092915050565b5f61289982856127de565b91506128a5828461285e565b91508190509392505050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026128fb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826128c0565b61290586836128c0565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61294061293b61293684612438565b61291d565b612438565b9050919050565b5f819050919050565b61295983612926565b61296d61296582612947565b8484546128cc565b825550505050565b5f90565b612981612975565b61298c818484612950565b505050565b5b818110156129af576129a45f82612979565b600181019050612992565b5050565b601f8211156129f4576129c5816127cc565b6129ce846128b1565b810160208510156129dd578190505b6129f16129e9856128b1565b830182612991565b50505b505050565b5f82821c905092915050565b5f612a145f19846008026129f9565b1980831691505092915050565b5f612a2c8383612a05565b9150826002028217905092915050565b612a458261235e565b67ffffffffffffffff811115612a5e57612a5d6121f3565b5b612a688254612792565b612a738282856129b3565b5f60209050601f831160018114612aa4575f8415612a92578287015190505b612a9c8582612a21565b865550612b03565b601f198416612ab2866127cc565b5f5b82811015612ad957848901518255600182019150602085019450602081019050612ab4565b86831015612af65784890151612af2601f891682612a05565b8355505b6001600288020188555050505b505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612b65602883612368565b9150612b7082612b0b565b604082019050919050565b5f6020820190508181035f830152612b9281612b59565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612bd082612438565b9150612bdb83612438565b9250828201905080821115612bf357612bf2612b99565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612c53602583612368565b9150612c5e82612bf9565b604082019050919050565b5f6020820190508181035f830152612c8081612c47565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612ce1602683612368565b9150612cec82612c87565b604082019050919050565b5f6020820190508181035f830152612d0e81612cd5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612d6f602483612368565b9150612d7a82612d15565b604082019050919050565b5f6020820190508181035f830152612d9c81612d63565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612dfd602283612368565b9150612e0882612da3565b604082019050919050565b5f6020820190508181035f830152612e2a81612df1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612e8b602583612368565b9150612e9682612e31565b604082019050919050565b5f6020820190508181035f830152612eb881612e7f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612f19602383612368565b9150612f2482612ebf565b604082019050919050565b5f6020820190508181035f830152612f4681612f0d565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612fa7602683612368565b9150612fb282612f4d565b604082019050919050565b5f6020820190508181035f830152612fd481612f9b565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f613035602183612368565b915061304082612fdb565b604082019050919050565b5f6020820190508181035f83015261306281613029565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130c3602283612368565b91506130ce82613069565b604082019050919050565b5f6020820190508181035f8301526130f0816130b7565b9050919050565b5f61310182612438565b915061310c83612438565b925082820390508181111561312457613123612b99565b5b92915050565b7f54726164696e6720686173206e6f7420737461727465640000000000000000005f82015250565b5f61315e601783612368565b91506131698261312a565b602082019050919050565b5f6020820190508181035f83015261318b81613152565b9050919050565b7f466f7262696400000000000000000000000000000000000000000000000000005f82015250565b5f6131c6600683612368565b91506131d182613192565b602082019050919050565b5f6020820190508181035f8301526131f3816131ba565b905091905056fea26469706673582212209da43651c990999d57febbbbeed2e85ade9d762e3d147f4e178bd8edd2a427d964736f6c634300081a0033

Deployed Bytecode

0x608060405234801561000f575f80fd5b506004361061021a575f3560e01c8063715018a611610123578063a9059cbb116100ab578063f2fde38b1161007a578063f2fde38b14610610578063f45593aa1461062c578063f4d79e1214610648578063f50164fe14610664578063f6a48792146106805761021a565b8063a9059cbb14610576578063aae6b6cc146105a6578063cbfe6433146105c4578063dd62ed3e146105e05761021a565b8063904b9116116100f2578063904b9116146104d457806395d89b41146104f05780639e61d3ec1461050e578063a457c2d71461052a578063a6e6777e1461055a5761021a565b8063715018a614610470578063860a32ec1461047a57806389f9a1d3146104985780638da5cb5b146104b65761021a565b80633aa633aa116101a657806349bd5a5e1161017557806349bd5a5e146103ce5780634d49af5f146103ec5780634d957a181461040857806353290b2e1461042457806370a08231146104405761021a565b80633aa633aa1461035e5780633fcd75681461037a57806342966c681461039657806342cfcd13146103b25761021a565b80631ab99e12116101ed5780631ab99e12146102a65780631eef77d3146102c457806323b872dd146102e0578063313ce56714610310578063395093511461032e5761021a565b8063016407a11461021e57806306fdde031461023a578063095ea7b31461025857806318160ddd14610288575b5f80fd5b61023860048036038101906102339190612317565b61069c565b005b61024261074d565b60405161024f91906123be565b60405180910390f35b610272600480360381019061026d919061246b565b6107dd565b60405161027f91906124c3565b60405180910390f35b6102906107fa565b60405161029d91906124eb565b60405180910390f35b6102ae610803565b6040516102bb91906124eb565b60405180910390f35b6102de60048036038101906102d99190612317565b610809565b005b6102fa60048036038101906102f59190612504565b6108ba565b60405161030791906124c3565b60405180910390f35b6103186109ac565b604051610325919061256f565b60405180910390f35b6103486004803603810190610343919061246b565b6109b4565b60405161035591906124c3565b60405180910390f35b610378600480360381019061037391906125b2565b610a5b565b005b610394600480360381019061038f9190612317565b610b44565b005b6103b060048036038101906103ab9190612616565b610bf5565b005b6103cc60048036038101906103c79190612317565b610c02565b005b6103d6610cb3565b6040516103e39190612650565b60405180910390f35b61040660048036038101906104019190612317565b610cd8565b005b610422600480360381019061041d9190612317565b610d89565b005b61043e60048036038101906104399190612317565b610e3a565b005b61045a60048036038101906104559190612669565b610eeb565b60405161046791906124eb565b60405180910390f35b610478610f31565b005b610482610fb8565b60405161048f91906124c3565b60405180910390f35b6104a0610fca565b6040516104ad91906124eb565b60405180910390f35b6104be610fd0565b6040516104cb9190612650565b60405180910390f35b6104ee60048036038101906104e99190612317565b610ff7565b005b6104f86110a8565b60405161050591906123be565b60405180910390f35b61052860048036038101906105239190612317565b611138565b005b610544600480360381019061053f919061246b565b6111e9565b60405161055191906124c3565b60405180910390f35b610574600480360381019061056f9190612317565b6112cf565b005b610590600480360381019061058b919061246b565b611380565b60405161059d91906124c3565b60405180910390f35b6105ae61139d565b6040516105bb91906123be565b60405180910390f35b6105de60048036038101906105d99190612694565b611429565b005b6105fa60048036038101906105f591906126bf565b6114c1565b60405161060791906124eb565b60405180910390f35b61062a60048036038101906106259190612669565b611543565b005b61064660048036038101906106419190612317565b611639565b005b610662600480360381019061065d9190612317565b6116ea565b005b61067e60048036038101906106799190612317565b61179b565b005b61069a60048036038101906106959190612317565b61184c565b005b6106a46118fd565b73ffffffffffffffffffffffffffffffffffffffff166106c2610fd0565b73ffffffffffffffffffffffffffffffffffffffff1614610718576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070f90612747565b60405180910390fd5b600b8160405160200161072c92919061288e565b604051602081830303815290604052600b90816107499190612a3c565b5050565b60606004805461075c90612792565b80601f016020809104026020016040519081016040528092919081815260200182805461078890612792565b80156107d35780601f106107aa576101008083540402835291602001916107d3565b820191905f5260205f20905b8154815290600101906020018083116107b657829003601f168201915b5050505050905090565b5f6107f06107e96118fd565b8484611904565b6001905092915050565b5f600354905090565b60095481565b6108116118fd565b73ffffffffffffffffffffffffffffffffffffffff1661082f610fd0565b73ffffffffffffffffffffffffffffffffffffffff1614610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c90612747565b60405180910390fd5b600b8160405160200161089992919061288e565b604051602081830303815290604052600b90816108b69190612a3c565b5050565b5f6108c6848484611ac7565b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61090d6118fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561098c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098390612b7b565b60405180910390fd5b6109a0856109986118fd565b858403611904565b60019150509392505050565b5f6012905090565b5f610a516109c06118fd565b848460025f6109cd6118fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a4c9190612bc6565b611904565b6001905092915050565b610a636118fd565b73ffffffffffffffffffffffffffffffffffffffff16610a81610fd0565b73ffffffffffffffffffffffffffffffffffffffff1614610ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ace90612747565b60405180910390fd5b8360065f6101000a81548160ff02191690831515021790555082600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816008819055508060098190555050505050565b610b4c6118fd565b73ffffffffffffffffffffffffffffffffffffffff16610b6a610fd0565b73ffffffffffffffffffffffffffffffffffffffff1614610bc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb790612747565b60405180910390fd5b600b81604051602001610bd492919061288e565b604051602081830303815290604052600b9081610bf19190612a3c565b5050565b610bff3382611d3f565b50565b610c0a6118fd565b73ffffffffffffffffffffffffffffffffffffffff16610c28610fd0565b73ffffffffffffffffffffffffffffffffffffffff1614610c7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7590612747565b60405180910390fd5b600b81604051602001610c9292919061288e565b604051602081830303815290604052600b9081610caf9190612a3c565b5050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ce06118fd565b73ffffffffffffffffffffffffffffffffffffffff16610cfe610fd0565b73ffffffffffffffffffffffffffffffffffffffff1614610d54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4b90612747565b60405180910390fd5b600b81604051602001610d6892919061288e565b604051602081830303815290604052600b9081610d859190612a3c565b5050565b610d916118fd565b73ffffffffffffffffffffffffffffffffffffffff16610daf610fd0565b73ffffffffffffffffffffffffffffffffffffffff1614610e05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfc90612747565b60405180910390fd5b600b81604051602001610e1992919061288e565b604051602081830303815290604052600b9081610e369190612a3c565b5050565b610e426118fd565b73ffffffffffffffffffffffffffffffffffffffff16610e60610fd0565b73ffffffffffffffffffffffffffffffffffffffff1614610eb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ead90612747565b60405180910390fd5b600b81604051602001610eca92919061288e565b604051602081830303815290604052600b9081610ee79190612a3c565b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610f396118fd565b73ffffffffffffffffffffffffffffffffffffffff16610f57610fd0565b73ffffffffffffffffffffffffffffffffffffffff1614610fad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa490612747565b60405180910390fd5b610fb65f611f0d565b565b60065f9054906101000a900460ff1681565b60085481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610fff6118fd565b73ffffffffffffffffffffffffffffffffffffffff1661101d610fd0565b73ffffffffffffffffffffffffffffffffffffffff1614611073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106a90612747565b60405180910390fd5b600b8160405160200161108792919061288e565b604051602081830303815290604052600b90816110a49190612a3c565b5050565b6060600580546110b790612792565b80601f01602080910402602001604051908101604052809291908181526020018280546110e390612792565b801561112e5780601f106111055761010080835404028352916020019161112e565b820191905f5260205f20905b81548152906001019060200180831161111157829003601f168201915b5050505050905090565b6111406118fd565b73ffffffffffffffffffffffffffffffffffffffff1661115e610fd0565b73ffffffffffffffffffffffffffffffffffffffff16146111b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ab90612747565b60405180910390fd5b600b816040516020016111c892919061288e565b604051602081830303815290604052600b90816111e59190612a3c565b5050565b5f8060025f6111f66118fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156112b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a790612c69565b60405180910390fd5b6112c46112bb6118fd565b85858403611904565b600191505092915050565b6112d76118fd565b73ffffffffffffffffffffffffffffffffffffffff166112f5610fd0565b73ffffffffffffffffffffffffffffffffffffffff161461134b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134290612747565b60405180910390fd5b600b8160405160200161135f92919061288e565b604051602081830303815290604052600b908161137c9190612a3c565b5050565b5f61139361138c6118fd565b8484611ac7565b6001905092915050565b600b80546113aa90612792565b80601f01602080910402602001604051908101604052809291908181526020018280546113d690612792565b80156114215780601f106113f857610100808354040283529160200191611421565b820191905f5260205f20905b81548152906001019060200180831161140457829003601f168201915b505050505081565b6114316118fd565b73ffffffffffffffffffffffffffffffffffffffff1661144f610fd0565b73ffffffffffffffffffffffffffffffffffffffff16146114a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149c90612747565b60405180910390fd5b8060065f6101000a81548160ff02191690831515021790555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61154b6118fd565b73ffffffffffffffffffffffffffffffffffffffff16611569610fd0565b73ffffffffffffffffffffffffffffffffffffffff16146115bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b690612747565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361162d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162490612cf7565b60405180910390fd5b61163681611f0d565b50565b6116416118fd565b73ffffffffffffffffffffffffffffffffffffffff1661165f610fd0565b73ffffffffffffffffffffffffffffffffffffffff16146116b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ac90612747565b60405180910390fd5b600b816040516020016116c992919061288e565b604051602081830303815290604052600b90816116e69190612a3c565b5050565b6116f26118fd565b73ffffffffffffffffffffffffffffffffffffffff16611710610fd0565b73ffffffffffffffffffffffffffffffffffffffff1614611766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175d90612747565b60405180910390fd5b600b8160405160200161177a92919061288e565b604051602081830303815290604052600b90816117979190612a3c565b5050565b6117a36118fd565b73ffffffffffffffffffffffffffffffffffffffff166117c1610fd0565b73ffffffffffffffffffffffffffffffffffffffff1614611817576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180e90612747565b60405180910390fd5b600b8160405160200161182b92919061288e565b604051602081830303815290604052600b90816118489190612a3c565b5050565b6118546118fd565b73ffffffffffffffffffffffffffffffffffffffff16611872610fd0565b73ffffffffffffffffffffffffffffffffffffffff16146118c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bf90612747565b60405180910390fd5b600b816040516020016118dc92919061288e565b604051602081830303815290604052600b90816118f99190612a3c565b5050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611972576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196990612d85565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d790612e13565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611aba91906124eb565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2c90612ea1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ba3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9a90612f2f565b60405180910390fd5b611bae838383611fce565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611c32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2990612fbd565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611cc29190612bc6565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d2691906124eb565b60405180910390a3611d398484846121c5565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611dad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da49061304b565b60405180910390fd5b611db8825f83611fce565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e33906130d9565b60405180910390fd5b81810360015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160035f828254611e9191906130f7565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ef591906124eb565b60405180910390a3611f08835f846121c5565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036120d95761202a610fd0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806120955750612066610fd0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6120d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cb90613174565b60405180910390fd5b6121c0565b60065f9054906101000a900460ff1680156121405750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156121bf576008548161215284610eeb565b61215c9190612bc6565b1115801561217f57506009548161217284610eeb565b61217c9190612bc6565b10155b6121be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b5906131dc565b60405180910390fd5b5b5b505050565b505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612229826121e3565b810181811067ffffffffffffffff82111715612248576122476121f3565b5b80604052505050565b5f61225a6121ca565b90506122668282612220565b919050565b5f67ffffffffffffffff821115612285576122846121f3565b5b61228e826121e3565b9050602081019050919050565b828183375f83830152505050565b5f6122bb6122b68461226b565b612251565b9050828152602081018484840111156122d7576122d66121df565b5b6122e284828561229b565b509392505050565b5f82601f8301126122fe576122fd6121db565b5b813561230e8482602086016122a9565b91505092915050565b5f6020828403121561232c5761232b6121d3565b5b5f82013567ffffffffffffffff811115612349576123486121d7565b5b612355848285016122ea565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6123908261235e565b61239a8185612368565b93506123aa818560208601612378565b6123b3816121e3565b840191505092915050565b5f6020820190508181035f8301526123d68184612386565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612407826123de565b9050919050565b612417816123fd565b8114612421575f80fd5b50565b5f813590506124328161240e565b92915050565b5f819050919050565b61244a81612438565b8114612454575f80fd5b50565b5f8135905061246581612441565b92915050565b5f8060408385031215612481576124806121d3565b5b5f61248e85828601612424565b925050602061249f85828601612457565b9150509250929050565b5f8115159050919050565b6124bd816124a9565b82525050565b5f6020820190506124d65f8301846124b4565b92915050565b6124e581612438565b82525050565b5f6020820190506124fe5f8301846124dc565b92915050565b5f805f6060848603121561251b5761251a6121d3565b5b5f61252886828701612424565b935050602061253986828701612424565b925050604061254a86828701612457565b9150509250925092565b5f60ff82169050919050565b61256981612554565b82525050565b5f6020820190506125825f830184612560565b92915050565b612591816124a9565b811461259b575f80fd5b50565b5f813590506125ac81612588565b92915050565b5f805f80608085870312156125ca576125c96121d3565b5b5f6125d78782880161259e565b94505060206125e887828801612424565b93505060406125f987828801612457565b925050606061260a87828801612457565b91505092959194509250565b5f6020828403121561262b5761262a6121d3565b5b5f61263884828501612457565b91505092915050565b61264a816123fd565b82525050565b5f6020820190506126635f830184612641565b92915050565b5f6020828403121561267e5761267d6121d3565b5b5f61268b84828501612424565b91505092915050565b5f602082840312156126a9576126a86121d3565b5b5f6126b68482850161259e565b91505092915050565b5f80604083850312156126d5576126d46121d3565b5b5f6126e285828601612424565b92505060206126f385828601612424565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612731602083612368565b915061273c826126fd565b602082019050919050565b5f6020820190508181035f83015261275e81612725565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806127a957607f821691505b6020821081036127bc576127bb612765565b5b50919050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f81546127ea81612792565b6127f481866127c2565b9450600182165f811461280e576001811461282357612855565b60ff1983168652811515820286019350612855565b61282c856127cc565b5f5b8381101561284d5781548189015260018201915060208101905061282e565b838801955050505b50505092915050565b5f6128688261235e565b61287281856127c2565b9350612882818560208601612378565b80840191505092915050565b5f61289982856127de565b91506128a5828461285e565b91508190509392505050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026128fb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826128c0565b61290586836128c0565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61294061293b61293684612438565b61291d565b612438565b9050919050565b5f819050919050565b61295983612926565b61296d61296582612947565b8484546128cc565b825550505050565b5f90565b612981612975565b61298c818484612950565b505050565b5b818110156129af576129a45f82612979565b600181019050612992565b5050565b601f8211156129f4576129c5816127cc565b6129ce846128b1565b810160208510156129dd578190505b6129f16129e9856128b1565b830182612991565b50505b505050565b5f82821c905092915050565b5f612a145f19846008026129f9565b1980831691505092915050565b5f612a2c8383612a05565b9150826002028217905092915050565b612a458261235e565b67ffffffffffffffff811115612a5e57612a5d6121f3565b5b612a688254612792565b612a738282856129b3565b5f60209050601f831160018114612aa4575f8415612a92578287015190505b612a9c8582612a21565b865550612b03565b601f198416612ab2866127cc565b5f5b82811015612ad957848901518255600182019150602085019450602081019050612ab4565b86831015612af65784890151612af2601f891682612a05565b8355505b6001600288020188555050505b505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612b65602883612368565b9150612b7082612b0b565b604082019050919050565b5f6020820190508181035f830152612b9281612b59565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612bd082612438565b9150612bdb83612438565b9250828201905080821115612bf357612bf2612b99565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612c53602583612368565b9150612c5e82612bf9565b604082019050919050565b5f6020820190508181035f830152612c8081612c47565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612ce1602683612368565b9150612cec82612c87565b604082019050919050565b5f6020820190508181035f830152612d0e81612cd5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612d6f602483612368565b9150612d7a82612d15565b604082019050919050565b5f6020820190508181035f830152612d9c81612d63565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612dfd602283612368565b9150612e0882612da3565b604082019050919050565b5f6020820190508181035f830152612e2a81612df1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612e8b602583612368565b9150612e9682612e31565b604082019050919050565b5f6020820190508181035f830152612eb881612e7f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612f19602383612368565b9150612f2482612ebf565b604082019050919050565b5f6020820190508181035f830152612f4681612f0d565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612fa7602683612368565b9150612fb282612f4d565b604082019050919050565b5f6020820190508181035f830152612fd481612f9b565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f613035602183612368565b915061304082612fdb565b604082019050919050565b5f6020820190508181035f83015261306281613029565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130c3602283612368565b91506130ce82613069565b604082019050919050565b5f6020820190508181035f8301526130f0816130b7565b9050919050565b5f61310182612438565b915061310c83612438565b925082820390508181111561312457613123612b99565b5b92915050565b7f54726164696e6720686173206e6f7420737461727465640000000000000000005f82015250565b5f61315e601783612368565b91506131698261312a565b602082019050919050565b5f6020820190508181035f83015261318b81613152565b9050919050565b7f466f7262696400000000000000000000000000000000000000000000000000005f82015250565b5f6131c6600683612368565b91506131d182613192565b602082019050919050565b5f6020820190508181035f8301526131f3816131ba565b905091905056fea26469706673582212209da43651c990999d57febbbbeed2e85ade9d762e3d147f4e178bd8edd2a427d964736f6c634300081a0033

Deployed Bytecode Sourcemap

19343:3648:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22065:147;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9312:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11479:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10432:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19505:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21914:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12130:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10274:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13031:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19715:301;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21603:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20717:81;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21125:155;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19543:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21288:144;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22680:146;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21446:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10603:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2713:103;;;:::i;:::-;;19384:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19467:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2062:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21762:144;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9531:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22525:147;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13749:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22834:147;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10943:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19578:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20024:95;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11181:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2971:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20814:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20973:144;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22373;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22220:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22065:147;2293:12;:10;:12::i;:::-;2282:23;;:7;:5;:7::i;:::-;:23;;;2274:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22182:14:::1;22198:4;22165:38;;;;;;;;;:::i;:::-;;;;;;;;;;;;;22141:14;:63;;;;;;:::i;:::-;;22065:147:::0;:::o;9312:100::-;9366:13;9399:5;9392:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9312:100;:::o;11479:169::-;11562:4;11579:39;11588:12;:10;:12::i;:::-;11602:7;11611:6;11579:8;:39::i;:::-;11636:4;11629:11;;11479:169;;;;:::o;10432:108::-;10493:7;10520:12;;10513:19;;10432:108;:::o;19505:31::-;;;;:::o;21914:143::-;2293:12;:10;:12::i;:::-;2282:23;;:7;:5;:7::i;:::-;:23;;;2274:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22027:14:::1;22043:4;22010:38;;;;;;;;;:::i;:::-;;;;;;;;;;;;;21986:14;:63;;;;;;:::i;:::-;;21914:143:::0;:::o;12130:492::-;12270:4;12287:36;12297:6;12305:9;12316:6;12287:9;:36::i;:::-;12336:24;12363:11;:19;12375:6;12363:19;;;;;;;;;;;;;;;:33;12383:12;:10;:12::i;:::-;12363:33;;;;;;;;;;;;;;;;12336:60;;12435:6;12415:16;:26;;12407:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12522:57;12531:6;12539:12;:10;:12::i;:::-;12572:6;12553:16;:25;12522:8;:57::i;:::-;12610:4;12603:11;;;12130:492;;;;;:::o;10274:93::-;10332:5;10357:2;10350:9;;10274:93;:::o;13031:215::-;13119:4;13136:80;13145:12;:10;:12::i;:::-;13159:7;13205:10;13168:11;:25;13180:12;:10;:12::i;:::-;13168:25;;;;;;;;;;;;;;;:34;13194:7;13168:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;13136:8;:80::i;:::-;13234:4;13227:11;;13031:215;;;;:::o;19715:301::-;2293:12;:10;:12::i;:::-;2282:23;;:7;:5;:7::i;:::-;:23;;;2274:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19865:8:::1;19855:7;;:18;;;;;;;;;;;;;;;;;;19900:14;19884:13;;:30;;;;;;;;;;;;;;;;;;19944:17;19925:16;:36;;;;19991:17;19972:16;:36;;;;19715:301:::0;;;;:::o;21603:151::-;2293:12;:10;:12::i;:::-;2282:23;;:7;:5;:7::i;:::-;:23;;;2274:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21724:14:::1;21740:4;21707:38;;;;;;;;;:::i;:::-;;;;;;;;;;;;;21683:14;:63;;;;;;:::i;:::-;;21603:151:::0;:::o;20717:81::-;20766:24;20772:10;20784:5;20766;:24::i;:::-;20717:81;:::o;21125:155::-;2293:12;:10;:12::i;:::-;2282:23;;:7;:5;:7::i;:::-;:23;;;2274:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21250:14:::1;21266:4;21233:38;;;;;;;;;:::i;:::-;;;;;;;;;;;;;21209:14;:63;;;;;;:::i;:::-;;21125:155:::0;:::o;19543:28::-;;;;;;;;;;;;;:::o;21288:144::-;2293:12;:10;:12::i;:::-;2282:23;;:7;:5;:7::i;:::-;:23;;;2274:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21402:14:::1;21418:4;21385:38;;;;;;;;;:::i;:::-;;;;;;;;;;;;;21361:14;:63;;;;;;:::i;:::-;;21288:144:::0;:::o;22680:146::-;2293:12;:10;:12::i;:::-;2282:23;;:7;:5;:7::i;:::-;:23;;;2274:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22796:14:::1;22812:4;22779:38;;;;;;;;;:::i;:::-;;;;;;;;;;;;;22755:14;:63;;;;;;:::i;:::-;;22680:146:::0;:::o;21446:149::-;2293:12;:10;:12::i;:::-;2282:23;;:7;:5;:7::i;:::-;:23;;;2274:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21565:14:::1;21581:4;21548:38;;;;;;;;;:::i;:::-;;;;;;;;;;;;;21524:14;:63;;;;;;:::i;:::-;;21446:149:::0;:::o;10603:127::-;10677:7;10704:9;:18;10714:7;10704:18;;;;;;;;;;;;;;;;10697:25;;10603:127;;;:::o;2713:103::-;2293:12;:10;:12::i;:::-;2282:23;;:7;:5;:7::i;:::-;:23;;;2274:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2778:30:::1;2805:1;2778:18;:30::i;:::-;2713:103::o:0;19384:26::-;;;;;;;;;;;;;:::o;19467:31::-;;;;:::o;2062:87::-;2108:7;2135:6;;;;;;;;;;;2128:13;;2062:87;:::o;21762:144::-;2293:12;:10;:12::i;:::-;2282:23;;:7;:5;:7::i;:::-;:23;;;2274:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21876:14:::1;21892:4;21859:38;;;;;;;;;:::i;:::-;;;;;;;;;;;;;21835:14;:63;;;;;;:::i;:::-;;21762:144:::0;:::o;9531:104::-;9587:13;9620:7;9613:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9531:104;:::o;22525:147::-;2293:12;:10;:12::i;:::-;2282:23;;:7;:5;:7::i;:::-;:23;;;2274:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22642:14:::1;22658:4;22625:38;;;;;;;;;:::i;:::-;;;;;;;;;;;;;22601:14;:63;;;;;;:::i;:::-;;22525:147:::0;:::o;13749:413::-;13842:4;13859:24;13886:11;:25;13898:12;:10;:12::i;:::-;13886:25;;;;;;;;;;;;;;;:34;13912:7;13886:34;;;;;;;;;;;;;;;;13859:61;;13959:15;13939:16;:35;;13931:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14052:67;14061:12;:10;:12::i;:::-;14075:7;14103:15;14084:16;:34;14052:8;:67::i;:::-;14150:4;14143:11;;;13749:413;;;;:::o;22834:147::-;2293:12;:10;:12::i;:::-;2282:23;;:7;:5;:7::i;:::-;:23;;;2274:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22951:14:::1;22967:4;22934:38;;;;;;;;;:::i;:::-;;;;;;;;;;;;;22910:14;:63;;;;;;:::i;:::-;;22834:147:::0;:::o;10943:175::-;11029:4;11046:42;11056:12;:10;:12::i;:::-;11070:9;11081:6;11046:9;:42::i;:::-;11106:4;11099:11;;10943:175;;;;:::o;19578:28::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;20024:95::-;2293:12;:10;:12::i;:::-;2282:23;;:7;:5;:7::i;:::-;:23;;;2274:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20103:8:::1;20093:7;;:18;;;;;;;;;;;;;;;;;;20024:95:::0;:::o;11181:151::-;11270:7;11297:11;:18;11309:5;11297:18;;;;;;;;;;;;;;;:27;11316:7;11297:27;;;;;;;;;;;;;;;;11290:34;;11181:151;;;;:::o;2971:201::-;2293:12;:10;:12::i;:::-;2282:23;;:7;:5;:7::i;:::-;:23;;;2274:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3080:1:::1;3060:22;;:8;:22;;::::0;3052:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3136:28;3155:8;3136:18;:28::i;:::-;2971:201:::0;:::o;20814:151::-;2293:12;:10;:12::i;:::-;2282:23;;:7;:5;:7::i;:::-;:23;;;2274:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20935:14:::1;20951:4;20918:38;;;;;;;;;:::i;:::-;;;;;;;;;;;;;20894:14;:63;;;;;;:::i;:::-;;20814:151:::0;:::o;20973:144::-;2293:12;:10;:12::i;:::-;2282:23;;:7;:5;:7::i;:::-;:23;;;2274:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21087:14:::1;21103:4;21070:38;;;;;;;;;:::i;:::-;;;;;;;;;;;;;21046:14;:63;;;;;;:::i;:::-;;20973:144:::0;:::o;22373:::-;2293:12;:10;:12::i;:::-;2282:23;;:7;:5;:7::i;:::-;:23;;;2274:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22487:14:::1;22503:4;22470:38;;;;;;;;;:::i;:::-;;;;;;;;;;;;;22446:14;:63;;;;;;:::i;:::-;;22373:144:::0;:::o;22220:145::-;2293:12;:10;:12::i;:::-;2282:23;;:7;:5;:7::i;:::-;:23;;;2274:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22335:14:::1;22351:4;22318:38;;;;;;;;;:::i;:::-;;;;;;;;;;;;;22294:14;:63;;;;;;:::i;:::-;;22220:145:::0;:::o;780:98::-;833:7;860:10;853:17;;780:98;:::o;17433:380::-;17586:1;17569:19;;:5;:19;;;17561:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17667:1;17648:21;;:7;:21;;;17640:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17751:6;17721:11;:18;17733:5;17721:18;;;;;;;;;;;;;;;:27;17740:7;17721:27;;;;;;;;;;;;;;;:36;;;;17789:7;17773:32;;17782:5;17773:32;;;17798:6;17773:32;;;;;;:::i;:::-;;;;;;;;17433:380;;;:::o;14652:733::-;14810:1;14792:20;;:6;:20;;;14784:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14894:1;14873:23;;:9;:23;;;14865:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14949:47;14970:6;14978:9;14989:6;14949:20;:47::i;:::-;15009:21;15033:9;:17;15043:6;15033:17;;;;;;;;;;;;;;;;15009:41;;15086:6;15069:13;:23;;15061:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;15207:6;15191:13;:22;15171:9;:17;15181:6;15171:17;;;;;;;;;;;;;;;:42;;;;15259:6;15235:9;:20;15245:9;15235:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;15300:9;15283:35;;15292:6;15283:35;;;15311:6;15283:35;;;;;;:::i;:::-;;;;;;;;15331:46;15351:6;15359:9;15370:6;15331:19;:46::i;:::-;14773:612;14652:733;;;:::o;16404:591::-;16507:1;16488:21;;:7;:21;;;16480:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16560:49;16581:7;16598:1;16602:6;16560:20;:49::i;:::-;16622:22;16647:9;:18;16657:7;16647:18;;;;;;;;;;;;;;;;16622:43;;16702:6;16684:14;:24;;16676:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16821:6;16804:14;:23;16783:9;:18;16793:7;16783:18;;;;;;;;;;;;;;;:44;;;;16865:6;16849:12;;:22;;;;;;;:::i;:::-;;;;;;;;16915:1;16889:37;;16898:7;16889:37;;;16919:6;16889:37;;;;;;:::i;:::-;;;;;;;;16939:48;16959:7;16976:1;16980:6;16939:19;:48::i;:::-;16469:526;16404:591;;:::o;3332:191::-;3406:16;3425:6;;;;;;;;;;;3406:25;;3451:8;3442:6;;:17;;;;;;;;;;;;;;;;;;3506:8;3475:40;;3496:8;3475:40;;;;;;;;;;;;3395:128;3332:191;:::o;20133:574::-;20305:1;20280:27;;:13;;;;;;;;;;;:27;;;20276:149;;20340:7;:5;:7::i;:::-;20332:15;;:4;:15;;;:32;;;;20357:7;:5;:7::i;:::-;20351:13;;:2;:13;;;20332:32;20324:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20407:7;;20276:149;20441:7;;;;;;;;;;;:32;;;;;20460:13;;;;;;;;;;;20452:21;;:4;:21;;;20441:32;20437:263;;;20567:16;;20557:6;20541:13;20551:2;20541:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;:105;;;;;20630:16;;20620:6;20604:13;20614:2;20604:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;20541:105;20515:173;;;;;;;;;;;;:::i;:::-;;;;;;;;;20437:263;20133:574;;;;:::o;19142:124::-;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:148::-;1708:6;1703:3;1698;1685:30;1749:1;1740:6;1735:3;1731:16;1724:27;1610:148;;;:::o;1764:425::-;1842:5;1867:66;1883:49;1925:6;1883:49;:::i;:::-;1867:66;:::i;:::-;1858:75;;1956:6;1949:5;1942:21;1994:4;1987:5;1983:16;2032:3;2023:6;2018:3;2014:16;2011:25;2008:112;;;2039:79;;:::i;:::-;2008:112;2129:54;2176:6;2171:3;2166;2129:54;:::i;:::-;1848:341;1764:425;;;;;:::o;2209:340::-;2265:5;2314:3;2307:4;2299:6;2295:17;2291:27;2281:122;;2322:79;;:::i;:::-;2281:122;2439:6;2426:20;2464:79;2539:3;2531:6;2524:4;2516:6;2512:17;2464:79;:::i;:::-;2455:88;;2271:278;2209:340;;;;:::o;2555:509::-;2624:6;2673:2;2661:9;2652:7;2648:23;2644:32;2641:119;;;2679:79;;:::i;:::-;2641:119;2827:1;2816:9;2812:17;2799:31;2857:18;2849:6;2846:30;2843:117;;;2879:79;;:::i;:::-;2843:117;2984:63;3039:7;3030:6;3019:9;3015:22;2984:63;:::i;:::-;2974:73;;2770:287;2555:509;;;;:::o;3070:99::-;3122:6;3156:5;3150:12;3140:22;;3070:99;;;:::o;3175:169::-;3259:11;3293:6;3288:3;3281:19;3333:4;3328:3;3324:14;3309:29;;3175:169;;;;:::o;3350:139::-;3439:6;3434:3;3429;3423:23;3480:1;3471:6;3466:3;3462:16;3455:27;3350:139;;;:::o;3495:377::-;3583:3;3611:39;3644:5;3611:39;:::i;:::-;3666:71;3730:6;3725:3;3666:71;:::i;:::-;3659:78;;3746:65;3804:6;3799:3;3792:4;3785:5;3781:16;3746:65;:::i;:::-;3836:29;3858:6;3836:29;:::i;:::-;3831:3;3827:39;3820:46;;3587:285;3495:377;;;;:::o;3878:313::-;3991:4;4029:2;4018:9;4014:18;4006:26;;4078:9;4072:4;4068:20;4064:1;4053:9;4049:17;4042:47;4106:78;4179:4;4170:6;4106:78;:::i;:::-;4098:86;;3878:313;;;;:::o;4197:126::-;4234:7;4274:42;4267:5;4263:54;4252:65;;4197:126;;;:::o;4329:96::-;4366:7;4395:24;4413:5;4395:24;:::i;:::-;4384:35;;4329:96;;;:::o;4431:122::-;4504:24;4522:5;4504:24;:::i;:::-;4497:5;4494:35;4484:63;;4543:1;4540;4533:12;4484:63;4431:122;:::o;4559:139::-;4605:5;4643:6;4630:20;4621:29;;4659:33;4686:5;4659:33;:::i;:::-;4559:139;;;;:::o;4704:77::-;4741:7;4770:5;4759:16;;4704:77;;;:::o;4787:122::-;4860:24;4878:5;4860:24;:::i;:::-;4853:5;4850:35;4840:63;;4899:1;4896;4889:12;4840:63;4787:122;:::o;4915:139::-;4961:5;4999:6;4986:20;4977:29;;5015:33;5042:5;5015:33;:::i;:::-;4915:139;;;;:::o;5060:474::-;5128:6;5136;5185:2;5173:9;5164:7;5160:23;5156:32;5153:119;;;5191:79;;:::i;:::-;5153:119;5311:1;5336:53;5381:7;5372:6;5361:9;5357:22;5336:53;:::i;:::-;5326:63;;5282:117;5438:2;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5409:118;5060:474;;;;;:::o;5540:90::-;5574:7;5617:5;5610:13;5603:21;5592:32;;5540:90;;;:::o;5636:109::-;5717:21;5732:5;5717:21;:::i;:::-;5712:3;5705:34;5636:109;;:::o;5751:210::-;5838:4;5876:2;5865:9;5861:18;5853:26;;5889:65;5951:1;5940:9;5936:17;5927:6;5889:65;:::i;:::-;5751:210;;;;:::o;5967:118::-;6054:24;6072:5;6054:24;:::i;:::-;6049:3;6042:37;5967:118;;:::o;6091:222::-;6184:4;6222:2;6211:9;6207:18;6199:26;;6235:71;6303:1;6292:9;6288:17;6279:6;6235:71;:::i;:::-;6091:222;;;;:::o;6319:619::-;6396:6;6404;6412;6461:2;6449:9;6440:7;6436:23;6432:32;6429:119;;;6467:79;;:::i;:::-;6429:119;6587:1;6612:53;6657:7;6648:6;6637:9;6633:22;6612:53;:::i;:::-;6602:63;;6558:117;6714:2;6740:53;6785:7;6776:6;6765:9;6761:22;6740:53;:::i;:::-;6730:63;;6685:118;6842:2;6868:53;6913:7;6904:6;6893:9;6889:22;6868:53;:::i;:::-;6858:63;;6813:118;6319:619;;;;;:::o;6944:86::-;6979:7;7019:4;7012:5;7008:16;6997:27;;6944:86;;;:::o;7036:112::-;7119:22;7135:5;7119:22;:::i;:::-;7114:3;7107:35;7036:112;;:::o;7154:214::-;7243:4;7281:2;7270:9;7266:18;7258:26;;7294:67;7358:1;7347:9;7343:17;7334:6;7294:67;:::i;:::-;7154:214;;;;:::o;7374:116::-;7444:21;7459:5;7444:21;:::i;:::-;7437:5;7434:32;7424:60;;7480:1;7477;7470:12;7424:60;7374:116;:::o;7496:133::-;7539:5;7577:6;7564:20;7555:29;;7593:30;7617:5;7593:30;:::i;:::-;7496:133;;;;:::o;7635:759::-;7718:6;7726;7734;7742;7791:3;7779:9;7770:7;7766:23;7762:33;7759:120;;;7798:79;;:::i;:::-;7759:120;7918:1;7943:50;7985:7;7976:6;7965:9;7961:22;7943:50;:::i;:::-;7933:60;;7889:114;8042:2;8068:53;8113:7;8104:6;8093:9;8089:22;8068:53;:::i;:::-;8058:63;;8013:118;8170:2;8196:53;8241:7;8232:6;8221:9;8217:22;8196:53;:::i;:::-;8186:63;;8141:118;8298:2;8324:53;8369:7;8360:6;8349:9;8345:22;8324:53;:::i;:::-;8314:63;;8269:118;7635:759;;;;;;;:::o;8400:329::-;8459:6;8508:2;8496:9;8487:7;8483:23;8479:32;8476:119;;;8514:79;;:::i;:::-;8476:119;8634:1;8659:53;8704:7;8695:6;8684:9;8680:22;8659:53;:::i;:::-;8649:63;;8605:117;8400:329;;;;:::o;8735:118::-;8822:24;8840:5;8822:24;:::i;:::-;8817:3;8810:37;8735:118;;:::o;8859:222::-;8952:4;8990:2;8979:9;8975:18;8967:26;;9003:71;9071:1;9060:9;9056:17;9047:6;9003:71;:::i;:::-;8859:222;;;;:::o;9087:329::-;9146:6;9195:2;9183:9;9174:7;9170:23;9166:32;9163:119;;;9201:79;;:::i;:::-;9163:119;9321:1;9346:53;9391:7;9382:6;9371:9;9367:22;9346:53;:::i;:::-;9336:63;;9292:117;9087:329;;;;:::o;9422:323::-;9478:6;9527:2;9515:9;9506:7;9502:23;9498:32;9495:119;;;9533:79;;:::i;:::-;9495:119;9653:1;9678:50;9720:7;9711:6;9700:9;9696:22;9678:50;:::i;:::-;9668:60;;9624:114;9422:323;;;;:::o;9751:474::-;9819:6;9827;9876:2;9864:9;9855:7;9851:23;9847:32;9844:119;;;9882:79;;:::i;:::-;9844:119;10002:1;10027:53;10072:7;10063:6;10052:9;10048:22;10027:53;:::i;:::-;10017:63;;9973:117;10129:2;10155:53;10200:7;10191:6;10180:9;10176:22;10155:53;:::i;:::-;10145:63;;10100:118;9751:474;;;;;:::o;10231:182::-;10371:34;10367:1;10359:6;10355:14;10348:58;10231:182;:::o;10419:366::-;10561:3;10582:67;10646:2;10641:3;10582:67;:::i;:::-;10575:74;;10658:93;10747:3;10658:93;:::i;:::-;10776:2;10771:3;10767:12;10760:19;;10419:366;;;:::o;10791:419::-;10957:4;10995:2;10984:9;10980:18;10972:26;;11044:9;11038:4;11034:20;11030:1;11019:9;11015:17;11008:47;11072:131;11198:4;11072:131;:::i;:::-;11064:139;;10791:419;;;:::o;11216:180::-;11264:77;11261:1;11254:88;11361:4;11358:1;11351:15;11385:4;11382:1;11375:15;11402:320;11446:6;11483:1;11477:4;11473:12;11463:22;;11530:1;11524:4;11520:12;11551:18;11541:81;;11607:4;11599:6;11595:17;11585:27;;11541:81;11669:2;11661:6;11658:14;11638:18;11635:38;11632:84;;11688:18;;:::i;:::-;11632:84;11453:269;11402:320;;;:::o;11728:148::-;11830:11;11867:3;11852:18;;11728:148;;;;:::o;11882:141::-;11931:4;11954:3;11946:11;;11977:3;11974:1;11967:14;12011:4;12008:1;11998:18;11990:26;;11882:141;;;:::o;12053:874::-;12156:3;12193:5;12187:12;12222:36;12248:9;12222:36;:::i;:::-;12274:89;12356:6;12351:3;12274:89;:::i;:::-;12267:96;;12394:1;12383:9;12379:17;12410:1;12405:166;;;;12585:1;12580:341;;;;12372:549;;12405:166;12489:4;12485:9;12474;12470:25;12465:3;12458:38;12551:6;12544:14;12537:22;12529:6;12525:35;12520:3;12516:45;12509:52;;12405:166;;12580:341;12647:38;12679:5;12647:38;:::i;:::-;12707:1;12721:154;12735:6;12732:1;12729:13;12721:154;;;12809:7;12803:14;12799:1;12794:3;12790:11;12783:35;12859:1;12850:7;12846:15;12835:26;;12757:4;12754:1;12750:12;12745:17;;12721:154;;;12904:6;12899:3;12895:16;12888:23;;12587:334;;12372:549;;12160:767;;12053:874;;;;:::o;12933:390::-;13039:3;13067:39;13100:5;13067:39;:::i;:::-;13122:89;13204:6;13199:3;13122:89;:::i;:::-;13115:96;;13220:65;13278:6;13273:3;13266:4;13259:5;13255:16;13220:65;:::i;:::-;13310:6;13305:3;13301:16;13294:23;;13043:280;12933:390;;;;:::o;13329:429::-;13506:3;13528:92;13616:3;13607:6;13528:92;:::i;:::-;13521:99;;13637:95;13728:3;13719:6;13637:95;:::i;:::-;13630:102;;13749:3;13742:10;;13329:429;;;;;:::o;13764:93::-;13801:6;13848:2;13843;13836:5;13832:14;13828:23;13818:33;;13764:93;;;:::o;13863:107::-;13907:8;13957:5;13951:4;13947:16;13926:37;;13863:107;;;;:::o;13976:393::-;14045:6;14095:1;14083:10;14079:18;14118:97;14148:66;14137:9;14118:97;:::i;:::-;14236:39;14266:8;14255:9;14236:39;:::i;:::-;14224:51;;14308:4;14304:9;14297:5;14293:21;14284:30;;14357:4;14347:8;14343:19;14336:5;14333:30;14323:40;;14052:317;;13976:393;;;;;:::o;14375:60::-;14403:3;14424:5;14417:12;;14375:60;;;:::o;14441:142::-;14491:9;14524:53;14542:34;14551:24;14569:5;14551:24;:::i;:::-;14542:34;:::i;:::-;14524:53;:::i;:::-;14511:66;;14441:142;;;:::o;14589:75::-;14632:3;14653:5;14646:12;;14589:75;;;:::o;14670:269::-;14780:39;14811:7;14780:39;:::i;:::-;14841:91;14890:41;14914:16;14890:41;:::i;:::-;14882:6;14875:4;14869:11;14841:91;:::i;:::-;14835:4;14828:105;14746:193;14670:269;;;:::o;14945:73::-;14990:3;14945:73;:::o;15024:189::-;15101:32;;:::i;:::-;15142:65;15200:6;15192;15186:4;15142:65;:::i;:::-;15077:136;15024:189;;:::o;15219:186::-;15279:120;15296:3;15289:5;15286:14;15279:120;;;15350:39;15387:1;15380:5;15350:39;:::i;:::-;15323:1;15316:5;15312:13;15303:22;;15279:120;;;15219:186;;:::o;15411:543::-;15512:2;15507:3;15504:11;15501:446;;;15546:38;15578:5;15546:38;:::i;:::-;15630:29;15648:10;15630:29;:::i;:::-;15620:8;15616:44;15813:2;15801:10;15798:18;15795:49;;;15834:8;15819:23;;15795:49;15857:80;15913:22;15931:3;15913:22;:::i;:::-;15903:8;15899:37;15886:11;15857:80;:::i;:::-;15516:431;;15501:446;15411:543;;;:::o;15960:117::-;16014:8;16064:5;16058:4;16054:16;16033:37;;15960:117;;;;:::o;16083:169::-;16127:6;16160:51;16208:1;16204:6;16196:5;16193:1;16189:13;16160:51;:::i;:::-;16156:56;16241:4;16235;16231:15;16221:25;;16134:118;16083:169;;;;:::o;16257:295::-;16333:4;16479:29;16504:3;16498:4;16479:29;:::i;:::-;16471:37;;16541:3;16538:1;16534:11;16528:4;16525:21;16517:29;;16257:295;;;;:::o;16557:1395::-;16674:37;16707:3;16674:37;:::i;:::-;16776:18;16768:6;16765:30;16762:56;;;16798:18;;:::i;:::-;16762:56;16842:38;16874:4;16868:11;16842:38;:::i;:::-;16927:67;16987:6;16979;16973:4;16927:67;:::i;:::-;17021:1;17045:4;17032:17;;17077:2;17069:6;17066:14;17094:1;17089:618;;;;17751:1;17768:6;17765:77;;;17817:9;17812:3;17808:19;17802:26;17793:35;;17765:77;17868:67;17928:6;17921:5;17868:67;:::i;:::-;17862:4;17855:81;17724:222;17059:887;;17089:618;17141:4;17137:9;17129:6;17125:22;17175:37;17207:4;17175:37;:::i;:::-;17234:1;17248:208;17262:7;17259:1;17256:14;17248:208;;;17341:9;17336:3;17332:19;17326:26;17318:6;17311:42;17392:1;17384:6;17380:14;17370:24;;17439:2;17428:9;17424:18;17411:31;;17285:4;17282:1;17278:12;17273:17;;17248:208;;;17484:6;17475:7;17472:19;17469:179;;;17542:9;17537:3;17533:19;17527:26;17585:48;17627:4;17619:6;17615:17;17604:9;17585:48;:::i;:::-;17577:6;17570:64;17492:156;17469:179;17694:1;17690;17682:6;17678:14;17674:22;17668:4;17661:36;17096:611;;;17059:887;;16649:1303;;;16557:1395;;:::o;17958:227::-;18098:34;18094:1;18086:6;18082:14;18075:58;18167:10;18162:2;18154:6;18150:15;18143:35;17958:227;:::o;18191:366::-;18333:3;18354:67;18418:2;18413:3;18354:67;:::i;:::-;18347:74;;18430:93;18519:3;18430:93;:::i;:::-;18548:2;18543:3;18539:12;18532:19;;18191:366;;;:::o;18563:419::-;18729:4;18767:2;18756:9;18752:18;18744:26;;18816:9;18810:4;18806:20;18802:1;18791:9;18787:17;18780:47;18844:131;18970:4;18844:131;:::i;:::-;18836:139;;18563:419;;;:::o;18988:180::-;19036:77;19033:1;19026:88;19133:4;19130:1;19123:15;19157:4;19154:1;19147:15;19174:191;19214:3;19233:20;19251:1;19233:20;:::i;:::-;19228:25;;19267:20;19285:1;19267:20;:::i;:::-;19262:25;;19310:1;19307;19303:9;19296:16;;19331:3;19328:1;19325:10;19322:36;;;19338:18;;:::i;:::-;19322:36;19174:191;;;;:::o;19371:224::-;19511:34;19507:1;19499:6;19495:14;19488:58;19580:7;19575:2;19567:6;19563:15;19556:32;19371:224;:::o;19601:366::-;19743:3;19764:67;19828:2;19823:3;19764:67;:::i;:::-;19757:74;;19840:93;19929:3;19840:93;:::i;:::-;19958:2;19953:3;19949:12;19942:19;;19601:366;;;:::o;19973:419::-;20139:4;20177:2;20166:9;20162:18;20154:26;;20226:9;20220:4;20216:20;20212:1;20201:9;20197:17;20190:47;20254:131;20380:4;20254:131;:::i;:::-;20246:139;;19973:419;;;:::o;20398:225::-;20538:34;20534:1;20526:6;20522:14;20515:58;20607:8;20602:2;20594:6;20590:15;20583:33;20398:225;:::o;20629:366::-;20771:3;20792:67;20856:2;20851:3;20792:67;:::i;:::-;20785:74;;20868:93;20957:3;20868:93;:::i;:::-;20986:2;20981:3;20977:12;20970:19;;20629:366;;;:::o;21001:419::-;21167:4;21205:2;21194:9;21190:18;21182:26;;21254:9;21248:4;21244:20;21240:1;21229:9;21225:17;21218:47;21282:131;21408:4;21282:131;:::i;:::-;21274:139;;21001:419;;;:::o;21426:223::-;21566:34;21562:1;21554:6;21550:14;21543:58;21635:6;21630:2;21622:6;21618:15;21611:31;21426:223;:::o;21655:366::-;21797:3;21818:67;21882:2;21877:3;21818:67;:::i;:::-;21811:74;;21894:93;21983:3;21894:93;:::i;:::-;22012:2;22007:3;22003:12;21996:19;;21655:366;;;:::o;22027:419::-;22193:4;22231:2;22220:9;22216:18;22208:26;;22280:9;22274:4;22270:20;22266:1;22255:9;22251:17;22244:47;22308:131;22434:4;22308:131;:::i;:::-;22300:139;;22027:419;;;:::o;22452:221::-;22592:34;22588:1;22580:6;22576:14;22569:58;22661:4;22656:2;22648:6;22644:15;22637:29;22452:221;:::o;22679:366::-;22821:3;22842:67;22906:2;22901:3;22842:67;:::i;:::-;22835:74;;22918:93;23007:3;22918:93;:::i;:::-;23036:2;23031:3;23027:12;23020:19;;22679:366;;;:::o;23051:419::-;23217:4;23255:2;23244:9;23240:18;23232:26;;23304:9;23298:4;23294:20;23290:1;23279:9;23275:17;23268:47;23332:131;23458:4;23332:131;:::i;:::-;23324:139;;23051:419;;;:::o;23476:224::-;23616:34;23612:1;23604:6;23600:14;23593:58;23685:7;23680:2;23672:6;23668:15;23661:32;23476:224;:::o;23706:366::-;23848:3;23869:67;23933:2;23928:3;23869:67;:::i;:::-;23862:74;;23945:93;24034:3;23945:93;:::i;:::-;24063:2;24058:3;24054:12;24047:19;;23706:366;;;:::o;24078:419::-;24244:4;24282:2;24271:9;24267:18;24259:26;;24331:9;24325:4;24321:20;24317:1;24306:9;24302:17;24295:47;24359:131;24485:4;24359:131;:::i;:::-;24351:139;;24078:419;;;:::o;24503:222::-;24643:34;24639:1;24631:6;24627:14;24620:58;24712:5;24707:2;24699:6;24695:15;24688:30;24503:222;:::o;24731:366::-;24873:3;24894:67;24958:2;24953:3;24894:67;:::i;:::-;24887:74;;24970:93;25059:3;24970:93;:::i;:::-;25088:2;25083:3;25079:12;25072:19;;24731:366;;;:::o;25103:419::-;25269:4;25307:2;25296:9;25292:18;25284:26;;25356:9;25350:4;25346:20;25342:1;25331:9;25327:17;25320:47;25384:131;25510:4;25384:131;:::i;:::-;25376:139;;25103:419;;;:::o;25528:225::-;25668:34;25664:1;25656:6;25652:14;25645:58;25737:8;25732:2;25724:6;25720:15;25713:33;25528:225;:::o;25759:366::-;25901:3;25922:67;25986:2;25981:3;25922:67;:::i;:::-;25915:74;;25998:93;26087:3;25998:93;:::i;:::-;26116:2;26111:3;26107:12;26100:19;;25759:366;;;:::o;26131:419::-;26297:4;26335:2;26324:9;26320:18;26312:26;;26384:9;26378:4;26374:20;26370:1;26359:9;26355:17;26348:47;26412:131;26538:4;26412:131;:::i;:::-;26404:139;;26131:419;;;:::o;26556:220::-;26696:34;26692:1;26684:6;26680:14;26673:58;26765:3;26760:2;26752:6;26748:15;26741:28;26556:220;:::o;26782:366::-;26924:3;26945:67;27009:2;27004:3;26945:67;:::i;:::-;26938:74;;27021:93;27110:3;27021:93;:::i;:::-;27139:2;27134:3;27130:12;27123:19;;26782:366;;;:::o;27154:419::-;27320:4;27358:2;27347:9;27343:18;27335:26;;27407:9;27401:4;27397:20;27393:1;27382:9;27378:17;27371:47;27435:131;27561:4;27435:131;:::i;:::-;27427:139;;27154:419;;;:::o;27579:221::-;27719:34;27715:1;27707:6;27703:14;27696:58;27788:4;27783:2;27775:6;27771:15;27764:29;27579:221;:::o;27806:366::-;27948:3;27969:67;28033:2;28028:3;27969:67;:::i;:::-;27962:74;;28045:93;28134:3;28045:93;:::i;:::-;28163:2;28158:3;28154:12;28147:19;;27806:366;;;:::o;28178:419::-;28344:4;28382:2;28371:9;28367:18;28359:26;;28431:9;28425:4;28421:20;28417:1;28406:9;28402:17;28395:47;28459:131;28585:4;28459:131;:::i;:::-;28451:139;;28178:419;;;:::o;28603:194::-;28643:4;28663:20;28681:1;28663:20;:::i;:::-;28658:25;;28697:20;28715:1;28697:20;:::i;:::-;28692:25;;28741:1;28738;28734:9;28726:17;;28765:1;28759:4;28756:11;28753:37;;;28770:18;;:::i;:::-;28753:37;28603:194;;;;:::o;28803:173::-;28943:25;28939:1;28931:6;28927:14;28920:49;28803:173;:::o;28982:366::-;29124:3;29145:67;29209:2;29204:3;29145:67;:::i;:::-;29138:74;;29221:93;29310:3;29221:93;:::i;:::-;29339:2;29334:3;29330:12;29323:19;;28982:366;;;:::o;29354:419::-;29520:4;29558:2;29547:9;29543:18;29535:26;;29607:9;29601:4;29597:20;29593:1;29582:9;29578:17;29571:47;29635:131;29761:4;29635:131;:::i;:::-;29627:139;;29354:419;;;:::o;29779:156::-;29919:8;29915:1;29907:6;29903:14;29896:32;29779:156;:::o;29941:365::-;30083:3;30104:66;30168:1;30163:3;30104:66;:::i;:::-;30097:73;;30179:93;30268:3;30179:93;:::i;:::-;30297:2;30292:3;30288:12;30281:19;;29941:365;;;:::o;30312:419::-;30478:4;30516:2;30505:9;30501:18;30493:26;;30565:9;30559:4;30555:20;30551:1;30540:9;30536:17;30529:47;30593:131;30719:4;30593:131;:::i;:::-;30585:139;;30312:419;;;:::o

Swarm Source

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