Contract 0x4D3dDeec55f148B3f8765A2aBc00252834ed7E62 4

Contract Overview

Yield Hunt: GEM Token
Balance:
0 AVAX

AVAX Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x0bac6ad2314e00d7db33d69c65f36345b080d89357447ef5f1da71015a66a1c8Approve163890632022-06-22 23:45:113 days 21 hrs ago0x8c16d1e7763ea92342404b59bff0c347e8eb4ad5 IN  Yield Hunt: GEM Token0 AVAX0.001251224 26.5
0x72cd6d72423f684df0341cdeb01923dbeecd9e53f6eb7f2e1d54cca8965ef098Approve163790912022-06-22 18:12:444 days 2 hrs ago0x13f19ce2cfec95ff021763b64774eb4f4e2d55c4 IN  Yield Hunt: GEM Token0 AVAX0.00081763 27.5
0x4574b9f26455e2ba16ccb88c8156330fe6b3b8aa4150f3e0c500312d24ff4e78Approve163379032022-06-21 19:21:015 days 1 hr ago0xfb66189ec79370c41e7fb38af3371789bad914e9 IN  Yield Hunt: GEM Token0 AVAX0.001251224 26.5
0xce039fdd3fe40322b17c4e3a392c26df6952fa38f3531539babc7566b96973d3Approve163023712022-06-20 23:34:125 days 21 hrs ago0x31c71eced7623b7c0865c4002a2a6e71352cb650 IN  Yield Hunt: GEM Token0 AVAX0.001281322031 27.137454081
0x9b6356dc60e225dddd4110638a65c720d04ae1be03624f64df88fa5cc64397e3Approve158856852022-06-11 10:34:3415 days 10 hrs ago0x8042595cf53d94aa41b13eb3223baeee3a81a410 IN  Yield Hunt: GEM Token0 AVAX0.001251224 26.5
0xea1bc01f01a6396da0b5ac37afc0d891378883a281d3f2045da1ea09b407ff76Approve158048672022-06-09 13:30:3817 days 7 hrs ago0x8c862dff50699290a6043427d073bd4a6e42763e IN  Yield Hunt: GEM Token0 AVAX0.0007433 25
0xaff400d6633faab0d327d08ce7e92a7afccaadd1b794dd94166f2a114d1c16e8Approve157860712022-06-09 2:58:2117 days 18 hrs ago0xc0f5a2973b936542d3321c9f2f1796b8de9c7541 IN  Yield Hunt: GEM Token0 AVAX0.001274832 27
0xacd17db3d56a4027c779c2b3acee97df0d0a4f892d8e0157c6034d1f73a8b94cApprove157609272022-06-08 12:56:3118 days 8 hrs ago0xa530a928b24f671db25942591a7d83c81a96e1d3 IN  Yield Hunt: GEM Token0 AVAX0.001251224 26.5
0x56c37b86fb57b16c6cbee3b8f6dc055eb8dba1c0196e07fe2baf0cd2cd42a82aApprove157278332022-06-07 18:34:3119 days 2 hrs ago0xf95e3d67892bd9a567f06495ed982a0f89f86ba2 IN  Yield Hunt: GEM Token0 AVAX0.0008176327.5
0x99cedc96f6587bb473e1652a9fa46f5e5ac0ee12c0a7b821b142a4dc5aa5bb91Approve157110232022-06-07 9:12:2719 days 11 hrs ago0xb721bbda1a7e2608cf66bcf3b3b513103cf69df9 IN  Yield Hunt: GEM Token0 AVAX0.00083249628
0xc67d56b4652b22b0afd9db9108fa36dfedbc2076343b6593e53ffd62a0d40aefApprove155142862022-06-02 18:58:3224 days 2 hrs ago0xb830ef7c27a875d87e1a74fdacb07e0fc1fc389e IN  Yield Hunt: GEM Token0 AVAX0.001261491971 26.717468051
0xbd75ed923598f19c44b0042d0fb6f0366a9db00ef49b0a52f5e04e84199281adApprove154441892022-06-01 3:56:0125 days 17 hrs ago0x914ba154fc3d0051ab9554993940542f4bec5420 IN  Yield Hunt: GEM Token0 AVAX0.001180425
0x425e788e2178e47dce10c28a4dc1637c79ebd46fd47fd45ceaf98e4f7e998913Approve154393062022-06-01 1:12:3325 days 19 hrs ago0x0e42e6f0a2e1e1e234f2a40fdd87328a7f7b351e IN  Yield Hunt: GEM Token0 AVAX0.001180425
0x54b2316165a60efea90ec75494137bfdd8ef26f7c9d34117f4fce4068325837fApprove154256812022-05-31 17:37:1226 days 3 hrs ago0x54da2339be1dea9f57e0b02f3dbd579762b1eec8 IN  Yield Hunt: GEM Token0 AVAX0.001251224 26.5
0xc6f2ecb1d9cd2f52aaef4ef439be5270b7a385251dfb9425a95a24dd0340264cApprove153429752022-05-29 19:37:2928 days 1 hr ago0x411f7e5e532b2fe138e33002006d174bf939ca04 IN  Yield Hunt: GEM Token0 AVAX0.00124697456 26.41
0xf8829c74d14eec1bbc4d09565acdd9861c8c4ca16579b182e6816085e31f3366Approve153114272022-05-29 1:57:1228 days 19 hrs ago0x2092bbdb817be666c29fbbd03fb9014476bc9240 IN  Yield Hunt: GEM Token0 AVAX0.0012984427.5
0xd39dde3cac23214fbcdfc843ebed508fd65bb1ebfad9919e63070f75949608e0Approve150908572022-05-23 23:00:0033 days 22 hrs ago0xe5311918fdb96da972801db3ac283e9022fc54c9 IN  Yield Hunt: GEM Token0 AVAX0.0007433 25
0x73b199cb478eaa0139ddad82d1b5fe29eebe8b014041273a530fa491186773e3Approve150871272022-05-23 20:53:5334 days 13 mins ago0xdde56051eb5ff881d71306ffc47cec133a3fa280 IN  Yield Hunt: GEM Token0 AVAX0.0007433 25
0xf7329ae7949ce50bc8526989b3a952effa0664edae9e084b2443f1b7fd1b4305Approve150870242022-05-23 20:50:2434 days 16 mins ago0xdde56051eb5ff881d71306ffc47cec133a3fa280 IN  Yield Hunt: GEM Token0 AVAX0.0007433 25
0x1531e7a79281d21f0cfbb0fe2f88b075ab349210fe354e83c2bc92bf19180220Approve150867202022-05-23 20:40:0534 days 26 mins ago0xdde56051eb5ff881d71306ffc47cec133a3fa280 IN  Yield Hunt: GEM Token0 AVAX0.0007433 25
0x21a1623b4c90bfb6d6cdcb166d4ce6dfaa49ae6de48464d8e01c110d24ceb61dApprove150792392022-05-23 16:26:5634 days 4 hrs ago0xb5f185e7002c71e88d5992ddc4cf7e9ffa7ee9b2 IN  Yield Hunt: GEM Token0 AVAX0.001251224 26.5
0x7c0db984482ff2707aa775a3d335a72e07db35d6891c02713ef1344a3ede887aApprove150350532022-05-22 15:40:1135 days 5 hrs ago0xcfb86175f5d8147afb4b5b63352db76ce9d728da IN  Yield Hunt: GEM Token0 AVAX0.001251224 26.5
0x1ec9bfb9f9c2e396797d6c8f2b69a63f2d02d760157612a974bfe08c664f0930Approve150265982022-05-22 10:58:5735 days 10 hrs ago0xc30cd9e578bd860d9f334db3dac242ece04dd0d1 IN  Yield Hunt: GEM Token0 AVAX0.001180425
0xb0a0e60c4311e56f11a62a237fc9a5063b3164e8e2ebddc2ed3cf621091c1684Approve150000532022-05-21 20:09:1036 days 57 mins ago0x52f88ea222e43d8f8363f4b4cdd2a5853fb8570e IN  Yield Hunt: GEM Token0 AVAX0.001274832 27
0x1aad62bae3f1f716a88175681e8319ea7dd23a4931c8e01e900eada0bf556655Approve149979542022-05-21 18:58:5536 days 2 hrs ago0xbb2cb8e5f1fd87a6d15d938418c826079e6ae019 IN  Yield Hunt: GEM Token0 AVAX0.001251224 26.5
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GEM

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 4: GEM.sol
import "./ERC20.sol";
import "./Ownable.sol";
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

pragma solidity ^0.8.0;
 

contract GEM is ERC20, Ownable {

  // a mapping from an address to whether or not it can mint / burn
  mapping(address => bool) controllers;
  constructor() ERC20("GEM", "GEM") { }

  /**
   * mints $GEM to a recipient
   * @param to the recipient of the $GEM
   * @param amount the amount of $GEM to mint
   */
  function mint(address to, uint256 amount) external {
    require(controllers[msg.sender], "Only controllers can mint");
    _mint(to, amount);
  }

  /**
   * burns $GEM from a holder
   * @param from the holder of the $GEM
   * @param amount the amount of $GEM to burn
   */
  function burn(address from, uint256 amount) external {
    require(controllers[msg.sender], "Only controllers can burn");
    _burn(from, amount);
  }

  /**
   * enables an address to mint / burn
   * @param controller the address to enable
   */
   function addController(address controller) external onlyOwner {
        controllers[controller] = true;
    }
  /**
   * disables an address from minting / burning
   * @param controller the address to disbale
   */
   function removeController(address controller) external onlyOwner {
        controllers[controller] = false;
    }
}

File 2 of 4: Context.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

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

File 3 of 4: ERC20.sol
import "./Context.sol";
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

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

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

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

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

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

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

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

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

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

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

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

        return true;
    }

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

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

File 4 of 4: Ownable.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "./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() {
        _setOwner(_msgSender());
    }

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

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

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _setOwner(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"
        );
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"controller","type":"address"}],"name":"addController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"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":[{"internalType":"address","name":"controller","type":"address"}],"name":"removeController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040518060400160405280600381526020017f47454d00000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f47454d0000000000000000000000000000000000000000000000000000000000815250816003908051906020019062000096929190620001a6565b508060049080519060200190620000af929190620001a6565b505050620000d2620000c6620000d860201b60201c565b620000e060201b60201c565b620002bb565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620001b49062000256565b90600052602060002090601f016020900481019282620001d8576000855562000224565b82601f10620001f357805160ff191683800117855562000224565b8280016001018555821562000224579182015b828111156200022357825182559160200191906001019062000206565b5b50905062000233919062000237565b5090565b5b808211156200025257600081600090555060010162000238565b5090565b600060028204905060018216806200026f57607f821691505b602082108114156200028657620002856200028c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b61211880620002cb6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80638da5cb5b116100a2578063a7fc7a0711610071578063a7fc7a07146102e3578063a9059cbb146102ff578063dd62ed3e1461032f578063f2fde38b1461035f578063f6a74ed71461037b57610116565b80638da5cb5b1461025b57806395d89b41146102795780639dc29fac14610297578063a457c2d7146102b357610116565b8063313ce567116100e9578063313ce567146101b757806339509351146101d557806340c10f191461020557806370a0823114610221578063715018a61461025157610116565b806306fdde031461011b578063095ea7b31461013957806318160ddd1461016957806323b872dd14610187575b600080fd5b610123610397565b604051610130919061190e565b60405180910390f35b610153600480360381019061014e9190611639565b610429565b60405161016091906118f3565b60405180910390f35b610171610447565b60405161017e9190611af0565b60405180910390f35b6101a1600480360381019061019c91906115e6565b610451565b6040516101ae91906118f3565b60405180910390f35b6101bf610549565b6040516101cc9190611b0b565b60405180910390f35b6101ef60048036038101906101ea9190611639565b610552565b6040516101fc91906118f3565b60405180910390f35b61021f600480360381019061021a9190611639565b6105fe565b005b61023b60048036038101906102369190611579565b610698565b6040516102489190611af0565b60405180910390f35b6102596106e0565b005b610263610768565b60405161027091906118d8565b60405180910390f35b610281610792565b60405161028e919061190e565b60405180910390f35b6102b160048036038101906102ac9190611639565b610824565b005b6102cd60048036038101906102c89190611639565b6108be565b6040516102da91906118f3565b60405180910390f35b6102fd60048036038101906102f89190611579565b6109a9565b005b61031960048036038101906103149190611639565b610a80565b60405161032691906118f3565b60405180910390f35b610349600480360381019061034491906115a6565b610a9e565b6040516103569190611af0565b60405180910390f35b61037960048036038101906103749190611579565b610b25565b005b61039560048036038101906103909190611579565b610c1d565b005b6060600380546103a690611c54565b80601f01602080910402602001604051908101604052809291908181526020018280546103d290611c54565b801561041f5780601f106103f45761010080835404028352916020019161041f565b820191906000526020600020905b81548152906001019060200180831161040257829003601f168201915b5050505050905090565b600061043d610436610cf4565b8484610cfc565b6001905092915050565b6000600254905090565b600061045e848484610ec7565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104a9610cf4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610529576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052090611a10565b60405180910390fd5b61053d85610535610cf4565b858403610cfc565b60019150509392505050565b60006012905090565b60006105f461055f610cf4565b84846001600061056d610cf4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105ef9190611b42565b610cfc565b6001905092915050565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661068a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610681906119d0565b60405180910390fd5b6106948282611148565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6106e8610cf4565b73ffffffffffffffffffffffffffffffffffffffff16610706610768565b73ffffffffffffffffffffffffffffffffffffffff161461075c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075390611a30565b60405180910390fd5b61076660006112a8565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546107a190611c54565b80601f01602080910402602001604051908101604052809291908181526020018280546107cd90611c54565b801561081a5780601f106107ef5761010080835404028352916020019161081a565b820191906000526020600020905b8154815290600101906020018083116107fd57829003601f168201915b5050505050905090565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166108b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a7906119f0565b60405180910390fd5b6108ba828261136e565b5050565b600080600160006108cd610cf4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561098a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098190611ab0565b60405180910390fd5b61099e610995610cf4565b85858403610cfc565b600191505092915050565b6109b1610cf4565b73ffffffffffffffffffffffffffffffffffffffff166109cf610768565b73ffffffffffffffffffffffffffffffffffffffff1614610a25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1c90611a30565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610a94610a8d610cf4565b8484610ec7565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610b2d610cf4565b73ffffffffffffffffffffffffffffffffffffffff16610b4b610768565b73ffffffffffffffffffffffffffffffffffffffff1614610ba1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9890611a30565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0890611970565b60405180910390fd5b610c1a816112a8565b50565b610c25610cf4565b73ffffffffffffffffffffffffffffffffffffffff16610c43610768565b73ffffffffffffffffffffffffffffffffffffffff1614610c99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9090611a30565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6390611a90565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ddc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd390611990565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610eba9190611af0565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2e90611a70565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9e90611930565b60405180910390fd5b610fb2838383611545565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611038576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102f906119b0565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110cb9190611b42565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161112f9190611af0565b60405180910390a361114284848461154a565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111af90611ad0565b60405180910390fd5b6111c460008383611545565b80600260008282546111d69190611b42565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461122b9190611b42565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112909190611af0565b60405180910390a36112a46000838361154a565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d590611a50565b60405180910390fd5b6113ea82600083611545565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611470576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146790611950565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546114c79190611b98565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161152c9190611af0565b60405180910390a36115408360008461154a565b505050565b505050565b505050565b60008135905061155e816120b4565b92915050565b600081359050611573816120cb565b92915050565b60006020828403121561158f5761158e611ce4565b5b600061159d8482850161154f565b91505092915050565b600080604083850312156115bd576115bc611ce4565b5b60006115cb8582860161154f565b92505060206115dc8582860161154f565b9150509250929050565b6000806000606084860312156115ff576115fe611ce4565b5b600061160d8682870161154f565b935050602061161e8682870161154f565b925050604061162f86828701611564565b9150509250925092565b600080604083850312156116505761164f611ce4565b5b600061165e8582860161154f565b925050602061166f85828601611564565b9150509250929050565b61168281611bcc565b82525050565b61169181611bde565b82525050565b60006116a282611b26565b6116ac8185611b31565b93506116bc818560208601611c21565b6116c581611ce9565b840191505092915050565b60006116dd602383611b31565b91506116e882611cfa565b604082019050919050565b6000611700602283611b31565b915061170b82611d49565b604082019050919050565b6000611723602683611b31565b915061172e82611d98565b604082019050919050565b6000611746602283611b31565b915061175182611de7565b604082019050919050565b6000611769602683611b31565b915061177482611e36565b604082019050919050565b600061178c601983611b31565b915061179782611e85565b602082019050919050565b60006117af601983611b31565b91506117ba82611eae565b602082019050919050565b60006117d2602883611b31565b91506117dd82611ed7565b604082019050919050565b60006117f5602083611b31565b915061180082611f26565b602082019050919050565b6000611818602183611b31565b915061182382611f4f565b604082019050919050565b600061183b602583611b31565b915061184682611f9e565b604082019050919050565b600061185e602483611b31565b915061186982611fed565b604082019050919050565b6000611881602583611b31565b915061188c8261203c565b604082019050919050565b60006118a4601f83611b31565b91506118af8261208b565b602082019050919050565b6118c381611c0a565b82525050565b6118d281611c14565b82525050565b60006020820190506118ed6000830184611679565b92915050565b60006020820190506119086000830184611688565b92915050565b600060208201905081810360008301526119288184611697565b905092915050565b60006020820190508181036000830152611949816116d0565b9050919050565b60006020820190508181036000830152611969816116f3565b9050919050565b6000602082019050818103600083015261198981611716565b9050919050565b600060208201905081810360008301526119a981611739565b9050919050565b600060208201905081810360008301526119c98161175c565b9050919050565b600060208201905081810360008301526119e98161177f565b9050919050565b60006020820190508181036000830152611a09816117a2565b9050919050565b60006020820190508181036000830152611a29816117c5565b9050919050565b60006020820190508181036000830152611a49816117e8565b9050919050565b60006020820190508181036000830152611a698161180b565b9050919050565b60006020820190508181036000830152611a898161182e565b9050919050565b60006020820190508181036000830152611aa981611851565b9050919050565b60006020820190508181036000830152611ac981611874565b9050919050565b60006020820190508181036000830152611ae981611897565b9050919050565b6000602082019050611b0560008301846118ba565b92915050565b6000602082019050611b2060008301846118c9565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611b4d82611c0a565b9150611b5883611c0a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611b8d57611b8c611c86565b5b828201905092915050565b6000611ba382611c0a565b9150611bae83611c0a565b925082821015611bc157611bc0611c86565b5b828203905092915050565b6000611bd782611bea565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611c3f578082015181840152602081019050611c24565b83811115611c4e576000848401525b50505050565b60006002820490506001821680611c6c57607f821691505b60208210811415611c8057611c7f611cb5565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c7920636f6e74726f6c6c6572732063616e206d696e7400000000000000600082015250565b7f4f6e6c7920636f6e74726f6c6c6572732063616e206275726e00000000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6120bd81611bcc565b81146120c857600080fd5b50565b6120d481611c0a565b81146120df57600080fd5b5056fea264697066735822122062a4f56b3c447c4100963445e389fbdc8dd986afcfc0fc1335628ac752f1fa8d64736f6c63430008070033

Deployed ByteCode Sourcemap

138:1218:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5435:100:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7743:210;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6555:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8435:529;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6397:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9373:297;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;464:149:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6726:177:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1671:94:3;;;:::i;:::-;;1020:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5654:104:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;752:153:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10173:482:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1012:111:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7116:216:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7395:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1920:229:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1238:115:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5435:100:1;5489:13;5522:5;5515:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5435:100;:::o;7743:210::-;7862:4;7884:39;7893:12;:10;:12::i;:::-;7907:7;7916:6;7884:8;:39::i;:::-;7941:4;7934:11;;7743:210;;;;:::o;6555:108::-;6616:7;6643:12;;6636:19;;6555:108;:::o;8435:529::-;8575:4;8592:36;8602:6;8610:9;8621:6;8592:9;:36::i;:::-;8641:24;8668:11;:19;8680:6;8668:19;;;;;;;;;;;;;;;:33;8688:12;:10;:12::i;:::-;8668:33;;;;;;;;;;;;;;;;8641:60;;8754:6;8734:16;:26;;8712:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;8864:57;8873:6;8881:12;:10;:12::i;:::-;8914:6;8895:16;:25;8864:8;:57::i;:::-;8952:4;8945:11;;;8435:529;;;;;:::o;6397:93::-;6455:5;6480:2;6473:9;;6397:93;:::o;9373:297::-;9488:4;9510:130;9533:12;:10;:12::i;:::-;9560:7;9619:10;9582:11;:25;9594:12;:10;:12::i;:::-;9582:25;;;;;;;;;;;;;;;:34;9608:7;9582:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;9510:8;:130::i;:::-;9658:4;9651:11;;9373:297;;;;:::o;464:149:2:-;530:11;:23;542:10;530:23;;;;;;;;;;;;;;;;;;;;;;;;;522:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;590:17;596:2;600:6;590:5;:17::i;:::-;464:149;;:::o;6726:177:1:-;6845:7;6877:9;:18;6887:7;6877:18;;;;;;;;;;;;;;;;6870:25;;6726:177;;;:::o;1671:94:3:-;1251:12;:10;:12::i;:::-;1240:23;;:7;:5;:7::i;:::-;:23;;;1232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1736:21:::1;1754:1;1736:9;:21::i;:::-;1671:94::o:0;1020:87::-;1066:7;1093:6;;;;;;;;;;;1086:13;;1020:87;:::o;5654:104:1:-;5710:13;5743:7;5736:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5654:104;:::o;752:153:2:-;820:11;:23;832:10;820:23;;;;;;;;;;;;;;;;;;;;;;;;;812:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;880:19;886:4;892:6;880:5;:19::i;:::-;752:153;;:::o;10173:482:1:-;10293:4;10315:24;10342:11;:25;10354:12;:10;:12::i;:::-;10342:25;;;;;;;;;;;;;;;:34;10368:7;10342:34;;;;;;;;;;;;;;;;10315:61;;10429:15;10409:16;:35;;10387:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;10545:67;10554:12;:10;:12::i;:::-;10568:7;10596:15;10577:16;:34;10545:8;:67::i;:::-;10643:4;10636:11;;;10173:482;;;;:::o;1012:111:2:-;1251:12:3;:10;:12::i;:::-;1240:23;;:7;:5;:7::i;:::-;:23;;;1232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1111:4:2::1;1085:11;:23;1097:10;1085:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;1012:111:::0;:::o;7116:216:1:-;7238:4;7260:42;7270:12;:10;:12::i;:::-;7284:9;7295:6;7260:9;:42::i;:::-;7320:4;7313:11;;7116:216;;;;:::o;7395:201::-;7529:7;7561:11;:18;7573:5;7561:18;;;;;;;;;;;;;;;:27;7580:7;7561:27;;;;;;;;;;;;;;;;7554:34;;7395:201;;;;:::o;1920:229:3:-;1251:12;:10;:12::i;:::-;1240:23;;:7;:5;:7::i;:::-;:23;;;1232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2043:1:::1;2023:22;;:8;:22;;;;2001:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;2122:19;2132:8;2122:9;:19::i;:::-;1920:229:::0;:::o;1238:115:2:-;1251:12:3;:10;:12::i;:::-;1240:23;;:7;:5;:7::i;:::-;:23;;;1232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1340:5:2::1;1314:11;:23;1326:10;1314:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;1238:115:::0;:::o;600:98:0:-;653:7;680:10;673:17;;600:98;:::o;13963:380:1:-;14116:1;14099:19;;:5;:19;;;;14091:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14197:1;14178:21;;:7;:21;;;;14170:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14281:6;14251:11;:18;14263:5;14251:18;;;;;;;;;;;;;;;:27;14270:7;14251:27;;;;;;;;;;;;;;;:36;;;;14319:7;14303:32;;14312:5;14303:32;;;14328:6;14303:32;;;;;;:::i;:::-;;;;;;;;13963:380;;;:::o;11145:770::-;11303:1;11285:20;;:6;:20;;;;11277:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11387:1;11366:23;;:9;:23;;;;11358:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11442:47;11463:6;11471:9;11482:6;11442:20;:47::i;:::-;11502:21;11526:9;:17;11536:6;11526:17;;;;;;;;;;;;;;;;11502:41;;11593:6;11576:13;:23;;11554:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;11737:6;11721:13;:22;11701:9;:17;11711:6;11701:17;;;;;;;;;;;;;;;:42;;;;11789:6;11765:9;:20;11775:9;11765:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;11830:9;11813:35;;11822:6;11813:35;;;11841:6;11813:35;;;;;;:::i;:::-;;;;;;;;11861:46;11881:6;11889:9;11900:6;11861:19;:46::i;:::-;11266:649;11145:770;;;:::o;12202:399::-;12305:1;12286:21;;:7;:21;;;;12278:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;12356:49;12385:1;12389:7;12398:6;12356:20;:49::i;:::-;12434:6;12418:12;;:22;;;;;;;:::i;:::-;;;;;;;;12473:6;12451:9;:18;12461:7;12451:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;12516:7;12495:37;;12512:1;12495:37;;;12525:6;12495:37;;;;;;:::i;:::-;;;;;;;;12545:48;12573:1;12577:7;12586:6;12545:19;:48::i;:::-;12202:399;;:::o;2157:173:3:-;2213:16;2232:6;;;;;;;;;;;2213:25;;2258:8;2249:6;;:17;;;;;;;;;;;;;;;;;;2313:8;2282:40;;2303:8;2282:40;;;;;;;;;;;;2202:128;2157:173;:::o;12934:591:1:-;13037:1;13018:21;;:7;:21;;;;13010:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13090:49;13111:7;13128:1;13132:6;13090:20;:49::i;:::-;13152:22;13177:9;:18;13187:7;13177:18;;;;;;;;;;;;;;;;13152:43;;13232:6;13214:14;:24;;13206:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13351:6;13334:14;:23;13313:9;:18;13323:7;13313:18;;;;;;;;;;;;;;;:44;;;;13395:6;13379:12;;:22;;;;;;;:::i;:::-;;;;;;;;13445:1;13419:37;;13428:7;13419:37;;;13449:6;13419:37;;;;;;:::i;:::-;;;;;;;;13469:48;13489:7;13506:1;13510:6;13469:19;:48::i;:::-;12999:526;12934:591;;:::o;14943:125::-;;;;:::o;15672:124::-;;;;:::o;7:139:4:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:::-;198:5;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;152:139;;;;:::o;297:329::-;356:6;405:2;393:9;384:7;380:23;376:32;373:119;;;411:79;;:::i;:::-;373:119;531:1;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;502:117;297:329;;;;:::o;632:474::-;700:6;708;757:2;745:9;736:7;732:23;728:32;725:119;;;763:79;;:::i;:::-;725:119;883:1;908:53;953:7;944:6;933:9;929:22;908:53;:::i;:::-;898:63;;854:117;1010:2;1036:53;1081:7;1072:6;1061:9;1057:22;1036:53;:::i;:::-;1026:63;;981:118;632:474;;;;;:::o;1112:619::-;1189:6;1197;1205;1254:2;1242:9;1233:7;1229:23;1225:32;1222:119;;;1260:79;;:::i;:::-;1222:119;1380:1;1405:53;1450:7;1441:6;1430:9;1426:22;1405:53;:::i;:::-;1395:63;;1351:117;1507:2;1533:53;1578:7;1569:6;1558:9;1554:22;1533:53;:::i;:::-;1523:63;;1478:118;1635:2;1661:53;1706:7;1697:6;1686:9;1682:22;1661:53;:::i;:::-;1651:63;;1606:118;1112:619;;;;;:::o;1737:474::-;1805:6;1813;1862:2;1850:9;1841:7;1837:23;1833:32;1830:119;;;1868:79;;:::i;:::-;1830:119;1988:1;2013:53;2058:7;2049:6;2038:9;2034:22;2013:53;:::i;:::-;2003:63;;1959:117;2115:2;2141:53;2186:7;2177:6;2166:9;2162:22;2141:53;:::i;:::-;2131:63;;2086:118;1737:474;;;;;:::o;2217:118::-;2304:24;2322:5;2304:24;:::i;:::-;2299:3;2292:37;2217:118;;:::o;2341:109::-;2422:21;2437:5;2422:21;:::i;:::-;2417:3;2410:34;2341:109;;:::o;2456:364::-;2544:3;2572:39;2605:5;2572:39;:::i;:::-;2627:71;2691:6;2686:3;2627:71;:::i;:::-;2620:78;;2707:52;2752:6;2747:3;2740:4;2733:5;2729:16;2707:52;:::i;:::-;2784:29;2806:6;2784:29;:::i;:::-;2779:3;2775:39;2768:46;;2548:272;2456:364;;;;:::o;2826:366::-;2968:3;2989:67;3053:2;3048:3;2989:67;:::i;:::-;2982:74;;3065:93;3154:3;3065:93;:::i;:::-;3183:2;3178:3;3174:12;3167:19;;2826:366;;;:::o;3198:::-;3340:3;3361:67;3425:2;3420:3;3361:67;:::i;:::-;3354:74;;3437:93;3526:3;3437:93;:::i;:::-;3555:2;3550:3;3546:12;3539:19;;3198:366;;;:::o;3570:::-;3712:3;3733:67;3797:2;3792:3;3733:67;:::i;:::-;3726:74;;3809:93;3898:3;3809:93;:::i;:::-;3927:2;3922:3;3918:12;3911:19;;3570:366;;;:::o;3942:::-;4084:3;4105:67;4169:2;4164:3;4105:67;:::i;:::-;4098:74;;4181:93;4270:3;4181:93;:::i;:::-;4299:2;4294:3;4290:12;4283:19;;3942:366;;;:::o;4314:::-;4456:3;4477:67;4541:2;4536:3;4477:67;:::i;:::-;4470:74;;4553:93;4642:3;4553:93;:::i;:::-;4671:2;4666:3;4662:12;4655:19;;4314:366;;;:::o;4686:::-;4828:3;4849:67;4913:2;4908:3;4849:67;:::i;:::-;4842:74;;4925:93;5014:3;4925:93;:::i;:::-;5043:2;5038:3;5034:12;5027:19;;4686:366;;;:::o;5058:::-;5200:3;5221:67;5285:2;5280:3;5221:67;:::i;:::-;5214:74;;5297:93;5386:3;5297:93;:::i;:::-;5415:2;5410:3;5406:12;5399:19;;5058:366;;;:::o;5430:::-;5572:3;5593:67;5657:2;5652:3;5593:67;:::i;:::-;5586:74;;5669:93;5758:3;5669:93;:::i;:::-;5787:2;5782:3;5778:12;5771:19;;5430:366;;;:::o;5802:::-;5944:3;5965:67;6029:2;6024:3;5965:67;:::i;:::-;5958:74;;6041:93;6130:3;6041:93;:::i;:::-;6159:2;6154:3;6150:12;6143:19;;5802:366;;;:::o;6174:::-;6316:3;6337:67;6401:2;6396:3;6337:67;:::i;:::-;6330:74;;6413:93;6502:3;6413:93;:::i;:::-;6531:2;6526:3;6522:12;6515:19;;6174:366;;;:::o;6546:::-;6688:3;6709:67;6773:2;6768:3;6709:67;:::i;:::-;6702:74;;6785:93;6874:3;6785:93;:::i;:::-;6903:2;6898:3;6894:12;6887:19;;6546:366;;;:::o;6918:::-;7060:3;7081:67;7145:2;7140:3;7081:67;:::i;:::-;7074:74;;7157:93;7246:3;7157:93;:::i;:::-;7275:2;7270:3;7266:12;7259:19;;6918:366;;;:::o;7290:::-;7432:3;7453:67;7517:2;7512:3;7453:67;:::i;:::-;7446:74;;7529:93;7618:3;7529:93;:::i;:::-;7647:2;7642:3;7638:12;7631:19;;7290:366;;;:::o;7662:::-;7804:3;7825:67;7889:2;7884:3;7825:67;:::i;:::-;7818:74;;7901:93;7990:3;7901:93;:::i;:::-;8019:2;8014:3;8010:12;8003:19;;7662:366;;;:::o;8034:118::-;8121:24;8139:5;8121:24;:::i;:::-;8116:3;8109:37;8034:118;;:::o;8158:112::-;8241:22;8257:5;8241:22;:::i;:::-;8236:3;8229:35;8158:112;;:::o;8276:222::-;8369:4;8407:2;8396:9;8392:18;8384:26;;8420:71;8488:1;8477:9;8473:17;8464:6;8420:71;:::i;:::-;8276:222;;;;:::o;8504:210::-;8591:4;8629:2;8618:9;8614:18;8606:26;;8642:65;8704:1;8693:9;8689:17;8680:6;8642:65;:::i;:::-;8504:210;;;;:::o;8720:313::-;8833:4;8871:2;8860:9;8856:18;8848:26;;8920:9;8914:4;8910:20;8906:1;8895:9;8891:17;8884:47;8948:78;9021:4;9012:6;8948:78;:::i;:::-;8940:86;;8720:313;;;;:::o;9039:419::-;9205:4;9243:2;9232:9;9228:18;9220:26;;9292:9;9286:4;9282:20;9278:1;9267:9;9263:17;9256:47;9320:131;9446:4;9320:131;:::i;:::-;9312:139;;9039:419;;;:::o;9464:::-;9630:4;9668:2;9657:9;9653:18;9645:26;;9717:9;9711:4;9707:20;9703:1;9692:9;9688:17;9681:47;9745:131;9871:4;9745:131;:::i;:::-;9737:139;;9464:419;;;:::o;9889:::-;10055:4;10093:2;10082:9;10078:18;10070:26;;10142:9;10136:4;10132:20;10128:1;10117:9;10113:17;10106:47;10170:131;10296:4;10170:131;:::i;:::-;10162:139;;9889:419;;;:::o;10314:::-;10480:4;10518:2;10507:9;10503:18;10495:26;;10567:9;10561:4;10557:20;10553:1;10542:9;10538:17;10531:47;10595:131;10721:4;10595:131;:::i;:::-;10587:139;;10314:419;;;:::o;10739:::-;10905:4;10943:2;10932:9;10928:18;10920:26;;10992:9;10986:4;10982:20;10978:1;10967:9;10963:17;10956:47;11020:131;11146:4;11020:131;:::i;:::-;11012:139;;10739:419;;;:::o;11164:::-;11330:4;11368:2;11357:9;11353:18;11345:26;;11417:9;11411:4;11407:20;11403:1;11392:9;11388:17;11381:47;11445:131;11571:4;11445:131;:::i;:::-;11437:139;;11164:419;;;:::o;11589:::-;11755:4;11793:2;11782:9;11778:18;11770:26;;11842:9;11836:4;11832:20;11828:1;11817:9;11813:17;11806:47;11870:131;11996:4;11870:131;:::i;:::-;11862:139;;11589:419;;;:::o;12014:::-;12180:4;12218:2;12207:9;12203:18;12195:26;;12267:9;12261:4;12257:20;12253:1;12242:9;12238:17;12231:47;12295:131;12421:4;12295:131;:::i;:::-;12287:139;;12014:419;;;:::o;12439:::-;12605:4;12643:2;12632:9;12628:18;12620:26;;12692:9;12686:4;12682:20;12678:1;12667:9;12663:17;12656:47;12720:131;12846:4;12720:131;:::i;:::-;12712:139;;12439:419;;;:::o;12864:::-;13030:4;13068:2;13057:9;13053:18;13045:26;;13117:9;13111:4;13107:20;13103:1;13092:9;13088:17;13081:47;13145:131;13271:4;13145:131;:::i;:::-;13137:139;;12864:419;;;:::o;13289:::-;13455:4;13493:2;13482:9;13478:18;13470:26;;13542:9;13536:4;13532:20;13528:1;13517:9;13513:17;13506:47;13570:131;13696:4;13570:131;:::i;:::-;13562:139;;13289:419;;;:::o;13714:::-;13880:4;13918:2;13907:9;13903:18;13895:26;;13967:9;13961:4;13957:20;13953:1;13942:9;13938:17;13931:47;13995:131;14121:4;13995:131;:::i;:::-;13987:139;;13714:419;;;:::o;14139:::-;14305:4;14343:2;14332:9;14328:18;14320:26;;14392:9;14386:4;14382:20;14378:1;14367:9;14363:17;14356:47;14420:131;14546:4;14420:131;:::i;:::-;14412:139;;14139:419;;;:::o;14564:::-;14730:4;14768:2;14757:9;14753:18;14745:26;;14817:9;14811:4;14807:20;14803:1;14792:9;14788:17;14781:47;14845:131;14971:4;14845:131;:::i;:::-;14837:139;;14564:419;;;:::o;14989:222::-;15082:4;15120:2;15109:9;15105:18;15097:26;;15133:71;15201:1;15190:9;15186:17;15177:6;15133:71;:::i;:::-;14989:222;;;;:::o;15217:214::-;15306:4;15344:2;15333:9;15329:18;15321:26;;15357:67;15421:1;15410:9;15406:17;15397:6;15357:67;:::i;:::-;15217:214;;;;:::o;15518:99::-;15570:6;15604:5;15598:12;15588:22;;15518:99;;;:::o;15623:169::-;15707:11;15741:6;15736:3;15729:19;15781:4;15776:3;15772:14;15757:29;;15623:169;;;;:::o;15798:305::-;15838:3;15857:20;15875:1;15857:20;:::i;:::-;15852:25;;15891:20;15909:1;15891:20;:::i;:::-;15886:25;;16045:1;15977:66;15973:74;15970:1;15967:81;15964:107;;;16051:18;;:::i;:::-;15964:107;16095:1;16092;16088:9;16081:16;;15798:305;;;;:::o;16109:191::-;16149:4;16169:20;16187:1;16169:20;:::i;:::-;16164:25;;16203:20;16221:1;16203:20;:::i;:::-;16198:25;;16242:1;16239;16236:8;16233:34;;;16247:18;;:::i;:::-;16233:34;16292:1;16289;16285:9;16277:17;;16109:191;;;;:::o;16306:96::-;16343:7;16372:24;16390:5;16372:24;:::i;:::-;16361:35;;16306:96;;;:::o;16408:90::-;16442:7;16485:5;16478:13;16471:21;16460:32;;16408:90;;;:::o;16504:126::-;16541:7;16581:42;16574:5;16570:54;16559:65;;16504:126;;;:::o;16636:77::-;16673:7;16702:5;16691:16;;16636:77;;;:::o;16719:86::-;16754:7;16794:4;16787:5;16783:16;16772:27;;16719:86;;;:::o;16811:307::-;16879:1;16889:113;16903:6;16900:1;16897:13;16889:113;;;16988:1;16983:3;16979:11;16973:18;16969:1;16964:3;16960:11;16953:39;16925:2;16922:1;16918:10;16913:15;;16889:113;;;17020:6;17017:1;17014:13;17011:101;;;17100:1;17091:6;17086:3;17082:16;17075:27;17011:101;16860:258;16811:307;;;:::o;17124:320::-;17168:6;17205:1;17199:4;17195:12;17185:22;;17252:1;17246:4;17242:12;17273:18;17263:81;;17329:4;17321:6;17317:17;17307:27;;17263:81;17391:2;17383:6;17380:14;17360:18;17357:38;17354:84;;;17410:18;;:::i;:::-;17354:84;17175:269;17124:320;;;:::o;17450:180::-;17498:77;17495:1;17488:88;17595:4;17592:1;17585:15;17619:4;17616:1;17609:15;17636:180;17684:77;17681:1;17674:88;17781:4;17778:1;17771:15;17805:4;17802:1;17795:15;17945:117;18054:1;18051;18044:12;18068:102;18109:6;18160:2;18156:7;18151:2;18144:5;18140:14;18136:28;18126:38;;18068:102;;;:::o;18176:222::-;18316:34;18312:1;18304:6;18300:14;18293:58;18385:5;18380:2;18372:6;18368:15;18361:30;18176:222;:::o;18404:221::-;18544:34;18540:1;18532:6;18528:14;18521:58;18613:4;18608:2;18600:6;18596:15;18589:29;18404:221;:::o;18631:225::-;18771:34;18767:1;18759:6;18755:14;18748:58;18840:8;18835:2;18827:6;18823:15;18816:33;18631:225;:::o;18862:221::-;19002:34;18998:1;18990:6;18986:14;18979:58;19071:4;19066:2;19058:6;19054:15;19047:29;18862:221;:::o;19089:225::-;19229:34;19225:1;19217:6;19213:14;19206:58;19298:8;19293:2;19285:6;19281:15;19274:33;19089:225;:::o;19320:175::-;19460:27;19456:1;19448:6;19444:14;19437:51;19320:175;:::o;19501:::-;19641:27;19637:1;19629:6;19625:14;19618:51;19501:175;:::o;19682:227::-;19822:34;19818:1;19810:6;19806:14;19799:58;19891:10;19886:2;19878:6;19874:15;19867:35;19682:227;:::o;19915:182::-;20055:34;20051:1;20043:6;20039:14;20032:58;19915:182;:::o;20103:220::-;20243:34;20239:1;20231:6;20227:14;20220:58;20312:3;20307:2;20299:6;20295:15;20288:28;20103:220;:::o;20329:224::-;20469:34;20465:1;20457:6;20453:14;20446:58;20538:7;20533:2;20525:6;20521:15;20514:32;20329:224;:::o;20559:223::-;20699:34;20695:1;20687:6;20683:14;20676:58;20768:6;20763:2;20755:6;20751:15;20744:31;20559:223;:::o;20788:224::-;20928:34;20924:1;20916:6;20912:14;20905:58;20997:7;20992:2;20984:6;20980:15;20973:32;20788:224;:::o;21018:181::-;21158:33;21154:1;21146:6;21142:14;21135:57;21018:181;:::o;21205:122::-;21278:24;21296:5;21278:24;:::i;:::-;21271:5;21268:35;21258:63;;21317:1;21314;21307:12;21258:63;21205:122;:::o;21333:::-;21406:24;21424:5;21406:24;:::i;:::-;21399:5;21396:35;21386:63;;21445:1;21442;21435:12;21386:63;21333:122;:::o

Swarm Source

ipfs://62a4f56b3c447c4100963445e389fbdc8dd986afcfc0fc1335628ac752f1fa8d
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.