ETH Price: $3,085.32 (-1.08%)
Gas: 2 Gwei

Token

Privilege (PRVG)
 

Overview

Max Total Supply

51,723,630.0819691 PRVG

Holders

187 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Filtered by Token Holder
Uniswap V3: PRVG
Balance
1,761,686.86327267 PRVG

Value
$0.00
0xe22052a1e89e4a9e0158671c355affdadf8bacd1
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

PRVD Network is a permissionless Layer 3 network responsible for consensus on a recursive zero-knowledge rollup. The PRVG token is the native gas token for PRVD Network.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
PrivilegeERC20

Compiler Version
v0.8.2+commit.661d1103

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-20
*/

// 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 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) {
    this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
    return msg.data;
  }
}

/**
 * @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 guidelines: functions revert instead
 * of 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 defaut 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");
    _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");
    _approve(_msgSender(), spender, currentAllowance - subtractedValue);

    return true;
  }

  /**
    * @dev Moves tokens `amount` from `sender` to `recipient`.
    *
    * This is 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");
    _balances[sender] = senderBalance - amount;
    _balances[recipient] += amount;

    emit Transfer(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:
    *
    * - `to` 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);
  }

  /**
    * @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");
    _balances[account] = accountBalance - amount;
    _totalSupply -= amount;

    emit Transfer(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 to 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 { }
}

/**
 * @title ERC20Decimals
 * @dev Implementation of the ERC20Decimals. Extension of {ERC20} that adds decimals storage slot.
 */
abstract contract ERC20Decimals is ERC20 {
  uint8 immutable private _decimals;

  /**
    * @dev Sets the value of the `decimals`. This value is immutable, it can only be
    * set once during construction.
    */
  constructor (uint8 decimals_) {
    _decimals = decimals_;
  }

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

/**
 * @title PrivilegeERC20
 * @dev Implementation of the PRVG ("Privilege") ERC20 token contract
 * with facilities for redeeming the configured ERC20 token for an
 * equivalent amount of PRVG "Privilege" token.
 *
 * All 150,000,000 UBT can be approved and redeemed by calling `redeem(uint256 amount)`
 * prior to July 4, 2022 when the redeemable period expires. Any PRVG
 * which remain unredeemed by the outstanding circulating supply of UBT as
 * of July 4, 2022 will be burned.
 *
 * PRVG is required to make use of the permissionless provide.network.
 */
contract PrivilegeERC20 is ERC20Decimals {

  /**
   * @dev Emitted when `amount` of redeemable ERC20 tokens are exchanged
   * for the equivalent number of ERC20 tokens allocated as part of the
   * underlying `totalSupply` of this token contract.
   */
  event Redeem(address indexed sender, uint256 amount);

  // ERC20 token address of the redeemable token
  IERC20 public redeemableToken;

  // Expiry timestamp at which no further ERC20 token redemptions will be processed and the
  // unclaimed balance of the underlying `totalSupply` of this token contract will be burned
  uint256 public redemptionExpiryTimestamp;

  constructor (address _redeemableToken, uint256 _expiry)
    ERC20("Privilege", "PRVG")
    ERC20Decimals(8)
  {
    redeemableToken = IERC20(_redeemableToken);

    require(_expiry > block.timestamp + 2592000 seconds); // 1 month minimum redemption period
    redemptionExpiryTimestamp = _expiry;

    uint256 _totalSupply = 20000000000000000;
    _mint(address(this), redeemableToken.totalSupply());
    _mint(msg.sender, _totalSupply - redeemableToken.totalSupply());
  }

  /// @dev require the contract call to occur after the redeemable period
  modifier afterRedeemablePeriod() {
    require(block.timestamp > redemptionExpiryTimestamp, "redeemable period has not expired");
    _;
  }

  /// @dev require the contract call to occur during the redeemable period
  modifier duringRedeemablePeriod() {
    require(block.timestamp <= redemptionExpiryTimestamp, "redeemable period has expired");
    _;
  }

  /**
   * @dev Burn the unclaimed portion of the `totalSupply` of the underlying
   * token contract after the redeemable period has ended
   */
  function burnUnredeemed() external afterRedeemablePeriod {
    _burn(address(this), this.balanceOf(address(this)));
  }

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

  /**
   * @dev Redeem the given `amount` of redeemable ERC20 tokens 1:1 for
   * PRVG and "burn" the redeemable token by transferring and forever
   * locking it up in this underlying token contract.
   */
  function redeem(uint256 amount) external duringRedeemablePeriod {
    require(redeemableToken.transferFrom(msg.sender, address(this), amount), "tx failed during attempted transfer from swappable token contract");
    require(this.transfer(msg.sender, amount), "tx failed during attempted transfer to sender");
    emit Redeem(msg.sender, amount);
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_redeemableToken","type":"address"},{"internalType":"uint256","name":"_expiry","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Redeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnUnredeemed","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":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"redeem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"redeemableToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"redemptionExpiryTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"}]

60a06040523480156200001157600080fd5b50604051620026d9380380620026d9833981810160405281019062000037919062000524565b60086040518060400160405280600981526020017f50726976696c65676500000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f50525647000000000000000000000000000000000000000000000000000000008152508160039080519060200190620000bd92919062000446565b508060049080519060200190620000d692919062000446565b5050508060ff1660808160ff1660f81b815250505081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062278d00426200013d919062000619565b81116200014957600080fd5b80600681905550600066470de4df82000090506200021130600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015620001ca57600080fd5b505afa158015620001df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000205919062000565565b620002dc60201b60201c565b620002d333600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200027f57600080fd5b505afa15801562000294573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ba919062000565565b83620002c7919062000676565b620002dc60201b60201c565b505050620007e0565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200034f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200034690620005c9565b60405180910390fd5b62000363600083836200044160201b60201c565b806002600082825462000377919062000619565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620003ce919062000619565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620004359190620005eb565b60405180910390a35050565b505050565b8280546200045490620006ef565b90600052602060002090601f016020900481019282620004785760008555620004c4565b82601f106200049357805160ff1916838001178555620004c4565b82800160010185558215620004c4579182015b82811115620004c3578251825591602001919060010190620004a6565b5b509050620004d39190620004d7565b5090565b5b80821115620004f2576000816000905550600101620004d8565b5090565b6000815190506200050781620007ac565b92915050565b6000815190506200051e81620007c6565b92915050565b600080604083850312156200053857600080fd5b60006200054885828601620004f6565b92505060206200055b858286016200050d565b9150509250929050565b6000602082840312156200057857600080fd5b600062000588848285016200050d565b91505092915050565b6000620005a0601f8362000608565b9150620005ad8262000783565b602082019050919050565b620005c381620006e5565b82525050565b60006020820190508181036000830152620005e48162000591565b9050919050565b6000602082019050620006026000830184620005b8565b92915050565b600082825260208201905092915050565b60006200062682620006e5565b91506200063383620006e5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200066b576200066a62000725565b5b828201905092915050565b60006200068382620006e5565b91506200069083620006e5565b925082821015620006a657620006a562000725565b5b828203905092915050565b6000620006be82620006c5565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060028204905060018216806200070857607f821691505b602082108114156200071f576200071e62000754565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b620007b781620006b1565b8114620007c357600080fd5b50565b620007d181620006e5565b8114620007dd57600080fd5b50565b60805160f81c611eda620007ff6000396000610fb90152611eda6000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80633950935111610097578063a457c2d711610066578063a457c2d714610278578063a9059cbb146102a8578063db006a75146102d8578063dd62ed3e146102f4576100f5565b806339509351146101f0578063591ba34f1461022057806370a082311461022a57806395d89b411461025a576100f5565b806318160ddd116100d357806318160ddd1461016657806323ac43841461018457806323b872dd146101a2578063313ce567146101d2576100f5565b806306fdde03146100fa578063095ea7b31461011857806311dc99b314610148575b600080fd5b610102610324565b60405161010f9190611671565b60405180910390f35b610132600480360381019061012d91906112be565b6103b6565b60405161013f919061163b565b60405180910390f35b6101506103d4565b60405161015d9190611656565b60405180910390f35b61016e6103fa565b60405161017b9190611833565b60405180910390f35b61018c610404565b6040516101999190611833565b60405180910390f35b6101bc60048036038101906101b7919061126f565b61040a565b6040516101c9919061163b565b60405180910390f35b6101da61050b565b6040516101e7919061184e565b60405180910390f35b61020a600480360381019061020591906112be565b61051a565b604051610217919061163b565b60405180910390f35b6102286105c6565b005b610244600480360381019061023f919061120a565b61069e565b6040516102519190611833565b60405180910390f35b6102626106e6565b60405161026f9190611671565b60405180910390f35b610292600480360381019061028d91906112be565b610778565b60405161029f919061163b565b60405180910390f35b6102c260048036038101906102bd91906112be565b61086c565b6040516102cf919061163b565b60405180910390f35b6102f260048036038101906102ed9190611323565b61088a565b005b61030e60048036038101906103099190611233565b610adc565b60405161031b9190611833565b60405180910390f35b606060038054610333906119bb565b80601f016020809104026020016040519081016040528092919081815260200182805461035f906119bb565b80156103ac5780601f10610381576101008083540402835291602001916103ac565b820191906000526020600020905b81548152906001019060200180831161038f57829003601f168201915b5050505050905090565b60006103ca6103c3610b63565b8484610b6b565b6001905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b60065481565b6000610417848484610d36565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610462610b63565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156104e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d990611753565b60405180910390fd5b6104ff856104ee610b63565b85846104fa91906118db565b610b6b565b60019150509392505050565b6000610515610fb5565b905090565b60006105bc610527610b63565b848460016000610535610b63565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105b79190611885565b610b6b565b6001905092915050565b600654421161060a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060190611733565b60405180910390fd5b61069c303073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161064791906115c0565b60206040518083038186803b15801561065f57600080fd5b505afa158015610673573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610697919061134c565b610fdd565b565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546106f5906119bb565b80601f0160208091040260200160405190810160405280929190818152602001828054610721906119bb565b801561076e5780601f106107435761010080835404028352916020019161076e565b820191906000526020600020905b81548152906001019060200180831161075157829003601f168201915b5050505050905090565b60008060016000610787610b63565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610844576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083b90611813565b60405180910390fd5b61086161084f610b63565b85858461085c91906118db565b610b6b565b600191505092915050565b6000610880610879610b63565b8484610d36565b6001905092915050565b6006544211156108cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c690611773565b60405180910390fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b815260040161092e939291906115db565b602060405180830381600087803b15801561094857600080fd5b505af115801561095c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098091906112fa565b6109bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b6906117f3565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016109fa929190611612565b602060405180830381600087803b158015610a1457600080fd5b505af1158015610a28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4c91906112fa565b610a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a82906116f3565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167f222838db2794d11532d940e8dec38ae307ed0b63cd97c233322e221f998767a682604051610ad19190611833565b60405180910390a250565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd2906117d3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c42906116d3565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d299190611833565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9d906117b3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0d90611693565b60405180910390fd5b610e218383836111b1565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610ea7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9e90611713565b60405180910390fd5b8181610eb391906118db565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f439190611885565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610fa79190611833565b60405180910390a350505050565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561104d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104490611793565b60405180910390fd5b611059826000836111b1565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156110df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d6906116b3565b60405180910390fd5b81816110eb91906118db565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816002600082825461113f91906118db565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111a49190611833565b60405180910390a3505050565b505050565b6000813590506111c581611e5f565b92915050565b6000815190506111da81611e76565b92915050565b6000813590506111ef81611e8d565b92915050565b60008151905061120481611e8d565b92915050565b60006020828403121561121c57600080fd5b600061122a848285016111b6565b91505092915050565b6000806040838503121561124657600080fd5b6000611254858286016111b6565b9250506020611265858286016111b6565b9150509250929050565b60008060006060848603121561128457600080fd5b6000611292868287016111b6565b93505060206112a3868287016111b6565b92505060406112b4868287016111e0565b9150509250925092565b600080604083850312156112d157600080fd5b60006112df858286016111b6565b92505060206112f0858286016111e0565b9150509250929050565b60006020828403121561130c57600080fd5b600061131a848285016111cb565b91505092915050565b60006020828403121561133557600080fd5b6000611343848285016111e0565b91505092915050565b60006020828403121561135e57600080fd5b600061136c848285016111f5565b91505092915050565b61137e8161190f565b82525050565b61138d81611921565b82525050565b61139c81611964565b82525050565b60006113ad82611869565b6113b78185611874565b93506113c7818560208601611988565b6113d081611a4b565b840191505092915050565b60006113e8602383611874565b91506113f382611a5c565b604082019050919050565b600061140b602283611874565b915061141682611aab565b604082019050919050565b600061142e602283611874565b915061143982611afa565b604082019050919050565b6000611451602d83611874565b915061145c82611b49565b604082019050919050565b6000611474602683611874565b915061147f82611b98565b604082019050919050565b6000611497602183611874565b91506114a282611be7565b604082019050919050565b60006114ba602883611874565b91506114c582611c36565b604082019050919050565b60006114dd601d83611874565b91506114e882611c85565b602082019050919050565b6000611500602183611874565b915061150b82611cae565b604082019050919050565b6000611523602583611874565b915061152e82611cfd565b604082019050919050565b6000611546602483611874565b915061155182611d4c565b604082019050919050565b6000611569604183611874565b915061157482611d9b565b606082019050919050565b600061158c602583611874565b915061159782611e10565b604082019050919050565b6115ab8161194d565b82525050565b6115ba81611957565b82525050565b60006020820190506115d56000830184611375565b92915050565b60006060820190506115f06000830186611375565b6115fd6020830185611375565b61160a60408301846115a2565b949350505050565b60006040820190506116276000830185611375565b61163460208301846115a2565b9392505050565b60006020820190506116506000830184611384565b92915050565b600060208201905061166b6000830184611393565b92915050565b6000602082019050818103600083015261168b81846113a2565b905092915050565b600060208201905081810360008301526116ac816113db565b9050919050565b600060208201905081810360008301526116cc816113fe565b9050919050565b600060208201905081810360008301526116ec81611421565b9050919050565b6000602082019050818103600083015261170c81611444565b9050919050565b6000602082019050818103600083015261172c81611467565b9050919050565b6000602082019050818103600083015261174c8161148a565b9050919050565b6000602082019050818103600083015261176c816114ad565b9050919050565b6000602082019050818103600083015261178c816114d0565b9050919050565b600060208201905081810360008301526117ac816114f3565b9050919050565b600060208201905081810360008301526117cc81611516565b9050919050565b600060208201905081810360008301526117ec81611539565b9050919050565b6000602082019050818103600083015261180c8161155c565b9050919050565b6000602082019050818103600083015261182c8161157f565b9050919050565b600060208201905061184860008301846115a2565b92915050565b600060208201905061186360008301846115b1565b92915050565b600081519050919050565b600082825260208201905092915050565b60006118908261194d565b915061189b8361194d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156118d0576118cf6119ed565b5b828201905092915050565b60006118e68261194d565b91506118f18361194d565b925082821015611904576119036119ed565b5b828203905092915050565b600061191a8261192d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061196f82611976565b9050919050565b60006119818261192d565b9050919050565b60005b838110156119a657808201518184015260208101905061198b565b838111156119b5576000848401525b50505050565b600060028204905060018216806119d357607f821691505b602082108114156119e7576119e6611a1c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f7478206661696c656420647572696e6720617474656d70746564207472616e7360008201527f66657220746f2073656e64657200000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f72656465656d61626c6520706572696f6420686173206e6f742065787069726560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f72656465656d61626c6520706572696f64206861732065787069726564000000600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f7478206661696c656420647572696e6720617474656d70746564207472616e7360008201527f6665722066726f6d20737761707061626c6520746f6b656e20636f6e7472616360208201527f7400000000000000000000000000000000000000000000000000000000000000604082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b611e688161190f565b8114611e7357600080fd5b50565b611e7f81611921565b8114611e8a57600080fd5b50565b611e968161194d565b8114611ea157600080fd5b5056fea264697066735822122037b8ef37358a656b237ef0ddf283acda2828075e607c0d63d752cd1d38274da264736f6c634300080200330000000000000000000000008400d94a5cb0fa0d041a3788e395285d61c9ee5e0000000000000000000000000000000000000000000000000000000062c22d80

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80633950935111610097578063a457c2d711610066578063a457c2d714610278578063a9059cbb146102a8578063db006a75146102d8578063dd62ed3e146102f4576100f5565b806339509351146101f0578063591ba34f1461022057806370a082311461022a57806395d89b411461025a576100f5565b806318160ddd116100d357806318160ddd1461016657806323ac43841461018457806323b872dd146101a2578063313ce567146101d2576100f5565b806306fdde03146100fa578063095ea7b31461011857806311dc99b314610148575b600080fd5b610102610324565b60405161010f9190611671565b60405180910390f35b610132600480360381019061012d91906112be565b6103b6565b60405161013f919061163b565b60405180910390f35b6101506103d4565b60405161015d9190611656565b60405180910390f35b61016e6103fa565b60405161017b9190611833565b60405180910390f35b61018c610404565b6040516101999190611833565b60405180910390f35b6101bc60048036038101906101b7919061126f565b61040a565b6040516101c9919061163b565b60405180910390f35b6101da61050b565b6040516101e7919061184e565b60405180910390f35b61020a600480360381019061020591906112be565b61051a565b604051610217919061163b565b60405180910390f35b6102286105c6565b005b610244600480360381019061023f919061120a565b61069e565b6040516102519190611833565b60405180910390f35b6102626106e6565b60405161026f9190611671565b60405180910390f35b610292600480360381019061028d91906112be565b610778565b60405161029f919061163b565b60405180910390f35b6102c260048036038101906102bd91906112be565b61086c565b6040516102cf919061163b565b60405180910390f35b6102f260048036038101906102ed9190611323565b61088a565b005b61030e60048036038101906103099190611233565b610adc565b60405161031b9190611833565b60405180910390f35b606060038054610333906119bb565b80601f016020809104026020016040519081016040528092919081815260200182805461035f906119bb565b80156103ac5780601f10610381576101008083540402835291602001916103ac565b820191906000526020600020905b81548152906001019060200180831161038f57829003601f168201915b5050505050905090565b60006103ca6103c3610b63565b8484610b6b565b6001905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b60065481565b6000610417848484610d36565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610462610b63565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156104e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d990611753565b60405180910390fd5b6104ff856104ee610b63565b85846104fa91906118db565b610b6b565b60019150509392505050565b6000610515610fb5565b905090565b60006105bc610527610b63565b848460016000610535610b63565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105b79190611885565b610b6b565b6001905092915050565b600654421161060a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060190611733565b60405180910390fd5b61069c303073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161064791906115c0565b60206040518083038186803b15801561065f57600080fd5b505afa158015610673573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610697919061134c565b610fdd565b565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546106f5906119bb565b80601f0160208091040260200160405190810160405280929190818152602001828054610721906119bb565b801561076e5780601f106107435761010080835404028352916020019161076e565b820191906000526020600020905b81548152906001019060200180831161075157829003601f168201915b5050505050905090565b60008060016000610787610b63565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610844576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083b90611813565b60405180910390fd5b61086161084f610b63565b85858461085c91906118db565b610b6b565b600191505092915050565b6000610880610879610b63565b8484610d36565b6001905092915050565b6006544211156108cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c690611773565b60405180910390fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b815260040161092e939291906115db565b602060405180830381600087803b15801561094857600080fd5b505af115801561095c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098091906112fa565b6109bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b6906117f3565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016109fa929190611612565b602060405180830381600087803b158015610a1457600080fd5b505af1158015610a28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4c91906112fa565b610a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a82906116f3565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167f222838db2794d11532d940e8dec38ae307ed0b63cd97c233322e221f998767a682604051610ad19190611833565b60405180910390a250565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd2906117d3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c42906116d3565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d299190611833565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9d906117b3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0d90611693565b60405180910390fd5b610e218383836111b1565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610ea7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9e90611713565b60405180910390fd5b8181610eb391906118db565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f439190611885565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610fa79190611833565b60405180910390a350505050565b60007f0000000000000000000000000000000000000000000000000000000000000008905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561104d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104490611793565b60405180910390fd5b611059826000836111b1565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156110df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d6906116b3565b60405180910390fd5b81816110eb91906118db565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816002600082825461113f91906118db565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111a49190611833565b60405180910390a3505050565b505050565b6000813590506111c581611e5f565b92915050565b6000815190506111da81611e76565b92915050565b6000813590506111ef81611e8d565b92915050565b60008151905061120481611e8d565b92915050565b60006020828403121561121c57600080fd5b600061122a848285016111b6565b91505092915050565b6000806040838503121561124657600080fd5b6000611254858286016111b6565b9250506020611265858286016111b6565b9150509250929050565b60008060006060848603121561128457600080fd5b6000611292868287016111b6565b93505060206112a3868287016111b6565b92505060406112b4868287016111e0565b9150509250925092565b600080604083850312156112d157600080fd5b60006112df858286016111b6565b92505060206112f0858286016111e0565b9150509250929050565b60006020828403121561130c57600080fd5b600061131a848285016111cb565b91505092915050565b60006020828403121561133557600080fd5b6000611343848285016111e0565b91505092915050565b60006020828403121561135e57600080fd5b600061136c848285016111f5565b91505092915050565b61137e8161190f565b82525050565b61138d81611921565b82525050565b61139c81611964565b82525050565b60006113ad82611869565b6113b78185611874565b93506113c7818560208601611988565b6113d081611a4b565b840191505092915050565b60006113e8602383611874565b91506113f382611a5c565b604082019050919050565b600061140b602283611874565b915061141682611aab565b604082019050919050565b600061142e602283611874565b915061143982611afa565b604082019050919050565b6000611451602d83611874565b915061145c82611b49565b604082019050919050565b6000611474602683611874565b915061147f82611b98565b604082019050919050565b6000611497602183611874565b91506114a282611be7565b604082019050919050565b60006114ba602883611874565b91506114c582611c36565b604082019050919050565b60006114dd601d83611874565b91506114e882611c85565b602082019050919050565b6000611500602183611874565b915061150b82611cae565b604082019050919050565b6000611523602583611874565b915061152e82611cfd565b604082019050919050565b6000611546602483611874565b915061155182611d4c565b604082019050919050565b6000611569604183611874565b915061157482611d9b565b606082019050919050565b600061158c602583611874565b915061159782611e10565b604082019050919050565b6115ab8161194d565b82525050565b6115ba81611957565b82525050565b60006020820190506115d56000830184611375565b92915050565b60006060820190506115f06000830186611375565b6115fd6020830185611375565b61160a60408301846115a2565b949350505050565b60006040820190506116276000830185611375565b61163460208301846115a2565b9392505050565b60006020820190506116506000830184611384565b92915050565b600060208201905061166b6000830184611393565b92915050565b6000602082019050818103600083015261168b81846113a2565b905092915050565b600060208201905081810360008301526116ac816113db565b9050919050565b600060208201905081810360008301526116cc816113fe565b9050919050565b600060208201905081810360008301526116ec81611421565b9050919050565b6000602082019050818103600083015261170c81611444565b9050919050565b6000602082019050818103600083015261172c81611467565b9050919050565b6000602082019050818103600083015261174c8161148a565b9050919050565b6000602082019050818103600083015261176c816114ad565b9050919050565b6000602082019050818103600083015261178c816114d0565b9050919050565b600060208201905081810360008301526117ac816114f3565b9050919050565b600060208201905081810360008301526117cc81611516565b9050919050565b600060208201905081810360008301526117ec81611539565b9050919050565b6000602082019050818103600083015261180c8161155c565b9050919050565b6000602082019050818103600083015261182c8161157f565b9050919050565b600060208201905061184860008301846115a2565b92915050565b600060208201905061186360008301846115b1565b92915050565b600081519050919050565b600082825260208201905092915050565b60006118908261194d565b915061189b8361194d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156118d0576118cf6119ed565b5b828201905092915050565b60006118e68261194d565b91506118f18361194d565b925082821015611904576119036119ed565b5b828203905092915050565b600061191a8261192d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061196f82611976565b9050919050565b60006119818261192d565b9050919050565b60005b838110156119a657808201518184015260208101905061198b565b838111156119b5576000848401525b50505050565b600060028204905060018216806119d357607f821691505b602082108114156119e7576119e6611a1c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f7478206661696c656420647572696e6720617474656d70746564207472616e7360008201527f66657220746f2073656e64657200000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f72656465656d61626c6520706572696f6420686173206e6f742065787069726560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f72656465656d61626c6520706572696f64206861732065787069726564000000600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f7478206661696c656420647572696e6720617474656d70746564207472616e7360008201527f6665722066726f6d20737761707061626c6520746f6b656e20636f6e7472616360208201527f7400000000000000000000000000000000000000000000000000000000000000604082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b611e688161190f565b8114611e7357600080fd5b50565b611e7f81611921565b8114611e8a57600080fd5b50565b611e968161194d565b8114611ea157600080fd5b5056fea264697066735822122037b8ef37358a656b237ef0ddf283acda2828075e607c0d63d752cd1d38274da264736f6c63430008020033

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

0000000000000000000000008400d94a5cb0fa0d041a3788e395285d61c9ee5e0000000000000000000000000000000000000000000000000000000062c22d80

-----Decoded View---------------
Arg [0] : _redeemableToken (address): 0x8400D94A5cb0fa0D041a3788e395285d61c9ee5e
Arg [1] : _expiry (uint256): 1656892800

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000008400d94a5cb0fa0d041a3788e395285d61c9ee5e
Arg [1] : 0000000000000000000000000000000000000000000000000000000062c22d80


Deployed Bytecode Sourcemap

15504:2534:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6023:94;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8082:159;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15877:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7096:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16100:40;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8707:400;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17362:101;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9501:205;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17235:121;;;:::i;:::-;;7255;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6229:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10192:359;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7578:165;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17681:354;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7800:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6023:94;6077:13;6106:5;6099:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6023:94;:::o;8082:159::-;8165:4;8178:39;8187:12;:10;:12::i;:::-;8201:7;8210:6;8178:8;:39::i;:::-;8231:4;8224:11;;8082:159;;;;:::o;15877:29::-;;;;;;;;;;;;;:::o;7096:102::-;7157:7;7180:12;;7173:19;;7096:102;:::o;16100:40::-;;;;:::o;8707:400::-;8813:4;8826:36;8836:6;8844:9;8855:6;8826:9;:36::i;:::-;8871:24;8898:11;:19;8910:6;8898:19;;;;;;;;;;;;;;;:33;8918:12;:10;:12::i;:::-;8898:33;;;;;;;;;;;;;;;;8871:60;;8966:6;8946:16;:26;;8938:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9024:57;9033:6;9041:12;:10;:12::i;:::-;9074:6;9055:16;:25;;;;:::i;:::-;9024:8;:57::i;:::-;9097:4;9090:11;;;8707:400;;;;;:::o;17362:101::-;17420:5;17441:16;:14;:16::i;:::-;17434:23;;17362:101;:::o;9501:205::-;9589:4;9602:80;9611:12;:10;:12::i;:::-;9625:7;9671:10;9634:11;:25;9646:12;:10;:12::i;:::-;9634:25;;;;;;;;;;;;;;;:34;9660:7;9634:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;9602:8;:80::i;:::-;9696:4;9689:11;;9501:205;;;;:::o;17235:121::-;16779:25;;16761:15;:43;16753:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;17299:51:::1;17313:4;17320;:14;;;17343:4;17320:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17299:5;:51::i;:::-;17235:121::o:0;7255:::-;7329:7;7352:9;:18;7362:7;7352:18;;;;;;;;;;;;;;;;7345:25;;7255:121;;;:::o;6229:98::-;6285:13;6314:7;6307:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6229:98;:::o;10192:359::-;10285:4;10298:24;10325:11;:25;10337:12;:10;:12::i;:::-;10325:25;;;;;;;;;;;;;;;:34;10351:7;10325:34;;;;;;;;;;;;;;;;10298:61;;10394:15;10374:16;:35;;10366:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;10458:67;10467:12;:10;:12::i;:::-;10481:7;10509:15;10490:16;:34;;;;:::i;:::-;10458:8;:67::i;:::-;10541:4;10534:11;;;10192:359;;;;:::o;7578:165::-;7664:4;7677:42;7687:12;:10;:12::i;:::-;7701:9;7712:6;7677:9;:42::i;:::-;7733:4;7726:11;;7578:165;;;;:::o;17681:354::-;17006:25;;16987:15;:44;;16979:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;17760:15:::1;;;;;;;;;;;:28;;;17789:10;17809:4;17816:6;17760:63;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17752:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;17908:4;:13;;;17922:10;17934:6;17908:33;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17900:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;18010:10;18003:26;;;18022:6;18003:26;;;;;;:::i;:::-;;;;;;;;17681:354:::0;:::o;7800:145::-;7889:7;7912:11;:18;7924:5;7912:18;;;;;;;;;;;;;;;:27;7931:7;7912:27;;;;;;;;;;;;;;;;7905:34;;7800:145;;;;:::o;3761:92::-;3814:7;3837:10;3830:17;;3761:92;:::o;13385:328::-;13500:1;13483:19;;:5;:19;;;;13475:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13577:1;13558:21;;:7;:21;;;;13550:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13657:6;13627:11;:18;13639:5;13627:18;;;;;;;;;;;;;;;:27;13646:7;13627:27;;;;;;;;;;;;;;;:36;;;;13691:7;13675:32;;13684:5;13675:32;;;13700:6;13675:32;;;;;;:::i;:::-;;;;;;;;13385:328;;;:::o;11024:570::-;11144:1;11126:20;;:6;:20;;;;11118:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11224:1;11203:23;;:9;:23;;;;11195:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11275:47;11296:6;11304:9;11315:6;11275:20;:47::i;:::-;11331:21;11355:9;:17;11365:6;11355:17;;;;;;;;;;;;;;;;11331:41;;11404:6;11387:13;:23;;11379:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11496:6;11480:13;:22;;;;:::i;:::-;11460:9;:17;11470:6;11460:17;;;;;;;;;;;;;;;:42;;;;11533:6;11509:9;:20;11519:9;11509:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;11570:9;11553:35;;11562:6;11553:35;;;11581:6;11553:35;;;;;;:::i;:::-;;;;;;;;11024:570;;;;:::o;14827:94::-;14885:5;14906:9;14899:16;;14827:94;:::o;12499:464::-;12598:1;12579:21;;:7;:21;;;;12571:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12647:49;12668:7;12685:1;12689:6;12647:20;:49::i;:::-;12705:22;12730:9;:18;12740:7;12730:18;;;;;;;;;;;;;;;;12705:43;;12781:6;12763:14;:24;;12755:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12871:6;12854:14;:23;;;;:::i;:::-;12833:9;:18;12843:7;12833:18;;;;;;;;;;;;;;;:44;;;;12900:6;12884:12;;:22;;;;;;;:::i;:::-;;;;;;;;12946:1;12920:37;;12929:7;12920:37;;;12950:6;12920:37;;;;;;:::i;:::-;;;;;;;;12499:464;;;:::o;14299:92::-;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:137::-;;237:6;231:13;222:22;;253:30;277:5;253:30;:::i;:::-;212:77;;;;:::o;295:139::-;;379:6;366:20;357:29;;395:33;422:5;395:33;:::i;:::-;347:87;;;;:::o;440:143::-;;528:6;522:13;513:22;;544:33;571:5;544:33;:::i;:::-;503:80;;;;:::o;589:262::-;;697:2;685:9;676:7;672:23;668:32;665:2;;;713:1;710;703:12;665:2;756:1;781:53;826:7;817:6;806:9;802:22;781:53;:::i;:::-;771:63;;727:117;655:196;;;;:::o;857:407::-;;;982:2;970:9;961:7;957:23;953:32;950:2;;;998:1;995;988:12;950:2;1041:1;1066:53;1111:7;1102:6;1091:9;1087:22;1066:53;:::i;:::-;1056:63;;1012:117;1168:2;1194:53;1239:7;1230:6;1219:9;1215:22;1194:53;:::i;:::-;1184:63;;1139:118;940:324;;;;;:::o;1270:552::-;;;;1412:2;1400:9;1391:7;1387:23;1383:32;1380:2;;;1428:1;1425;1418:12;1380:2;1471:1;1496:53;1541:7;1532:6;1521:9;1517:22;1496:53;:::i;:::-;1486:63;;1442:117;1598:2;1624:53;1669:7;1660:6;1649:9;1645:22;1624:53;:::i;:::-;1614:63;;1569:118;1726:2;1752:53;1797:7;1788:6;1777:9;1773:22;1752:53;:::i;:::-;1742:63;;1697:118;1370:452;;;;;:::o;1828:407::-;;;1953:2;1941:9;1932:7;1928:23;1924:32;1921:2;;;1969:1;1966;1959:12;1921:2;2012:1;2037:53;2082:7;2073:6;2062:9;2058:22;2037:53;:::i;:::-;2027:63;;1983:117;2139:2;2165:53;2210:7;2201:6;2190:9;2186:22;2165:53;:::i;:::-;2155:63;;2110:118;1911:324;;;;;:::o;2241:278::-;;2357:2;2345:9;2336:7;2332:23;2328:32;2325:2;;;2373:1;2370;2363:12;2325:2;2416:1;2441:61;2494:7;2485:6;2474:9;2470:22;2441:61;:::i;:::-;2431:71;;2387:125;2315:204;;;;:::o;2525:262::-;;2633:2;2621:9;2612:7;2608:23;2604:32;2601:2;;;2649:1;2646;2639:12;2601:2;2692:1;2717:53;2762:7;2753:6;2742:9;2738:22;2717:53;:::i;:::-;2707:63;;2663:117;2591:196;;;;:::o;2793:284::-;;2912:2;2900:9;2891:7;2887:23;2883:32;2880:2;;;2928:1;2925;2918:12;2880:2;2971:1;2996:64;3052:7;3043:6;3032:9;3028:22;2996:64;:::i;:::-;2986:74;;2942:128;2870:207;;;;:::o;3083:118::-;3170:24;3188:5;3170:24;:::i;:::-;3165:3;3158:37;3148:53;;:::o;3207:109::-;3288:21;3303:5;3288:21;:::i;:::-;3283:3;3276:34;3266:50;;:::o;3322:157::-;3422:50;3466:5;3422:50;:::i;:::-;3417:3;3410:63;3400:79;;:::o;3485:364::-;;3601:39;3634:5;3601:39;:::i;:::-;3656:71;3720:6;3715:3;3656:71;:::i;:::-;3649:78;;3736:52;3781:6;3776:3;3769:4;3762:5;3758:16;3736:52;:::i;:::-;3813:29;3835:6;3813:29;:::i;:::-;3808:3;3804:39;3797:46;;3577:272;;;;;:::o;3855:366::-;;4018:67;4082:2;4077:3;4018:67;:::i;:::-;4011:74;;4094:93;4183:3;4094:93;:::i;:::-;4212:2;4207:3;4203:12;4196:19;;4001:220;;;:::o;4227:366::-;;4390:67;4454:2;4449:3;4390:67;:::i;:::-;4383:74;;4466:93;4555:3;4466:93;:::i;:::-;4584:2;4579:3;4575:12;4568:19;;4373:220;;;:::o;4599:366::-;;4762:67;4826:2;4821:3;4762:67;:::i;:::-;4755:74;;4838:93;4927:3;4838:93;:::i;:::-;4956:2;4951:3;4947:12;4940:19;;4745:220;;;:::o;4971:366::-;;5134:67;5198:2;5193:3;5134:67;:::i;:::-;5127:74;;5210:93;5299:3;5210:93;:::i;:::-;5328:2;5323:3;5319:12;5312:19;;5117:220;;;:::o;5343:366::-;;5506:67;5570:2;5565:3;5506:67;:::i;:::-;5499:74;;5582:93;5671:3;5582:93;:::i;:::-;5700:2;5695:3;5691:12;5684:19;;5489:220;;;:::o;5715:366::-;;5878:67;5942:2;5937:3;5878:67;:::i;:::-;5871:74;;5954:93;6043:3;5954:93;:::i;:::-;6072:2;6067:3;6063:12;6056:19;;5861:220;;;:::o;6087:366::-;;6250:67;6314:2;6309:3;6250:67;:::i;:::-;6243:74;;6326:93;6415:3;6326:93;:::i;:::-;6444:2;6439:3;6435:12;6428:19;;6233:220;;;:::o;6459:366::-;;6622:67;6686:2;6681:3;6622:67;:::i;:::-;6615:74;;6698:93;6787:3;6698:93;:::i;:::-;6816:2;6811:3;6807:12;6800:19;;6605:220;;;:::o;6831:366::-;;6994:67;7058:2;7053:3;6994:67;:::i;:::-;6987:74;;7070:93;7159:3;7070:93;:::i;:::-;7188:2;7183:3;7179:12;7172:19;;6977:220;;;:::o;7203:366::-;;7366:67;7430:2;7425:3;7366:67;:::i;:::-;7359:74;;7442:93;7531:3;7442:93;:::i;:::-;7560:2;7555:3;7551:12;7544:19;;7349:220;;;:::o;7575:366::-;;7738:67;7802:2;7797:3;7738:67;:::i;:::-;7731:74;;7814:93;7903:3;7814:93;:::i;:::-;7932:2;7927:3;7923:12;7916:19;;7721:220;;;:::o;7947:366::-;;8110:67;8174:2;8169:3;8110:67;:::i;:::-;8103:74;;8186:93;8275:3;8186:93;:::i;:::-;8304:2;8299:3;8295:12;8288:19;;8093:220;;;:::o;8319:366::-;;8482:67;8546:2;8541:3;8482:67;:::i;:::-;8475:74;;8558:93;8647:3;8558:93;:::i;:::-;8676:2;8671:3;8667:12;8660:19;;8465:220;;;:::o;8691:118::-;8778:24;8796:5;8778:24;:::i;:::-;8773:3;8766:37;8756:53;;:::o;8815:112::-;8898:22;8914:5;8898:22;:::i;:::-;8893:3;8886:35;8876:51;;:::o;8933:222::-;;9064:2;9053:9;9049:18;9041:26;;9077:71;9145:1;9134:9;9130:17;9121:6;9077:71;:::i;:::-;9031:124;;;;:::o;9161:442::-;;9348:2;9337:9;9333:18;9325:26;;9361:71;9429:1;9418:9;9414:17;9405:6;9361:71;:::i;:::-;9442:72;9510:2;9499:9;9495:18;9486:6;9442:72;:::i;:::-;9524;9592:2;9581:9;9577:18;9568:6;9524:72;:::i;:::-;9315:288;;;;;;:::o;9609:332::-;;9768:2;9757:9;9753:18;9745:26;;9781:71;9849:1;9838:9;9834:17;9825:6;9781:71;:::i;:::-;9862:72;9930:2;9919:9;9915:18;9906:6;9862:72;:::i;:::-;9735:206;;;;;:::o;9947:210::-;;10072:2;10061:9;10057:18;10049:26;;10085:65;10147:1;10136:9;10132:17;10123:6;10085:65;:::i;:::-;10039:118;;;;:::o;10163:248::-;;10307:2;10296:9;10292:18;10284:26;;10320:84;10401:1;10390:9;10386:17;10377:6;10320:84;:::i;:::-;10274:137;;;;:::o;10417:313::-;;10568:2;10557:9;10553:18;10545:26;;10617:9;10611:4;10607:20;10603:1;10592:9;10588:17;10581:47;10645:78;10718:4;10709:6;10645:78;:::i;:::-;10637:86;;10535:195;;;;:::o;10736:419::-;;10940:2;10929:9;10925:18;10917:26;;10989:9;10983:4;10979:20;10975:1;10964:9;10960:17;10953:47;11017:131;11143:4;11017:131;:::i;:::-;11009:139;;10907:248;;;:::o;11161:419::-;;11365:2;11354:9;11350:18;11342:26;;11414:9;11408:4;11404:20;11400:1;11389:9;11385:17;11378:47;11442:131;11568:4;11442:131;:::i;:::-;11434:139;;11332:248;;;:::o;11586:419::-;;11790:2;11779:9;11775:18;11767:26;;11839:9;11833:4;11829:20;11825:1;11814:9;11810:17;11803:47;11867:131;11993:4;11867:131;:::i;:::-;11859:139;;11757:248;;;:::o;12011:419::-;;12215:2;12204:9;12200:18;12192:26;;12264:9;12258:4;12254:20;12250:1;12239:9;12235:17;12228:47;12292:131;12418:4;12292:131;:::i;:::-;12284:139;;12182:248;;;:::o;12436:419::-;;12640:2;12629:9;12625:18;12617:26;;12689:9;12683:4;12679:20;12675:1;12664:9;12660:17;12653:47;12717:131;12843:4;12717:131;:::i;:::-;12709:139;;12607:248;;;:::o;12861:419::-;;13065:2;13054:9;13050:18;13042:26;;13114:9;13108:4;13104:20;13100:1;13089:9;13085:17;13078:47;13142:131;13268:4;13142:131;:::i;:::-;13134:139;;13032:248;;;:::o;13286:419::-;;13490:2;13479:9;13475:18;13467:26;;13539:9;13533:4;13529:20;13525:1;13514:9;13510:17;13503:47;13567:131;13693:4;13567:131;:::i;:::-;13559:139;;13457:248;;;:::o;13711:419::-;;13915:2;13904:9;13900:18;13892:26;;13964:9;13958:4;13954:20;13950:1;13939:9;13935:17;13928:47;13992:131;14118:4;13992:131;:::i;:::-;13984:139;;13882:248;;;:::o;14136:419::-;;14340:2;14329:9;14325:18;14317:26;;14389:9;14383:4;14379:20;14375:1;14364:9;14360:17;14353:47;14417:131;14543:4;14417:131;:::i;:::-;14409:139;;14307:248;;;:::o;14561:419::-;;14765:2;14754:9;14750:18;14742:26;;14814:9;14808:4;14804:20;14800:1;14789:9;14785:17;14778:47;14842:131;14968:4;14842:131;:::i;:::-;14834:139;;14732:248;;;:::o;14986:419::-;;15190:2;15179:9;15175:18;15167:26;;15239:9;15233:4;15229:20;15225:1;15214:9;15210:17;15203:47;15267:131;15393:4;15267:131;:::i;:::-;15259:139;;15157:248;;;:::o;15411:419::-;;15615:2;15604:9;15600:18;15592:26;;15664:9;15658:4;15654:20;15650:1;15639:9;15635:17;15628:47;15692:131;15818:4;15692:131;:::i;:::-;15684:139;;15582:248;;;:::o;15836:419::-;;16040:2;16029:9;16025:18;16017:26;;16089:9;16083:4;16079:20;16075:1;16064:9;16060:17;16053:47;16117:131;16243:4;16117:131;:::i;:::-;16109:139;;16007:248;;;:::o;16261:222::-;;16392:2;16381:9;16377:18;16369:26;;16405:71;16473:1;16462:9;16458:17;16449:6;16405:71;:::i;:::-;16359:124;;;;:::o;16489:214::-;;16616:2;16605:9;16601:18;16593:26;;16629:67;16693:1;16682:9;16678:17;16669:6;16629:67;:::i;:::-;16583:120;;;;:::o;16709:99::-;;16795:5;16789:12;16779:22;;16768:40;;;:::o;16814:169::-;;16932:6;16927:3;16920:19;16972:4;16967:3;16963:14;16948:29;;16910:73;;;;:::o;16989:305::-;;17048:20;17066:1;17048:20;:::i;:::-;17043:25;;17082:20;17100:1;17082:20;:::i;:::-;17077:25;;17236:1;17168:66;17164:74;17161:1;17158:81;17155:2;;;17242:18;;:::i;:::-;17155:2;17286:1;17283;17279:9;17272:16;;17033:261;;;;:::o;17300:191::-;;17360:20;17378:1;17360:20;:::i;:::-;17355:25;;17394:20;17412:1;17394:20;:::i;:::-;17389:25;;17433:1;17430;17427:8;17424:2;;;17438:18;;:::i;:::-;17424:2;17483:1;17480;17476:9;17468:17;;17345:146;;;;:::o;17497:96::-;;17563:24;17581:5;17563:24;:::i;:::-;17552:35;;17542:51;;;:::o;17599:90::-;;17676:5;17669:13;17662:21;17651:32;;17641:48;;;:::o;17695:126::-;;17772:42;17765:5;17761:54;17750:65;;17740:81;;;:::o;17827:77::-;;17893:5;17882:16;;17872:32;;;:::o;17910:86::-;;17985:4;17978:5;17974:16;17963:27;;17953:43;;;:::o;18002:152::-;;18098:50;18142:5;18098:50;:::i;:::-;18085:63;;18075:79;;;:::o;18160:126::-;;18256:24;18274:5;18256:24;:::i;:::-;18243:37;;18233:53;;;:::o;18292:307::-;18360:1;18370:113;18384:6;18381:1;18378:13;18370:113;;;18469:1;18464:3;18460:11;18454:18;18450:1;18445:3;18441:11;18434:39;18406:2;18403:1;18399:10;18394:15;;18370:113;;;18501:6;18498:1;18495:13;18492:2;;;18581:1;18572:6;18567:3;18563:16;18556:27;18492:2;18341:258;;;;:::o;18605:320::-;;18686:1;18680:4;18676:12;18666:22;;18733:1;18727:4;18723:12;18754:18;18744:2;;18810:4;18802:6;18798:17;18788:27;;18744:2;18872;18864:6;18861:14;18841:18;18838:38;18835:2;;;18891:18;;:::i;:::-;18835:2;18656:269;;;;:::o;18931:180::-;18979:77;18976:1;18969:88;19076:4;19073:1;19066:15;19100:4;19097:1;19090:15;19117:180;19165:77;19162:1;19155:88;19262:4;19259:1;19252:15;19286:4;19283:1;19276:15;19303:102;;19395:2;19391:7;19386:2;19379:5;19375:14;19371:28;19361:38;;19351:54;;;:::o;19411:222::-;19551:34;19547:1;19539:6;19535:14;19528:58;19620:5;19615:2;19607:6;19603:15;19596:30;19517:116;:::o;19639:221::-;19779:34;19775:1;19767:6;19763:14;19756:58;19848:4;19843:2;19835:6;19831:15;19824:29;19745:115;:::o;19866:221::-;20006:34;20002:1;19994:6;19990:14;19983:58;20075:4;20070:2;20062:6;20058:15;20051:29;19972:115;:::o;20093:232::-;20233:34;20229:1;20221:6;20217:14;20210:58;20302:15;20297:2;20289:6;20285:15;20278:40;20199:126;:::o;20331:225::-;20471:34;20467:1;20459:6;20455:14;20448:58;20540:8;20535:2;20527:6;20523:15;20516:33;20437:119;:::o;20562:220::-;20702:34;20698:1;20690:6;20686:14;20679:58;20771:3;20766:2;20758:6;20754:15;20747:28;20668:114;:::o;20788:227::-;20928:34;20924:1;20916:6;20912:14;20905:58;20997:10;20992:2;20984:6;20980:15;20973:35;20894:121;:::o;21021:179::-;21161:31;21157:1;21149:6;21145:14;21138:55;21127:73;:::o;21206:220::-;21346:34;21342:1;21334:6;21330:14;21323:58;21415:3;21410:2;21402:6;21398:15;21391:28;21312:114;:::o;21432:224::-;21572:34;21568:1;21560:6;21556:14;21549:58;21641:7;21636:2;21628:6;21624:15;21617:32;21538:118;:::o;21662:223::-;21802:34;21798:1;21790:6;21786:14;21779:58;21871:6;21866:2;21858:6;21854:15;21847:31;21768:117;:::o;21891:289::-;22031:34;22027:1;22019:6;22015:14;22008:58;22100:34;22095:2;22087:6;22083:15;22076:59;22169:3;22164:2;22156:6;22152:15;22145:28;21997:183;:::o;22186:224::-;22326:34;22322:1;22314:6;22310:14;22303:58;22395:7;22390:2;22382:6;22378:15;22371:32;22292:118;:::o;22416:122::-;22489:24;22507:5;22489:24;:::i;:::-;22482:5;22479:35;22469:2;;22528:1;22525;22518:12;22469:2;22459:79;:::o;22544:116::-;22614:21;22629:5;22614:21;:::i;:::-;22607:5;22604:32;22594:2;;22650:1;22647;22640:12;22594:2;22584:76;:::o;22666:122::-;22739:24;22757:5;22739:24;:::i;:::-;22732:5;22729:35;22719:2;;22778:1;22775;22768:12;22719:2;22709:79;:::o

Swarm Source

ipfs://37b8ef37358a656b237ef0ddf283acda2828075e607c0d63d752cd1d38274da2
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.