ETH Price: $3,592.86 (+4.96%)

Token

ERC20 ***
 

Overview

Max Total Supply

1,000 ERC20 ***

Holders

40

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
CHAIN69

Compiler Version
v0.8.25+commit.b61c2a91

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]

// 1000 stable Collectibles here for you in unstable times

// Minimum BUy will always be minimum 1 $U to maintain buy pressure

// 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;


// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;


contract CHAIN69 is Ownable, ERC20 {
    bool public limited;
    uint256 public maxHoldingAmount;
    uint256 public minHoldingAmount;
    address public uniswapV2Pair;
    mapping(address => bool) public blacklists;


    uint background_color;
    uint body;
    uint body_color;
    uint facial_hair;
    uint facial_hair_color;
    uint shirt_1;
    uint shirt_1_color;
    uint shirt_2;
    uint shirt_2_color;
    uint shirt_3;
    uint shirt_3_color;
    uint nose;
    uint nose_color;
    uint mouth;
    uint mouth_color;
    uint eyes_base_color;
    uint eyes;
    uint eyes_color;
    uint hair;
    uint hair_color;
    uint hat;
    uint hat_color;
    uint accessories;
    uint accessories_color;
    uint mask;
    uint mask_color;
  

    uint256 public maxHoldingIncrease; // in basis points, e.g., 100 = 1%
    uint256 public lastMaxHoldingUpdate;

    // Constructor with additional parameters for initial max holding and increase rate
    constructor(uint256 _totalSupply, uint256 _maxHoldingIncrease) ERC20("Usdcism", "U") {
        _mint(msg.sender, _totalSupply);
        maxHoldingIncrease = _maxHoldingIncrease;
        lastMaxHoldingUpdate = block.timestamp;
    }

    // Function to blacklist or unblacklist addresses
    function blacklist(address _address, bool _isBlacklisting) external onlyOwner {
        blacklists[_address] = _isBlacklisting;
    }

    // Function to set trading rules including max and min holding amounts
    function start(bool _limited, address _uniswapV2Pair, uint256 _maxHoldingAmount, uint256 _minHoldingAmount) external onlyOwner {
        limited = _limited;
        uniswapV2Pair = _uniswapV2Pair;
        maxHoldingAmount = _maxHoldingAmount;
        minHoldingAmount = _minHoldingAmount;
    }

    // Internal function to update the max holding amount dynamically every minute
    function reiterateMaxHoldingAmouunt() internal {
        if (block.timestamp > lastMaxHoldingUpdate + 1 minutes) {
            uint256 minutesElapsed = (block.timestamp - lastMaxHoldingUpdate) / 1 minutes;
            uint256 increase = maxHoldingAmount * maxHoldingIncrease / 10000 * minutesElapsed;
            maxHoldingAmount += increase;
            lastMaxHoldingUpdate = block.timestamp;
        }
    }

    // Override function to add checks for max holding amount and blacklisting
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) override internal virtual {
        require(!blacklists[to] && !blacklists[from], "Blacklisted");

        // Update the max holding amount dynamically
        reiterateMaxHoldingAmouunt();

        if (uniswapV2Pair == address(0)) {
            require(from == owner() || to == owner(), "trading is not started");
            return;
        }

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

    // Function to burn tokens from the caller's account
    function burn(uint256 value) external {
        _burn(msg.sender, value);
    }

    function checkBreeded(address holder) external {
        


    }

    function getHolder() external {

    }

    function set_Background_Color(uint _background_color) external onlyOwner {
        background_color = _background_color;
    }

    function set_Body(uint _body) external onlyOwner {
        body = _body;
    }

    function set_Body_Color(uint _body_color) external onlyOwner {
        body_color = _body_color;
    }

    function set_Facial_Hair(uint _facial_hair) external onlyOwner {
        facial_hair = _facial_hair;
    }

    function set_Facial_Hair_Color(uint _facial_hair_color) external onlyOwner {
        facial_hair_color = _facial_hair_color;
    }

    function set_Shirt_1(uint _shirt_1) external onlyOwner {
        shirt_1 = _shirt_1;
    }

    function set_Shirt_1_Color(uint _shirt_1_color) external onlyOwner {
        shirt_1_color = _shirt_1_color;
    }

    function set_Shirt_2(uint _shirt_2) external onlyOwner {
        shirt_2 = _shirt_2;
    }

    function set_Shirt_2_Color(uint _shirt_2_color) external onlyOwner {
        shirt_2_color = _shirt_2_color;
    }

    function set_Shirt_3(uint _shirt_3) external onlyOwner {
        shirt_3 = _shirt_3;
    }

    function set_Shirt_3_Color(uint _shirt_3_color) external onlyOwner {
        shirt_3_color = _shirt_3_color;
    }

    function set_Nose(uint _nose) external onlyOwner {
        nose = _nose;
    }

    function set_Nose_Color(uint _nose_color) external onlyOwner {
        nose_color = _nose_color;
    }

    function set_Mouth(uint _mouth) external onlyOwner {
        mouth = _mouth;
    }

    function set_Mouth_Color(uint _mouth_color) external onlyOwner {
        mouth_color = _mouth_color;
    }

    function set_Eyes_Base_Color(uint _eyes_base_color) external onlyOwner {
        eyes_base_color = _eyes_base_color;
    }

    function set_Eyes(uint _eyes) external onlyOwner {
        eyes = _eyes;
    }

    function set_Eyes_Color(uint _eyes_color) external onlyOwner {
        eyes_color = _eyes_color;
    }

    function set_Hair(uint _hair) external onlyOwner {
        hair = _hair;
    }

    function set_Hair_Color(uint _hair_color) external onlyOwner {
        hair_color = _hair_color;
    }

    function set_Hat(uint _hat) external onlyOwner {
        hat = _hat;
    }

    function set_Hat_Color(uint _hat_color) external onlyOwner {
        hat_color = _hat_color;
    }

    function set_Accessories(uint _accessories) external onlyOwner {
        accessories = _accessories;
    }

    function set_Accessories_Color(uint _accessories_color) external onlyOwner {
        accessories_color = _accessories_color;
    }

    function set_Mask(uint _mask) external onlyOwner {
        mask = _mask;
    }

    function set_Mask_Color(uint _mask_color) external onlyOwner {
        mask_color = _mask_color;
    }

        
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"_totalSupply","type":"uint256"},{"internalType":"uint256","name":"_maxHoldingIncrease","type":"uint256"}],"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":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isBlacklisting","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"checkBreeded","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":[],"name":"getHolder","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":"lastMaxHoldingUpdate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"maxHoldingIncrease","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":"uint256","name":"_accessories","type":"uint256"}],"name":"set_Accessories","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_accessories_color","type":"uint256"}],"name":"set_Accessories_Color","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_background_color","type":"uint256"}],"name":"set_Background_Color","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_body","type":"uint256"}],"name":"set_Body","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_body_color","type":"uint256"}],"name":"set_Body_Color","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_eyes","type":"uint256"}],"name":"set_Eyes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_eyes_base_color","type":"uint256"}],"name":"set_Eyes_Base_Color","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_eyes_color","type":"uint256"}],"name":"set_Eyes_Color","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_facial_hair","type":"uint256"}],"name":"set_Facial_Hair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_facial_hair_color","type":"uint256"}],"name":"set_Facial_Hair_Color","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_hair","type":"uint256"}],"name":"set_Hair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_hair_color","type":"uint256"}],"name":"set_Hair_Color","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_hat","type":"uint256"}],"name":"set_Hat","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_hat_color","type":"uint256"}],"name":"set_Hat_Color","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mask","type":"uint256"}],"name":"set_Mask","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mask_color","type":"uint256"}],"name":"set_Mask_Color","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mouth","type":"uint256"}],"name":"set_Mouth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mouth_color","type":"uint256"}],"name":"set_Mouth_Color","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_nose","type":"uint256"}],"name":"set_Nose","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_nose_color","type":"uint256"}],"name":"set_Nose_Color","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_shirt_1","type":"uint256"}],"name":"set_Shirt_1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_shirt_1_color","type":"uint256"}],"name":"set_Shirt_1_Color","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_shirt_2","type":"uint256"}],"name":"set_Shirt_2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_shirt_2_color","type":"uint256"}],"name":"set_Shirt_2_Color","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_shirt_3","type":"uint256"}],"name":"set_Shirt_3","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_shirt_3_color","type":"uint256"}],"name":"set_Shirt_3_Color","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":"start","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"}]

608060405234801561000f575f80fd5b5060405161440c38038061440c83398181016040528101906100319190610751565b6040518060400160405280600781526020017f5573646369736d000000000000000000000000000000000000000000000000008152506040518060400160405280600181526020017f55000000000000000000000000000000000000000000000000000000000000008152506100b96100ae61010060201b60201c565b61010760201b60201c565b81600490816100c891906109c0565b5080600590816100d891906109c0565b5050506100eb33836101c860201b60201c565b80602581905550426026819055505050610d98565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022d90610ae9565b60405180910390fd5b6102475f838361032c60201b60201c565b8060035f8282546102589190610b34565b925050819055508060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546102ab9190610b34565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161030f9190610b76565b60405180910390a36103285f838361062660201b60201c565b5050565b600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156103ca5750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b610409576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040090610bd9565b60405180910390fd5b61041761062b60201b60201c565b5f73ffffffffffffffffffffffffffffffffffffffff1660095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361052e576104796106ad60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806104ea57506104bb6106ad60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b610529576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052090610c41565b60405180910390fd5b610621565b60065f9054906101000a900460ff168015610595575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561062057600754816105ad846106d460201b60201c565b6105b79190610b34565b111580156105e05750600854816105d3846106d460201b60201c565b6105dd9190610b34565b10155b61061f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061690610ca9565b60405180910390fd5b5b5b505050565b505050565b603c60265461063a9190610b34565b4211156106ab575f603c602654426106529190610cc7565b61065c9190610d27565b90505f816127106025546007546106739190610d57565b61067d9190610d27565b6106879190610d57565b90508060075f82825461069a9190610b34565b925050819055504260268190555050505b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f80fd5b5f819050919050565b6107308161071e565b811461073a575f80fd5b50565b5f8151905061074b81610727565b92915050565b5f80604083850312156107675761076661071a565b5b5f6107748582860161073d565b92505060206107858582860161073d565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061080a57607f821691505b60208210810361081d5761081c6107c6565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261087f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610844565b6108898683610844565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6108c46108bf6108ba8461071e565b6108a1565b61071e565b9050919050565b5f819050919050565b6108dd836108aa565b6108f16108e9826108cb565b848454610850565b825550505050565b5f90565b6109056108f9565b6109108184846108d4565b505050565b5b81811015610933576109285f826108fd565b600181019050610916565b5050565b601f8211156109785761094981610823565b61095284610835565b81016020851015610961578190505b61097561096d85610835565b830182610915565b50505b505050565b5f82821c905092915050565b5f6109985f198460080261097d565b1980831691505092915050565b5f6109b08383610989565b9150826002028217905092915050565b6109c98261078f565b67ffffffffffffffff8111156109e2576109e1610799565b5b6109ec82546107f3565b6109f7828285610937565b5f60209050601f831160018114610a28575f8415610a16578287015190505b610a2085826109a5565b865550610a87565b601f198416610a3686610823565b5f5b82811015610a5d57848901518255600182019150602085019450602081019050610a38565b86831015610a7a5784890151610a76601f891682610989565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610ad3601f83610a8f565b9150610ade82610a9f565b602082019050919050565b5f6020820190508181035f830152610b0081610ac7565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610b3e8261071e565b9150610b498361071e565b9250828201905080821115610b6157610b60610b07565b5b92915050565b610b708161071e565b82525050565b5f602082019050610b895f830184610b67565b92915050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f610bc3600b83610a8f565b9150610bce82610b8f565b602082019050919050565b5f6020820190508181035f830152610bf081610bb7565b9050919050565b7f74726164696e67206973206e6f742073746172746564000000000000000000005f82015250565b5f610c2b601683610a8f565b9150610c3682610bf7565b602082019050919050565b5f6020820190508181035f830152610c5881610c1f565b9050919050565b7f466f7262696400000000000000000000000000000000000000000000000000005f82015250565b5f610c93600683610a8f565b9150610c9e82610c5f565b602082019050919050565b5f6020820190508181035f830152610cc081610c87565b9050919050565b5f610cd18261071e565b9150610cdc8361071e565b9250828203905081811115610cf457610cf3610b07565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610d318261071e565b9150610d3c8361071e565b925082610d4c57610d4b610cfa565b5b828204905092915050565b5f610d618261071e565b9150610d6c8361071e565b9250828202610d7a8161071e565b91508282048414831517610d9157610d90610b07565b5b5092915050565b61366780610da55f395ff3fe608060405234801561000f575f80fd5b506004361061030a575f3560e01c806370e527b81161019b578063bbb61d66116100e7578063dd62ed3e116100a0578063ebe07bb41161007a578063ebe07bb4146108e0578063f024cdef146108fc578063f2fde38b14610918578063f885994c146109345761030a565b8063dd62ed3e14610878578063e30d9041146108a8578063e4fcff13146108c45761030a565b8063bbb61d66146107ce578063bbc280e2146107ea578063caea712214610808578063cbc2ff7214610824578063d2c3b9f714610840578063d40576e21461085c5761030a565b80638d3641661161015457806395d89b411161012e57806395d89b4114610734578063a457c2d714610752578063a9059cbb14610782578063ae7fd529146107b25761030a565b80638d364166146106de5780638da5cb5b146106fa578063948e13c7146107185761030a565b806370e527b814610644578063715018a6146106605780637ec48d771461066a57806380d8a90214610686578063860a32ec146106a257806389f9a1d3146106c05761030a565b806329f3e7561161025a57806349bd5a5e116102135780636368d987116101ed5780636368d987146105c057806363e695e4146105dc578063695b0531146105f857806370a08231146106145761030a565b806349bd5a5e1461056a57806351b8b09e146105885780635952bd63146105a45761030a565b806329f3e756146104ac578063313ce567146104c857806332652b79146104e65780633950935114610502578063404e51291461053257806342966c681461054e5761030a565b806316c02129116102c75780631b1581aa116102a15780631b1581aa146104265780631c1046a61461044257806323b872dd146104605780632988f007146104905761030a565b806316c02129146103ba57806318160ddd146103ea5780631ab99e12146104085761030a565b806302e4cda51461030e57806304b49b381461032a57806306fdde0314610346578063095ea7b3146103645780630c05b3c5146103945780630cc6c42f1461039e575b5f80fd5b610328600480360381019061032391906129e8565b610950565b005b610344600480360381019061033f91906129e8565b6109d6565b005b61034e610a5c565b60405161035b9190612a83565b60405180910390f35b61037e60048036038101906103799190612afd565b610aec565b60405161038b9190612b55565b60405180910390f35b61039c610b09565b005b6103b860048036038101906103b391906129e8565b610b0b565b005b6103d460048036038101906103cf9190612b6e565b610b91565b6040516103e19190612b55565b60405180910390f35b6103f2610bae565b6040516103ff9190612ba8565b60405180910390f35b610410610bb7565b60405161041d9190612ba8565b60405180910390f35b610440600480360381019061043b91906129e8565b610bbd565b005b61044a610c43565b6040516104579190612ba8565b60405180910390f35b61047a60048036038101906104759190612bc1565b610c49565b6040516104879190612b55565b60405180910390f35b6104aa60048036038101906104a591906129e8565b610d3b565b005b6104c660048036038101906104c191906129e8565b610dc1565b005b6104d0610e47565b6040516104dd9190612c2c565b60405180910390f35b61050060048036038101906104fb91906129e8565b610e4f565b005b61051c60048036038101906105179190612afd565b610ed5565b6040516105299190612b55565b60405180910390f35b61054c60048036038101906105479190612c6f565b610f7c565b005b610568600480360381019061056391906129e8565b611050565b005b61057261105d565b60405161057f9190612cbc565b60405180910390f35b6105a2600480360381019061059d91906129e8565b611082565b005b6105be60048036038101906105b991906129e8565b611108565b005b6105da60048036038101906105d591906129e8565b61118e565b005b6105f660048036038101906105f19190612b6e565b611214565b005b610612600480360381019061060d9190612cd5565b611217565b005b61062e60048036038101906106299190612b6e565b611300565b60405161063b9190612ba8565b60405180910390f35b61065e600480360381019061065991906129e8565b611346565b005b6106686113cc565b005b610684600480360381019061067f91906129e8565b611453565b005b6106a0600480360381019061069b91906129e8565b6114d9565b005b6106aa61155f565b6040516106b79190612b55565b60405180910390f35b6106c8611571565b6040516106d59190612ba8565b60405180910390f35b6106f860048036038101906106f391906129e8565b611577565b005b6107026115fd565b60405161070f9190612cbc565b60405180910390f35b610732600480360381019061072d91906129e8565b611624565b005b61073c6116aa565b6040516107499190612a83565b60405180910390f35b61076c60048036038101906107679190612afd565b61173a565b6040516107799190612b55565b60405180910390f35b61079c60048036038101906107979190612afd565b611820565b6040516107a99190612b55565b60405180910390f35b6107cc60048036038101906107c791906129e8565b61183d565b005b6107e860048036038101906107e391906129e8565b6118c3565b005b6107f2611949565b6040516107ff9190612ba8565b60405180910390f35b610822600480360381019061081d91906129e8565b61194f565b005b61083e600480360381019061083991906129e8565b6119d5565b005b61085a600480360381019061085591906129e8565b611a5b565b005b610876600480360381019061087191906129e8565b611ae1565b005b610892600480360381019061088d9190612d39565b611b67565b60405161089f9190612ba8565b60405180910390f35b6108c260048036038101906108bd91906129e8565b611be9565b005b6108de60048036038101906108d991906129e8565b611c6f565b005b6108fa60048036038101906108f591906129e8565b611cf5565b005b610916600480360381019061091191906129e8565b611d7b565b005b610932600480360381019061092d9190612b6e565b611e01565b005b61094e600480360381019061094991906129e8565b611ef7565b005b610958611f7d565b73ffffffffffffffffffffffffffffffffffffffff166109766115fd565b73ffffffffffffffffffffffffffffffffffffffff16146109cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c390612dc1565b60405180910390fd5b8060188190555050565b6109de611f7d565b73ffffffffffffffffffffffffffffffffffffffff166109fc6115fd565b73ffffffffffffffffffffffffffffffffffffffff1614610a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4990612dc1565b60405180910390fd5b80601f8190555050565b606060048054610a6b90612e0c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9790612e0c565b8015610ae25780601f10610ab957610100808354040283529160200191610ae2565b820191905f5260205f20905b815481529060010190602001808311610ac557829003601f168201915b5050505050905090565b5f610aff610af8611f7d565b8484611f84565b6001905092915050565b565b610b13611f7d565b73ffffffffffffffffffffffffffffffffffffffff16610b316115fd565b73ffffffffffffffffffffffffffffffffffffffff1614610b87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7e90612dc1565b60405180910390fd5b80601d8190555050565b600a602052805f5260405f205f915054906101000a900460ff1681565b5f600354905090565b60085481565b610bc5611f7d565b73ffffffffffffffffffffffffffffffffffffffff16610be36115fd565b73ffffffffffffffffffffffffffffffffffffffff1614610c39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3090612dc1565b60405180910390fd5b80601b8190555050565b60255481565b5f610c55848484612147565b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610c9c611f7d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610d1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1290612eac565b60405180910390fd5b610d2f85610d27611f7d565b858403611f84565b60019150509392505050565b610d43611f7d565b73ffffffffffffffffffffffffffffffffffffffff16610d616115fd565b73ffffffffffffffffffffffffffffffffffffffff1614610db7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dae90612dc1565b60405180910390fd5b80600e8190555050565b610dc9611f7d565b73ffffffffffffffffffffffffffffffffffffffff16610de76115fd565b73ffffffffffffffffffffffffffffffffffffffff1614610e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3490612dc1565b60405180910390fd5b80601a8190555050565b5f6012905090565b610e57611f7d565b73ffffffffffffffffffffffffffffffffffffffff16610e756115fd565b73ffffffffffffffffffffffffffffffffffffffff1614610ecb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec290612dc1565b60405180910390fd5b8060228190555050565b5f610f72610ee1611f7d565b848460025f610eee611f7d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f6d9190612ef7565b611f84565b6001905092915050565b610f84611f7d565b73ffffffffffffffffffffffffffffffffffffffff16610fa26115fd565b73ffffffffffffffffffffffffffffffffffffffff1614610ff8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fef90612dc1565b60405180910390fd5b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b61105a33826123bf565b50565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61108a611f7d565b73ffffffffffffffffffffffffffffffffffffffff166110a86115fd565b73ffffffffffffffffffffffffffffffffffffffff16146110fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f590612dc1565b60405180910390fd5b8060128190555050565b611110611f7d565b73ffffffffffffffffffffffffffffffffffffffff1661112e6115fd565b73ffffffffffffffffffffffffffffffffffffffff1614611184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117b90612dc1565b60405180910390fd5b8060108190555050565b611196611f7d565b73ffffffffffffffffffffffffffffffffffffffff166111b46115fd565b73ffffffffffffffffffffffffffffffffffffffff161461120a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120190612dc1565b60405180910390fd5b80601c8190555050565b50565b61121f611f7d565b73ffffffffffffffffffffffffffffffffffffffff1661123d6115fd565b73ffffffffffffffffffffffffffffffffffffffff1614611293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128a90612dc1565b60405180910390fd5b8360065f6101000a81548160ff0219169083151502179055508260095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816007819055508060088190555050505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61134e611f7d565b73ffffffffffffffffffffffffffffffffffffffff1661136c6115fd565b73ffffffffffffffffffffffffffffffffffffffff16146113c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b990612dc1565b60405180910390fd5b80600f8190555050565b6113d4611f7d565b73ffffffffffffffffffffffffffffffffffffffff166113f26115fd565b73ffffffffffffffffffffffffffffffffffffffff1614611448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143f90612dc1565b60405180910390fd5b6114515f61258d565b565b61145b611f7d565b73ffffffffffffffffffffffffffffffffffffffff166114796115fd565b73ffffffffffffffffffffffffffffffffffffffff16146114cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c690612dc1565b60405180910390fd5b8060198190555050565b6114e1611f7d565b73ffffffffffffffffffffffffffffffffffffffff166114ff6115fd565b73ffffffffffffffffffffffffffffffffffffffff1614611555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154c90612dc1565b60405180910390fd5b8060138190555050565b60065f9054906101000a900460ff1681565b60075481565b61157f611f7d565b73ffffffffffffffffffffffffffffffffffffffff1661159d6115fd565b73ffffffffffffffffffffffffffffffffffffffff16146115f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ea90612dc1565b60405180910390fd5b8060118190555050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61162c611f7d565b73ffffffffffffffffffffffffffffffffffffffff1661164a6115fd565b73ffffffffffffffffffffffffffffffffffffffff16146116a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169790612dc1565b60405180910390fd5b80601e8190555050565b6060600580546116b990612e0c565b80601f01602080910402602001604051908101604052809291908181526020018280546116e590612e0c565b80156117305780601f1061170757610100808354040283529160200191611730565b820191905f5260205f20905b81548152906001019060200180831161171357829003601f168201915b5050505050905090565b5f8060025f611747611f7d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611801576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f890612f9a565b60405180910390fd5b61181561180c611f7d565b85858403611f84565b600191505092915050565b5f61183361182c611f7d565b8484612147565b6001905092915050565b611845611f7d565b73ffffffffffffffffffffffffffffffffffffffff166118636115fd565b73ffffffffffffffffffffffffffffffffffffffff16146118b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b090612dc1565b60405180910390fd5b8060248190555050565b6118cb611f7d565b73ffffffffffffffffffffffffffffffffffffffff166118e96115fd565b73ffffffffffffffffffffffffffffffffffffffff161461193f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193690612dc1565b60405180910390fd5b8060158190555050565b60265481565b611957611f7d565b73ffffffffffffffffffffffffffffffffffffffff166119756115fd565b73ffffffffffffffffffffffffffffffffffffffff16146119cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c290612dc1565b60405180910390fd5b8060168190555050565b6119dd611f7d565b73ffffffffffffffffffffffffffffffffffffffff166119fb6115fd565b73ffffffffffffffffffffffffffffffffffffffff1614611a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4890612dc1565b60405180910390fd5b8060238190555050565b611a63611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611a816115fd565b73ffffffffffffffffffffffffffffffffffffffff1614611ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ace90612dc1565b60405180910390fd5b8060178190555050565b611ae9611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611b076115fd565b73ffffffffffffffffffffffffffffffffffffffff1614611b5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5490612dc1565b60405180910390fd5b80600d8190555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611bf1611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611c0f6115fd565b73ffffffffffffffffffffffffffffffffffffffff1614611c65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5c90612dc1565b60405180910390fd5b80600c8190555050565b611c77611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611c956115fd565b73ffffffffffffffffffffffffffffffffffffffff1614611ceb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce290612dc1565b60405180910390fd5b8060208190555050565b611cfd611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611d1b6115fd565b73ffffffffffffffffffffffffffffffffffffffff1614611d71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6890612dc1565b60405180910390fd5b8060148190555050565b611d83611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611da16115fd565b73ffffffffffffffffffffffffffffffffffffffff1614611df7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dee90612dc1565b60405180910390fd5b8060218190555050565b611e09611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611e276115fd565b73ffffffffffffffffffffffffffffffffffffffff1614611e7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7490612dc1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611eeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee290613028565b60405180910390fd5b611ef48161258d565b50565b611eff611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611f1d6115fd565b73ffffffffffffffffffffffffffffffffffffffff1614611f73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6a90612dc1565b60405180910390fd5b80600b8190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ff2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe9906130b6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612060576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205790613144565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161213a9190612ba8565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ac906131d2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612223576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221a90613260565b60405180910390fd5b61222e83838361264e565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156122b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a9906132ee565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546123429190612ef7565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123a69190612ba8565b60405180910390a36123b984848461292a565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361242d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124249061337c565b60405180910390fd5b612438825f8361264e565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156124bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b39061340a565b60405180910390fd5b81810360015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160035f8282546125119190613428565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125759190612ba8565b60405180910390a3612588835f8461292a565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156126ec5750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61272b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612722906134a5565b60405180910390fd5b61273361292f565b5f73ffffffffffffffffffffffffffffffffffffffff1660095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361283e5761278f6115fd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806127fa57506127cb6115fd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b612839576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128309061350d565b60405180910390fd5b612925565b60065f9054906101000a900460ff1680156128a5575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561292457600754816128b784611300565b6128c19190612ef7565b111580156128e45750600854816128d784611300565b6128e19190612ef7565b10155b612923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291a90613575565b60405180910390fd5b5b5b505050565b505050565b603c60265461293e9190612ef7565b4211156129af575f603c602654426129569190613428565b61296091906135c0565b90505f8161271060255460075461297791906135f0565b61298191906135c0565b61298b91906135f0565b90508060075f82825461299e9190612ef7565b925050819055504260268190555050505b565b5f80fd5b5f819050919050565b6129c7816129b5565b81146129d1575f80fd5b50565b5f813590506129e2816129be565b92915050565b5f602082840312156129fd576129fc6129b1565b5b5f612a0a848285016129d4565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612a5582612a13565b612a5f8185612a1d565b9350612a6f818560208601612a2d565b612a7881612a3b565b840191505092915050565b5f6020820190508181035f830152612a9b8184612a4b565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612acc82612aa3565b9050919050565b612adc81612ac2565b8114612ae6575f80fd5b50565b5f81359050612af781612ad3565b92915050565b5f8060408385031215612b1357612b126129b1565b5b5f612b2085828601612ae9565b9250506020612b31858286016129d4565b9150509250929050565b5f8115159050919050565b612b4f81612b3b565b82525050565b5f602082019050612b685f830184612b46565b92915050565b5f60208284031215612b8357612b826129b1565b5b5f612b9084828501612ae9565b91505092915050565b612ba2816129b5565b82525050565b5f602082019050612bbb5f830184612b99565b92915050565b5f805f60608486031215612bd857612bd76129b1565b5b5f612be586828701612ae9565b9350506020612bf686828701612ae9565b9250506040612c07868287016129d4565b9150509250925092565b5f60ff82169050919050565b612c2681612c11565b82525050565b5f602082019050612c3f5f830184612c1d565b92915050565b612c4e81612b3b565b8114612c58575f80fd5b50565b5f81359050612c6981612c45565b92915050565b5f8060408385031215612c8557612c846129b1565b5b5f612c9285828601612ae9565b9250506020612ca385828601612c5b565b9150509250929050565b612cb681612ac2565b82525050565b5f602082019050612ccf5f830184612cad565b92915050565b5f805f8060808587031215612ced57612cec6129b1565b5b5f612cfa87828801612c5b565b9450506020612d0b87828801612ae9565b9350506040612d1c878288016129d4565b9250506060612d2d878288016129d4565b91505092959194509250565b5f8060408385031215612d4f57612d4e6129b1565b5b5f612d5c85828601612ae9565b9250506020612d6d85828601612ae9565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612dab602083612a1d565b9150612db682612d77565b602082019050919050565b5f6020820190508181035f830152612dd881612d9f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612e2357607f821691505b602082108103612e3657612e35612ddf565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612e96602883612a1d565b9150612ea182612e3c565b604082019050919050565b5f6020820190508181035f830152612ec381612e8a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612f01826129b5565b9150612f0c836129b5565b9250828201905080821115612f2457612f23612eca565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612f84602583612a1d565b9150612f8f82612f2a565b604082019050919050565b5f6020820190508181035f830152612fb181612f78565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613012602683612a1d565b915061301d82612fb8565b604082019050919050565b5f6020820190508181035f83015261303f81613006565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6130a0602483612a1d565b91506130ab82613046565b604082019050919050565b5f6020820190508181035f8301526130cd81613094565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61312e602283612a1d565b9150613139826130d4565b604082019050919050565b5f6020820190508181035f83015261315b81613122565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6131bc602583612a1d565b91506131c782613162565b604082019050919050565b5f6020820190508181035f8301526131e9816131b0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61324a602383612a1d565b9150613255826131f0565b604082019050919050565b5f6020820190508181035f8301526132778161323e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6132d8602683612a1d565b91506132e38261327e565b604082019050919050565b5f6020820190508181035f830152613305816132cc565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f613366602183612a1d565b91506133718261330c565b604082019050919050565b5f6020820190508181035f8301526133938161335a565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133f4602283612a1d565b91506133ff8261339a565b604082019050919050565b5f6020820190508181035f830152613421816133e8565b9050919050565b5f613432826129b5565b915061343d836129b5565b925082820390508181111561345557613454612eca565b5b92915050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f61348f600b83612a1d565b915061349a8261345b565b602082019050919050565b5f6020820190508181035f8301526134bc81613483565b9050919050565b7f74726164696e67206973206e6f742073746172746564000000000000000000005f82015250565b5f6134f7601683612a1d565b9150613502826134c3565b602082019050919050565b5f6020820190508181035f830152613524816134eb565b9050919050565b7f466f7262696400000000000000000000000000000000000000000000000000005f82015250565b5f61355f600683612a1d565b915061356a8261352b565b602082019050919050565b5f6020820190508181035f83015261358c81613553565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6135ca826129b5565b91506135d5836129b5565b9250826135e5576135e4613593565b5b828204905092915050565b5f6135fa826129b5565b9150613605836129b5565b9250828202613613816129b5565b9150828204841483151761362a57613629612eca565b5b509291505056fea2646970667358221220674d3acc67f92c567f93ff5126535ac31ba9f1b449ccc7614cde2a2441c0cbb664736f6c6343000819003300000000000000000000000000000000000000000000003635c9adc5dea000000000000000000000000000000000000000000000000000000000000000000bb8

Deployed Bytecode

0x608060405234801561000f575f80fd5b506004361061030a575f3560e01c806370e527b81161019b578063bbb61d66116100e7578063dd62ed3e116100a0578063ebe07bb41161007a578063ebe07bb4146108e0578063f024cdef146108fc578063f2fde38b14610918578063f885994c146109345761030a565b8063dd62ed3e14610878578063e30d9041146108a8578063e4fcff13146108c45761030a565b8063bbb61d66146107ce578063bbc280e2146107ea578063caea712214610808578063cbc2ff7214610824578063d2c3b9f714610840578063d40576e21461085c5761030a565b80638d3641661161015457806395d89b411161012e57806395d89b4114610734578063a457c2d714610752578063a9059cbb14610782578063ae7fd529146107b25761030a565b80638d364166146106de5780638da5cb5b146106fa578063948e13c7146107185761030a565b806370e527b814610644578063715018a6146106605780637ec48d771461066a57806380d8a90214610686578063860a32ec146106a257806389f9a1d3146106c05761030a565b806329f3e7561161025a57806349bd5a5e116102135780636368d987116101ed5780636368d987146105c057806363e695e4146105dc578063695b0531146105f857806370a08231146106145761030a565b806349bd5a5e1461056a57806351b8b09e146105885780635952bd63146105a45761030a565b806329f3e756146104ac578063313ce567146104c857806332652b79146104e65780633950935114610502578063404e51291461053257806342966c681461054e5761030a565b806316c02129116102c75780631b1581aa116102a15780631b1581aa146104265780631c1046a61461044257806323b872dd146104605780632988f007146104905761030a565b806316c02129146103ba57806318160ddd146103ea5780631ab99e12146104085761030a565b806302e4cda51461030e57806304b49b381461032a57806306fdde0314610346578063095ea7b3146103645780630c05b3c5146103945780630cc6c42f1461039e575b5f80fd5b610328600480360381019061032391906129e8565b610950565b005b610344600480360381019061033f91906129e8565b6109d6565b005b61034e610a5c565b60405161035b9190612a83565b60405180910390f35b61037e60048036038101906103799190612afd565b610aec565b60405161038b9190612b55565b60405180910390f35b61039c610b09565b005b6103b860048036038101906103b391906129e8565b610b0b565b005b6103d460048036038101906103cf9190612b6e565b610b91565b6040516103e19190612b55565b60405180910390f35b6103f2610bae565b6040516103ff9190612ba8565b60405180910390f35b610410610bb7565b60405161041d9190612ba8565b60405180910390f35b610440600480360381019061043b91906129e8565b610bbd565b005b61044a610c43565b6040516104579190612ba8565b60405180910390f35b61047a60048036038101906104759190612bc1565b610c49565b6040516104879190612b55565b60405180910390f35b6104aa60048036038101906104a591906129e8565b610d3b565b005b6104c660048036038101906104c191906129e8565b610dc1565b005b6104d0610e47565b6040516104dd9190612c2c565b60405180910390f35b61050060048036038101906104fb91906129e8565b610e4f565b005b61051c60048036038101906105179190612afd565b610ed5565b6040516105299190612b55565b60405180910390f35b61054c60048036038101906105479190612c6f565b610f7c565b005b610568600480360381019061056391906129e8565b611050565b005b61057261105d565b60405161057f9190612cbc565b60405180910390f35b6105a2600480360381019061059d91906129e8565b611082565b005b6105be60048036038101906105b991906129e8565b611108565b005b6105da60048036038101906105d591906129e8565b61118e565b005b6105f660048036038101906105f19190612b6e565b611214565b005b610612600480360381019061060d9190612cd5565b611217565b005b61062e60048036038101906106299190612b6e565b611300565b60405161063b9190612ba8565b60405180910390f35b61065e600480360381019061065991906129e8565b611346565b005b6106686113cc565b005b610684600480360381019061067f91906129e8565b611453565b005b6106a0600480360381019061069b91906129e8565b6114d9565b005b6106aa61155f565b6040516106b79190612b55565b60405180910390f35b6106c8611571565b6040516106d59190612ba8565b60405180910390f35b6106f860048036038101906106f391906129e8565b611577565b005b6107026115fd565b60405161070f9190612cbc565b60405180910390f35b610732600480360381019061072d91906129e8565b611624565b005b61073c6116aa565b6040516107499190612a83565b60405180910390f35b61076c60048036038101906107679190612afd565b61173a565b6040516107799190612b55565b60405180910390f35b61079c60048036038101906107979190612afd565b611820565b6040516107a99190612b55565b60405180910390f35b6107cc60048036038101906107c791906129e8565b61183d565b005b6107e860048036038101906107e391906129e8565b6118c3565b005b6107f2611949565b6040516107ff9190612ba8565b60405180910390f35b610822600480360381019061081d91906129e8565b61194f565b005b61083e600480360381019061083991906129e8565b6119d5565b005b61085a600480360381019061085591906129e8565b611a5b565b005b610876600480360381019061087191906129e8565b611ae1565b005b610892600480360381019061088d9190612d39565b611b67565b60405161089f9190612ba8565b60405180910390f35b6108c260048036038101906108bd91906129e8565b611be9565b005b6108de60048036038101906108d991906129e8565b611c6f565b005b6108fa60048036038101906108f591906129e8565b611cf5565b005b610916600480360381019061091191906129e8565b611d7b565b005b610932600480360381019061092d9190612b6e565b611e01565b005b61094e600480360381019061094991906129e8565b611ef7565b005b610958611f7d565b73ffffffffffffffffffffffffffffffffffffffff166109766115fd565b73ffffffffffffffffffffffffffffffffffffffff16146109cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c390612dc1565b60405180910390fd5b8060188190555050565b6109de611f7d565b73ffffffffffffffffffffffffffffffffffffffff166109fc6115fd565b73ffffffffffffffffffffffffffffffffffffffff1614610a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4990612dc1565b60405180910390fd5b80601f8190555050565b606060048054610a6b90612e0c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9790612e0c565b8015610ae25780601f10610ab957610100808354040283529160200191610ae2565b820191905f5260205f20905b815481529060010190602001808311610ac557829003601f168201915b5050505050905090565b5f610aff610af8611f7d565b8484611f84565b6001905092915050565b565b610b13611f7d565b73ffffffffffffffffffffffffffffffffffffffff16610b316115fd565b73ffffffffffffffffffffffffffffffffffffffff1614610b87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7e90612dc1565b60405180910390fd5b80601d8190555050565b600a602052805f5260405f205f915054906101000a900460ff1681565b5f600354905090565b60085481565b610bc5611f7d565b73ffffffffffffffffffffffffffffffffffffffff16610be36115fd565b73ffffffffffffffffffffffffffffffffffffffff1614610c39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3090612dc1565b60405180910390fd5b80601b8190555050565b60255481565b5f610c55848484612147565b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610c9c611f7d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610d1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1290612eac565b60405180910390fd5b610d2f85610d27611f7d565b858403611f84565b60019150509392505050565b610d43611f7d565b73ffffffffffffffffffffffffffffffffffffffff16610d616115fd565b73ffffffffffffffffffffffffffffffffffffffff1614610db7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dae90612dc1565b60405180910390fd5b80600e8190555050565b610dc9611f7d565b73ffffffffffffffffffffffffffffffffffffffff16610de76115fd565b73ffffffffffffffffffffffffffffffffffffffff1614610e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3490612dc1565b60405180910390fd5b80601a8190555050565b5f6012905090565b610e57611f7d565b73ffffffffffffffffffffffffffffffffffffffff16610e756115fd565b73ffffffffffffffffffffffffffffffffffffffff1614610ecb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec290612dc1565b60405180910390fd5b8060228190555050565b5f610f72610ee1611f7d565b848460025f610eee611f7d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f6d9190612ef7565b611f84565b6001905092915050565b610f84611f7d565b73ffffffffffffffffffffffffffffffffffffffff16610fa26115fd565b73ffffffffffffffffffffffffffffffffffffffff1614610ff8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fef90612dc1565b60405180910390fd5b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b61105a33826123bf565b50565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61108a611f7d565b73ffffffffffffffffffffffffffffffffffffffff166110a86115fd565b73ffffffffffffffffffffffffffffffffffffffff16146110fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f590612dc1565b60405180910390fd5b8060128190555050565b611110611f7d565b73ffffffffffffffffffffffffffffffffffffffff1661112e6115fd565b73ffffffffffffffffffffffffffffffffffffffff1614611184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117b90612dc1565b60405180910390fd5b8060108190555050565b611196611f7d565b73ffffffffffffffffffffffffffffffffffffffff166111b46115fd565b73ffffffffffffffffffffffffffffffffffffffff161461120a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120190612dc1565b60405180910390fd5b80601c8190555050565b50565b61121f611f7d565b73ffffffffffffffffffffffffffffffffffffffff1661123d6115fd565b73ffffffffffffffffffffffffffffffffffffffff1614611293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128a90612dc1565b60405180910390fd5b8360065f6101000a81548160ff0219169083151502179055508260095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816007819055508060088190555050505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61134e611f7d565b73ffffffffffffffffffffffffffffffffffffffff1661136c6115fd565b73ffffffffffffffffffffffffffffffffffffffff16146113c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b990612dc1565b60405180910390fd5b80600f8190555050565b6113d4611f7d565b73ffffffffffffffffffffffffffffffffffffffff166113f26115fd565b73ffffffffffffffffffffffffffffffffffffffff1614611448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143f90612dc1565b60405180910390fd5b6114515f61258d565b565b61145b611f7d565b73ffffffffffffffffffffffffffffffffffffffff166114796115fd565b73ffffffffffffffffffffffffffffffffffffffff16146114cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c690612dc1565b60405180910390fd5b8060198190555050565b6114e1611f7d565b73ffffffffffffffffffffffffffffffffffffffff166114ff6115fd565b73ffffffffffffffffffffffffffffffffffffffff1614611555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154c90612dc1565b60405180910390fd5b8060138190555050565b60065f9054906101000a900460ff1681565b60075481565b61157f611f7d565b73ffffffffffffffffffffffffffffffffffffffff1661159d6115fd565b73ffffffffffffffffffffffffffffffffffffffff16146115f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ea90612dc1565b60405180910390fd5b8060118190555050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61162c611f7d565b73ffffffffffffffffffffffffffffffffffffffff1661164a6115fd565b73ffffffffffffffffffffffffffffffffffffffff16146116a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169790612dc1565b60405180910390fd5b80601e8190555050565b6060600580546116b990612e0c565b80601f01602080910402602001604051908101604052809291908181526020018280546116e590612e0c565b80156117305780601f1061170757610100808354040283529160200191611730565b820191905f5260205f20905b81548152906001019060200180831161171357829003601f168201915b5050505050905090565b5f8060025f611747611f7d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611801576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f890612f9a565b60405180910390fd5b61181561180c611f7d565b85858403611f84565b600191505092915050565b5f61183361182c611f7d565b8484612147565b6001905092915050565b611845611f7d565b73ffffffffffffffffffffffffffffffffffffffff166118636115fd565b73ffffffffffffffffffffffffffffffffffffffff16146118b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b090612dc1565b60405180910390fd5b8060248190555050565b6118cb611f7d565b73ffffffffffffffffffffffffffffffffffffffff166118e96115fd565b73ffffffffffffffffffffffffffffffffffffffff161461193f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193690612dc1565b60405180910390fd5b8060158190555050565b60265481565b611957611f7d565b73ffffffffffffffffffffffffffffffffffffffff166119756115fd565b73ffffffffffffffffffffffffffffffffffffffff16146119cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c290612dc1565b60405180910390fd5b8060168190555050565b6119dd611f7d565b73ffffffffffffffffffffffffffffffffffffffff166119fb6115fd565b73ffffffffffffffffffffffffffffffffffffffff1614611a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4890612dc1565b60405180910390fd5b8060238190555050565b611a63611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611a816115fd565b73ffffffffffffffffffffffffffffffffffffffff1614611ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ace90612dc1565b60405180910390fd5b8060178190555050565b611ae9611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611b076115fd565b73ffffffffffffffffffffffffffffffffffffffff1614611b5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5490612dc1565b60405180910390fd5b80600d8190555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611bf1611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611c0f6115fd565b73ffffffffffffffffffffffffffffffffffffffff1614611c65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5c90612dc1565b60405180910390fd5b80600c8190555050565b611c77611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611c956115fd565b73ffffffffffffffffffffffffffffffffffffffff1614611ceb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce290612dc1565b60405180910390fd5b8060208190555050565b611cfd611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611d1b6115fd565b73ffffffffffffffffffffffffffffffffffffffff1614611d71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6890612dc1565b60405180910390fd5b8060148190555050565b611d83611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611da16115fd565b73ffffffffffffffffffffffffffffffffffffffff1614611df7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dee90612dc1565b60405180910390fd5b8060218190555050565b611e09611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611e276115fd565b73ffffffffffffffffffffffffffffffffffffffff1614611e7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7490612dc1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611eeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee290613028565b60405180910390fd5b611ef48161258d565b50565b611eff611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611f1d6115fd565b73ffffffffffffffffffffffffffffffffffffffff1614611f73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6a90612dc1565b60405180910390fd5b80600b8190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ff2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe9906130b6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612060576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205790613144565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161213a9190612ba8565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ac906131d2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612223576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221a90613260565b60405180910390fd5b61222e83838361264e565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156122b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a9906132ee565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546123429190612ef7565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123a69190612ba8565b60405180910390a36123b984848461292a565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361242d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124249061337c565b60405180910390fd5b612438825f8361264e565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156124bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b39061340a565b60405180910390fd5b81810360015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160035f8282546125119190613428565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125759190612ba8565b60405180910390a3612588835f8461292a565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156126ec5750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61272b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612722906134a5565b60405180910390fd5b61273361292f565b5f73ffffffffffffffffffffffffffffffffffffffff1660095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361283e5761278f6115fd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806127fa57506127cb6115fd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b612839576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128309061350d565b60405180910390fd5b612925565b60065f9054906101000a900460ff1680156128a5575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561292457600754816128b784611300565b6128c19190612ef7565b111580156128e45750600854816128d784611300565b6128e19190612ef7565b10155b612923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291a90613575565b60405180910390fd5b5b5b505050565b505050565b603c60265461293e9190612ef7565b4211156129af575f603c602654426129569190613428565b61296091906135c0565b90505f8161271060255460075461297791906135f0565b61298191906135c0565b61298b91906135f0565b90508060075f82825461299e9190612ef7565b925050819055504260268190555050505b565b5f80fd5b5f819050919050565b6129c7816129b5565b81146129d1575f80fd5b50565b5f813590506129e2816129be565b92915050565b5f602082840312156129fd576129fc6129b1565b5b5f612a0a848285016129d4565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612a5582612a13565b612a5f8185612a1d565b9350612a6f818560208601612a2d565b612a7881612a3b565b840191505092915050565b5f6020820190508181035f830152612a9b8184612a4b565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612acc82612aa3565b9050919050565b612adc81612ac2565b8114612ae6575f80fd5b50565b5f81359050612af781612ad3565b92915050565b5f8060408385031215612b1357612b126129b1565b5b5f612b2085828601612ae9565b9250506020612b31858286016129d4565b9150509250929050565b5f8115159050919050565b612b4f81612b3b565b82525050565b5f602082019050612b685f830184612b46565b92915050565b5f60208284031215612b8357612b826129b1565b5b5f612b9084828501612ae9565b91505092915050565b612ba2816129b5565b82525050565b5f602082019050612bbb5f830184612b99565b92915050565b5f805f60608486031215612bd857612bd76129b1565b5b5f612be586828701612ae9565b9350506020612bf686828701612ae9565b9250506040612c07868287016129d4565b9150509250925092565b5f60ff82169050919050565b612c2681612c11565b82525050565b5f602082019050612c3f5f830184612c1d565b92915050565b612c4e81612b3b565b8114612c58575f80fd5b50565b5f81359050612c6981612c45565b92915050565b5f8060408385031215612c8557612c846129b1565b5b5f612c9285828601612ae9565b9250506020612ca385828601612c5b565b9150509250929050565b612cb681612ac2565b82525050565b5f602082019050612ccf5f830184612cad565b92915050565b5f805f8060808587031215612ced57612cec6129b1565b5b5f612cfa87828801612c5b565b9450506020612d0b87828801612ae9565b9350506040612d1c878288016129d4565b9250506060612d2d878288016129d4565b91505092959194509250565b5f8060408385031215612d4f57612d4e6129b1565b5b5f612d5c85828601612ae9565b9250506020612d6d85828601612ae9565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612dab602083612a1d565b9150612db682612d77565b602082019050919050565b5f6020820190508181035f830152612dd881612d9f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612e2357607f821691505b602082108103612e3657612e35612ddf565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612e96602883612a1d565b9150612ea182612e3c565b604082019050919050565b5f6020820190508181035f830152612ec381612e8a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612f01826129b5565b9150612f0c836129b5565b9250828201905080821115612f2457612f23612eca565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612f84602583612a1d565b9150612f8f82612f2a565b604082019050919050565b5f6020820190508181035f830152612fb181612f78565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613012602683612a1d565b915061301d82612fb8565b604082019050919050565b5f6020820190508181035f83015261303f81613006565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6130a0602483612a1d565b91506130ab82613046565b604082019050919050565b5f6020820190508181035f8301526130cd81613094565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61312e602283612a1d565b9150613139826130d4565b604082019050919050565b5f6020820190508181035f83015261315b81613122565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6131bc602583612a1d565b91506131c782613162565b604082019050919050565b5f6020820190508181035f8301526131e9816131b0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61324a602383612a1d565b9150613255826131f0565b604082019050919050565b5f6020820190508181035f8301526132778161323e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6132d8602683612a1d565b91506132e38261327e565b604082019050919050565b5f6020820190508181035f830152613305816132cc565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f613366602183612a1d565b91506133718261330c565b604082019050919050565b5f6020820190508181035f8301526133938161335a565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133f4602283612a1d565b91506133ff8261339a565b604082019050919050565b5f6020820190508181035f830152613421816133e8565b9050919050565b5f613432826129b5565b915061343d836129b5565b925082820390508181111561345557613454612eca565b5b92915050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f61348f600b83612a1d565b915061349a8261345b565b602082019050919050565b5f6020820190508181035f8301526134bc81613483565b9050919050565b7f74726164696e67206973206e6f742073746172746564000000000000000000005f82015250565b5f6134f7601683612a1d565b9150613502826134c3565b602082019050919050565b5f6020820190508181035f830152613524816134eb565b9050919050565b7f466f7262696400000000000000000000000000000000000000000000000000005f82015250565b5f61355f600683612a1d565b915061356a8261352b565b602082019050919050565b5f6020820190508181035f83015261358c81613553565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6135ca826129b5565b91506135d5836129b5565b9250826135e5576135e4613593565b5b828204905092915050565b5f6135fa826129b5565b9150613605836129b5565b9250828202613613816129b5565b9150828204841483151761362a57613629612eca565b5b509291505056fea2646970667358221220674d3acc67f92c567f93ff5126535ac31ba9f1b449ccc7614cde2a2441c0cbb664736f6c63430008190033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000003635c9adc5dea000000000000000000000000000000000000000000000000000000000000000000bb8

-----Decoded View---------------
Arg [0] : _totalSupply (uint256): 1000000000000000000000
Arg [1] : _maxHoldingIncrease (uint256): 3000

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000003635c9adc5dea00000
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000bb8


Deployed Bytecode Sourcemap

19509:6217:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24331:84;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25071:76;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9416:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11583:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22819:40;;;:::i;:::-;;24871:80;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19688:42;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10536:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19615:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24671:80;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20304:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12234:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23203:108;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24539:124;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10378:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25379:132;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13135:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20810:135;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22653:81;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19653:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23683:92;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23459;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24759:104;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22742:69;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21029:299;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10707:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23319:132;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2813:103;;;:::i;:::-;;24423:108;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23783:116;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19551:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19577:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23559:116;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2162:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24959:104;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9635;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13853:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11047:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25607:104;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24007:116;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20379:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24131:80;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25519;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24219:104;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23091;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11285:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23003:80;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25155:100;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23907:92;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25263:108;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3071:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22867:128;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24331:84;2393:12;:10;:12::i;:::-;2382:23;;:7;:5;:7::i;:::-;:23;;;2374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24401:6:::1;24393:5;:14;;;;24331:84:::0;:::o;25071:76::-;2393:12;:10;:12::i;:::-;2382:23;;:7;:5;:7::i;:::-;:23;;;2374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25135:4:::1;25129:3;:10;;;;25071:76:::0;:::o;9416:100::-;9470:13;9503:5;9496:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9416:100;:::o;11583:169::-;11666:4;11683:39;11692:12;:10;:12::i;:::-;11706:7;11715:6;11683:8;:39::i;:::-;11740:4;11733:11;;11583:169;;;;:::o;22819:40::-;:::o;24871:80::-;2393:12;:10;:12::i;:::-;2382:23;;:7;:5;:7::i;:::-;:23;;;2374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24938:5:::1;24931:4;:12;;;;24871:80:::0;:::o;19688:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;10536:108::-;10597:7;10624:12;;10617:19;;10536:108;:::o;19615:31::-;;;;:::o;24671:80::-;2393:12;:10;:12::i;:::-;2382:23;;:7;:5;:7::i;:::-;:23;;;2374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24738:5:::1;24731:4;:12;;;;24671:80:::0;:::o;20304:33::-;;;;:::o;12234:492::-;12374:4;12391:36;12401:6;12409:9;12420:6;12391:9;:36::i;:::-;12440:24;12467:11;:19;12479:6;12467:19;;;;;;;;;;;;;;;:33;12487:12;:10;:12::i;:::-;12467:33;;;;;;;;;;;;;;;;12440:60;;12539:6;12519:16;:26;;12511:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12626:57;12635:6;12643:12;:10;:12::i;:::-;12676:6;12657:16;:25;12626:8;:57::i;:::-;12714:4;12707:11;;;12234:492;;;;;:::o;23203:108::-;2393:12;:10;:12::i;:::-;2382:23;;:7;:5;:7::i;:::-;:23;;;2374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23291:12:::1;23277:11;:26;;;;23203:108:::0;:::o;24539:124::-;2393:12;:10;:12::i;:::-;2382:23;;:7;:5;:7::i;:::-;:23;;;2374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24639:16:::1;24621:15;:34;;;;24539:124:::0;:::o;10378:93::-;10436:5;10461:2;10454:9;;10378:93;:::o;25379:132::-;2393:12;:10;:12::i;:::-;2382:23;;:7;:5;:7::i;:::-;:23;;;2374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25485:18:::1;25465:17;:38;;;;25379:132:::0;:::o;13135:215::-;13223:4;13240:80;13249:12;:10;:12::i;:::-;13263:7;13309:10;13272:11;:25;13284:12;:10;:12::i;:::-;13272:25;;;;;;;;;;;;;;;:34;13298:7;13272:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;13240:8;:80::i;:::-;13338:4;13331:11;;13135:215;;;;:::o;20810:135::-;2393:12;:10;:12::i;:::-;2382:23;;:7;:5;:7::i;:::-;:23;;;2374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20922:15:::1;20899:10;:20;20910:8;20899:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;20810:135:::0;;:::o;22653:81::-;22702:24;22708:10;22720:5;22702;:24::i;:::-;22653:81;:::o;19653:28::-;;;;;;;;;;;;;:::o;23683:92::-;2393:12;:10;:12::i;:::-;2382:23;;:7;:5;:7::i;:::-;:23;;;2374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23759:8:::1;23749:7;:18;;;;23683:92:::0;:::o;23459:::-;2393:12;:10;:12::i;:::-;2382:23;;:7;:5;:7::i;:::-;:23;;;2374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23535:8:::1;23525:7;:18;;;;23459:92:::0;:::o;24759:104::-;2393:12;:10;:12::i;:::-;2382:23;;:7;:5;:7::i;:::-;:23;;;2374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24844:11:::1;24831:10;:24;;;;24759:104:::0;:::o;22742:69::-;;:::o;21029:299::-;2393:12;:10;:12::i;:::-;2382:23;;:7;:5;:7::i;:::-;:23;;;2374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21177:8:::1;21167:7;;:18;;;;;;;;;;;;;;;;;;21212:14;21196:13;;:30;;;;;;;;;;;;;;;;;;21256:17;21237:16;:36;;;;21303:17;21284:16;:36;;;;21029:299:::0;;;;:::o;10707:127::-;10781:7;10808:9;:18;10818:7;10808:18;;;;;;;;;;;;;;;;10801:25;;10707:127;;;:::o;23319:132::-;2393:12;:10;:12::i;:::-;2382:23;;:7;:5;:7::i;:::-;:23;;;2374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23425:18:::1;23405:17;:38;;;;23319:132:::0;:::o;2813:103::-;2393:12;:10;:12::i;:::-;2382:23;;:7;:5;:7::i;:::-;:23;;;2374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2878:30:::1;2905:1;2878:18;:30::i;:::-;2813:103::o:0;24423:108::-;2393:12;:10;:12::i;:::-;2382:23;;:7;:5;:7::i;:::-;:23;;;2374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24511:12:::1;24497:11;:26;;;;24423:108:::0;:::o;23783:116::-;2393:12;:10;:12::i;:::-;2382:23;;:7;:5;:7::i;:::-;:23;;;2374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23877:14:::1;23861:13;:30;;;;23783:116:::0;:::o;19551:19::-;;;;;;;;;;;;;:::o;19577:31::-;;;;:::o;23559:116::-;2393:12;:10;:12::i;:::-;2382:23;;:7;:5;:7::i;:::-;:23;;;2374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23653:14:::1;23637:13;:30;;;;23559:116:::0;:::o;2162:87::-;2208:7;2235:6;;;;;;;;;;;2228:13;;2162:87;:::o;24959:104::-;2393:12;:10;:12::i;:::-;2382:23;;:7;:5;:7::i;:::-;:23;;;2374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25044:11:::1;25031:10;:24;;;;24959:104:::0;:::o;9635:::-;9691:13;9724:7;9717:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9635:104;:::o;13853:413::-;13946:4;13963:24;13990:11;:25;14002:12;:10;:12::i;:::-;13990:25;;;;;;;;;;;;;;;:34;14016:7;13990:34;;;;;;;;;;;;;;;;13963:61;;14063:15;14043:16;:35;;14035:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14156:67;14165:12;:10;:12::i;:::-;14179:7;14207:15;14188:16;:34;14156:8;:67::i;:::-;14254:4;14247:11;;;13853:413;;;;:::o;11047:175::-;11133:4;11150:42;11160:12;:10;:12::i;:::-;11174:9;11185:6;11150:9;:42::i;:::-;11210:4;11203:11;;11047:175;;;;:::o;25607:104::-;2393:12;:10;:12::i;:::-;2382:23;;:7;:5;:7::i;:::-;:23;;;2374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25692:11:::1;25679:10;:24;;;;25607:104:::0;:::o;24007:116::-;2393:12;:10;:12::i;:::-;2382:23;;:7;:5;:7::i;:::-;:23;;;2374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24101:14:::1;24085:13;:30;;;;24007:116:::0;:::o;20379:35::-;;;;:::o;24131:80::-;2393:12;:10;:12::i;:::-;2382:23;;:7;:5;:7::i;:::-;:23;;;2374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24198:5:::1;24191:4;:12;;;;24131:80:::0;:::o;25519:::-;2393:12;:10;:12::i;:::-;2382:23;;:7;:5;:7::i;:::-;:23;;;2374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25586:5:::1;25579:4;:12;;;;25519:80:::0;:::o;24219:104::-;2393:12;:10;:12::i;:::-;2382:23;;:7;:5;:7::i;:::-;:23;;;2374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24304:11:::1;24291:10;:24;;;;24219:104:::0;:::o;23091:::-;2393:12;:10;:12::i;:::-;2382:23;;:7;:5;:7::i;:::-;:23;;;2374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23176:11:::1;23163:10;:24;;;;23091:104:::0;:::o;11285:151::-;11374:7;11401:11;:18;11413:5;11401:18;;;;;;;;;;;;;;;:27;11420:7;11401:27;;;;;;;;;;;;;;;;11394:34;;11285:151;;;;:::o;23003:80::-;2393:12;:10;:12::i;:::-;2382:23;;:7;:5;:7::i;:::-;:23;;;2374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23070:5:::1;23063:4;:12;;;;23003:80:::0;:::o;25155:100::-;2393:12;:10;:12::i;:::-;2382:23;;:7;:5;:7::i;:::-;:23;;;2374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25237:10:::1;25225:9;:22;;;;25155:100:::0;:::o;23907:92::-;2393:12;:10;:12::i;:::-;2382:23;;:7;:5;:7::i;:::-;:23;;;2374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23983:8:::1;23973:7;:18;;;;23907:92:::0;:::o;25263:108::-;2393:12;:10;:12::i;:::-;2382:23;;:7;:5;:7::i;:::-;:23;;;2374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25351:12:::1;25337:11;:26;;;;25263:108:::0;:::o;3071:201::-;2393:12;:10;:12::i;:::-;2382:23;;:7;:5;:7::i;:::-;:23;;;2374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3180:1:::1;3160:22;;:8;:22;;::::0;3152:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3236:28;3255:8;3236:18;:28::i;:::-;3071:201:::0;:::o;22867:128::-;2393:12;:10;:12::i;:::-;2382:23;;:7;:5;:7::i;:::-;:23;;;2374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22970:17:::1;22951:16;:36;;;;22867:128:::0;:::o;880:98::-;933:7;960:10;953:17;;880:98;:::o;17537:380::-;17690:1;17673:19;;:5;:19;;;17665:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17771:1;17752:21;;:7;:21;;;17744:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17855:6;17825:11;:18;17837:5;17825:18;;;;;;;;;;;;;;;:27;17844:7;17825:27;;;;;;;;;;;;;;;:36;;;;17893:7;17877:32;;17886:5;17877:32;;;17902:6;17877:32;;;;;;:::i;:::-;;;;;;;;17537:380;;;:::o;14756:733::-;14914:1;14896:20;;:6;:20;;;14888:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14998:1;14977:23;;:9;:23;;;14969:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15053:47;15074:6;15082:9;15093:6;15053:20;:47::i;:::-;15113:21;15137:9;:17;15147:6;15137:17;;;;;;;;;;;;;;;;15113:41;;15190:6;15173:13;:23;;15165:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;15311:6;15295:13;:22;15275:9;:17;15285:6;15275:17;;;;;;;;;;;;;;;:42;;;;15363:6;15339:9;:20;15349:9;15339:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;15404:9;15387:35;;15396:6;15387:35;;;15415:6;15387:35;;;;;;:::i;:::-;;;;;;;;15435:46;15455:6;15463:9;15474:6;15435:19;:46::i;:::-;14877:612;14756:733;;;:::o;16508:591::-;16611:1;16592:21;;:7;:21;;;16584:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16664:49;16685:7;16702:1;16706:6;16664:20;:49::i;:::-;16726:22;16751:9;:18;16761:7;16751:18;;;;;;;;;;;;;;;;16726:43;;16806:6;16788:14;:24;;16780:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16925:6;16908:14;:23;16887:9;:18;16897:7;16887:18;;;;;;;;;;;;;;;:44;;;;16969:6;16953:12;;:22;;;;;;;:::i;:::-;;;;;;;;17019:1;16993:37;;17002:7;16993:37;;;17023:6;16993:37;;;;;;:::i;:::-;;;;;;;;17043:48;17063:7;17080:1;17084:6;17043:19;:48::i;:::-;16573:526;16508:591;;:::o;3432:191::-;3506:16;3525:6;;;;;;;;;;;3506:25;;3551:8;3542:6;;:17;;;;;;;;;;;;;;;;;;3606:8;3575:40;;3596:8;3575:40;;;;;;;;;;;;3495:128;3432:191;:::o;21925:662::-;22077:10;:14;22088:2;22077:14;;;;;;;;;;;;;;;;;;;;;;;;;22076:15;:36;;;;;22096:10;:16;22107:4;22096:16;;;;;;;;;;;;;;;;;;;;;;;;;22095:17;22076:36;22068:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;22195:28;:26;:28::i;:::-;22265:1;22240:27;;:13;;;;;;;;;;;:27;;;22236:148;;22300:7;:5;:7::i;:::-;22292:15;;:4;:15;;;:32;;;;22317:7;:5;:7::i;:::-;22311:13;;:2;:13;;;22292:32;22284:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22366:7;;22236:148;22400:7;;;;;;;;;;;:32;;;;;22419:13;;;;;;;;;;;22411:21;;:4;:21;;;22400:32;22396:184;;;22489:16;;22479:6;22457:19;22473:2;22457:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;:100;;;;;22541:16;;22531:6;22509:19;22525:2;22509:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;22457:100;22449:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;22396:184;21925:662;;;;:::o;19246:124::-;;;;:::o;21420:417::-;21523:9;21500:20;;:32;;;;:::i;:::-;21482:15;:50;21478:352;;;21549:22;21617:9;21593:20;;21575:15;:38;;;;:::i;:::-;21574:52;;;;:::i;:::-;21549:77;;21641:16;21708:14;21700:5;21679:18;;21660:16;;:37;;;;:::i;:::-;:45;;;;:::i;:::-;:62;;;;:::i;:::-;21641:81;;21757:8;21737:16;;:28;;;;;;;:::i;:::-;;;;;;;;21803:15;21780:20;:38;;;;21534:296;;21478:352;21420:417::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:99::-;1077:6;1111:5;1105:12;1095:22;;1025:99;;;:::o;1130:169::-;1214:11;1248:6;1243:3;1236:19;1288:4;1283:3;1279:14;1264:29;;1130:169;;;;:::o;1305:139::-;1394:6;1389:3;1384;1378:23;1435:1;1426:6;1421:3;1417:16;1410:27;1305:139;;;:::o;1450:102::-;1491:6;1542:2;1538:7;1533:2;1526:5;1522:14;1518:28;1508:38;;1450:102;;;:::o;1558:377::-;1646:3;1674:39;1707:5;1674:39;:::i;:::-;1729:71;1793:6;1788:3;1729:71;:::i;:::-;1722:78;;1809:65;1867:6;1862:3;1855:4;1848:5;1844:16;1809:65;:::i;:::-;1899:29;1921:6;1899:29;:::i;:::-;1894:3;1890:39;1883:46;;1650:285;1558:377;;;;:::o;1941:313::-;2054:4;2092:2;2081:9;2077:18;2069:26;;2141:9;2135:4;2131:20;2127:1;2116:9;2112:17;2105:47;2169:78;2242:4;2233:6;2169:78;:::i;:::-;2161:86;;1941:313;;;;:::o;2260:126::-;2297:7;2337:42;2330:5;2326:54;2315:65;;2260:126;;;:::o;2392:96::-;2429:7;2458:24;2476:5;2458:24;:::i;:::-;2447:35;;2392:96;;;:::o;2494:122::-;2567:24;2585:5;2567:24;:::i;:::-;2560:5;2557:35;2547:63;;2606:1;2603;2596:12;2547:63;2494:122;:::o;2622:139::-;2668:5;2706:6;2693:20;2684:29;;2722:33;2749:5;2722:33;:::i;:::-;2622:139;;;;:::o;2767:474::-;2835:6;2843;2892:2;2880:9;2871:7;2867:23;2863:32;2860:119;;;2898:79;;:::i;:::-;2860:119;3018:1;3043:53;3088:7;3079:6;3068:9;3064:22;3043:53;:::i;:::-;3033:63;;2989:117;3145:2;3171:53;3216:7;3207:6;3196:9;3192:22;3171:53;:::i;:::-;3161:63;;3116:118;2767:474;;;;;:::o;3247:90::-;3281:7;3324:5;3317:13;3310:21;3299:32;;3247:90;;;:::o;3343:109::-;3424:21;3439:5;3424:21;:::i;:::-;3419:3;3412:34;3343:109;;:::o;3458:210::-;3545:4;3583:2;3572:9;3568:18;3560:26;;3596:65;3658:1;3647:9;3643:17;3634:6;3596:65;:::i;:::-;3458:210;;;;:::o;3674:329::-;3733:6;3782:2;3770:9;3761:7;3757:23;3753:32;3750:119;;;3788:79;;:::i;:::-;3750:119;3908:1;3933:53;3978:7;3969:6;3958:9;3954:22;3933:53;:::i;:::-;3923:63;;3879:117;3674:329;;;;:::o;4009:118::-;4096:24;4114:5;4096:24;:::i;:::-;4091:3;4084:37;4009:118;;:::o;4133:222::-;4226:4;4264:2;4253:9;4249:18;4241:26;;4277:71;4345:1;4334:9;4330:17;4321:6;4277:71;:::i;:::-;4133:222;;;;:::o;4361:619::-;4438:6;4446;4454;4503:2;4491:9;4482:7;4478:23;4474:32;4471:119;;;4509:79;;:::i;:::-;4471:119;4629:1;4654:53;4699:7;4690:6;4679:9;4675:22;4654:53;:::i;:::-;4644:63;;4600:117;4756:2;4782:53;4827:7;4818:6;4807:9;4803:22;4782:53;:::i;:::-;4772:63;;4727:118;4884:2;4910:53;4955:7;4946:6;4935:9;4931:22;4910:53;:::i;:::-;4900:63;;4855:118;4361:619;;;;;:::o;4986:86::-;5021:7;5061:4;5054:5;5050:16;5039:27;;4986:86;;;:::o;5078:112::-;5161:22;5177:5;5161:22;:::i;:::-;5156:3;5149:35;5078:112;;:::o;5196:214::-;5285:4;5323:2;5312:9;5308:18;5300:26;;5336:67;5400:1;5389:9;5385:17;5376:6;5336:67;:::i;:::-;5196:214;;;;:::o;5416:116::-;5486:21;5501:5;5486:21;:::i;:::-;5479:5;5476:32;5466:60;;5522:1;5519;5512:12;5466:60;5416:116;:::o;5538:133::-;5581:5;5619:6;5606:20;5597:29;;5635:30;5659:5;5635:30;:::i;:::-;5538:133;;;;:::o;5677:468::-;5742:6;5750;5799:2;5787:9;5778:7;5774:23;5770:32;5767:119;;;5805:79;;:::i;:::-;5767:119;5925:1;5950:53;5995:7;5986:6;5975:9;5971:22;5950:53;:::i;:::-;5940:63;;5896:117;6052:2;6078:50;6120:7;6111:6;6100:9;6096:22;6078:50;:::i;:::-;6068:60;;6023:115;5677:468;;;;;:::o;6151:118::-;6238:24;6256:5;6238:24;:::i;:::-;6233:3;6226:37;6151:118;;:::o;6275:222::-;6368:4;6406:2;6395:9;6391:18;6383:26;;6419:71;6487:1;6476:9;6472:17;6463:6;6419:71;:::i;:::-;6275:222;;;;:::o;6503:759::-;6586:6;6594;6602;6610;6659:3;6647:9;6638:7;6634:23;6630:33;6627:120;;;6666:79;;:::i;:::-;6627:120;6786:1;6811:50;6853:7;6844:6;6833:9;6829:22;6811:50;:::i;:::-;6801:60;;6757:114;6910:2;6936:53;6981:7;6972:6;6961:9;6957:22;6936:53;:::i;:::-;6926:63;;6881:118;7038:2;7064:53;7109:7;7100:6;7089:9;7085:22;7064:53;:::i;:::-;7054:63;;7009:118;7166:2;7192:53;7237:7;7228:6;7217:9;7213:22;7192:53;:::i;:::-;7182:63;;7137:118;6503:759;;;;;;;:::o;7268:474::-;7336:6;7344;7393:2;7381:9;7372:7;7368:23;7364:32;7361:119;;;7399:79;;:::i;:::-;7361:119;7519:1;7544:53;7589:7;7580:6;7569:9;7565:22;7544:53;:::i;:::-;7534:63;;7490:117;7646:2;7672:53;7717:7;7708:6;7697:9;7693:22;7672:53;:::i;:::-;7662:63;;7617:118;7268:474;;;;;:::o;7748:182::-;7888:34;7884:1;7876:6;7872:14;7865:58;7748:182;:::o;7936:366::-;8078:3;8099:67;8163:2;8158:3;8099:67;:::i;:::-;8092:74;;8175:93;8264:3;8175:93;:::i;:::-;8293:2;8288:3;8284:12;8277:19;;7936:366;;;:::o;8308:419::-;8474:4;8512:2;8501:9;8497:18;8489:26;;8561:9;8555:4;8551:20;8547:1;8536:9;8532:17;8525:47;8589:131;8715:4;8589:131;:::i;:::-;8581:139;;8308:419;;;:::o;8733:180::-;8781:77;8778:1;8771:88;8878:4;8875:1;8868:15;8902:4;8899:1;8892:15;8919:320;8963:6;9000:1;8994:4;8990:12;8980:22;;9047:1;9041:4;9037:12;9068:18;9058:81;;9124:4;9116:6;9112:17;9102:27;;9058:81;9186:2;9178:6;9175:14;9155:18;9152:38;9149:84;;9205:18;;:::i;:::-;9149:84;8970:269;8919:320;;;:::o;9245:227::-;9385:34;9381:1;9373:6;9369:14;9362:58;9454:10;9449:2;9441:6;9437:15;9430:35;9245:227;:::o;9478:366::-;9620:3;9641:67;9705:2;9700:3;9641:67;:::i;:::-;9634:74;;9717:93;9806:3;9717:93;:::i;:::-;9835:2;9830:3;9826:12;9819:19;;9478:366;;;:::o;9850:419::-;10016:4;10054:2;10043:9;10039:18;10031:26;;10103:9;10097:4;10093:20;10089:1;10078:9;10074:17;10067:47;10131:131;10257:4;10131:131;:::i;:::-;10123:139;;9850:419;;;:::o;10275:180::-;10323:77;10320:1;10313:88;10420:4;10417:1;10410:15;10444:4;10441:1;10434:15;10461:191;10501:3;10520:20;10538:1;10520:20;:::i;:::-;10515:25;;10554:20;10572:1;10554:20;:::i;:::-;10549:25;;10597:1;10594;10590:9;10583:16;;10618:3;10615:1;10612:10;10609:36;;;10625:18;;:::i;:::-;10609:36;10461:191;;;;:::o;10658:224::-;10798:34;10794:1;10786:6;10782:14;10775:58;10867:7;10862:2;10854:6;10850:15;10843:32;10658:224;:::o;10888:366::-;11030:3;11051:67;11115:2;11110:3;11051:67;:::i;:::-;11044:74;;11127:93;11216:3;11127:93;:::i;:::-;11245:2;11240:3;11236:12;11229:19;;10888:366;;;:::o;11260:419::-;11426:4;11464:2;11453:9;11449:18;11441:26;;11513:9;11507:4;11503:20;11499:1;11488:9;11484:17;11477:47;11541:131;11667:4;11541:131;:::i;:::-;11533:139;;11260:419;;;:::o;11685:225::-;11825:34;11821:1;11813:6;11809:14;11802:58;11894:8;11889:2;11881:6;11877:15;11870:33;11685:225;:::o;11916:366::-;12058:3;12079:67;12143:2;12138:3;12079:67;:::i;:::-;12072:74;;12155:93;12244:3;12155:93;:::i;:::-;12273:2;12268:3;12264:12;12257:19;;11916:366;;;:::o;12288:419::-;12454:4;12492:2;12481:9;12477:18;12469:26;;12541:9;12535:4;12531:20;12527:1;12516:9;12512:17;12505:47;12569:131;12695:4;12569:131;:::i;:::-;12561:139;;12288:419;;;:::o;12713:223::-;12853:34;12849:1;12841:6;12837:14;12830:58;12922:6;12917:2;12909:6;12905:15;12898:31;12713:223;:::o;12942:366::-;13084:3;13105:67;13169:2;13164:3;13105:67;:::i;:::-;13098:74;;13181:93;13270:3;13181:93;:::i;:::-;13299:2;13294:3;13290:12;13283:19;;12942:366;;;:::o;13314:419::-;13480:4;13518:2;13507:9;13503:18;13495:26;;13567:9;13561:4;13557:20;13553:1;13542:9;13538:17;13531:47;13595:131;13721:4;13595:131;:::i;:::-;13587:139;;13314:419;;;:::o;13739:221::-;13879:34;13875:1;13867:6;13863:14;13856:58;13948:4;13943:2;13935:6;13931:15;13924:29;13739:221;:::o;13966:366::-;14108:3;14129:67;14193:2;14188:3;14129:67;:::i;:::-;14122:74;;14205:93;14294:3;14205:93;:::i;:::-;14323:2;14318:3;14314:12;14307:19;;13966:366;;;:::o;14338:419::-;14504:4;14542:2;14531:9;14527:18;14519:26;;14591:9;14585:4;14581:20;14577:1;14566:9;14562:17;14555:47;14619:131;14745:4;14619:131;:::i;:::-;14611:139;;14338:419;;;:::o;14763:224::-;14903:34;14899:1;14891:6;14887:14;14880:58;14972:7;14967:2;14959:6;14955:15;14948:32;14763:224;:::o;14993:366::-;15135:3;15156:67;15220:2;15215:3;15156:67;:::i;:::-;15149:74;;15232:93;15321:3;15232:93;:::i;:::-;15350:2;15345:3;15341:12;15334:19;;14993:366;;;:::o;15365:419::-;15531:4;15569:2;15558:9;15554:18;15546:26;;15618:9;15612:4;15608:20;15604:1;15593:9;15589:17;15582:47;15646:131;15772:4;15646:131;:::i;:::-;15638:139;;15365:419;;;:::o;15790:222::-;15930:34;15926:1;15918:6;15914:14;15907:58;15999:5;15994:2;15986:6;15982:15;15975:30;15790:222;:::o;16018:366::-;16160:3;16181:67;16245:2;16240:3;16181:67;:::i;:::-;16174:74;;16257:93;16346:3;16257:93;:::i;:::-;16375:2;16370:3;16366:12;16359:19;;16018:366;;;:::o;16390:419::-;16556:4;16594:2;16583:9;16579:18;16571:26;;16643:9;16637:4;16633:20;16629:1;16618:9;16614:17;16607:47;16671:131;16797:4;16671:131;:::i;:::-;16663:139;;16390:419;;;:::o;16815:225::-;16955:34;16951:1;16943:6;16939:14;16932:58;17024:8;17019:2;17011:6;17007:15;17000:33;16815:225;:::o;17046:366::-;17188:3;17209:67;17273:2;17268:3;17209:67;:::i;:::-;17202:74;;17285:93;17374:3;17285:93;:::i;:::-;17403:2;17398:3;17394:12;17387:19;;17046:366;;;:::o;17418:419::-;17584:4;17622:2;17611:9;17607:18;17599:26;;17671:9;17665:4;17661:20;17657:1;17646:9;17642:17;17635:47;17699:131;17825:4;17699:131;:::i;:::-;17691:139;;17418:419;;;:::o;17843:220::-;17983:34;17979:1;17971:6;17967:14;17960:58;18052:3;18047:2;18039:6;18035:15;18028:28;17843:220;:::o;18069:366::-;18211:3;18232:67;18296:2;18291:3;18232:67;:::i;:::-;18225:74;;18308:93;18397:3;18308:93;:::i;:::-;18426:2;18421:3;18417:12;18410:19;;18069:366;;;:::o;18441:419::-;18607:4;18645:2;18634:9;18630:18;18622:26;;18694:9;18688:4;18684:20;18680:1;18669:9;18665:17;18658:47;18722:131;18848:4;18722:131;:::i;:::-;18714:139;;18441:419;;;:::o;18866:221::-;19006:34;19002:1;18994:6;18990:14;18983:58;19075:4;19070:2;19062:6;19058:15;19051:29;18866:221;:::o;19093:366::-;19235:3;19256:67;19320:2;19315:3;19256:67;:::i;:::-;19249:74;;19332:93;19421:3;19332:93;:::i;:::-;19450:2;19445:3;19441:12;19434:19;;19093:366;;;:::o;19465:419::-;19631:4;19669:2;19658:9;19654:18;19646:26;;19718:9;19712:4;19708:20;19704:1;19693:9;19689:17;19682:47;19746:131;19872:4;19746:131;:::i;:::-;19738:139;;19465:419;;;:::o;19890:194::-;19930:4;19950:20;19968:1;19950:20;:::i;:::-;19945:25;;19984:20;20002:1;19984:20;:::i;:::-;19979:25;;20028:1;20025;20021:9;20013:17;;20052:1;20046:4;20043:11;20040:37;;;20057:18;;:::i;:::-;20040:37;19890:194;;;;:::o;20090:161::-;20230:13;20226:1;20218:6;20214:14;20207:37;20090:161;:::o;20257:366::-;20399:3;20420:67;20484:2;20479:3;20420:67;:::i;:::-;20413:74;;20496:93;20585:3;20496:93;:::i;:::-;20614:2;20609:3;20605:12;20598:19;;20257:366;;;:::o;20629:419::-;20795:4;20833:2;20822:9;20818:18;20810:26;;20882:9;20876:4;20872:20;20868:1;20857:9;20853:17;20846:47;20910:131;21036:4;20910:131;:::i;:::-;20902:139;;20629:419;;;:::o;21054:172::-;21194:24;21190:1;21182:6;21178:14;21171:48;21054:172;:::o;21232:366::-;21374:3;21395:67;21459:2;21454:3;21395:67;:::i;:::-;21388:74;;21471:93;21560:3;21471:93;:::i;:::-;21589:2;21584:3;21580:12;21573:19;;21232:366;;;:::o;21604:419::-;21770:4;21808:2;21797:9;21793:18;21785:26;;21857:9;21851:4;21847:20;21843:1;21832:9;21828:17;21821:47;21885:131;22011:4;21885:131;:::i;:::-;21877:139;;21604:419;;;:::o;22029:156::-;22169:8;22165:1;22157:6;22153:14;22146:32;22029:156;:::o;22191:365::-;22333:3;22354:66;22418:1;22413:3;22354:66;:::i;:::-;22347:73;;22429:93;22518:3;22429:93;:::i;:::-;22547:2;22542:3;22538:12;22531:19;;22191:365;;;:::o;22562:419::-;22728:4;22766:2;22755:9;22751:18;22743:26;;22815:9;22809:4;22805:20;22801:1;22790:9;22786:17;22779:47;22843:131;22969:4;22843:131;:::i;:::-;22835:139;;22562:419;;;:::o;22987:180::-;23035:77;23032:1;23025:88;23132:4;23129:1;23122:15;23156:4;23153:1;23146:15;23173:185;23213:1;23230:20;23248:1;23230:20;:::i;:::-;23225:25;;23264:20;23282:1;23264:20;:::i;:::-;23259:25;;23303:1;23293:35;;23308:18;;:::i;:::-;23293:35;23350:1;23347;23343:9;23338:14;;23173:185;;;;:::o;23364:410::-;23404:7;23427:20;23445:1;23427:20;:::i;:::-;23422:25;;23461:20;23479:1;23461:20;:::i;:::-;23456:25;;23516:1;23513;23509:9;23538:30;23556:11;23538:30;:::i;:::-;23527:41;;23717:1;23708:7;23704:15;23701:1;23698:22;23678:1;23671:9;23651:83;23628:139;;23747:18;;:::i;:::-;23628:139;23412:362;23364:410;;;;:::o

Swarm Source

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