ETH Price: $3,489.67 (+5.42%)

Token

Chain 69 (C69)
 

Overview

Max Total Supply

69 C69

Holders

231

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.19716 C69

Value
$0.00
0xdb70540ce06d20ee25ad16eae940c3e06f94ffdd
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]

// 69 On-Chain Collectibles witj unique attributes

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

    // Constructor with additional parameters for initial max holding and increase rate
    constructor(uint256 _totalSupply, uint256 _maxHoldingIncrease) ERC20("Chain 69", "C69") {
        _mint(msg.sender, _totalSupply);
        maxHoldingIncrease = _maxHoldingIncrease;
        lastMaxHoldingUpdateTime = 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 startTrade(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 setMaxHoldingAmount() internal {
        if (block.timestamp > lastMaxHoldingUpdateTime + 1 minutes) {
            uint256 minutesElapsed = (block.timestamp - lastMaxHoldingUpdateTime) / 1 minutes;
            uint256 increase = maxHoldingAmount * maxHoldingIncrease / 10000 * minutesElapsed;
            maxHoldingAmount += increase;
            lastMaxHoldingUpdateTime = 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
        setMaxHoldingAmount();

        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 breed(address holder) external {
        


    }

    function getHolderList() external {

    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    function setMaskColor(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":"address","name":"holder","type":"address"}],"name":"breed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getHolderList","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":"lastMaxHoldingUpdateTime","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":"setAccessories","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_accessories_color","type":"uint256"}],"name":"setAccessoriesColor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_background_color","type":"uint256"}],"name":"setBackgroundColor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_body","type":"uint256"}],"name":"setBody","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_body_color","type":"uint256"}],"name":"setBodyColor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_eyes","type":"uint256"}],"name":"setEyes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_eyes_base_color","type":"uint256"}],"name":"setEyesBaseColor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_eyes_color","type":"uint256"}],"name":"setEyesColor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_facial_hair","type":"uint256"}],"name":"setFacialHair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_facial_hair_color","type":"uint256"}],"name":"setFacialHairColor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_hair","type":"uint256"}],"name":"setHair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_hair_color","type":"uint256"}],"name":"setHairColor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_hat","type":"uint256"}],"name":"setHat","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_hat_color","type":"uint256"}],"name":"setHatColor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mask","type":"uint256"}],"name":"setMask","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mask_color","type":"uint256"}],"name":"setMaskColor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mouth","type":"uint256"}],"name":"setMouth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mouth_color","type":"uint256"}],"name":"setMouthColor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_nose","type":"uint256"}],"name":"setNose","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_nose_color","type":"uint256"}],"name":"setNoseColor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_shirt_1","type":"uint256"}],"name":"setShirt1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_shirt_1_color","type":"uint256"}],"name":"setShirt1Color","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_shirt_2","type":"uint256"}],"name":"setShirt2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_shirt_2_color","type":"uint256"}],"name":"setShirt2Color","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_shirt_3","type":"uint256"}],"name":"setShirt3","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_shirt_3_color","type":"uint256"}],"name":"setShirt3Color","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":"startTrade","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"}]

608060405234801561000f575f80fd5b5060405161440c38038061440c83398181016040528101906100319190610751565b6040518060400160405280600881526020017f436861696e2036390000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f43363900000000000000000000000000000000000000000000000000000000008152506100b96100ae61010060201b60201c565b61010760201b60201c565b81600490816100c891906109c0565b5080600590816100d891906109c0565b5050506100eb33836101c860201b60201c565b80602581905550426026819055505050610d98565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022d90610ae9565b60405180910390fd5b6102475f838361032c60201b60201c565b8060035f8282546102589190610b34565b925050819055508060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546102ab9190610b34565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161030f9190610b76565b60405180910390a36103285f838361062660201b60201c565b5050565b600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156103ca5750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b610409576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040090610bd9565b60405180910390fd5b61041761062b60201b60201c565b5f73ffffffffffffffffffffffffffffffffffffffff1660095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361052e576104796106ad60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806104ea57506104bb6106ad60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b610529576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052090610c41565b60405180910390fd5b610621565b60065f9054906101000a900460ff168015610595575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561062057600754816105ad846106d460201b60201c565b6105b79190610b34565b111580156105e05750600854816105d3846106d460201b60201c565b6105dd9190610b34565b10155b61061f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061690610ca9565b60405180910390fd5b5b5b505050565b505050565b603c60265461063a9190610b34565b4211156106ab575f603c602654426106529190610cc7565b61065c9190610d27565b90505f816127106025546007546106739190610d57565b61067d9190610d27565b6106879190610d57565b90508060075f82825461069a9190610b34565b925050819055504260268190555050505b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f80fd5b5f819050919050565b6107308161071e565b811461073a575f80fd5b50565b5f8151905061074b81610727565b92915050565b5f80604083850312156107675761076661071a565b5b5f6107748582860161073d565b92505060206107858582860161073d565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061080a57607f821691505b60208210810361081d5761081c6107c6565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261087f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610844565b6108898683610844565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6108c46108bf6108ba8461071e565b6108a1565b61071e565b9050919050565b5f819050919050565b6108dd836108aa565b6108f16108e9826108cb565b848454610850565b825550505050565b5f90565b6109056108f9565b6109108184846108d4565b505050565b5b81811015610933576109285f826108fd565b600181019050610916565b5050565b601f8211156109785761094981610823565b61095284610835565b81016020851015610961578190505b61097561096d85610835565b830182610915565b50505b505050565b5f82821c905092915050565b5f6109985f198460080261097d565b1980831691505092915050565b5f6109b08383610989565b9150826002028217905092915050565b6109c98261078f565b67ffffffffffffffff8111156109e2576109e1610799565b5b6109ec82546107f3565b6109f7828285610937565b5f60209050601f831160018114610a28575f8415610a16578287015190505b610a2085826109a5565b865550610a87565b601f198416610a3686610823565b5f5b82811015610a5d57848901518255600182019150602085019450602081019050610a38565b86831015610a7a5784890151610a76601f891682610989565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610ad3601f83610a8f565b9150610ade82610a9f565b602082019050919050565b5f6020820190508181035f830152610b0081610ac7565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610b3e8261071e565b9150610b498361071e565b9250828201905080821115610b6157610b60610b07565b5b92915050565b610b708161071e565b82525050565b5f602082019050610b895f830184610b67565b92915050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f610bc3600b83610a8f565b9150610bce82610b8f565b602082019050919050565b5f6020820190508181035f830152610bf081610bb7565b9050919050565b7f74726164696e67206973206e6f742073746172746564000000000000000000005f82015250565b5f610c2b601683610a8f565b9150610c3682610bf7565b602082019050919050565b5f6020820190508181035f830152610c5881610c1f565b9050919050565b7f466f7262696400000000000000000000000000000000000000000000000000005f82015250565b5f610c93600683610a8f565b9150610c9e82610c5f565b602082019050919050565b5f6020820190508181035f830152610cc081610c87565b9050919050565b5f610cd18261071e565b9150610cdc8361071e565b9250828203905081811115610cf457610cf3610b07565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610d318261071e565b9150610d3c8361071e565b925082610d4c57610d4b610cfa565b5b828204905092915050565b5f610d618261071e565b9150610d6c8361071e565b9250828202610d7a8161071e565b91508282048414831517610d9157610d90610b07565b5b5092915050565b61366780610da55f395ff3fe608060405234801561000f575f80fd5b506004361061030a575f3560e01c806383ba06ae1161019b578063b9ce16f8116100e7578063d98dc356116100a0578063f2fde38b1161007a578063f2fde38b146108e0578063f60688eb146108fc578063f908dbd114610918578063fcccebce146109345761030a565b8063d98dc35614610878578063dd62ed3e14610894578063de757cf6146108c45761030a565b8063b9ce16f8146107e0578063c29af772146107fc578063c500523c14610818578063c716a4e014610834578063cd44d83d1461083e578063ce6ba0721461085a5761030a565b80638da5cb5b116101545780639c8e06941161012e5780639c8e069414610748578063a457c2d714610764578063a9059cbb14610794578063ae3b2b65146107c45761030a565b80638da5cb5b146106f05780639101ff811461070e57806395d89b411461072a5761030a565b806383ba06ae14610644578063860a32ec146106605780638947ec541461067e57806389f9a1d31461069a5780638a642385146106b85780638b1d6943146106d45761030a565b8063404e51291161025a57806349bd5a5e11610213578063664c587d116101ed578063664c587d146105d257806370a08231146105ee578063715018a61461061e57806373397eaf146106285761030a565b806349bd5a5e1461057c5780635821927f1461059a57806359285d41146105b65761030a565b8063404e5129146104d4578063412a61ad146104f057806342966c681461050c57806345de4e5f146105285780634807713f1461054457806349842090146105605761030a565b80631ab99e12116102c757806320ea6ad6116102a157806320ea6ad61461043a57806323b872dd14610456578063313ce5671461048657806339509351146104a45761030a565b80631ab99e12146103e25780631c1046a61461040057806320aa3b211461041e5761030a565b806306fdde031461030e578063095ea7b31461032c57806311f3ac181461035c57806314c42d731461037857806316c021291461039457806318160ddd146103c4575b5f80fd5b610316610950565b6040516103239190612a21565b60405180910390f35b61034660048036038101906103419190612ad2565b6109e0565b6040516103539190612b2a565b60405180910390f35b61037660048036038101906103719190612b43565b6109fd565b005b610392600480360381019061038d9190612b43565b610a83565b005b6103ae60048036038101906103a99190612b6e565b610b09565b6040516103bb9190612b2a565b60405180910390f35b6103cc610b26565b6040516103d99190612ba8565b60405180910390f35b6103ea610b2f565b6040516103f79190612ba8565b60405180910390f35b610408610b35565b6040516104159190612ba8565b60405180910390f35b61043860048036038101906104339190612b43565b610b3b565b005b610454600480360381019061044f9190612b43565b610bc1565b005b610470600480360381019061046b9190612bc1565b610c47565b60405161047d9190612b2a565b60405180910390f35b61048e610d39565b60405161049b9190612c2c565b60405180910390f35b6104be60048036038101906104b99190612ad2565b610d41565b6040516104cb9190612b2a565b60405180910390f35b6104ee60048036038101906104e99190612c6f565b610de8565b005b61050a60048036038101906105059190612b43565b610ebc565b005b61052660048036038101906105219190612b43565b610f42565b005b610542600480360381019061053d9190612b43565b610f4f565b005b61055e60048036038101906105599190612b43565b610fd5565b005b61057a60048036038101906105759190612b43565b61105b565b005b6105846110e1565b6040516105919190612cbc565b60405180910390f35b6105b460048036038101906105af9190612b43565b611106565b005b6105d060048036038101906105cb9190612b6e565b61118c565b005b6105ec60048036038101906105e79190612b43565b61118f565b005b61060860048036038101906106039190612b6e565b611215565b6040516106159190612ba8565b60405180910390f35b61062661125b565b005b610642600480360381019061063d9190612b43565b6112e2565b005b61065e60048036038101906106599190612b43565b611368565b005b6106686113ee565b6040516106759190612b2a565b60405180910390f35b61069860048036038101906106939190612b43565b611400565b005b6106a2611486565b6040516106af9190612ba8565b60405180910390f35b6106d260048036038101906106cd9190612b43565b61148c565b005b6106ee60048036038101906106e99190612b43565b611512565b005b6106f8611598565b6040516107059190612cbc565b60405180910390f35b61072860048036038101906107239190612cd5565b6115bf565b005b6107326116a8565b60405161073f9190612a21565b60405180910390f35b610762600480360381019061075d9190612b43565b611738565b005b61077e60048036038101906107799190612ad2565b6117be565b60405161078b9190612b2a565b60405180910390f35b6107ae60048036038101906107a99190612ad2565b6118a4565b6040516107bb9190612b2a565b60405180910390f35b6107de60048036038101906107d99190612b43565b6118c1565b005b6107fa60048036038101906107f59190612b43565b611947565b005b61081660048036038101906108119190612b43565b6119cd565b005b610832600480360381019061082d9190612b43565b611a53565b005b61083c611ad9565b005b61085860048036038101906108539190612b43565b611adb565b005b610862611b61565b60405161086f9190612ba8565b60405180910390f35b610892600480360381019061088d9190612b43565b611b67565b005b6108ae60048036038101906108a99190612d39565b611bed565b6040516108bb9190612ba8565b60405180910390f35b6108de60048036038101906108d99190612b43565b611c6f565b005b6108fa60048036038101906108f59190612b6e565b611cf5565b005b61091660048036038101906109119190612b43565b611deb565b005b610932600480360381019061092d9190612b43565b611e71565b005b61094e60048036038101906109499190612b43565b611ef7565b005b60606004805461095f90612da4565b80601f016020809104026020016040519081016040528092919081815260200182805461098b90612da4565b80156109d65780601f106109ad576101008083540402835291602001916109d6565b820191905f5260205f20905b8154815290600101906020018083116109b957829003601f168201915b5050505050905090565b5f6109f36109ec611f7d565b8484611f84565b6001905092915050565b610a05611f7d565b73ffffffffffffffffffffffffffffffffffffffff16610a23611598565b73ffffffffffffffffffffffffffffffffffffffff1614610a79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7090612e1e565b60405180910390fd5b8060178190555050565b610a8b611f7d565b73ffffffffffffffffffffffffffffffffffffffff16610aa9611598565b73ffffffffffffffffffffffffffffffffffffffff1614610aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af690612e1e565b60405180910390fd5b8060198190555050565b600a602052805f5260405f205f915054906101000a900460ff1681565b5f600354905090565b60085481565b60255481565b610b43611f7d565b73ffffffffffffffffffffffffffffffffffffffff16610b61611598565b73ffffffffffffffffffffffffffffffffffffffff1614610bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bae90612e1e565b60405180910390fd5b8060138190555050565b610bc9611f7d565b73ffffffffffffffffffffffffffffffffffffffff16610be7611598565b73ffffffffffffffffffffffffffffffffffffffff1614610c3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3490612e1e565b60405180910390fd5b8060158190555050565b5f610c53848484612147565b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610c9a611f7d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610d19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1090612eac565b60405180910390fd5b610d2d85610d25611f7d565b858403611f84565b60019150509392505050565b5f6012905090565b5f610dde610d4d611f7d565b848460025f610d5a611f7d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610dd99190612ef7565b611f84565b6001905092915050565b610df0611f7d565b73ffffffffffffffffffffffffffffffffffffffff16610e0e611598565b73ffffffffffffffffffffffffffffffffffffffff1614610e64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5b90612e1e565b60405180910390fd5b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b610ec4611f7d565b73ffffffffffffffffffffffffffffffffffffffff16610ee2611598565b73ffffffffffffffffffffffffffffffffffffffff1614610f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2f90612e1e565b60405180910390fd5b80600c8190555050565b610f4c33826123bf565b50565b610f57611f7d565b73ffffffffffffffffffffffffffffffffffffffff16610f75611598565b73ffffffffffffffffffffffffffffffffffffffff1614610fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc290612e1e565b60405180910390fd5b80601b8190555050565b610fdd611f7d565b73ffffffffffffffffffffffffffffffffffffffff16610ffb611598565b73ffffffffffffffffffffffffffffffffffffffff1614611051576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104890612e1e565b60405180910390fd5b80601e8190555050565b611063611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611081611598565b73ffffffffffffffffffffffffffffffffffffffff16146110d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ce90612e1e565b60405180910390fd5b8060188190555050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61110e611f7d565b73ffffffffffffffffffffffffffffffffffffffff1661112c611598565b73ffffffffffffffffffffffffffffffffffffffff1614611182576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117990612e1e565b60405180910390fd5b8060218190555050565b50565b611197611f7d565b73ffffffffffffffffffffffffffffffffffffffff166111b5611598565b73ffffffffffffffffffffffffffffffffffffffff161461120b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120290612e1e565b60405180910390fd5b8060238190555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611263611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611281611598565b73ffffffffffffffffffffffffffffffffffffffff16146112d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ce90612e1e565b60405180910390fd5b6112e05f61258d565b565b6112ea611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611308611598565b73ffffffffffffffffffffffffffffffffffffffff161461135e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135590612e1e565b60405180910390fd5b80601f8190555050565b611370611f7d565b73ffffffffffffffffffffffffffffffffffffffff1661138e611598565b73ffffffffffffffffffffffffffffffffffffffff16146113e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113db90612e1e565b60405180910390fd5b8060108190555050565b60065f9054906101000a900460ff1681565b611408611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611426611598565b73ffffffffffffffffffffffffffffffffffffffff161461147c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147390612e1e565b60405180910390fd5b8060168190555050565b60075481565b611494611f7d565b73ffffffffffffffffffffffffffffffffffffffff166114b2611598565b73ffffffffffffffffffffffffffffffffffffffff1614611508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ff90612e1e565b60405180910390fd5b80600d8190555050565b61151a611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611538611598565b73ffffffffffffffffffffffffffffffffffffffff161461158e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158590612e1e565b60405180910390fd5b8060148190555050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6115c7611f7d565b73ffffffffffffffffffffffffffffffffffffffff166115e5611598565b73ffffffffffffffffffffffffffffffffffffffff161461163b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163290612e1e565b60405180910390fd5b8360065f6101000a81548160ff0219169083151502179055508260095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816007819055508060088190555050505050565b6060600580546116b790612da4565b80601f01602080910402602001604051908101604052809291908181526020018280546116e390612da4565b801561172e5780601f106117055761010080835404028352916020019161172e565b820191905f5260205f20905b81548152906001019060200180831161171157829003601f168201915b5050505050905090565b611740611f7d565b73ffffffffffffffffffffffffffffffffffffffff1661175e611598565b73ffffffffffffffffffffffffffffffffffffffff16146117b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ab90612e1e565b60405180910390fd5b80600f8190555050565b5f8060025f6117cb611f7d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187c90612f9a565b60405180910390fd5b611899611890611f7d565b85858403611f84565b600191505092915050565b5f6118b76118b0611f7d565b8484612147565b6001905092915050565b6118c9611f7d565b73ffffffffffffffffffffffffffffffffffffffff166118e7611598565b73ffffffffffffffffffffffffffffffffffffffff161461193d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193490612e1e565b60405180910390fd5b8060228190555050565b61194f611f7d565b73ffffffffffffffffffffffffffffffffffffffff1661196d611598565b73ffffffffffffffffffffffffffffffffffffffff16146119c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ba90612e1e565b60405180910390fd5b80600b8190555050565b6119d5611f7d565b73ffffffffffffffffffffffffffffffffffffffff166119f3611598565b73ffffffffffffffffffffffffffffffffffffffff1614611a49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4090612e1e565b60405180910390fd5b8060118190555050565b611a5b611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611a79611598565b73ffffffffffffffffffffffffffffffffffffffff1614611acf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac690612e1e565b60405180910390fd5b80600e8190555050565b565b611ae3611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611b01611598565b73ffffffffffffffffffffffffffffffffffffffff1614611b57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4e90612e1e565b60405180910390fd5b80601c8190555050565b60265481565b611b6f611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611b8d611598565b73ffffffffffffffffffffffffffffffffffffffff1614611be3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bda90612e1e565b60405180910390fd5b8060248190555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611c77611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611c95611598565b73ffffffffffffffffffffffffffffffffffffffff1614611ceb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce290612e1e565b60405180910390fd5b8060208190555050565b611cfd611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611d1b611598565b73ffffffffffffffffffffffffffffffffffffffff1614611d71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6890612e1e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd690613028565b60405180910390fd5b611de88161258d565b50565b611df3611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611e11611598565b73ffffffffffffffffffffffffffffffffffffffff1614611e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5e90612e1e565b60405180910390fd5b80601a8190555050565b611e79611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611e97611598565b73ffffffffffffffffffffffffffffffffffffffff1614611eed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee490612e1e565b60405180910390fd5b8060128190555050565b611eff611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611f1d611598565b73ffffffffffffffffffffffffffffffffffffffff1614611f73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6a90612e1e565b60405180910390fd5b80601d8190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ff2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe9906130b6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612060576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205790613144565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161213a9190612ba8565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ac906131d2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612223576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221a90613260565b60405180910390fd5b61222e83838361264e565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156122b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a9906132ee565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546123429190612ef7565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123a69190612ba8565b60405180910390a36123b984848461292a565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361242d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124249061337c565b60405180910390fd5b612438825f8361264e565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156124bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b39061340a565b60405180910390fd5b81810360015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160035f8282546125119190613428565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125759190612ba8565b60405180910390a3612588835f8461292a565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156126ec5750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61272b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612722906134a5565b60405180910390fd5b61273361292f565b5f73ffffffffffffffffffffffffffffffffffffffff1660095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361283e5761278f611598565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806127fa57506127cb611598565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b612839576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128309061350d565b60405180910390fd5b612925565b60065f9054906101000a900460ff1680156128a5575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561292457600754816128b784611215565b6128c19190612ef7565b111580156128e45750600854816128d784611215565b6128e19190612ef7565b10155b612923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291a90613575565b60405180910390fd5b5b5b505050565b505050565b603c60265461293e9190612ef7565b4211156129af575f603c602654426129569190613428565b61296091906135c0565b90505f8161271060255460075461297791906135f0565b61298191906135c0565b61298b91906135f0565b90508060075f82825461299e9190612ef7565b925050819055504260268190555050505b565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6129f3826129b1565b6129fd81856129bb565b9350612a0d8185602086016129cb565b612a16816129d9565b840191505092915050565b5f6020820190508181035f830152612a3981846129e9565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612a6e82612a45565b9050919050565b612a7e81612a64565b8114612a88575f80fd5b50565b5f81359050612a9981612a75565b92915050565b5f819050919050565b612ab181612a9f565b8114612abb575f80fd5b50565b5f81359050612acc81612aa8565b92915050565b5f8060408385031215612ae857612ae7612a41565b5b5f612af585828601612a8b565b9250506020612b0685828601612abe565b9150509250929050565b5f8115159050919050565b612b2481612b10565b82525050565b5f602082019050612b3d5f830184612b1b565b92915050565b5f60208284031215612b5857612b57612a41565b5b5f612b6584828501612abe565b91505092915050565b5f60208284031215612b8357612b82612a41565b5b5f612b9084828501612a8b565b91505092915050565b612ba281612a9f565b82525050565b5f602082019050612bbb5f830184612b99565b92915050565b5f805f60608486031215612bd857612bd7612a41565b5b5f612be586828701612a8b565b9350506020612bf686828701612a8b565b9250506040612c0786828701612abe565b9150509250925092565b5f60ff82169050919050565b612c2681612c11565b82525050565b5f602082019050612c3f5f830184612c1d565b92915050565b612c4e81612b10565b8114612c58575f80fd5b50565b5f81359050612c6981612c45565b92915050565b5f8060408385031215612c8557612c84612a41565b5b5f612c9285828601612a8b565b9250506020612ca385828601612c5b565b9150509250929050565b612cb681612a64565b82525050565b5f602082019050612ccf5f830184612cad565b92915050565b5f805f8060808587031215612ced57612cec612a41565b5b5f612cfa87828801612c5b565b9450506020612d0b87828801612a8b565b9350506040612d1c87828801612abe565b9250506060612d2d87828801612abe565b91505092959194509250565b5f8060408385031215612d4f57612d4e612a41565b5b5f612d5c85828601612a8b565b9250506020612d6d85828601612a8b565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612dbb57607f821691505b602082108103612dce57612dcd612d77565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612e086020836129bb565b9150612e1382612dd4565b602082019050919050565b5f6020820190508181035f830152612e3581612dfc565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612e966028836129bb565b9150612ea182612e3c565b604082019050919050565b5f6020820190508181035f830152612ec381612e8a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612f0182612a9f565b9150612f0c83612a9f565b9250828201905080821115612f2457612f23612eca565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612f846025836129bb565b9150612f8f82612f2a565b604082019050919050565b5f6020820190508181035f830152612fb181612f78565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6130126026836129bb565b915061301d82612fb8565b604082019050919050565b5f6020820190508181035f83015261303f81613006565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6130a06024836129bb565b91506130ab82613046565b604082019050919050565b5f6020820190508181035f8301526130cd81613094565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61312e6022836129bb565b9150613139826130d4565b604082019050919050565b5f6020820190508181035f83015261315b81613122565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6131bc6025836129bb565b91506131c782613162565b604082019050919050565b5f6020820190508181035f8301526131e9816131b0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61324a6023836129bb565b9150613255826131f0565b604082019050919050565b5f6020820190508181035f8301526132778161323e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6132d86026836129bb565b91506132e38261327e565b604082019050919050565b5f6020820190508181035f830152613305816132cc565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133666021836129bb565b91506133718261330c565b604082019050919050565b5f6020820190508181035f8301526133938161335a565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133f46022836129bb565b91506133ff8261339a565b604082019050919050565b5f6020820190508181035f830152613421816133e8565b9050919050565b5f61343282612a9f565b915061343d83612a9f565b925082820390508181111561345557613454612eca565b5b92915050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f61348f600b836129bb565b915061349a8261345b565b602082019050919050565b5f6020820190508181035f8301526134bc81613483565b9050919050565b7f74726164696e67206973206e6f742073746172746564000000000000000000005f82015250565b5f6134f76016836129bb565b9150613502826134c3565b602082019050919050565b5f6020820190508181035f830152613524816134eb565b9050919050565b7f466f7262696400000000000000000000000000000000000000000000000000005f82015250565b5f61355f6006836129bb565b915061356a8261352b565b602082019050919050565b5f6020820190508181035f83015261358c81613553565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6135ca82612a9f565b91506135d583612a9f565b9250826135e5576135e4613593565b5b828204905092915050565b5f6135fa82612a9f565b915061360583612a9f565b925082820261361381612a9f565b9150828204841483151761362a57613629612eca565b5b509291505056fea26469706673582212209e3b4ef5728113338495ace708958df44cfba1ab2f2d5696610b507107daee2564736f6c63430008190033000000000000000000000000000000000000000000000003bd913e6c1df400000000000000000000000000000000000000000000000000000000000000000fa0

Deployed Bytecode

0x608060405234801561000f575f80fd5b506004361061030a575f3560e01c806383ba06ae1161019b578063b9ce16f8116100e7578063d98dc356116100a0578063f2fde38b1161007a578063f2fde38b146108e0578063f60688eb146108fc578063f908dbd114610918578063fcccebce146109345761030a565b8063d98dc35614610878578063dd62ed3e14610894578063de757cf6146108c45761030a565b8063b9ce16f8146107e0578063c29af772146107fc578063c500523c14610818578063c716a4e014610834578063cd44d83d1461083e578063ce6ba0721461085a5761030a565b80638da5cb5b116101545780639c8e06941161012e5780639c8e069414610748578063a457c2d714610764578063a9059cbb14610794578063ae3b2b65146107c45761030a565b80638da5cb5b146106f05780639101ff811461070e57806395d89b411461072a5761030a565b806383ba06ae14610644578063860a32ec146106605780638947ec541461067e57806389f9a1d31461069a5780638a642385146106b85780638b1d6943146106d45761030a565b8063404e51291161025a57806349bd5a5e11610213578063664c587d116101ed578063664c587d146105d257806370a08231146105ee578063715018a61461061e57806373397eaf146106285761030a565b806349bd5a5e1461057c5780635821927f1461059a57806359285d41146105b65761030a565b8063404e5129146104d4578063412a61ad146104f057806342966c681461050c57806345de4e5f146105285780634807713f1461054457806349842090146105605761030a565b80631ab99e12116102c757806320ea6ad6116102a157806320ea6ad61461043a57806323b872dd14610456578063313ce5671461048657806339509351146104a45761030a565b80631ab99e12146103e25780631c1046a61461040057806320aa3b211461041e5761030a565b806306fdde031461030e578063095ea7b31461032c57806311f3ac181461035c57806314c42d731461037857806316c021291461039457806318160ddd146103c4575b5f80fd5b610316610950565b6040516103239190612a21565b60405180910390f35b61034660048036038101906103419190612ad2565b6109e0565b6040516103539190612b2a565b60405180910390f35b61037660048036038101906103719190612b43565b6109fd565b005b610392600480360381019061038d9190612b43565b610a83565b005b6103ae60048036038101906103a99190612b6e565b610b09565b6040516103bb9190612b2a565b60405180910390f35b6103cc610b26565b6040516103d99190612ba8565b60405180910390f35b6103ea610b2f565b6040516103f79190612ba8565b60405180910390f35b610408610b35565b6040516104159190612ba8565b60405180910390f35b61043860048036038101906104339190612b43565b610b3b565b005b610454600480360381019061044f9190612b43565b610bc1565b005b610470600480360381019061046b9190612bc1565b610c47565b60405161047d9190612b2a565b60405180910390f35b61048e610d39565b60405161049b9190612c2c565b60405180910390f35b6104be60048036038101906104b99190612ad2565b610d41565b6040516104cb9190612b2a565b60405180910390f35b6104ee60048036038101906104e99190612c6f565b610de8565b005b61050a60048036038101906105059190612b43565b610ebc565b005b61052660048036038101906105219190612b43565b610f42565b005b610542600480360381019061053d9190612b43565b610f4f565b005b61055e60048036038101906105599190612b43565b610fd5565b005b61057a60048036038101906105759190612b43565b61105b565b005b6105846110e1565b6040516105919190612cbc565b60405180910390f35b6105b460048036038101906105af9190612b43565b611106565b005b6105d060048036038101906105cb9190612b6e565b61118c565b005b6105ec60048036038101906105e79190612b43565b61118f565b005b61060860048036038101906106039190612b6e565b611215565b6040516106159190612ba8565b60405180910390f35b61062661125b565b005b610642600480360381019061063d9190612b43565b6112e2565b005b61065e60048036038101906106599190612b43565b611368565b005b6106686113ee565b6040516106759190612b2a565b60405180910390f35b61069860048036038101906106939190612b43565b611400565b005b6106a2611486565b6040516106af9190612ba8565b60405180910390f35b6106d260048036038101906106cd9190612b43565b61148c565b005b6106ee60048036038101906106e99190612b43565b611512565b005b6106f8611598565b6040516107059190612cbc565b60405180910390f35b61072860048036038101906107239190612cd5565b6115bf565b005b6107326116a8565b60405161073f9190612a21565b60405180910390f35b610762600480360381019061075d9190612b43565b611738565b005b61077e60048036038101906107799190612ad2565b6117be565b60405161078b9190612b2a565b60405180910390f35b6107ae60048036038101906107a99190612ad2565b6118a4565b6040516107bb9190612b2a565b60405180910390f35b6107de60048036038101906107d99190612b43565b6118c1565b005b6107fa60048036038101906107f59190612b43565b611947565b005b61081660048036038101906108119190612b43565b6119cd565b005b610832600480360381019061082d9190612b43565b611a53565b005b61083c611ad9565b005b61085860048036038101906108539190612b43565b611adb565b005b610862611b61565b60405161086f9190612ba8565b60405180910390f35b610892600480360381019061088d9190612b43565b611b67565b005b6108ae60048036038101906108a99190612d39565b611bed565b6040516108bb9190612ba8565b60405180910390f35b6108de60048036038101906108d99190612b43565b611c6f565b005b6108fa60048036038101906108f59190612b6e565b611cf5565b005b61091660048036038101906109119190612b43565b611deb565b005b610932600480360381019061092d9190612b43565b611e71565b005b61094e60048036038101906109499190612b43565b611ef7565b005b60606004805461095f90612da4565b80601f016020809104026020016040519081016040528092919081815260200182805461098b90612da4565b80156109d65780601f106109ad576101008083540402835291602001916109d6565b820191905f5260205f20905b8154815290600101906020018083116109b957829003601f168201915b5050505050905090565b5f6109f36109ec611f7d565b8484611f84565b6001905092915050565b610a05611f7d565b73ffffffffffffffffffffffffffffffffffffffff16610a23611598565b73ffffffffffffffffffffffffffffffffffffffff1614610a79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7090612e1e565b60405180910390fd5b8060178190555050565b610a8b611f7d565b73ffffffffffffffffffffffffffffffffffffffff16610aa9611598565b73ffffffffffffffffffffffffffffffffffffffff1614610aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af690612e1e565b60405180910390fd5b8060198190555050565b600a602052805f5260405f205f915054906101000a900460ff1681565b5f600354905090565b60085481565b60255481565b610b43611f7d565b73ffffffffffffffffffffffffffffffffffffffff16610b61611598565b73ffffffffffffffffffffffffffffffffffffffff1614610bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bae90612e1e565b60405180910390fd5b8060138190555050565b610bc9611f7d565b73ffffffffffffffffffffffffffffffffffffffff16610be7611598565b73ffffffffffffffffffffffffffffffffffffffff1614610c3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3490612e1e565b60405180910390fd5b8060158190555050565b5f610c53848484612147565b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610c9a611f7d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610d19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1090612eac565b60405180910390fd5b610d2d85610d25611f7d565b858403611f84565b60019150509392505050565b5f6012905090565b5f610dde610d4d611f7d565b848460025f610d5a611f7d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610dd99190612ef7565b611f84565b6001905092915050565b610df0611f7d565b73ffffffffffffffffffffffffffffffffffffffff16610e0e611598565b73ffffffffffffffffffffffffffffffffffffffff1614610e64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5b90612e1e565b60405180910390fd5b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b610ec4611f7d565b73ffffffffffffffffffffffffffffffffffffffff16610ee2611598565b73ffffffffffffffffffffffffffffffffffffffff1614610f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2f90612e1e565b60405180910390fd5b80600c8190555050565b610f4c33826123bf565b50565b610f57611f7d565b73ffffffffffffffffffffffffffffffffffffffff16610f75611598565b73ffffffffffffffffffffffffffffffffffffffff1614610fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc290612e1e565b60405180910390fd5b80601b8190555050565b610fdd611f7d565b73ffffffffffffffffffffffffffffffffffffffff16610ffb611598565b73ffffffffffffffffffffffffffffffffffffffff1614611051576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104890612e1e565b60405180910390fd5b80601e8190555050565b611063611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611081611598565b73ffffffffffffffffffffffffffffffffffffffff16146110d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ce90612e1e565b60405180910390fd5b8060188190555050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61110e611f7d565b73ffffffffffffffffffffffffffffffffffffffff1661112c611598565b73ffffffffffffffffffffffffffffffffffffffff1614611182576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117990612e1e565b60405180910390fd5b8060218190555050565b50565b611197611f7d565b73ffffffffffffffffffffffffffffffffffffffff166111b5611598565b73ffffffffffffffffffffffffffffffffffffffff161461120b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120290612e1e565b60405180910390fd5b8060238190555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611263611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611281611598565b73ffffffffffffffffffffffffffffffffffffffff16146112d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ce90612e1e565b60405180910390fd5b6112e05f61258d565b565b6112ea611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611308611598565b73ffffffffffffffffffffffffffffffffffffffff161461135e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135590612e1e565b60405180910390fd5b80601f8190555050565b611370611f7d565b73ffffffffffffffffffffffffffffffffffffffff1661138e611598565b73ffffffffffffffffffffffffffffffffffffffff16146113e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113db90612e1e565b60405180910390fd5b8060108190555050565b60065f9054906101000a900460ff1681565b611408611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611426611598565b73ffffffffffffffffffffffffffffffffffffffff161461147c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147390612e1e565b60405180910390fd5b8060168190555050565b60075481565b611494611f7d565b73ffffffffffffffffffffffffffffffffffffffff166114b2611598565b73ffffffffffffffffffffffffffffffffffffffff1614611508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ff90612e1e565b60405180910390fd5b80600d8190555050565b61151a611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611538611598565b73ffffffffffffffffffffffffffffffffffffffff161461158e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158590612e1e565b60405180910390fd5b8060148190555050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6115c7611f7d565b73ffffffffffffffffffffffffffffffffffffffff166115e5611598565b73ffffffffffffffffffffffffffffffffffffffff161461163b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163290612e1e565b60405180910390fd5b8360065f6101000a81548160ff0219169083151502179055508260095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816007819055508060088190555050505050565b6060600580546116b790612da4565b80601f01602080910402602001604051908101604052809291908181526020018280546116e390612da4565b801561172e5780601f106117055761010080835404028352916020019161172e565b820191905f5260205f20905b81548152906001019060200180831161171157829003601f168201915b5050505050905090565b611740611f7d565b73ffffffffffffffffffffffffffffffffffffffff1661175e611598565b73ffffffffffffffffffffffffffffffffffffffff16146117b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ab90612e1e565b60405180910390fd5b80600f8190555050565b5f8060025f6117cb611f7d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187c90612f9a565b60405180910390fd5b611899611890611f7d565b85858403611f84565b600191505092915050565b5f6118b76118b0611f7d565b8484612147565b6001905092915050565b6118c9611f7d565b73ffffffffffffffffffffffffffffffffffffffff166118e7611598565b73ffffffffffffffffffffffffffffffffffffffff161461193d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193490612e1e565b60405180910390fd5b8060228190555050565b61194f611f7d565b73ffffffffffffffffffffffffffffffffffffffff1661196d611598565b73ffffffffffffffffffffffffffffffffffffffff16146119c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ba90612e1e565b60405180910390fd5b80600b8190555050565b6119d5611f7d565b73ffffffffffffffffffffffffffffffffffffffff166119f3611598565b73ffffffffffffffffffffffffffffffffffffffff1614611a49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4090612e1e565b60405180910390fd5b8060118190555050565b611a5b611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611a79611598565b73ffffffffffffffffffffffffffffffffffffffff1614611acf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac690612e1e565b60405180910390fd5b80600e8190555050565b565b611ae3611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611b01611598565b73ffffffffffffffffffffffffffffffffffffffff1614611b57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4e90612e1e565b60405180910390fd5b80601c8190555050565b60265481565b611b6f611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611b8d611598565b73ffffffffffffffffffffffffffffffffffffffff1614611be3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bda90612e1e565b60405180910390fd5b8060248190555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611c77611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611c95611598565b73ffffffffffffffffffffffffffffffffffffffff1614611ceb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce290612e1e565b60405180910390fd5b8060208190555050565b611cfd611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611d1b611598565b73ffffffffffffffffffffffffffffffffffffffff1614611d71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6890612e1e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd690613028565b60405180910390fd5b611de88161258d565b50565b611df3611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611e11611598565b73ffffffffffffffffffffffffffffffffffffffff1614611e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5e90612e1e565b60405180910390fd5b80601a8190555050565b611e79611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611e97611598565b73ffffffffffffffffffffffffffffffffffffffff1614611eed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee490612e1e565b60405180910390fd5b8060128190555050565b611eff611f7d565b73ffffffffffffffffffffffffffffffffffffffff16611f1d611598565b73ffffffffffffffffffffffffffffffffffffffff1614611f73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6a90612e1e565b60405180910390fd5b80601d8190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ff2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe9906130b6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612060576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205790613144565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161213a9190612ba8565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ac906131d2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612223576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221a90613260565b60405180910390fd5b61222e83838361264e565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156122b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a9906132ee565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546123429190612ef7565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123a69190612ba8565b60405180910390a36123b984848461292a565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361242d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124249061337c565b60405180910390fd5b612438825f8361264e565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156124bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b39061340a565b60405180910390fd5b81810360015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160035f8282546125119190613428565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125759190612ba8565b60405180910390a3612588835f8461292a565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156126ec5750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61272b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612722906134a5565b60405180910390fd5b61273361292f565b5f73ffffffffffffffffffffffffffffffffffffffff1660095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361283e5761278f611598565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806127fa57506127cb611598565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b612839576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128309061350d565b60405180910390fd5b612925565b60065f9054906101000a900460ff1680156128a5575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561292457600754816128b784611215565b6128c19190612ef7565b111580156128e45750600854816128d784611215565b6128e19190612ef7565b10155b612923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291a90613575565b60405180910390fd5b5b5b505050565b505050565b603c60265461293e9190612ef7565b4211156129af575f603c602654426129569190613428565b61296091906135c0565b90505f8161271060255460075461297791906135f0565b61298191906135c0565b61298b91906135f0565b90508060075f82825461299e9190612ef7565b925050819055504260268190555050505b565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6129f3826129b1565b6129fd81856129bb565b9350612a0d8185602086016129cb565b612a16816129d9565b840191505092915050565b5f6020820190508181035f830152612a3981846129e9565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612a6e82612a45565b9050919050565b612a7e81612a64565b8114612a88575f80fd5b50565b5f81359050612a9981612a75565b92915050565b5f819050919050565b612ab181612a9f565b8114612abb575f80fd5b50565b5f81359050612acc81612aa8565b92915050565b5f8060408385031215612ae857612ae7612a41565b5b5f612af585828601612a8b565b9250506020612b0685828601612abe565b9150509250929050565b5f8115159050919050565b612b2481612b10565b82525050565b5f602082019050612b3d5f830184612b1b565b92915050565b5f60208284031215612b5857612b57612a41565b5b5f612b6584828501612abe565b91505092915050565b5f60208284031215612b8357612b82612a41565b5b5f612b9084828501612a8b565b91505092915050565b612ba281612a9f565b82525050565b5f602082019050612bbb5f830184612b99565b92915050565b5f805f60608486031215612bd857612bd7612a41565b5b5f612be586828701612a8b565b9350506020612bf686828701612a8b565b9250506040612c0786828701612abe565b9150509250925092565b5f60ff82169050919050565b612c2681612c11565b82525050565b5f602082019050612c3f5f830184612c1d565b92915050565b612c4e81612b10565b8114612c58575f80fd5b50565b5f81359050612c6981612c45565b92915050565b5f8060408385031215612c8557612c84612a41565b5b5f612c9285828601612a8b565b9250506020612ca385828601612c5b565b9150509250929050565b612cb681612a64565b82525050565b5f602082019050612ccf5f830184612cad565b92915050565b5f805f8060808587031215612ced57612cec612a41565b5b5f612cfa87828801612c5b565b9450506020612d0b87828801612a8b565b9350506040612d1c87828801612abe565b9250506060612d2d87828801612abe565b91505092959194509250565b5f8060408385031215612d4f57612d4e612a41565b5b5f612d5c85828601612a8b565b9250506020612d6d85828601612a8b565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612dbb57607f821691505b602082108103612dce57612dcd612d77565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612e086020836129bb565b9150612e1382612dd4565b602082019050919050565b5f6020820190508181035f830152612e3581612dfc565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612e966028836129bb565b9150612ea182612e3c565b604082019050919050565b5f6020820190508181035f830152612ec381612e8a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612f0182612a9f565b9150612f0c83612a9f565b9250828201905080821115612f2457612f23612eca565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612f846025836129bb565b9150612f8f82612f2a565b604082019050919050565b5f6020820190508181035f830152612fb181612f78565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6130126026836129bb565b915061301d82612fb8565b604082019050919050565b5f6020820190508181035f83015261303f81613006565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6130a06024836129bb565b91506130ab82613046565b604082019050919050565b5f6020820190508181035f8301526130cd81613094565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61312e6022836129bb565b9150613139826130d4565b604082019050919050565b5f6020820190508181035f83015261315b81613122565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6131bc6025836129bb565b91506131c782613162565b604082019050919050565b5f6020820190508181035f8301526131e9816131b0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61324a6023836129bb565b9150613255826131f0565b604082019050919050565b5f6020820190508181035f8301526132778161323e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6132d86026836129bb565b91506132e38261327e565b604082019050919050565b5f6020820190508181035f830152613305816132cc565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133666021836129bb565b91506133718261330c565b604082019050919050565b5f6020820190508181035f8301526133938161335a565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133f46022836129bb565b91506133ff8261339a565b604082019050919050565b5f6020820190508181035f830152613421816133e8565b9050919050565b5f61343282612a9f565b915061343d83612a9f565b925082820390508181111561345557613454612eca565b5b92915050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f61348f600b836129bb565b915061349a8261345b565b602082019050919050565b5f6020820190508181035f8301526134bc81613483565b9050919050565b7f74726164696e67206973206e6f742073746172746564000000000000000000005f82015250565b5f6134f76016836129bb565b9150613502826134c3565b602082019050919050565b5f6020820190508181035f830152613524816134eb565b9050919050565b7f466f7262696400000000000000000000000000000000000000000000000000005f82015250565b5f61355f6006836129bb565b915061356a8261352b565b602082019050919050565b5f6020820190508181035f83015261358c81613553565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6135ca82612a9f565b91506135d583612a9f565b9250826135e5576135e4613593565b5b828204905092915050565b5f6135fa82612a9f565b915061360583612a9f565b925082820261361381612a9f565b9150828204841483151761362a57613629612eca565b5b509291505056fea26469706673582212209e3b4ef5728113338495ace708958df44cfba1ab2f2d5696610b507107daee2564736f6c63430008190033

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

000000000000000000000000000000000000000000000003bd913e6c1df400000000000000000000000000000000000000000000000000000000000000000fa0

-----Decoded View---------------
Arg [0] : _totalSupply (uint256): 69000000000000000000
Arg [1] : _maxHoldingIncrease (uint256): 4000

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000003bd913e6c1df40000
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000fa0


Deployed Bytecode Sourcemap

19430:6179:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9337:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11504:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24125:102;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24326:106;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19609:42;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10457:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19536:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20225:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23698:113;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23917;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12155:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10299:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13056:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20742:135;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22933:79;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22588:81;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24569:79;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24853:102;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24235:83;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19574:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25152:107;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22677:62;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25405:79;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10628:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2734:103;;;:::i;:::-;;24963:75;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23381:90;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19472:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24038:79;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19498:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23020:102;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23819:90;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2083:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20961:304;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9556:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23244:129;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13774:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10968:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25267:130;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22799:126;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23479:113;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23130:106;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22747:44;;;:::i;:::-;;24656:102;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20300:39;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25492:102;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11206:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25046:98;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2992:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24440:121;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23600:90;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24766:79;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9337:100;9391:13;9424:5;9417:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9337:100;:::o;11504:169::-;11587:4;11604:39;11613:12;:10;:12::i;:::-;11627:7;11636:6;11604:8;:39::i;:::-;11661:4;11654:11;;11504:169;;;;:::o;24125:102::-;2314:12;:10;:12::i;:::-;2303:23;;:7;:5;:7::i;:::-;:23;;;2295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24208:11:::1;24195:10;:24;;;;24125:102:::0;:::o;24326:106::-;2314:12;:10;:12::i;:::-;2303:23;;:7;:5;:7::i;:::-;:23;;;2295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24412:12:::1;24398:11;:26;;;;24326:106:::0;:::o;19609:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;10457:108::-;10518:7;10545:12;;10538:19;;10457:108;:::o;19536:31::-;;;;:::o;20225:33::-;;;;:::o;23698:113::-;2314:12;:10;:12::i;:::-;2303:23;;:7;:5;:7::i;:::-;:23;;;2295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23789:14:::1;23773:13;:30;;;;23698:113:::0;:::o;23917:::-;2314:12;:10;:12::i;:::-;2303:23;;:7;:5;:7::i;:::-;:23;;;2295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24008:14:::1;23992:13;:30;;;;23917:113:::0;:::o;12155:492::-;12295:4;12312:36;12322:6;12330:9;12341:6;12312:9;:36::i;:::-;12361:24;12388:11;:19;12400:6;12388:19;;;;;;;;;;;;;;;:33;12408:12;:10;:12::i;:::-;12388:33;;;;;;;;;;;;;;;;12361:60;;12460:6;12440:16;:26;;12432:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12547:57;12556:6;12564:12;:10;:12::i;:::-;12597:6;12578:16;:25;12547:8;:57::i;:::-;12635:4;12628:11;;;12155:492;;;;;:::o;10299:93::-;10357:5;10382:2;10375:9;;10299:93;:::o;13056:215::-;13144:4;13161:80;13170:12;:10;:12::i;:::-;13184:7;13230:10;13193:11;:25;13205:12;:10;:12::i;:::-;13193:25;;;;;;;;;;;;;;;:34;13219:7;13193:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;13161:8;:80::i;:::-;13259:4;13252:11;;13056:215;;;;:::o;20742:135::-;2314:12;:10;:12::i;:::-;2303:23;;:7;:5;:7::i;:::-;:23;;;2295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20854:15:::1;20831:10;:20;20842:8;20831:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;20742:135:::0;;:::o;22933:79::-;2314:12;:10;:12::i;:::-;2303:23;;:7;:5;:7::i;:::-;:23;;;2295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22999:5:::1;22992:4;:12;;;;22933:79:::0;:::o;22588:81::-;22637:24;22643:10;22655:5;22637;:24::i;:::-;22588:81;:::o;24569:79::-;2314:12;:10;:12::i;:::-;2303:23;;:7;:5;:7::i;:::-;:23;;;2295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24635:5:::1;24628:4;:12;;;;24569:79:::0;:::o;24853:102::-;2314:12;:10;:12::i;:::-;2303:23;;:7;:5;:7::i;:::-;:23;;;2295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24936:11:::1;24923:10;:24;;;;24853:102:::0;:::o;24235:83::-;2314:12;:10;:12::i;:::-;2303:23;;:7;:5;:7::i;:::-;:23;;;2295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24304:6:::1;24296:5;:14;;;;24235:83:::0;:::o;19574:28::-;;;;;;;;;;;;;:::o;25152:107::-;2314:12;:10;:12::i;:::-;2303:23;;:7;:5;:7::i;:::-;:23;;;2295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25239:12:::1;25225:11;:26;;;;25152:107:::0;:::o;22677:62::-;;:::o;25405:79::-;2314:12;:10;:12::i;:::-;2303:23;;:7;:5;:7::i;:::-;:23;;;2295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25471:5:::1;25464:4;:12;;;;25405:79:::0;:::o;10628:127::-;10702:7;10729:9;:18;10739:7;10729:18;;;;;;;;;;;;;;;;10722:25;;10628:127;;;:::o;2734:103::-;2314:12;:10;:12::i;:::-;2303:23;;:7;:5;:7::i;:::-;:23;;;2295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2799:30:::1;2826:1;2799:18;:30::i;:::-;2734:103::o:0;24963:75::-;2314:12;:10;:12::i;:::-;2303:23;;:7;:5;:7::i;:::-;:23;;;2295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25026:4:::1;25020:3;:10;;;;24963:75:::0;:::o;23381:90::-;2314:12;:10;:12::i;:::-;2303:23;;:7;:5;:7::i;:::-;:23;;;2295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23455:8:::1;23445:7;:18;;;;23381:90:::0;:::o;19472:19::-;;;;;;;;;;;;;:::o;24038:79::-;2314:12;:10;:12::i;:::-;2303:23;;:7;:5;:7::i;:::-;:23;;;2295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24104:5:::1;24097:4;:12;;;;24038:79:::0;:::o;19498:31::-;;;;:::o;23020:102::-;2314:12;:10;:12::i;:::-;2303:23;;:7;:5;:7::i;:::-;:23;;;2295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23103:11:::1;23090:10;:24;;;;23020:102:::0;:::o;23819:90::-;2314:12;:10;:12::i;:::-;2303:23;;:7;:5;:7::i;:::-;:23;;;2295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23893:8:::1;23883:7;:18;;;;23819:90:::0;:::o;2083:87::-;2129:7;2156:6;;;;;;;;;;;2149:13;;2083:87;:::o;20961:304::-;2314:12;:10;:12::i;:::-;2303:23;;:7;:5;:7::i;:::-;:23;;;2295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21114:8:::1;21104:7;;:18;;;;;;;;;;;;;;;;;;21149:14;21133:13;;:30;;;;;;;;;;;;;;;;;;21193:17;21174:16;:36;;;;21240:17;21221:16;:36;;;;20961:304:::0;;;;:::o;9556:104::-;9612:13;9645:7;9638:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9556:104;:::o;23244:129::-;2314:12;:10;:12::i;:::-;2303:23;;:7;:5;:7::i;:::-;:23;;;2295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23347:18:::1;23327:17;:38;;;;23244:129:::0;:::o;13774:413::-;13867:4;13884:24;13911:11;:25;13923:12;:10;:12::i;:::-;13911:25;;;;;;;;;;;;;;;:34;13937:7;13911:34;;;;;;;;;;;;;;;;13884:61;;13984:15;13964:16;:35;;13956:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14077:67;14086:12;:10;:12::i;:::-;14100:7;14128:15;14109:16;:34;14077:8;:67::i;:::-;14175:4;14168:11;;;13774:413;;;;:::o;10968:175::-;11054:4;11071:42;11081:12;:10;:12::i;:::-;11095:9;11106:6;11071:9;:42::i;:::-;11131:4;11124:11;;10968:175;;;;:::o;25267:130::-;2314:12;:10;:12::i;:::-;2303:23;;:7;:5;:7::i;:::-;:23;;;2295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25371:18:::1;25351:17;:38;;;;25267:130:::0;:::o;22799:126::-;2314:12;:10;:12::i;:::-;2303:23;;:7;:5;:7::i;:::-;:23;;;2295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22900:17:::1;22881:16;:36;;;;22799:126:::0;:::o;23479:113::-;2314:12;:10;:12::i;:::-;2303:23;;:7;:5;:7::i;:::-;:23;;;2295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23570:14:::1;23554:13;:30;;;;23479:113:::0;:::o;23130:106::-;2314:12;:10;:12::i;:::-;2303:23;;:7;:5;:7::i;:::-;:23;;;2295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23216:12:::1;23202:11;:26;;;;23130:106:::0;:::o;22747:44::-;:::o;24656:102::-;2314:12;:10;:12::i;:::-;2303:23;;:7;:5;:7::i;:::-;:23;;;2295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24739:11:::1;24726:10;:24;;;;24656:102:::0;:::o;20300:39::-;;;;:::o;25492:102::-;2314:12;:10;:12::i;:::-;2303:23;;:7;:5;:7::i;:::-;:23;;;2295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25575:11:::1;25562:10;:24;;;;25492:102:::0;:::o;11206:151::-;11295:7;11322:11;:18;11334:5;11322:18;;;;;;;;;;;;;;;:27;11341:7;11322:27;;;;;;;;;;;;;;;;11315:34;;11206:151;;;;:::o;25046:98::-;2314:12;:10;:12::i;:::-;2303:23;;:7;:5;:7::i;:::-;:23;;;2295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25126:10:::1;25114:9;:22;;;;25046:98:::0;:::o;2992:201::-;2314:12;:10;:12::i;:::-;2303:23;;:7;:5;:7::i;:::-;:23;;;2295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3101:1:::1;3081:22;;:8;:22;;::::0;3073:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3157:28;3176:8;3157:18;:28::i;:::-;2992:201:::0;:::o;24440:121::-;2314:12;:10;:12::i;:::-;2303:23;;:7;:5;:7::i;:::-;:23;;;2295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24537:16:::1;24519:15;:34;;;;24440:121:::0;:::o;23600:90::-;2314:12;:10;:12::i;:::-;2303:23;;:7;:5;:7::i;:::-;:23;;;2295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23674:8:::1;23664:7;:18;;;;23600:90:::0;:::o;24766:79::-;2314:12;:10;:12::i;:::-;2303:23;;:7;:5;:7::i;:::-;:23;;;2295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24832:5:::1;24825:4;:12;;;;24766:79:::0;:::o;801:98::-;854:7;881:10;874:17;;801:98;:::o;17458:380::-;17611:1;17594:19;;:5;:19;;;17586:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17692:1;17673:21;;:7;:21;;;17665:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17776:6;17746:11;:18;17758:5;17746:18;;;;;;;;;;;;;;;:27;17765:7;17746:27;;;;;;;;;;;;;;;:36;;;;17814:7;17798:32;;17807:5;17798:32;;;17823:6;17798:32;;;;;;:::i;:::-;;;;;;;;17458:380;;;:::o;14677:733::-;14835:1;14817:20;;:6;:20;;;14809:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14919:1;14898:23;;:9;:23;;;14890:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14974:47;14995:6;15003:9;15014:6;14974:20;:47::i;:::-;15034:21;15058:9;:17;15068:6;15058:17;;;;;;;;;;;;;;;;15034:41;;15111:6;15094:13;:23;;15086:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;15232:6;15216:13;:22;15196:9;:17;15206:6;15196:17;;;;;;;;;;;;;;;:42;;;;15284:6;15260:9;:20;15270:9;15260:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;15325:9;15308:35;;15317:6;15308:35;;;15336:6;15308:35;;;;;;:::i;:::-;;;;;;;;15356:46;15376:6;15384:9;15395:6;15356:19;:46::i;:::-;14798:612;14677:733;;;:::o;16429:591::-;16532:1;16513:21;;:7;:21;;;16505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16585:49;16606:7;16623:1;16627:6;16585:20;:49::i;:::-;16647:22;16672:9;:18;16682:7;16672:18;;;;;;;;;;;;;;;;16647:43;;16727:6;16709:14;:24;;16701:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16846:6;16829:14;:23;16808:9;:18;16818:7;16808:18;;;;;;;;;;;;;;;:44;;;;16890:6;16874:12;;:22;;;;;;;:::i;:::-;;;;;;;;16940:1;16914:37;;16923:7;16914:37;;;16944:6;16914:37;;;;;;:::i;:::-;;;;;;;;16964:48;16984:7;17001:1;17005:6;16964:19;:48::i;:::-;16494:526;16429:591;;:::o;3353:191::-;3427:16;3446:6;;;;;;;;;;;3427:25;;3472:8;3463:6;;:17;;;;;;;;;;;;;;;;;;3527:8;3496:40;;3517:8;3496:40;;;;;;;;;;;;3416:128;3353:191;:::o;21867:655::-;22019:10;:14;22030:2;22019:14;;;;;;;;;;;;;;;;;;;;;;;;;22018:15;:36;;;;;22038:10;:16;22049:4;22038:16;;;;;;;;;;;;;;;;;;;;;;;;;22037:17;22018:36;22010:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;22137:21;:19;:21::i;:::-;22200:1;22175:27;;:13;;;;;;;;;;;:27;;;22171:148;;22235:7;:5;:7::i;:::-;22227:15;;:4;:15;;;:32;;;;22252:7;:5;:7::i;:::-;22246:13;;:2;:13;;;22227:32;22219:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22301:7;;22171:148;22335:7;;;;;;;;;;;:32;;;;;22354:13;;;;;;;;;;;22346:21;;:4;:21;;;22335:32;22331:184;;;22424:16;;22414:6;22392:19;22408:2;22392:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;:100;;;;;22476:16;;22466:6;22444:19;22460:2;22444:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;22392:100;22384:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;22331:184;21867:655;;;;:::o;19167:124::-;;;;:::o;21357:422::-;21457:9;21430:24;;:36;;;;:::i;:::-;21412:15;:54;21408:364;;;21483:22;21555:9;21527:24;;21509:15;:42;;;;:::i;:::-;21508:56;;;;:::i;:::-;21483:81;;21579:16;21646:14;21638:5;21617:18;;21598:16;;:37;;;;:::i;:::-;:45;;;;:::i;:::-;:62;;;;:::i;:::-;21579:81;;21695:8;21675:16;;:28;;;;;;;:::i;:::-;;;;;;;;21745:15;21718:24;:42;;;;21468:304;;21408:364;21357:422::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:329::-;3398:6;3447:2;3435:9;3426:7;3422:23;3418:32;3415:119;;;3453:79;;:::i;:::-;3415:119;3573:1;3598:53;3643:7;3634:6;3623:9;3619:22;3598:53;:::i;:::-;3588:63;;3544:117;3339:329;;;;:::o;3674:::-;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:180::-;7796:77;7793:1;7786:88;7893:4;7890:1;7883:15;7917:4;7914:1;7907:15;7934:320;7978:6;8015:1;8009:4;8005:12;7995:22;;8062:1;8056:4;8052:12;8083:18;8073:81;;8139:4;8131:6;8127:17;8117:27;;8073:81;8201:2;8193:6;8190:14;8170:18;8167:38;8164:84;;8220:18;;:::i;:::-;8164:84;7985:269;7934:320;;;:::o;8260:182::-;8400:34;8396:1;8388:6;8384:14;8377:58;8260:182;:::o;8448:366::-;8590:3;8611:67;8675:2;8670:3;8611:67;:::i;:::-;8604:74;;8687:93;8776:3;8687:93;:::i;:::-;8805:2;8800:3;8796:12;8789:19;;8448:366;;;:::o;8820:419::-;8986:4;9024:2;9013:9;9009:18;9001:26;;9073:9;9067:4;9063:20;9059:1;9048:9;9044:17;9037:47;9101:131;9227:4;9101:131;:::i;:::-;9093:139;;8820:419;;;:::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://9e3b4ef5728113338495ace708958df44cfba1ab2f2d5696610b507107daee25
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.