ETH Price: $3,122.02 (+0.08%)
 

Overview

Max Total Supply

20,991,608,024,222.73993598 RGOAT

Holders

10,378

Transfers

-
30 ( -46.43%)

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

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

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
Token

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "./helpers/TransferHelpers.sol";

contract Token is Ownable, ERC20 {
  
  uint16 public deflationPercentage;
  uint256 public timestampSnapshot;
  uint256 public deflatable = 0;

  constructor(address to, string memory name_, string memory symbol_, uint256 amount_, uint16 _deflationPercentage, address newOwner) Ownable() ERC20(name_, symbol_) {
    _mint(to, amount_);
    timestampSnapshot = block.timestamp;
    deflationPercentage = _deflationPercentage;
    _transferOwnership(newOwner);
  }

  function retrieveEther(address to) external onlyOwner {
    TransferHelpers._safeTransferEther(to, address(this).balance);
  }

  function decimals() public view virtual override returns (uint8) {
    return 8;
  }

  function retrieveERC20(
    address token,
    address to,
    uint256 amount
  ) external onlyOwner {
    TransferHelpers._safeTransferERC20(token, to, amount);
    if (token == address(this)) {
      deflatable -= amount;
    }
  }

  function _transfer(
    address from,
    address to,
    uint256 amount
  ) internal virtual override(ERC20) {
    uint256 fee = _calcFee(amount);
    deflatable += fee;
    uint256 elapsed = block.timestamp - timestampSnapshot;

    if (fee > 0) {
      super._transfer(from, address(this), fee);
    }

    if (elapsed >= 365 days && deflatable > 0) {
      _burn(address(this), deflatable);
      deflatable = 0;
      timestampSnapshot = block.timestamp;
    }

    super._transfer(from, to, amount - fee);
  }

  function _calcFee(uint256 _amount) internal view returns (uint256 fee) {
    fee = (deflationPercentage * _amount) / 10**5;
  }

  function setDeflationPercentage(uint16 _deflationPercentage) external onlyOwner {
    deflationPercentage = _deflationPercentage;
  }

  receive() external payable {}
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)

pragma solidity ^0.8.0;

import "../utils/Context.sol";

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

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

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

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

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

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

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

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        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);
    }
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;

import "./IERC20.sol";
import "./extensions/IERC20Metadata.sol";
import "../../utils/Context.sol";

/**
 * @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.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * The default value of {decimals} is 18. To change this, you should override
 * this function so it returns a different value.
 *
 * 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}.
     *
     * 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 default value returned by this function, unless
     * it's 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:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, 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}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, 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}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, 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) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, 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) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * 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:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, 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;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _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;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _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 Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - 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 {}
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;

import "../IERC20.sol";

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

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

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

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

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

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

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

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

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

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

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)

pragma solidity ^0.8.1;

/**
 * @dev Collection of functions related to the address type
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     *
     * Furthermore, `isContract` will also return true if the target contract within
     * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,
     * which only has an effect at the end of a transaction.
     * ====
     *
     * [IMPORTANT]
     * ====
     * You shouldn't rely on `isContract` to protect against flash loan attacks!
     *
     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets
     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract
     * constructor.
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // This method relies on extcodesize/address.code.length, which returns 0
        // for contracts in construction, since the code is only stored at the end
        // of the constructor execution.

        return account.code.length > 0;
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain `call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }

    /**
     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling
     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.
     *
     * _Available since v4.8._
     */
    function verifyCallResultFromTarget(
        address target,
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        if (success) {
            if (returndata.length == 0) {
                // only check isContract if the call was successful and the return data is empty
                // otherwise we already know that it was a contract
                require(isContract(target), "Address: call to non-contract");
            }
            return returndata;
        } else {
            _revert(returndata, errorMessage);
        }
    }

    /**
     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the
     * revert reason or using the provided one.
     *
     * _Available since v4.3._
     */
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            _revert(returndata, errorMessage);
        }
    }

    function _revert(bytes memory returndata, string memory errorMessage) private pure {
        // Look for revert reason and bubble it up if present
        if (returndata.length > 0) {
            // The easiest way to bubble the revert reason is using memory via assembly
            /// @solidity memory-safe-assembly
            assembly {
                let returndata_size := mload(returndata)
                revert(add(32, returndata), returndata_size)
            }
        } else {
            revert(errorMessage);
        }
    }
}

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

pragma solidity ^0.8.0;

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

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

pragma solidity ^0.8.0;

import "@openzeppelin/contracts/utils/Address.sol";

library TransferHelpers {
  using Address for address;

  function _safeTransferEther(address to, uint256 amount) internal returns (bool success) {
    (success, ) = to.call{value: amount}("");
    require(success, "failed to transfer ether");
  }

  function _safeTransferERC20(
    address token,
    address to,
    uint256 amount
  ) internal returns (bool success) {
    require(token.isContract(), "call_to_non_contract");
    (success, ) = token.call(abi.encodeWithSelector(bytes4(keccak256(bytes("transfer(address,uint256)"))), to, amount));
    require(success, "low_level_contract_call_failed");
  }
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint256","name":"amount_","type":"uint256"},{"internalType":"uint16","name":"_deflationPercentage","type":"uint16"},{"internalType":"address","name":"newOwner","type":"address"}],"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":[],"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":"deflatable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deflationPercentage","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","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":"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":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"retrieveERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"retrieveEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_deflationPercentage","type":"uint16"}],"name":"setDeflationPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timestampSnapshot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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"},{"stateMutability":"payable","type":"receive"}]

608060405260006008553480156200001657600080fd5b5060405162002d2138038062002d2183398181016040528101906200003c91906200058d565b84846200005e62000052620000d760201b60201c565b620000df60201b60201c565b81600490816200006f9190620008a8565b508060059081620000819190620008a8565b505050620000968684620001a360201b60201c565b4260078190555081600660006101000a81548161ffff021916908361ffff160217905550620000cb81620000df60201b60201c565b50505050505062000aaa565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000215576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200020c90620009f0565b60405180910390fd5b62000229600083836200031160201b60201c565b80600360008282546200023d919062000a41565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002f1919062000a8d565b60405180910390a36200030d600083836200031660201b60201c565b5050565b505050565b505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200035c826200032f565b9050919050565b6200036e816200034f565b81146200037a57600080fd5b50565b6000815190506200038e8162000363565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620003e9826200039e565b810181811067ffffffffffffffff821117156200040b576200040a620003af565b5b80604052505050565b6000620004206200031b565b90506200042e8282620003de565b919050565b600067ffffffffffffffff821115620004515762000450620003af565b5b6200045c826200039e565b9050602081019050919050565b60005b83811015620004895780820151818401526020810190506200046c565b60008484015250505050565b6000620004ac620004a68462000433565b62000414565b905082815260208101848484011115620004cb57620004ca62000399565b5b620004d884828562000469565b509392505050565b600082601f830112620004f857620004f762000394565b5b81516200050a84826020860162000495565b91505092915050565b6000819050919050565b620005288162000513565b81146200053457600080fd5b50565b60008151905062000548816200051d565b92915050565b600061ffff82169050919050565b62000567816200054e565b81146200057357600080fd5b50565b60008151905062000587816200055c565b92915050565b60008060008060008060c08789031215620005ad57620005ac62000325565b5b6000620005bd89828a016200037d565b965050602087015167ffffffffffffffff811115620005e157620005e06200032a565b5b620005ef89828a01620004e0565b955050604087015167ffffffffffffffff8111156200061357620006126200032a565b5b6200062189828a01620004e0565b94505060606200063489828a0162000537565b93505060806200064789828a0162000576565b92505060a06200065a89828a016200037d565b9150509295509295509295565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620006ba57607f821691505b602082108103620006d057620006cf62000672565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200073a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620006fb565b620007468683620006fb565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000789620007836200077d8462000513565b6200075e565b62000513565b9050919050565b6000819050919050565b620007a58362000768565b620007bd620007b48262000790565b84845462000708565b825550505050565b600090565b620007d4620007c5565b620007e18184846200079a565b505050565b5b818110156200080957620007fd600082620007ca565b600181019050620007e7565b5050565b601f82111562000858576200082281620006d6565b6200082d84620006eb565b810160208510156200083d578190505b620008556200084c85620006eb565b830182620007e6565b50505b505050565b600082821c905092915050565b60006200087d600019846008026200085d565b1980831691505092915050565b60006200089883836200086a565b9150826002028217905092915050565b620008b38262000667565b67ffffffffffffffff811115620008cf57620008ce620003af565b5b620008db8254620006a1565b620008e88282856200080d565b600060209050601f8311600181146200092057600084156200090b578287015190505b6200091785826200088a565b86555062000987565b601f1984166200093086620006d6565b60005b828110156200095a5784890151825560018201915060208501945060208101905062000933565b868310156200097a578489015162000976601f8916826200086a565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620009d8601f836200098f565b9150620009e582620009a0565b602082019050919050565b6000602082019050818103600083015262000a0b81620009c9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000a4e8262000513565b915062000a5b8362000513565b925082820190508082111562000a765762000a7562000a12565b5b92915050565b62000a878162000513565b82525050565b600060208201905062000aa4600083018462000a7c565b92915050565b6122678062000aba6000396000f3fe6080604052600436106101235760003560e01c80636feb869d116100a0578063a457c2d711610064578063a457c2d7146103e4578063a9059cbb14610421578063d63f45941461045e578063dd62ed3e14610487578063f2fde38b146104c45761012a565b80636feb869d1461030f57806370a082311461033a578063715018a6146103775780638da5cb5b1461038e57806395d89b41146103b95761012a565b806323b872dd116100e757806323b872dd14610216578063313ce56714610253578063395093511461027e5780635e4a2d9a146102bb5780636497602b146102e65761012a565b806306fdde031461012f578063084a13921461015a578063095ea7b31461018357806318160ddd146101c05780631fcc224e146101eb5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b506101446104ed565b604051610151919061158b565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c9190611610565b61057f565b005b34801561018f57600080fd5b506101aa60048036038101906101a59190611673565b610595565b6040516101b791906116ce565b60405180910390f35b3480156101cc57600080fd5b506101d56105b8565b6040516101e291906116f8565b60405180910390f35b3480156101f757600080fd5b506102006105c2565b60405161020d91906116f8565b60405180910390f35b34801561022257600080fd5b5061023d60048036038101906102389190611713565b6105c8565b60405161024a91906116ce565b60405180910390f35b34801561025f57600080fd5b506102686105f7565b6040516102759190611782565b60405180910390f35b34801561028a57600080fd5b506102a560048036038101906102a09190611673565b610600565b6040516102b291906116ce565b60405180910390f35b3480156102c757600080fd5b506102d0610637565b6040516102dd91906117ba565b60405180910390f35b3480156102f257600080fd5b5061030d60048036038101906103089190611801565b61064b565b005b34801561031b57600080fd5b50610324610673565b60405161033191906116f8565b60405180910390f35b34801561034657600080fd5b50610361600480360381019061035c9190611610565b610679565b60405161036e91906116f8565b60405180910390f35b34801561038357600080fd5b5061038c6106c2565b005b34801561039a57600080fd5b506103a36106d6565b6040516103b0919061183d565b60405180910390f35b3480156103c557600080fd5b506103ce6106ff565b6040516103db919061158b565b60405180910390f35b3480156103f057600080fd5b5061040b60048036038101906104069190611673565b610791565b60405161041891906116ce565b60405180910390f35b34801561042d57600080fd5b5061044860048036038101906104439190611673565b610808565b60405161045591906116ce565b60405180910390f35b34801561046a57600080fd5b5061048560048036038101906104809190611713565b61082b565b005b34801561049357600080fd5b506104ae60048036038101906104a99190611858565b610891565b6040516104bb91906116f8565b60405180910390f35b3480156104d057600080fd5b506104eb60048036038101906104e69190611610565b610918565b005b6060600480546104fc906118c7565b80601f0160208091040260200160405190810160405280929190818152602001828054610528906118c7565b80156105755780601f1061054a57610100808354040283529160200191610575565b820191906000526020600020905b81548152906001019060200180831161055857829003601f168201915b5050505050905090565b61058761099b565b6105918147610a19565b5050565b6000806105a0610acd565b90506105ad818585610ad5565b600191505092915050565b6000600354905090565b60075481565b6000806105d3610acd565b90506105e0858285610c9e565b6105eb858585610d2a565b60019150509392505050565b60006008905090565b60008061060b610acd565b905061062c81858561061d8589610891565b6106279190611927565b610ad5565b600191505092915050565b600660009054906101000a900461ffff1681565b61065361099b565b80600660006101000a81548161ffff021916908361ffff16021790555050565b60085481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6106ca61099b565b6106d46000610dcb565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606005805461070e906118c7565b80601f016020809104026020016040519081016040528092919081815260200182805461073a906118c7565b80156107875780601f1061075c57610100808354040283529160200191610787565b820191906000526020600020905b81548152906001019060200180831161076a57829003601f168201915b5050505050905090565b60008061079c610acd565b905060006107aa8286610891565b9050838110156107ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e6906119cd565b60405180910390fd5b6107fc8286868403610ad5565b60019250505092915050565b600080610813610acd565b9050610820818585610d2a565b600191505092915050565b61083361099b565b61083e838383610e8f565b503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361088c57806008600082825461088491906119ed565b925050819055505b505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61092061099b565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361098f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098690611a93565b60405180910390fd5b61099881610dcb565b50565b6109a3610acd565b73ffffffffffffffffffffffffffffffffffffffff166109c16106d6565b73ffffffffffffffffffffffffffffffffffffffff1614610a17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0e90611aff565b60405180910390fd5b565b60008273ffffffffffffffffffffffffffffffffffffffff1682604051610a3f90611b50565b60006040518083038185875af1925050503d8060008114610a7c576040519150601f19603f3d011682016040523d82523d6000602084013e610a81565b606091505b50508091505080610ac7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abe90611bb1565b60405180910390fd5b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3b90611c43565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baa90611cd5565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c9191906116f8565b60405180910390a3505050565b6000610caa8484610891565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610d245781811015610d16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0d90611d41565b60405180910390fd5b610d238484848403610ad5565b5b50505050565b6000610d358261104f565b90508060086000828254610d499190611927565b92505081905550600060075442610d6091906119ed565b90506000821115610d7757610d76853084611086565b5b6301e133808110158015610d8d57506000600854115b15610dae57610d9e306008546112ff565b6000600881905550426007819055505b610dc485858486610dbf91906119ed565b611086565b5050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000610eb08473ffffffffffffffffffffffffffffffffffffffff166114ce565b610eef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee690611dad565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166040518060400160405280601981526020017f7472616e7366657228616464726573732c75696e743235362900000000000000815250805190602001208484604051602401610f56929190611dcd565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610fc09190611e32565b6000604051808303816000865af19150503d8060008114610ffd576040519150601f19603f3d011682016040523d82523d6000602084013e611002565b606091505b50508091505080611048576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103f90611e95565b60405180910390fd5b9392505050565b6000620186a082600660009054906101000a900461ffff1661ffff166110759190611eb5565b61107f9190611f26565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ec90611fc9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611164576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115b9061205b565b60405180910390fd5b61116f8383836114f1565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ed906120ed565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112e691906116f8565b60405180910390a36112f98484846114f6565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361136e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113659061217f565b60405180910390fd5b61137a826000836114f1565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611401576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f890612211565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114b591906116f8565b60405180910390a36114c9836000846114f6565b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561153557808201518184015260208101905061151a565b60008484015250505050565b6000601f19601f8301169050919050565b600061155d826114fb565b6115678185611506565b9350611577818560208601611517565b61158081611541565b840191505092915050565b600060208201905081810360008301526115a58184611552565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006115dd826115b2565b9050919050565b6115ed816115d2565b81146115f857600080fd5b50565b60008135905061160a816115e4565b92915050565b600060208284031215611626576116256115ad565b5b6000611634848285016115fb565b91505092915050565b6000819050919050565b6116508161163d565b811461165b57600080fd5b50565b60008135905061166d81611647565b92915050565b6000806040838503121561168a576116896115ad565b5b6000611698858286016115fb565b92505060206116a98582860161165e565b9150509250929050565b60008115159050919050565b6116c8816116b3565b82525050565b60006020820190506116e360008301846116bf565b92915050565b6116f28161163d565b82525050565b600060208201905061170d60008301846116e9565b92915050565b60008060006060848603121561172c5761172b6115ad565b5b600061173a868287016115fb565b935050602061174b868287016115fb565b925050604061175c8682870161165e565b9150509250925092565b600060ff82169050919050565b61177c81611766565b82525050565b60006020820190506117976000830184611773565b92915050565b600061ffff82169050919050565b6117b48161179d565b82525050565b60006020820190506117cf60008301846117ab565b92915050565b6117de8161179d565b81146117e957600080fd5b50565b6000813590506117fb816117d5565b92915050565b600060208284031215611817576118166115ad565b5b6000611825848285016117ec565b91505092915050565b611837816115d2565b82525050565b6000602082019050611852600083018461182e565b92915050565b6000806040838503121561186f5761186e6115ad565b5b600061187d858286016115fb565b925050602061188e858286016115fb565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806118df57607f821691505b6020821081036118f2576118f1611898565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006119328261163d565b915061193d8361163d565b9250828201905080821115611955576119546118f8565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006119b7602583611506565b91506119c28261195b565b604082019050919050565b600060208201905081810360008301526119e6816119aa565b9050919050565b60006119f88261163d565b9150611a038361163d565b9250828203905081811115611a1b57611a1a6118f8565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611a7d602683611506565b9150611a8882611a21565b604082019050919050565b60006020820190508181036000830152611aac81611a70565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611ae9602083611506565b9150611af482611ab3565b602082019050919050565b60006020820190508181036000830152611b1881611adc565b9050919050565b600081905092915050565b50565b6000611b3a600083611b1f565b9150611b4582611b2a565b600082019050919050565b6000611b5b82611b2d565b9150819050919050565b7f6661696c656420746f207472616e736665722065746865720000000000000000600082015250565b6000611b9b601883611506565b9150611ba682611b65565b602082019050919050565b60006020820190508181036000830152611bca81611b8e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611c2d602483611506565b9150611c3882611bd1565b604082019050919050565b60006020820190508181036000830152611c5c81611c20565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611cbf602283611506565b9150611cca82611c63565b604082019050919050565b60006020820190508181036000830152611cee81611cb2565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611d2b601d83611506565b9150611d3682611cf5565b602082019050919050565b60006020820190508181036000830152611d5a81611d1e565b9050919050565b7f63616c6c5f746f5f6e6f6e5f636f6e7472616374000000000000000000000000600082015250565b6000611d97601483611506565b9150611da282611d61565b602082019050919050565b60006020820190508181036000830152611dc681611d8a565b9050919050565b6000604082019050611de2600083018561182e565b611def60208301846116e9565b9392505050565b600081519050919050565b6000611e0c82611df6565b611e168185611b1f565b9350611e26818560208601611517565b80840191505092915050565b6000611e3e8284611e01565b915081905092915050565b7f6c6f775f6c6576656c5f636f6e74726163745f63616c6c5f6661696c65640000600082015250565b6000611e7f601e83611506565b9150611e8a82611e49565b602082019050919050565b60006020820190508181036000830152611eae81611e72565b9050919050565b6000611ec08261163d565b9150611ecb8361163d565b9250828202611ed98161163d565b91508282048414831517611ef057611eef6118f8565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611f318261163d565b9150611f3c8361163d565b925082611f4c57611f4b611ef7565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611fb3602583611506565b9150611fbe82611f57565b604082019050919050565b60006020820190508181036000830152611fe281611fa6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612045602383611506565b915061205082611fe9565b604082019050919050565b6000602082019050818103600083015261207481612038565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006120d7602683611506565b91506120e28261207b565b604082019050919050565b60006020820190508181036000830152612106816120ca565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612169602183611506565b91506121748261210d565b604082019050919050565b600060208201905081810360008301526121988161215c565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006121fb602283611506565b91506122068261219f565b604082019050919050565b6000602082019050818103600083015261222a816121ee565b905091905056fea26469706673582212201dd1650c057ffa32aca8c4cb67f640d70aeba9679e451050dfddc000f344578364736f6c6343000811003300000000000000000000000087ab6e1be59e7eaa347291ee2ce60f2b47e6227b00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000071d75ab9b9205000000000000000000000000000000000000000000000000000000000000000000015000000000000000000000000e2f503268793f0fe49ca87ea4322172f80f5f08800000000000000000000000000000000000000000000000000000000000000085265616c474f4154000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000552474f4154000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106101235760003560e01c80636feb869d116100a0578063a457c2d711610064578063a457c2d7146103e4578063a9059cbb14610421578063d63f45941461045e578063dd62ed3e14610487578063f2fde38b146104c45761012a565b80636feb869d1461030f57806370a082311461033a578063715018a6146103775780638da5cb5b1461038e57806395d89b41146103b95761012a565b806323b872dd116100e757806323b872dd14610216578063313ce56714610253578063395093511461027e5780635e4a2d9a146102bb5780636497602b146102e65761012a565b806306fdde031461012f578063084a13921461015a578063095ea7b31461018357806318160ddd146101c05780631fcc224e146101eb5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b506101446104ed565b604051610151919061158b565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c9190611610565b61057f565b005b34801561018f57600080fd5b506101aa60048036038101906101a59190611673565b610595565b6040516101b791906116ce565b60405180910390f35b3480156101cc57600080fd5b506101d56105b8565b6040516101e291906116f8565b60405180910390f35b3480156101f757600080fd5b506102006105c2565b60405161020d91906116f8565b60405180910390f35b34801561022257600080fd5b5061023d60048036038101906102389190611713565b6105c8565b60405161024a91906116ce565b60405180910390f35b34801561025f57600080fd5b506102686105f7565b6040516102759190611782565b60405180910390f35b34801561028a57600080fd5b506102a560048036038101906102a09190611673565b610600565b6040516102b291906116ce565b60405180910390f35b3480156102c757600080fd5b506102d0610637565b6040516102dd91906117ba565b60405180910390f35b3480156102f257600080fd5b5061030d60048036038101906103089190611801565b61064b565b005b34801561031b57600080fd5b50610324610673565b60405161033191906116f8565b60405180910390f35b34801561034657600080fd5b50610361600480360381019061035c9190611610565b610679565b60405161036e91906116f8565b60405180910390f35b34801561038357600080fd5b5061038c6106c2565b005b34801561039a57600080fd5b506103a36106d6565b6040516103b0919061183d565b60405180910390f35b3480156103c557600080fd5b506103ce6106ff565b6040516103db919061158b565b60405180910390f35b3480156103f057600080fd5b5061040b60048036038101906104069190611673565b610791565b60405161041891906116ce565b60405180910390f35b34801561042d57600080fd5b5061044860048036038101906104439190611673565b610808565b60405161045591906116ce565b60405180910390f35b34801561046a57600080fd5b5061048560048036038101906104809190611713565b61082b565b005b34801561049357600080fd5b506104ae60048036038101906104a99190611858565b610891565b6040516104bb91906116f8565b60405180910390f35b3480156104d057600080fd5b506104eb60048036038101906104e69190611610565b610918565b005b6060600480546104fc906118c7565b80601f0160208091040260200160405190810160405280929190818152602001828054610528906118c7565b80156105755780601f1061054a57610100808354040283529160200191610575565b820191906000526020600020905b81548152906001019060200180831161055857829003601f168201915b5050505050905090565b61058761099b565b6105918147610a19565b5050565b6000806105a0610acd565b90506105ad818585610ad5565b600191505092915050565b6000600354905090565b60075481565b6000806105d3610acd565b90506105e0858285610c9e565b6105eb858585610d2a565b60019150509392505050565b60006008905090565b60008061060b610acd565b905061062c81858561061d8589610891565b6106279190611927565b610ad5565b600191505092915050565b600660009054906101000a900461ffff1681565b61065361099b565b80600660006101000a81548161ffff021916908361ffff16021790555050565b60085481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6106ca61099b565b6106d46000610dcb565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606005805461070e906118c7565b80601f016020809104026020016040519081016040528092919081815260200182805461073a906118c7565b80156107875780601f1061075c57610100808354040283529160200191610787565b820191906000526020600020905b81548152906001019060200180831161076a57829003601f168201915b5050505050905090565b60008061079c610acd565b905060006107aa8286610891565b9050838110156107ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e6906119cd565b60405180910390fd5b6107fc8286868403610ad5565b60019250505092915050565b600080610813610acd565b9050610820818585610d2a565b600191505092915050565b61083361099b565b61083e838383610e8f565b503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361088c57806008600082825461088491906119ed565b925050819055505b505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61092061099b565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361098f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098690611a93565b60405180910390fd5b61099881610dcb565b50565b6109a3610acd565b73ffffffffffffffffffffffffffffffffffffffff166109c16106d6565b73ffffffffffffffffffffffffffffffffffffffff1614610a17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0e90611aff565b60405180910390fd5b565b60008273ffffffffffffffffffffffffffffffffffffffff1682604051610a3f90611b50565b60006040518083038185875af1925050503d8060008114610a7c576040519150601f19603f3d011682016040523d82523d6000602084013e610a81565b606091505b50508091505080610ac7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abe90611bb1565b60405180910390fd5b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3b90611c43565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baa90611cd5565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c9191906116f8565b60405180910390a3505050565b6000610caa8484610891565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610d245781811015610d16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0d90611d41565b60405180910390fd5b610d238484848403610ad5565b5b50505050565b6000610d358261104f565b90508060086000828254610d499190611927565b92505081905550600060075442610d6091906119ed565b90506000821115610d7757610d76853084611086565b5b6301e133808110158015610d8d57506000600854115b15610dae57610d9e306008546112ff565b6000600881905550426007819055505b610dc485858486610dbf91906119ed565b611086565b5050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000610eb08473ffffffffffffffffffffffffffffffffffffffff166114ce565b610eef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee690611dad565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166040518060400160405280601981526020017f7472616e7366657228616464726573732c75696e743235362900000000000000815250805190602001208484604051602401610f56929190611dcd565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610fc09190611e32565b6000604051808303816000865af19150503d8060008114610ffd576040519150601f19603f3d011682016040523d82523d6000602084013e611002565b606091505b50508091505080611048576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103f90611e95565b60405180910390fd5b9392505050565b6000620186a082600660009054906101000a900461ffff1661ffff166110759190611eb5565b61107f9190611f26565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ec90611fc9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611164576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115b9061205b565b60405180910390fd5b61116f8383836114f1565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ed906120ed565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112e691906116f8565b60405180910390a36112f98484846114f6565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361136e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113659061217f565b60405180910390fd5b61137a826000836114f1565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611401576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f890612211565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114b591906116f8565b60405180910390a36114c9836000846114f6565b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561153557808201518184015260208101905061151a565b60008484015250505050565b6000601f19601f8301169050919050565b600061155d826114fb565b6115678185611506565b9350611577818560208601611517565b61158081611541565b840191505092915050565b600060208201905081810360008301526115a58184611552565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006115dd826115b2565b9050919050565b6115ed816115d2565b81146115f857600080fd5b50565b60008135905061160a816115e4565b92915050565b600060208284031215611626576116256115ad565b5b6000611634848285016115fb565b91505092915050565b6000819050919050565b6116508161163d565b811461165b57600080fd5b50565b60008135905061166d81611647565b92915050565b6000806040838503121561168a576116896115ad565b5b6000611698858286016115fb565b92505060206116a98582860161165e565b9150509250929050565b60008115159050919050565b6116c8816116b3565b82525050565b60006020820190506116e360008301846116bf565b92915050565b6116f28161163d565b82525050565b600060208201905061170d60008301846116e9565b92915050565b60008060006060848603121561172c5761172b6115ad565b5b600061173a868287016115fb565b935050602061174b868287016115fb565b925050604061175c8682870161165e565b9150509250925092565b600060ff82169050919050565b61177c81611766565b82525050565b60006020820190506117976000830184611773565b92915050565b600061ffff82169050919050565b6117b48161179d565b82525050565b60006020820190506117cf60008301846117ab565b92915050565b6117de8161179d565b81146117e957600080fd5b50565b6000813590506117fb816117d5565b92915050565b600060208284031215611817576118166115ad565b5b6000611825848285016117ec565b91505092915050565b611837816115d2565b82525050565b6000602082019050611852600083018461182e565b92915050565b6000806040838503121561186f5761186e6115ad565b5b600061187d858286016115fb565b925050602061188e858286016115fb565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806118df57607f821691505b6020821081036118f2576118f1611898565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006119328261163d565b915061193d8361163d565b9250828201905080821115611955576119546118f8565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006119b7602583611506565b91506119c28261195b565b604082019050919050565b600060208201905081810360008301526119e6816119aa565b9050919050565b60006119f88261163d565b9150611a038361163d565b9250828203905081811115611a1b57611a1a6118f8565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611a7d602683611506565b9150611a8882611a21565b604082019050919050565b60006020820190508181036000830152611aac81611a70565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611ae9602083611506565b9150611af482611ab3565b602082019050919050565b60006020820190508181036000830152611b1881611adc565b9050919050565b600081905092915050565b50565b6000611b3a600083611b1f565b9150611b4582611b2a565b600082019050919050565b6000611b5b82611b2d565b9150819050919050565b7f6661696c656420746f207472616e736665722065746865720000000000000000600082015250565b6000611b9b601883611506565b9150611ba682611b65565b602082019050919050565b60006020820190508181036000830152611bca81611b8e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611c2d602483611506565b9150611c3882611bd1565b604082019050919050565b60006020820190508181036000830152611c5c81611c20565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611cbf602283611506565b9150611cca82611c63565b604082019050919050565b60006020820190508181036000830152611cee81611cb2565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611d2b601d83611506565b9150611d3682611cf5565b602082019050919050565b60006020820190508181036000830152611d5a81611d1e565b9050919050565b7f63616c6c5f746f5f6e6f6e5f636f6e7472616374000000000000000000000000600082015250565b6000611d97601483611506565b9150611da282611d61565b602082019050919050565b60006020820190508181036000830152611dc681611d8a565b9050919050565b6000604082019050611de2600083018561182e565b611def60208301846116e9565b9392505050565b600081519050919050565b6000611e0c82611df6565b611e168185611b1f565b9350611e26818560208601611517565b80840191505092915050565b6000611e3e8284611e01565b915081905092915050565b7f6c6f775f6c6576656c5f636f6e74726163745f63616c6c5f6661696c65640000600082015250565b6000611e7f601e83611506565b9150611e8a82611e49565b602082019050919050565b60006020820190508181036000830152611eae81611e72565b9050919050565b6000611ec08261163d565b9150611ecb8361163d565b9250828202611ed98161163d565b91508282048414831517611ef057611eef6118f8565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611f318261163d565b9150611f3c8361163d565b925082611f4c57611f4b611ef7565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611fb3602583611506565b9150611fbe82611f57565b604082019050919050565b60006020820190508181036000830152611fe281611fa6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612045602383611506565b915061205082611fe9565b604082019050919050565b6000602082019050818103600083015261207481612038565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006120d7602683611506565b91506120e28261207b565b604082019050919050565b60006020820190508181036000830152612106816120ca565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612169602183611506565b91506121748261210d565b604082019050919050565b600060208201905081810360008301526121988161215c565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006121fb602283611506565b91506122068261219f565b604082019050919050565b6000602082019050818103600083015261222a816121ee565b905091905056fea26469706673582212201dd1650c057ffa32aca8c4cb67f640d70aeba9679e451050dfddc000f344578364736f6c63430008110033

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

00000000000000000000000087ab6e1be59e7eaa347291ee2ce60f2b47e6227b00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000071d75ab9b9205000000000000000000000000000000000000000000000000000000000000000000015000000000000000000000000e2f503268793f0fe49ca87ea4322172f80f5f08800000000000000000000000000000000000000000000000000000000000000085265616c474f4154000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000552474f4154000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : to (address): 0x87ab6e1be59e7eAa347291eE2CE60F2b47e6227B
Arg [1] : name_ (string): RealGOAT
Arg [2] : symbol_ (string): RGOAT
Arg [3] : amount_ (uint256): 2100000000000000000000
Arg [4] : _deflationPercentage (uint16): 21
Arg [5] : newOwner (address): 0xE2F503268793f0Fe49cA87ea4322172F80f5F088

-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 00000000000000000000000087ab6e1be59e7eaa347291ee2ce60f2b47e6227b
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [3] : 000000000000000000000000000000000000000000000071d75ab9b920500000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000015
Arg [5] : 000000000000000000000000e2f503268793f0fe49ca87ea4322172f80f5f088
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [7] : 5265616c474f4154000000000000000000000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [9] : 52474f4154000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

175:1740:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;642:126:6;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4444:197:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3255:106;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;252:32:6;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5203:256:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;772:84:6;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5854:234:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;215:33:6;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1747:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;288:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3419:125:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1824:101:0;;;;;;;;;;;;;:::i;:::-;;1201:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2369:102:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6575:427;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3740:189;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;860:233:6;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3987:149:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2074:198:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2158:98:1;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;642:126:6:-;1094:13:0;:11;:13::i;:::-;702:61:6::1;737:2;741:21;702:34;:61::i;:::-;;642:126:::0;:::o;4444:197:1:-;4527:4;4543:13;4559:12;:10;:12::i;:::-;4543:28;;4581:32;4590:5;4597:7;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;:::o;3255:106::-;3316:7;3342:12;;3335:19;;3255:106;:::o;252:32:6:-;;;;:::o;5203:256:1:-;5300:4;5316:15;5334:12;:10;:12::i;:::-;5316:30;;5356:38;5372:4;5378:7;5387:6;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;5448:4;5441:11;;;5203:256;;;;;:::o;772:84:6:-;830:5;850:1;843:8;;772:84;:::o;5854:234:1:-;5942:4;5958:13;5974:12;:10;:12::i;:::-;5958:28;;5996:64;6005:5;6012:7;6049:10;6021:25;6031:5;6038:7;6021:9;:25::i;:::-;:38;;;;:::i;:::-;5996:8;:64::i;:::-;6077:4;6070:11;;;5854:234;;;;:::o;215:33:6:-;;;;;;;;;;;;;:::o;1747:133::-;1094:13:0;:11;:13::i;:::-;1855:20:6::1;1833:19;;:42;;;;;;;;;;;;;;;;;;1747:133:::0;:::o;288:29::-;;;;:::o;3419:125:1:-;3493:7;3519:9;:18;3529:7;3519:18;;;;;;;;;;;;;;;;3512:25;;3419:125;;;:::o;1824:101:0:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;1201:85::-;1247:7;1273:6;;;;;;;;;;;1266:13;;1201:85;:::o;2369:102:1:-;2425:13;2457:7;2450:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2369:102;:::o;6575:427::-;6668:4;6684:13;6700:12;:10;:12::i;:::-;6684:28;;6722:24;6749:25;6759:5;6766:7;6749:9;:25::i;:::-;6722:52;;6812:15;6792:16;:35;;6784:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;:::-;6991:4;6984:11;;;;6575:427;;;;:::o;3740:189::-;3819:4;3835:13;3851:12;:10;:12::i;:::-;3835:28;;3873;3883:5;3890:2;3894:6;3873:9;:28::i;:::-;3918:4;3911:11;;;3740:189;;;;:::o;860:233:6:-;1094:13:0;:11;:13::i;:::-;967:53:6::1;1002:5;1009:2;1013:6;967:34;:53::i;:::-;;1047:4;1030:22;;:5;:22;;::::0;1026:63:::1;;1076:6;1062:10;;:20;;;;;;;:::i;:::-;;;;;;;;1026:63;860:233:::0;;;:::o;3987:149:1:-;4076:7;4102:11;:18;4114:5;4102:18;;;;;;;;;;;;;;;:27;4121:7;4102:27;;;;;;;;;;;;;;;;4095:34;;3987:149;;;;:::o;2074:198:0:-;1094:13;:11;:13::i;:::-;2182:1:::1;2162:22;;:8;:22;;::::0;2154:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;1359:130::-;1433:12;:10;:12::i;:::-;1422:23;;:7;:5;:7::i;:::-;:23;;;1414:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1359:130::o;136:189:7:-;210:12;244:2;:7;;259:6;244:26;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;230:40;;;;;284:7;276:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;136:189;;;;:::o;640:96:5:-;693:7;719:10;712:17;;640:96;:::o;10457:340:1:-;10575:1;10558:19;;:5;:19;;;10550:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10655:1;10636:21;;:7;:21;;;10628:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10737:6;10707:11;:18;10719:5;10707:18;;;;;;;;;;;;;;;:27;10726:7;10707:27;;;;;;;;;;;;;;;:36;;;;10774:7;10758:32;;10767:5;10758:32;;;10783:6;10758:32;;;;;;:::i;:::-;;;;;;;;10457:340;;;:::o;11078:411::-;11178:24;11205:25;11215:5;11222:7;11205:9;:25::i;:::-;11178:52;;11264:17;11244:16;:37;11240:243;;11325:6;11305:16;:26;;11297:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11240:243;11168:321;11078:411;;;:::o;1097:515:6:-;1213:11;1227:16;1236:6;1227:8;:16::i;:::-;1213:30;;1263:3;1249:10;;:17;;;;;;;:::i;:::-;;;;;;;;1272:15;1308:17;;1290:15;:35;;;;:::i;:::-;1272:53;;1342:1;1336:3;:7;1332:69;;;1353:41;1369:4;1383;1390:3;1353:15;:41::i;:::-;1332:69;1422:8;1411:7;:19;;:37;;;;;1447:1;1434:10;;:14;1411:37;1407:155;;;1458:32;1472:4;1479:10;;1458:5;:32::i;:::-;1511:1;1498:10;:14;;;;1540:15;1520:17;:35;;;;1407:155;1568:39;1584:4;1590:2;1603:3;1594:6;:12;;;;:::i;:::-;1568:15;:39::i;:::-;1207:405;;1097:515;;;:::o;2426:187:0:-;2499:16;2518:6;;;;;;;;;;;2499:25;;2543:8;2534:6;;:17;;;;;;;;;;;;;;;;;;2597:8;2566:40;;2587:8;2566:40;;;;;;;;;;;;2489:124;2426:187;:::o;329:358:7:-;434:12;462:18;:5;:16;;;:18::i;:::-;454:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;525:5;:10;;576:34;;;;;;;;;;;;;;;;;566:45;;;;;;614:2;618:6;536:89;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;525:101;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;511:115;;;;;640:7;632:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;329:358;;;;;:::o;1616:127:6:-;1674:11;1733:5;1722:7;1700:19;;;;;;;;;;;:29;;;;;;:::i;:::-;1699:39;;;;:::i;:::-;1693:45;;1616:127;;;:::o;7456:788:1:-;7568:1;7552:18;;:4;:18;;;7544:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7644:1;7630:16;;:2;:16;;;7622:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7697:38;7718:4;7724:2;7728:6;7697:20;:38::i;:::-;7746:19;7768:9;:15;7778:4;7768:15;;;;;;;;;;;;;;;;7746:37;;7816:6;7801:11;:21;;7793:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7931:6;7917:11;:20;7899:9;:15;7909:4;7899:15;;;;;;;;;;;;;;;:38;;;;8131:6;8114:9;:13;8124:2;8114:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;8178:2;8163:26;;8172:4;8163:26;;;8182:6;8163:26;;;;;;:::i;:::-;;;;;;;;8200:37;8220:4;8226:2;8230:6;8200:19;:37::i;:::-;7534:710;7456:788;;;:::o;9375:659::-;9477:1;9458:21;;:7;:21;;;9450:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9528:49;9549:7;9566:1;9570:6;9528:20;:49::i;:::-;9588:22;9613:9;:18;9623:7;9613:18;;;;;;;;;;;;;;;;9588:43;;9667:6;9649:14;:24;;9641:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9784:6;9767:14;:23;9746:9;:18;9756:7;9746:18;;;;;;;;;;;;;;;:44;;;;9899:6;9883:12;;:22;;;;;;;;;;;9957:1;9931:37;;9940:7;9931:37;;;9961:6;9931:37;;;;;;:::i;:::-;;;;;;;;9979:48;9999:7;10016:1;10020:6;9979:19;:48::i;:::-;9440:594;9375:659;;:::o;1412:320:4:-;1472:4;1724:1;1702:7;:19;;;:23;1695:30;;1412:320;;;:::o;12073:91:1:-;;;;:::o;12752:90::-;;;;:::o;7:99:8:-;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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:329::-;2242:6;2291:2;2279:9;2270:7;2266:23;2262:32;2259:119;;;2297:79;;:::i;:::-;2259:119;2417:1;2442:53;2487:7;2478:6;2467:9;2463:22;2442:53;:::i;:::-;2432:63;;2388:117;2183:329;;;;:::o;2518:77::-;2555:7;2584:5;2573:16;;2518:77;;;:::o;2601:122::-;2674:24;2692:5;2674:24;:::i;:::-;2667:5;2664:35;2654:63;;2713:1;2710;2703:12;2654:63;2601:122;:::o;2729:139::-;2775:5;2813:6;2800:20;2791:29;;2829:33;2856:5;2829:33;:::i;:::-;2729:139;;;;:::o;2874:474::-;2942:6;2950;2999:2;2987:9;2978:7;2974:23;2970:32;2967:119;;;3005:79;;:::i;:::-;2967:119;3125:1;3150:53;3195:7;3186:6;3175:9;3171:22;3150:53;:::i;:::-;3140:63;;3096:117;3252:2;3278:53;3323:7;3314:6;3303:9;3299:22;3278:53;:::i;:::-;3268:63;;3223:118;2874:474;;;;;:::o;3354:90::-;3388:7;3431:5;3424:13;3417:21;3406:32;;3354:90;;;:::o;3450:109::-;3531:21;3546:5;3531:21;:::i;:::-;3526:3;3519:34;3450:109;;:::o;3565:210::-;3652:4;3690:2;3679:9;3675:18;3667:26;;3703:65;3765:1;3754:9;3750:17;3741:6;3703:65;:::i;:::-;3565:210;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:89::-;5224:7;5264:6;5257:5;5253:18;5242:29;;5188:89;;;:::o;5283:115::-;5368:23;5385:5;5368:23;:::i;:::-;5363:3;5356:36;5283:115;;:::o;5404:218::-;5495:4;5533:2;5522:9;5518:18;5510:26;;5546:69;5612:1;5601:9;5597:17;5588:6;5546:69;:::i;:::-;5404:218;;;;:::o;5628:120::-;5700:23;5717:5;5700:23;:::i;:::-;5693:5;5690:34;5680:62;;5738:1;5735;5728:12;5680:62;5628:120;:::o;5754:137::-;5799:5;5837:6;5824:20;5815:29;;5853:32;5879:5;5853:32;:::i;:::-;5754:137;;;;:::o;5897:327::-;5955:6;6004:2;5992:9;5983:7;5979:23;5975:32;5972:119;;;6010:79;;:::i;:::-;5972:119;6130:1;6155:52;6199:7;6190:6;6179:9;6175:22;6155:52;:::i;:::-;6145:62;;6101:116;5897:327;;;;:::o;6230:118::-;6317:24;6335:5;6317:24;:::i;:::-;6312:3;6305:37;6230:118;;:::o;6354:222::-;6447:4;6485:2;6474:9;6470:18;6462:26;;6498:71;6566:1;6555:9;6551:17;6542:6;6498:71;:::i;:::-;6354:222;;;;:::o;6582:474::-;6650:6;6658;6707:2;6695:9;6686:7;6682:23;6678:32;6675:119;;;6713:79;;:::i;:::-;6675:119;6833:1;6858:53;6903:7;6894:6;6883:9;6879:22;6858:53;:::i;:::-;6848:63;;6804:117;6960:2;6986:53;7031:7;7022:6;7011:9;7007:22;6986:53;:::i;:::-;6976:63;;6931:118;6582:474;;;;;:::o;7062:180::-;7110:77;7107:1;7100:88;7207:4;7204:1;7197:15;7231:4;7228:1;7221:15;7248:320;7292:6;7329:1;7323:4;7319:12;7309:22;;7376:1;7370:4;7366:12;7397:18;7387:81;;7453:4;7445:6;7441:17;7431:27;;7387:81;7515:2;7507:6;7504:14;7484:18;7481:38;7478:84;;7534:18;;:::i;:::-;7478:84;7299:269;7248:320;;;:::o;7574:180::-;7622:77;7619:1;7612:88;7719:4;7716:1;7709:15;7743:4;7740:1;7733:15;7760:191;7800:3;7819:20;7837:1;7819:20;:::i;:::-;7814:25;;7853:20;7871:1;7853:20;:::i;:::-;7848:25;;7896:1;7893;7889:9;7882:16;;7917:3;7914:1;7911:10;7908:36;;;7924:18;;:::i;:::-;7908:36;7760:191;;;;:::o;7957:224::-;8097:34;8093:1;8085:6;8081:14;8074:58;8166:7;8161:2;8153:6;8149:15;8142:32;7957:224;:::o;8187:366::-;8329:3;8350:67;8414:2;8409:3;8350:67;:::i;:::-;8343:74;;8426:93;8515:3;8426:93;:::i;:::-;8544:2;8539:3;8535:12;8528:19;;8187:366;;;:::o;8559:419::-;8725:4;8763:2;8752:9;8748:18;8740:26;;8812:9;8806:4;8802:20;8798:1;8787:9;8783:17;8776:47;8840:131;8966:4;8840:131;:::i;:::-;8832:139;;8559:419;;;:::o;8984:194::-;9024:4;9044:20;9062:1;9044:20;:::i;:::-;9039:25;;9078:20;9096:1;9078:20;:::i;:::-;9073:25;;9122:1;9119;9115:9;9107:17;;9146:1;9140:4;9137:11;9134:37;;;9151:18;;:::i;:::-;9134:37;8984:194;;;;:::o;9184:225::-;9324:34;9320:1;9312:6;9308:14;9301:58;9393:8;9388:2;9380:6;9376:15;9369:33;9184:225;:::o;9415:366::-;9557:3;9578:67;9642:2;9637:3;9578:67;:::i;:::-;9571:74;;9654:93;9743:3;9654:93;:::i;:::-;9772:2;9767:3;9763:12;9756:19;;9415:366;;;:::o;9787:419::-;9953:4;9991:2;9980:9;9976:18;9968:26;;10040:9;10034:4;10030:20;10026:1;10015:9;10011:17;10004:47;10068:131;10194:4;10068:131;:::i;:::-;10060:139;;9787:419;;;:::o;10212:182::-;10352:34;10348:1;10340:6;10336:14;10329:58;10212:182;:::o;10400:366::-;10542:3;10563:67;10627:2;10622:3;10563:67;:::i;:::-;10556:74;;10639:93;10728:3;10639:93;:::i;:::-;10757:2;10752:3;10748:12;10741:19;;10400:366;;;:::o;10772:419::-;10938:4;10976:2;10965:9;10961:18;10953:26;;11025:9;11019:4;11015:20;11011:1;11000:9;10996:17;10989:47;11053:131;11179:4;11053:131;:::i;:::-;11045:139;;10772:419;;;:::o;11197:147::-;11298:11;11335:3;11320:18;;11197:147;;;;:::o;11350:114::-;;:::o;11470:398::-;11629:3;11650:83;11731:1;11726:3;11650:83;:::i;:::-;11643:90;;11742:93;11831:3;11742:93;:::i;:::-;11860:1;11855:3;11851:11;11844:18;;11470:398;;;:::o;11874:379::-;12058:3;12080:147;12223:3;12080:147;:::i;:::-;12073:154;;12244:3;12237:10;;11874:379;;;:::o;12259:174::-;12399:26;12395:1;12387:6;12383:14;12376:50;12259:174;:::o;12439:366::-;12581:3;12602:67;12666:2;12661:3;12602:67;:::i;:::-;12595:74;;12678:93;12767:3;12678:93;:::i;:::-;12796:2;12791:3;12787:12;12780:19;;12439:366;;;:::o;12811:419::-;12977:4;13015:2;13004:9;13000:18;12992:26;;13064:9;13058:4;13054:20;13050:1;13039:9;13035:17;13028:47;13092:131;13218:4;13092:131;:::i;:::-;13084:139;;12811:419;;;:::o;13236:223::-;13376:34;13372:1;13364:6;13360:14;13353:58;13445:6;13440:2;13432:6;13428:15;13421:31;13236:223;:::o;13465:366::-;13607:3;13628:67;13692:2;13687:3;13628:67;:::i;:::-;13621:74;;13704:93;13793:3;13704:93;:::i;:::-;13822:2;13817:3;13813:12;13806:19;;13465:366;;;:::o;13837:419::-;14003:4;14041:2;14030:9;14026:18;14018:26;;14090:9;14084:4;14080:20;14076:1;14065:9;14061:17;14054:47;14118:131;14244:4;14118:131;:::i;:::-;14110:139;;13837:419;;;:::o;14262:221::-;14402:34;14398:1;14390:6;14386:14;14379:58;14471:4;14466:2;14458:6;14454:15;14447:29;14262:221;:::o;14489:366::-;14631:3;14652:67;14716:2;14711:3;14652:67;:::i;:::-;14645:74;;14728:93;14817:3;14728:93;:::i;:::-;14846:2;14841:3;14837:12;14830:19;;14489:366;;;:::o;14861:419::-;15027:4;15065:2;15054:9;15050:18;15042:26;;15114:9;15108:4;15104:20;15100:1;15089:9;15085:17;15078:47;15142:131;15268:4;15142:131;:::i;:::-;15134:139;;14861:419;;;:::o;15286:179::-;15426:31;15422:1;15414:6;15410:14;15403:55;15286:179;:::o;15471:366::-;15613:3;15634:67;15698:2;15693:3;15634:67;:::i;:::-;15627:74;;15710:93;15799:3;15710:93;:::i;:::-;15828:2;15823:3;15819:12;15812:19;;15471:366;;;:::o;15843:419::-;16009:4;16047:2;16036:9;16032:18;16024:26;;16096:9;16090:4;16086:20;16082:1;16071:9;16067:17;16060:47;16124:131;16250:4;16124:131;:::i;:::-;16116:139;;15843:419;;;:::o;16268:170::-;16408:22;16404:1;16396:6;16392:14;16385:46;16268:170;:::o;16444:366::-;16586:3;16607:67;16671:2;16666:3;16607:67;:::i;:::-;16600:74;;16683:93;16772:3;16683:93;:::i;:::-;16801:2;16796:3;16792:12;16785:19;;16444:366;;;:::o;16816:419::-;16982:4;17020:2;17009:9;17005:18;16997:26;;17069:9;17063:4;17059:20;17055:1;17044:9;17040:17;17033:47;17097:131;17223:4;17097:131;:::i;:::-;17089:139;;16816:419;;;:::o;17241:332::-;17362:4;17400:2;17389:9;17385:18;17377:26;;17413:71;17481:1;17470:9;17466:17;17457:6;17413:71;:::i;:::-;17494:72;17562:2;17551:9;17547:18;17538:6;17494:72;:::i;:::-;17241:332;;;;;:::o;17579:98::-;17630:6;17664:5;17658:12;17648:22;;17579:98;;;:::o;17683:386::-;17787:3;17815:38;17847:5;17815:38;:::i;:::-;17869:88;17950:6;17945:3;17869:88;:::i;:::-;17862:95;;17966:65;18024:6;18019:3;18012:4;18005:5;18001:16;17966:65;:::i;:::-;18056:6;18051:3;18047:16;18040:23;;17791:278;17683:386;;;;:::o;18075:271::-;18205:3;18227:93;18316:3;18307:6;18227:93;:::i;:::-;18220:100;;18337:3;18330:10;;18075:271;;;;:::o;18352:180::-;18492:32;18488:1;18480:6;18476:14;18469:56;18352:180;:::o;18538:366::-;18680:3;18701:67;18765:2;18760:3;18701:67;:::i;:::-;18694:74;;18777:93;18866:3;18777:93;:::i;:::-;18895:2;18890:3;18886:12;18879:19;;18538:366;;;:::o;18910:419::-;19076:4;19114:2;19103:9;19099:18;19091:26;;19163:9;19157:4;19153:20;19149:1;19138:9;19134:17;19127:47;19191:131;19317:4;19191:131;:::i;:::-;19183:139;;18910:419;;;:::o;19335:410::-;19375:7;19398:20;19416:1;19398:20;:::i;:::-;19393:25;;19432:20;19450:1;19432:20;:::i;:::-;19427:25;;19487:1;19484;19480:9;19509:30;19527:11;19509:30;:::i;:::-;19498:41;;19688:1;19679:7;19675:15;19672:1;19669:22;19649:1;19642:9;19622:83;19599:139;;19718:18;;:::i;:::-;19599:139;19383:362;19335:410;;;;:::o;19751:180::-;19799:77;19796:1;19789:88;19896:4;19893:1;19886:15;19920:4;19917:1;19910:15;19937:185;19977:1;19994:20;20012:1;19994:20;:::i;:::-;19989:25;;20028:20;20046:1;20028:20;:::i;:::-;20023:25;;20067:1;20057:35;;20072:18;;:::i;:::-;20057:35;20114:1;20111;20107:9;20102:14;;19937:185;;;;:::o;20128:224::-;20268:34;20264:1;20256:6;20252:14;20245:58;20337:7;20332:2;20324:6;20320:15;20313:32;20128:224;:::o;20358:366::-;20500:3;20521:67;20585:2;20580:3;20521:67;:::i;:::-;20514:74;;20597:93;20686:3;20597:93;:::i;:::-;20715:2;20710:3;20706:12;20699:19;;20358:366;;;:::o;20730:419::-;20896:4;20934:2;20923:9;20919:18;20911:26;;20983:9;20977:4;20973:20;20969:1;20958:9;20954:17;20947:47;21011:131;21137:4;21011:131;:::i;:::-;21003:139;;20730:419;;;:::o;21155:222::-;21295:34;21291:1;21283:6;21279:14;21272:58;21364:5;21359:2;21351:6;21347:15;21340:30;21155:222;:::o;21383:366::-;21525:3;21546:67;21610:2;21605:3;21546:67;:::i;:::-;21539:74;;21622:93;21711:3;21622:93;:::i;:::-;21740:2;21735:3;21731:12;21724:19;;21383:366;;;:::o;21755:419::-;21921:4;21959:2;21948:9;21944:18;21936:26;;22008:9;22002:4;21998:20;21994:1;21983:9;21979:17;21972:47;22036:131;22162:4;22036:131;:::i;:::-;22028:139;;21755:419;;;:::o;22180:225::-;22320:34;22316:1;22308:6;22304:14;22297:58;22389:8;22384:2;22376:6;22372:15;22365:33;22180:225;:::o;22411:366::-;22553:3;22574:67;22638:2;22633:3;22574:67;:::i;:::-;22567:74;;22650:93;22739:3;22650:93;:::i;:::-;22768:2;22763:3;22759:12;22752:19;;22411:366;;;:::o;22783:419::-;22949:4;22987:2;22976:9;22972:18;22964:26;;23036:9;23030:4;23026:20;23022:1;23011:9;23007:17;23000:47;23064:131;23190:4;23064:131;:::i;:::-;23056:139;;22783:419;;;:::o;23208:220::-;23348:34;23344:1;23336:6;23332:14;23325:58;23417:3;23412:2;23404:6;23400:15;23393:28;23208:220;:::o;23434:366::-;23576:3;23597:67;23661:2;23656:3;23597:67;:::i;:::-;23590:74;;23673:93;23762:3;23673:93;:::i;:::-;23791:2;23786:3;23782:12;23775:19;;23434:366;;;:::o;23806:419::-;23972:4;24010:2;23999:9;23995:18;23987:26;;24059:9;24053:4;24049:20;24045:1;24034:9;24030:17;24023:47;24087:131;24213:4;24087:131;:::i;:::-;24079:139;;23806:419;;;:::o;24231:221::-;24371:34;24367:1;24359:6;24355:14;24348:58;24440:4;24435:2;24427:6;24423:15;24416:29;24231:221;:::o;24458:366::-;24600:3;24621:67;24685:2;24680:3;24621:67;:::i;:::-;24614:74;;24697:93;24786:3;24697:93;:::i;:::-;24815:2;24810:3;24806:12;24799:19;;24458:366;;;:::o;24830:419::-;24996:4;25034:2;25023:9;25019:18;25011:26;;25083:9;25077:4;25073:20;25069:1;25058:9;25054:17;25047:47;25111:131;25237:4;25111:131;:::i;:::-;25103:139;;24830:419;;;:::o

Swarm Source

ipfs://1dd1650c057ffa32aca8c4cb67f640d70aeba9679e451050dfddc000f3445783
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.