ETH Price: $3,113.04 (-2.20%)

Token

IZE Fintech Blockchain (IZE)
 

Overview

Max Total Supply

10,000,000,000 IZE

Holders

701 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,499,983 IZE

Value
$0.00
0xa1bed0981dbf96d0a6bbd55c4cb5639ee8869bea
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

IZE project pursues the efficiency and diversity of data required by big data consumers and to protect the privacy of information providers.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
IzeToken

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, OSL-3.0 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-07-11
*/

/**
 *Submitted for verification at Etherscan.io on 2020-01-16
*/

pragma solidity ^0.5.0;

/**
  * @title ERC20Basic
  * @dev Simpler version of ERC20 interface
  * @dev see https://github.com/ethereum/EIPs/issues/179
  */
contract ERC20Basic {
  function totalSupply() public view returns (uint);
  function balanceOf(address who) public view returns (uint);
  function transfer(address to, uint value) public returns (bool);
  event Transfer(address indexed from, address indexed to, uint value);
}


/**
  * @title ERC20 interface
  * @dev see https://github.com/ethereum/EIPs/issues/20
  */
contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender) public view returns (uint);
  function transferFrom(address from, address to, uint value) public returns (bool);
  function approve(address spender, uint value) public returns (bool);
  event Approval(address indexed owner, address indexed spender, uint value);
}

/**
  * @title Ownable
  * @dev Owner validator
  */
contract Ownable {
  address private _owner;
  address private _operator;

  event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
  event OperatorTransferred(address indexed previousOperator, address indexed newOperator);

  /**
    * @dev The Ownable constructor sets the original `owner` of the contract to the sender
    * account.
    */
  constructor() public {
    _owner = msg.sender;
    _operator = msg.sender;
    emit OwnershipTransferred(address(0), _owner);
    emit OperatorTransferred(address(0), _operator);
  }

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

  /**
    * @return the address of the operator.
    */
  function operator() public view returns (address) {
    return _operator;
  }

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

  /**
    * @dev Throws if called by any account other than the owner or operator.
    */
  modifier onlyOwnerOrOperator() {
    require(isOwner() || isOperator());
    _;
  }


  /**
    * @return true if `msg.sender` is the owner of the contract.
    */
  function isOwner() public view returns (bool) {
    return msg.sender == _owner;
  }

  /**
    * @return true if `msg.sender` is the operator of the contract.
    */
  function isOperator() public view returns (bool) {
    return msg.sender == _operator;
  }

  /**
    * @dev Allows the current owner to transfer control of the contract to a newOwner.
    * @param newOwner The address to transfer ownership to.
    */
  function transferOwnership(address newOwner) public onlyOwner {
    require(newOwner != address(0));

    emit OwnershipTransferred(_owner, newOwner);
    _owner = newOwner;
  }

  /**
    * @dev Allows the current operator to transfer control of the contract to a newOperator.
    * @param newOperator The address to transfer ownership to.
    */
  function transferOperator(address newOperator) public onlyOwner {
    require(newOperator != address(0));

    emit OperatorTransferred(_operator, newOperator);
    _operator = newOperator;
  }


}


/**
  * @title Pausable
  * @dev Base contract which allows children to implement an emergency stop mechanism.
  */
contract Pausable is Ownable {
  event Paused(address account);
  event Unpaused(address account);

  bool private _paused;

  constructor () internal {
    _paused = false;
  }

  /**
    * @return True if the contract is paused, false otherwise.
    */
  function paused() public view returns (bool) {
    return _paused;
  }

  /**
    * @dev Modifier to make a function callable only when the contract is not paused.
    */
  modifier whenNotPaused() {
    require(!_paused);
    _;
  }

  /**
    * @dev Modifier to make a function callable only when the contract is paused.
    */
  modifier whenPaused() {
    require(_paused);
    _;
  }

  /**
    * @dev Called by a pauser to pause, triggers stopped state.
    */
  function pause() public onlyOwnerOrOperator whenNotPaused {
    _paused = true;
    emit Paused(msg.sender);
  }

  /**
    * @dev Called by a pauser to unpause, returns to normal state.
    */
  function unpause() public onlyOwnerOrOperator whenPaused {
    _paused = false;
    emit Unpaused(msg.sender);
  }
}

/**
  * @title SafeMath
  * @dev Unsigned math operations with safety checks that revert on error.
  */
library SafeMath {

  /**
    * @dev Multiplies two unsigned integers, reverts on overflow.
    */
  function mul(uint a, uint b) internal pure returns (uint) {
    if (a == 0) {
      return 0;
    }

    uint c = a * b;
    require(c / a == b);

    return c;
  }

  /**
    * @dev Integer division of two numbers, truncating the quotient.
    */
  function div(uint a, uint b) internal pure returns (uint) {
    // Solidity only automatically asserts when dividing by 0
    require(b > 0);
    uint c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold

    return c;
  }

  /**
    * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
    */
  function sub(uint a, uint b) internal pure returns (uint) {
    require(b <= a);
    uint c = a - b;

    return c;
  }

  /**
    * @dev Adds two numbers, throws on overflow.
    */
  function add(uint a, uint b) internal pure returns (uint) {
    uint c = a + b;
    require(c >= a);

    return c;
  }

  /**
    * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),
    * reverts when dividing by zero.
    */
  function mod(uint a, uint b) internal pure returns (uint) {
    require(b != 0);
    return a % b;
  }

}


/**
  * @title StandardToken
  * @dev Base Of token
  */
contract StandardToken is ERC20, Pausable {
  using SafeMath for uint;

  mapping (address => uint) private _balances;

  mapping (address => mapping (address => uint)) private _allowed;

  uint private _totalSupply;

  /**
    * @dev Total number of tokens in existence.
    */
  function totalSupply() public view returns (uint) {
    return _totalSupply;
  }

  /**
    * @dev Gets the balance of the specified address.
    * @param owner The address to query the balance of.
    * @return A uint representing the amount owned by the passed address.
    */
  function balanceOf(address owner) public view returns (uint) {
    return _balances[owner];
  }

  /**
    * @dev Function to check the amount of tokens that an owner allowed to a spender.
    * @param owner address The address which owns the funds.
    * @param spender address The address which will spend the funds.
    * @return A uint specifying the amount of tokens still available for the spender.
    */
  function allowance(address owner, address spender) public view returns (uint) {
    return _allowed[owner][spender];
  }

  /**
    * @dev Transfer token to a specified address.
    * @param to The address to transfer to.
    * @param value The amount to be transferred.
    */
  function transfer(address to, uint value) public whenNotPaused returns (bool) {
    _transfer(msg.sender, to, value);
    return true;
  }

  /**
    * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
    * 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
    * @param spender The address which will spend the funds.
    * @param value The amount of tokens to be spent.
    */
  function approve(address spender, uint value) public whenNotPaused returns (bool) {
    _approve(msg.sender, spender, value);
    return true;
  }

  /**
    * @dev Transfer tokens from one address to another.
    * Note that while this function emits an Approval event, this is not required as per the specification,
    * and other compliant implementations may not emit the event.
    * @param from address The address which you want to send tokens from
    * @param to address The address which you want to transfer to
    * @param value uint the amount of tokens to be transferred
    */
  function transferFrom(address from, address to, uint value) public whenNotPaused returns (bool) {
    _transferFrom(from, to, value);
    return true;
  }

  /**
    * @dev Increase the amount of tokens that an owner allowed to a spender.
    * approve should be called when _allowed[msg.sender][spender] == 0. To increment
    * allowed value is better to use this function to avoid 2 calls (and wait until
    * the first transaction is mined)
    * From MonolithDAO Token.sol
    * Emits an Approval event.
    * @param spender The address which will spend the funds.
    * @param addedValue The amount of tokens to increase the allowance by.
    */
  function increaseAllowance(address spender, uint addedValue) public whenNotPaused returns (bool) {
    _approve(msg.sender, spender, _allowed[msg.sender][spender].add(addedValue));
    return true;
  }

  /**
    * @dev Decrease the amount of tokens that an owner allowed to a spender.
    * approve should be called when _allowed[msg.sender][spender] == 0. To decrement
    * allowed value is better to use this function to avoid 2 calls (and wait until
    * the first transaction is mined)
    * From MonolithDAO Token.sol
    * Emits an Approval event.
    * @param spender The address which will spend the funds.
    * @param subtractedValue The amount of tokens to decrease the allowance by.
    */
  function decreaseAllowance(address spender, uint subtractedValue) public whenNotPaused returns (bool) {
    _approve(msg.sender, spender, _allowed[msg.sender][spender].sub(subtractedValue));
    return true;
  }

  /**
    * @dev Transfer token for a specified addresses.
    * @param from The address to transfer from.
    * @param to The address to transfer to.
    * @param value The amount to be transferred.
    */
  function _transfer(address from, address to, uint value) internal {
    require(to != address(0));

    _balances[from] = _balances[from].sub(value);
    _balances[to] = _balances[to].add(value);
    emit Transfer(from, to, value);
  }

  /**
    * @dev Transfer tokens from one address to another.
    * Note that while this function emits an Approval event, this is not required as per the specification,
    * and other compliant implementations may not emit the event.
    * @param from address The address which you want to send tokens from
    * @param to address The address which you want to transfer to
    * @param value uint the amount of tokens to be transferred
    */
  function _transferFrom(address from, address to, uint value) internal {
    _transfer(from, to, value);
    _approve(from, msg.sender, _allowed[from][msg.sender].sub(value));
  }

  /**
    * @dev Internal function that mints an amount of the token and assigns it to
    * an account. This encapsulates the modification of balances such that the
    * proper events are emitted.
    * @param account The account that will receive the created tokens.
    * @param value The amount that will be created.
    */
  function _mint(address account, uint value) internal {
    require(account != address(0));

    _totalSupply = _totalSupply.add(value);
    _balances[account] = _balances[account].add(value);
    emit Transfer(address(0), account, value);
  }

  /**
    * @dev Internal function that burns an amount of the token of the owner
    * account.
    * @param value The amount that will be burnt.
    */
  function _burn(uint value) internal {
    _totalSupply = _totalSupply.sub(value);
    _balances[msg.sender] = _balances[msg.sender].sub(value);
    emit Transfer(msg.sender, address(0), value);
  }

  /**
    * @dev Approve an address to spend another addresses' tokens.
    * @param owner The address that owns the tokens.
    * @param spender The address that will spend the tokens.
    * @param value The number of tokens that can be spent.
    */
  function _approve(address owner, address spender, uint value) internal {
    require(spender != address(0));
    require(owner != address(0));

    _allowed[owner][spender] = value;
    emit Approval(owner, spender, value);
  }
}

/**
  * @title MintableToken
  * @dev Minting of total balance
  */
contract MintableToken is StandardToken {
  event MintFinished();

  bool public mintingFinished = false;

  modifier canMint() {
    require(!mintingFinished);
    _;
  }

  /**
    * @dev Function to mint tokens
    * @param to The address that will receive the minted tokens.
    * @param amount The amount of tokens to mint
    * @return A boolean that indicated if the operation was successful.
    */
  function mint(address to, uint amount) public whenNotPaused onlyOwner canMint returns (bool) {
    _mint(to, amount);
    return true;
  }

  /**
    * @dev Function to stop minting new tokens.
    * @return True if the operation was successful.
    */
  function finishMinting() public whenNotPaused onlyOwner canMint returns (bool) {
    mintingFinished = true;
    emit MintFinished();
    return true;
  }
}

/**
  * @title Burnable Token
  * @dev Token that can be irreversibly burned (destroyed).
  */
contract BurnableToken is MintableToken {
  /**
    * @dev Burns a specific amount of tokens.
    * @param value The amount of token to be burned.
    */
  function burn(uint value) public whenNotPaused onlyOwner returns (bool) {
    _burn(value);
    return true;
  }
}



/**
  * @title LockableToken
  * @dev locking of granted balance
  */
contract LockableToken is BurnableToken {

  using SafeMath for uint;

  /**
    * @dev Lock defines a lock of token
    */
  struct Lock {
    uint amount;
    uint expiresAt;
  }

  mapping (address => Lock[]) public grantedLocks;

  /**
    * @dev Transfer tokens to another
    * @param to address the address which you want to transfer to
    * @param value uint the amount of tokens to be transferred
    */
  function transfer(address to, uint value) public whenNotPaused returns (bool) {
    _verifyTransferLock(msg.sender, value);
    _transfer(msg.sender, to, value);
    return true;
  }

  /**
    * @dev Transfer tokens from one address to another
    * @param from address The address which you want to send tokens from
    * @param to address the address which you want to transfer to
    * @param value uint the amount of tokens to be transferred
    */
  function transferFrom(address from, address to, uint value) public whenNotPaused returns (bool) {
    _verifyTransferLock(from, value);
    _transferFrom(from, to, value);
    return true;
  }

  /**
    * @dev Function to add lock
    * @param granted The address that will be locked.
    * @param amount The amount of tokens to be locked
    * @param expiresAt The expired date as unix timestamp
    */
  function addLock(address granted, uint amount, uint expiresAt) public whenNotPaused onlyOwnerOrOperator {
    require(amount > 0);
    require(expiresAt > now);

    grantedLocks[granted].push(Lock(amount, expiresAt));
  }

  /**
    * @dev Function to delete lock
    * @param granted The address that was locked
    * @param index The index of lock
    */
  function deleteLock(address granted, uint8 index) public whenNotPaused onlyOwnerOrOperator {
    require(grantedLocks[granted].length > index);

    uint len = grantedLocks[granted].length;
    if (len == 1) {
      delete grantedLocks[granted];
    } else {
      if (len - 1 != index) {
        grantedLocks[granted][index] = grantedLocks[granted][len - 1];
      }
      delete grantedLocks[granted][len - 1];
    }
  }

  /**
    * @dev Verify transfer is possible
    * @param from - granted
    * @param value - amount of transfer
    */
  function _verifyTransferLock(address from, uint value) internal view {
    uint lockedAmount = getLockedAmount(from);
    uint balanceAmount = balanceOf(from);

    require(balanceAmount.sub(lockedAmount) >= value);
  }

  /**
    * @dev get locked amount of address
    * @param granted The address want to know the lock state.
    * @return locked amount
    */
  function getLockedAmount(address granted) public view returns(uint) {
    uint lockedAmount = 0;

    uint len = grantedLocks[granted].length;
    for (uint i = 0; i < len; i++) {
      if (now < grantedLocks[granted][i].expiresAt) {
        lockedAmount = lockedAmount.add(grantedLocks[granted][i].amount);
      }
    }
    return lockedAmount;
  }
}

/**
  * @title IzeToken
  * @dev ERC20 Token
  */
contract IzeToken is LockableToken {

  string public constant name = "IZE Fintech Blockchain";
  string public constant symbol = "IZE";
  uint32 public constant decimals = 18;

  uint public constant INITIAL_SUPPLY = 10000000000e18;

  /**
    * @dev Constructor that gives msg.sender all of existing tokens.
    */
  constructor() public {
    _mint(msg.sender, INITIAL_SUPPLY);
    emit Transfer(address(0), msg.sender, INITIAL_SUPPLY);
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"payable":false,"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":[],"name":"MintFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOperator","type":"address"},{"indexed":true,"internalType":"address","name":"newOperator","type":"address"}],"name":"OperatorTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"constant":true,"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"granted","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"expiresAt","type":"uint256"}],"name":"addLock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"granted","type":"address"},{"internalType":"uint8","name":"index","type":"uint8"}],"name":"deleteLock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"finishMinting","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"granted","type":"address"}],"name":"getLockedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"grantedLocks","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"expiresAt","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"mintingFinished","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOperator","type":"address"}],"name":"transferOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

60806040526000600560006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed60405160405180910390a36000600160146101000a81548160ff021916908315150217905550620001e0336b204fce5e3e250261100000006200025860201b60201c565b3373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b204fce5e3e250261100000006040518082815260200191505060405180910390a3620003db565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200029357600080fd5b620002af81600454620003bb60201b62001abb1790919060201c565b6004819055506200030e81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620003bb60201b62001abb1790919060201c565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600080828401905083811015620003d157600080fd5b8091505092915050565b611fbd80620003eb6000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80634bc18a64116101045780638f32d59b116100a2578063a9059cbb11610071578063a9059cbb146108a4578063cc9ac3761461090a578063dd62ed3e14610962578063f2fde38b146109da576101cf565b80638f32d59b14610741578063929ec5371461076357806395d89b41146107bb578063a457c2d71461083e576101cf565b806370a08231116100de57806370a08231146106735780637d64bcb4146106cb5780638456cb59146106ed5780638da5cb5b146106f7576101cf565b80634bc18a64146105b6578063570ca735146106075780635c975abb14610651576101cf565b80632ff2e9dc116101715780633f4ba83a1161014b5780633f4ba83a146104de57806340c10f19146104e857806342966c681461054e5780634456eda214610594576101cf565b80632ff2e9dc14610430578063313ce5671461044e5780633950935114610478576101cf565b80630ab1b3c1116101ad5780630ab1b3c1146102df57806318160ddd1461034857806323b872dd1461036657806329605e77146103ec576101cf565b806305d2035b146101d457806306fdde03146101f6578063095ea7b314610279575b600080fd5b6101dc610a1e565b604051808215151515815260200191505060405180910390f35b6101fe610a31565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023e578082015181840152602081019050610223565b50505050905090810190601f16801561026b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102c56004803603604081101561028f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a6a565b604051808215151515815260200191505060405180910390f35b61032b600480360360408110156102f557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a9b565b604051808381526020018281526020019250505060405180910390f35b610350610ad9565b6040518082815260200191505060405180910390f35b6103d26004803603606081101561037c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ae3565b604051808215151515815260200191505060405180910390f35b61042e6004803603602081101561040257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b1f565b005b610438610c2a565b6040518082815260200191505060405180910390f35b610456610c3a565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b6104c46004803603604081101561048e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c3f565b604051808215151515815260200191505060405180910390f35b6104e6610cfe565b005b610534600480360360408110156104fe57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610db7565b604051808215151515815260200191505060405180910390f35b61057a6004803603602081101561056457600080fd5b8101908080359060200190929190505050610e12565b604051808215151515815260200191505060405180910390f35b61059c610e51565b604051808215151515815260200191505060405180910390f35b610605600480360360408110156105cc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050610ea9565b005b61060f611123565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61065961114d565b604051808215151515815260200191505060405180910390f35b6106b56004803603602081101561068957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611164565b6040518082815260200191505060405180910390f35b6106d36111ad565b604051808215151515815260200191505060405180910390f35b6106f5611242565b005b6106ff6112fb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610749611324565b604051808215151515815260200191505060405180910390f35b6107a56004803603602081101561077957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061137b565b6040518082815260200191505060405180910390f35b6107c36114c3565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108035780820151818401526020810190506107e8565b50505050905090810190601f1680156108305780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61088a6004803603604081101561085457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114fc565b604051808215151515815260200191505060405180910390f35b6108f0600480360360408110156108ba57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115bb565b604051808215151515815260200191505060405180910390f35b6109606004803603606081101561092057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506115f6565b005b6109c46004803603604081101561097857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116e4565b6040518082815260200191505060405180910390f35b610a1c600480360360208110156109f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061176b565b005b600560009054906101000a900460ff1681565b6040518060400160405280601681526020017f495a452046696e7465636820426c6f636b636861696e0000000000000000000081525081565b6000600160149054906101000a900460ff1615610a8657600080fd5b610a91338484611874565b6001905092915050565b60066020528160005260406000208181548110610ab457fe5b9060005260206000209060020201600091509150508060000154908060010154905082565b6000600454905090565b6000600160149054906101000a900460ff1615610aff57600080fd5b610b0984836119d3565b610b14848484611a12565b600190509392505050565b610b27611324565b610b3057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b6a57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed60405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6b204fce5e3e2502611000000081565b601281565b6000600160149054906101000a900460ff1615610c5b57600080fd5b610cf43384610cef85600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611abb90919063ffffffff16565b611874565b6001905092915050565b610d06611324565b80610d155750610d14610e51565b5b610d1e57600080fd5b600160149054906101000a900460ff16610d3757600080fd5b6000600160146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000600160149054906101000a900460ff1615610dd357600080fd5b610ddb611324565b610de457600080fd5b600560009054906101000a900460ff1615610dfe57600080fd5b610e088383611ada565b6001905092915050565b6000600160149054906101000a900460ff1615610e2e57600080fd5b610e36611324565b610e3f57600080fd5b610e4882611c2e565b60019050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b600160149054906101000a900460ff1615610ec357600080fd5b610ecb611324565b80610eda5750610ed9610e51565b5b610ee357600080fd5b8060ff16600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011610f3457600080fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905090506001811415610fd457600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610fcf9190611f35565b61111e565b8160ff1660018203146110af57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600182038154811061102e57fe5b9060005260206000209060020201600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208360ff168154811061108957fe5b906000526020600020906002020160008201548160000155600182015481600101559050505b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060018203815481106110fc57fe5b9060005260206000209060020201600080820160009055600182016000905550505b505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600160149054906101000a900460ff16905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600160149054906101000a900460ff16156111c957600080fd5b6111d1611324565b6111da57600080fd5b600560009054906101000a900460ff16156111f457600080fd5b6001600560006101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b61124a611324565b806112595750611258610e51565b5b61126257600080fd5b600160149054906101000a900460ff161561127c57600080fd5b60018060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b600080600090506000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050905060008090505b818110156114b857600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020818154811061142157fe5b9060005260206000209060020201600101544210156114ab576114a8600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061148757fe5b90600052602060002090600202016000015484611abb90919063ffffffff16565b92505b80806001019150506113cf565b508192505050919050565b6040518060400160405280600381526020017f495a45000000000000000000000000000000000000000000000000000000000081525081565b6000600160149054906101000a900460ff161561151857600080fd5b6115b133846115ac85600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4790919063ffffffff16565b611874565b6001905092915050565b6000600160149054906101000a900460ff16156115d757600080fd5b6115e133836119d3565b6115ec338484611d67565b6001905092915050565b600160149054906101000a900460ff161561161057600080fd5b611618611324565b806116275750611626610e51565b5b61163057600080fd5b6000821161163d57600080fd5b42811161164957600080fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020604051806040016040528084815260200183815250908060018154018082558091505090600182039060005260206000209060020201600090919290919091506000820151816000015560208201518160010155505050505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611773611324565b61177c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117b657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118ae57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118e857600080fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b60006119de8361137b565b905060006119eb84611164565b905082611a018383611d4790919063ffffffff16565b1015611a0c57600080fd5b50505050565b611a1d838383611d67565b611ab68333611ab184600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4790919063ffffffff16565b611874565b505050565b600080828401905083811015611ad057600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b1457600080fd5b611b2981600454611abb90919063ffffffff16565b600481905550611b8181600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611abb90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b611c4381600454611d4790919063ffffffff16565b600481905550611c9b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b600082821115611d5657600080fd5b600082840390508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611da157600080fd5b611df381600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4790919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e8881600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611abb90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b5080546000825560020290600052602060002090810190611f569190611f59565b50565b611f8591905b80821115611f8157600080820160009055600182016000905550600201611f5f565b5090565b9056fea265627a7a72315820df50180fb4480673b19791ae70713cb488345b048c819b84d18b1d6f0044df5464736f6c63430005100032

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c80634bc18a64116101045780638f32d59b116100a2578063a9059cbb11610071578063a9059cbb146108a4578063cc9ac3761461090a578063dd62ed3e14610962578063f2fde38b146109da576101cf565b80638f32d59b14610741578063929ec5371461076357806395d89b41146107bb578063a457c2d71461083e576101cf565b806370a08231116100de57806370a08231146106735780637d64bcb4146106cb5780638456cb59146106ed5780638da5cb5b146106f7576101cf565b80634bc18a64146105b6578063570ca735146106075780635c975abb14610651576101cf565b80632ff2e9dc116101715780633f4ba83a1161014b5780633f4ba83a146104de57806340c10f19146104e857806342966c681461054e5780634456eda214610594576101cf565b80632ff2e9dc14610430578063313ce5671461044e5780633950935114610478576101cf565b80630ab1b3c1116101ad5780630ab1b3c1146102df57806318160ddd1461034857806323b872dd1461036657806329605e77146103ec576101cf565b806305d2035b146101d457806306fdde03146101f6578063095ea7b314610279575b600080fd5b6101dc610a1e565b604051808215151515815260200191505060405180910390f35b6101fe610a31565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023e578082015181840152602081019050610223565b50505050905090810190601f16801561026b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102c56004803603604081101561028f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a6a565b604051808215151515815260200191505060405180910390f35b61032b600480360360408110156102f557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a9b565b604051808381526020018281526020019250505060405180910390f35b610350610ad9565b6040518082815260200191505060405180910390f35b6103d26004803603606081101561037c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ae3565b604051808215151515815260200191505060405180910390f35b61042e6004803603602081101561040257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b1f565b005b610438610c2a565b6040518082815260200191505060405180910390f35b610456610c3a565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b6104c46004803603604081101561048e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c3f565b604051808215151515815260200191505060405180910390f35b6104e6610cfe565b005b610534600480360360408110156104fe57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610db7565b604051808215151515815260200191505060405180910390f35b61057a6004803603602081101561056457600080fd5b8101908080359060200190929190505050610e12565b604051808215151515815260200191505060405180910390f35b61059c610e51565b604051808215151515815260200191505060405180910390f35b610605600480360360408110156105cc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050610ea9565b005b61060f611123565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61065961114d565b604051808215151515815260200191505060405180910390f35b6106b56004803603602081101561068957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611164565b6040518082815260200191505060405180910390f35b6106d36111ad565b604051808215151515815260200191505060405180910390f35b6106f5611242565b005b6106ff6112fb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610749611324565b604051808215151515815260200191505060405180910390f35b6107a56004803603602081101561077957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061137b565b6040518082815260200191505060405180910390f35b6107c36114c3565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108035780820151818401526020810190506107e8565b50505050905090810190601f1680156108305780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61088a6004803603604081101561085457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114fc565b604051808215151515815260200191505060405180910390f35b6108f0600480360360408110156108ba57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115bb565b604051808215151515815260200191505060405180910390f35b6109606004803603606081101561092057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506115f6565b005b6109c46004803603604081101561097857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116e4565b6040518082815260200191505060405180910390f35b610a1c600480360360208110156109f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061176b565b005b600560009054906101000a900460ff1681565b6040518060400160405280601681526020017f495a452046696e7465636820426c6f636b636861696e0000000000000000000081525081565b6000600160149054906101000a900460ff1615610a8657600080fd5b610a91338484611874565b6001905092915050565b60066020528160005260406000208181548110610ab457fe5b9060005260206000209060020201600091509150508060000154908060010154905082565b6000600454905090565b6000600160149054906101000a900460ff1615610aff57600080fd5b610b0984836119d3565b610b14848484611a12565b600190509392505050565b610b27611324565b610b3057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b6a57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed60405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6b204fce5e3e2502611000000081565b601281565b6000600160149054906101000a900460ff1615610c5b57600080fd5b610cf43384610cef85600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611abb90919063ffffffff16565b611874565b6001905092915050565b610d06611324565b80610d155750610d14610e51565b5b610d1e57600080fd5b600160149054906101000a900460ff16610d3757600080fd5b6000600160146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000600160149054906101000a900460ff1615610dd357600080fd5b610ddb611324565b610de457600080fd5b600560009054906101000a900460ff1615610dfe57600080fd5b610e088383611ada565b6001905092915050565b6000600160149054906101000a900460ff1615610e2e57600080fd5b610e36611324565b610e3f57600080fd5b610e4882611c2e565b60019050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b600160149054906101000a900460ff1615610ec357600080fd5b610ecb611324565b80610eda5750610ed9610e51565b5b610ee357600080fd5b8060ff16600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011610f3457600080fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905090506001811415610fd457600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610fcf9190611f35565b61111e565b8160ff1660018203146110af57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600182038154811061102e57fe5b9060005260206000209060020201600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208360ff168154811061108957fe5b906000526020600020906002020160008201548160000155600182015481600101559050505b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060018203815481106110fc57fe5b9060005260206000209060020201600080820160009055600182016000905550505b505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600160149054906101000a900460ff16905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600160149054906101000a900460ff16156111c957600080fd5b6111d1611324565b6111da57600080fd5b600560009054906101000a900460ff16156111f457600080fd5b6001600560006101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b61124a611324565b806112595750611258610e51565b5b61126257600080fd5b600160149054906101000a900460ff161561127c57600080fd5b60018060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b600080600090506000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050905060008090505b818110156114b857600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020818154811061142157fe5b9060005260206000209060020201600101544210156114ab576114a8600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061148757fe5b90600052602060002090600202016000015484611abb90919063ffffffff16565b92505b80806001019150506113cf565b508192505050919050565b6040518060400160405280600381526020017f495a45000000000000000000000000000000000000000000000000000000000081525081565b6000600160149054906101000a900460ff161561151857600080fd5b6115b133846115ac85600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4790919063ffffffff16565b611874565b6001905092915050565b6000600160149054906101000a900460ff16156115d757600080fd5b6115e133836119d3565b6115ec338484611d67565b6001905092915050565b600160149054906101000a900460ff161561161057600080fd5b611618611324565b806116275750611626610e51565b5b61163057600080fd5b6000821161163d57600080fd5b42811161164957600080fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020604051806040016040528084815260200183815250908060018154018082558091505090600182039060005260206000209060020201600090919290919091506000820151816000015560208201518160010155505050505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611773611324565b61177c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117b657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118ae57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118e857600080fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b60006119de8361137b565b905060006119eb84611164565b905082611a018383611d4790919063ffffffff16565b1015611a0c57600080fd5b50505050565b611a1d838383611d67565b611ab68333611ab184600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4790919063ffffffff16565b611874565b505050565b600080828401905083811015611ad057600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b1457600080fd5b611b2981600454611abb90919063ffffffff16565b600481905550611b8181600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611abb90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b611c4381600454611d4790919063ffffffff16565b600481905550611c9b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b600082821115611d5657600080fd5b600082840390508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611da157600080fd5b611df381600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4790919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e8881600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611abb90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b5080546000825560020290600052602060002090810190611f569190611f59565b50565b611f8591905b80821115611f8157600080820160009055600182016000905550600201611f5f565b5090565b9056fea265627a7a72315820df50180fb4480673b19791ae70713cb488345b048c819b84d18b1d6f0044df5464736f6c63430005100032

Deployed Bytecode Sourcemap

17335:460:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17335:460:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13035:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17377:54;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;17377:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8117:149;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8117:149:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14473:47;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14473:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6338:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15180:196;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15180:196:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3106:198;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3106:198:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;17521:52;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17478:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9395:204;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9395:204:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4403:117;;;:::i;:::-;;13388:141;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13388:141:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14077:115;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14077:115:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2483:92;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15971:434;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15971:434:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1807:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3707:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6628:97;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6628:97:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13652:158;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4199:115;;;:::i;:::-;;1669:73;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2307:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16914:360;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16914:360:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17436:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;17436:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10117:214;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10117:214:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14712:186;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14712:186:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15599:227;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15599:227:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7052:122;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7052:122:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2745:182;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2745:182:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;13035:35;;;;;;;;;;;;;:::o;17377:54::-;;;;;;;;;;;;;;;;;;;:::o;8117:149::-;8193:4;3928:7;;;;;;;;;;;3927:8;3919:17;;;;;;8206:36;8215:10;8227:7;8236:5;8206:8;:36::i;:::-;8256:4;8249:11;;8117:149;;;;:::o;14473:47::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6338:82::-;6382:4;6402:12;;6395:19;;6338:82;:::o;15180:196::-;15270:4;3928:7;;;;;;;;;;;3927:8;3919:17;;;;;;15283:32;15303:4;15309:5;15283:19;:32::i;:::-;15322:30;15336:4;15342:2;15346:5;15322:13;:30::i;:::-;15366:4;15359:11;;15180:196;;;;;:::o;3106:198::-;2009:9;:7;:9::i;:::-;2001:18;;;;;;3208:1;3185:25;;:11;:25;;;;3177:34;;;;;;3256:11;3225:43;;3245:9;;;;;;;;;;;3225:43;;;;;;;;;;;;3287:11;3275:9;;:23;;;;;;;;;;;;;;;;;;3106:198;:::o;17521:52::-;17559:14;17521:52;:::o;17478:36::-;17512:2;17478:36;:::o;9395:204::-;9486:4;3928:7;;;;;;;;;;;3927:8;3919:17;;;;;;9499:76;9508:10;9520:7;9529:45;9563:10;9529:8;:20;9538:10;9529:20;;;;;;;;;;;;;;;:29;9550:7;9529:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;9499:8;:76::i;:::-;9589:4;9582:11;;9395:204;;;;:::o;4403:117::-;2178:9;:7;:9::i;:::-;:25;;;;2191:12;:10;:12::i;:::-;2178:25;2170:34;;;;;;4091:7;;;;;;;;;;;4083:16;;;;;;4477:5;4467:7;;:15;;;;;;;;;;;;;;;;;;4494:20;4503:10;4494:20;;;;;;;;;;;;;;;;;;;;;;4403:117::o;13388:141::-;13475:4;3928:7;;;;;;;;;;;3927:8;3919:17;;;;;;2009:9;:7;:9::i;:::-;2001:18;;;;;;13112:15;;;;;;;;;;;13111:16;13103:25;;;;;;13488:17;13494:2;13498:6;13488:5;:17::i;:::-;13519:4;13512:11;;13388:141;;;;:::o;14077:115::-;14143:4;3928:7;;;;;;;;;;;3927:8;3919:17;;;;;;2009:9;:7;:9::i;:::-;2001:18;;;;;;14156:12;14162:5;14156;:12::i;:::-;14182:4;14175:11;;14077:115;;;:::o;2483:92::-;2526:4;2560:9;;;;;;;;;;;2546:23;;:10;:23;;;2539:30;;2483:92;:::o;15971:434::-;3928:7;;;;;;;;;;;3927:8;3919:17;;;;;;2178:9;:7;:9::i;:::-;:25;;;;2191:12;:10;:12::i;:::-;2178:25;2170:34;;;;;;16108:5;16077:36;;:12;:21;16090:7;16077:21;;;;;;;;;;;;;;;:28;;;;:36;16069:45;;;;;;16123:8;16134:12;:21;16147:7;16134:21;;;;;;;;;;;;;;;:28;;;;16123:39;;16180:1;16173:3;:8;16169:231;;;16199:12;:21;16212:7;16199:21;;;;;;;;;;;;;;;;16192:28;;;;:::i;:::-;16169:231;;;16258:5;16247:16;;16253:1;16247:3;:7;:16;16243:104;;16307:12;:21;16320:7;16307:21;;;;;;;;;;;;;;;16335:1;16329:3;:7;16307:30;;;;;;;;;;;;;;;;;;16276:12;:21;16289:7;16276:21;;;;;;;;;;;;;;;16298:5;16276:28;;;;;;;;;;;;;;;;;;;;:61;;;;;;;;;;;;;;;;;;;16243:104;16362:12;:21;16375:7;16362:21;;;;;;;;;;;;;;;16390:1;16384:3;:7;16362:30;;;;;;;;;;;;;;;;;;;16355:37;;;;;;;;;;;;;;16169:231;2211:1;15971:434;;:::o;1807:79::-;1848:7;1871:9;;;;;;;;;;;1864:16;;1807:79;:::o;3707:72::-;3746:4;3766:7;;;;;;;;;;;3759:14;;3707:72;:::o;6628:97::-;6683:4;6703:9;:16;6713:5;6703:16;;;;;;;;;;;;;;;;6696:23;;6628:97;;;:::o;13652:158::-;13725:4;3928:7;;;;;;;;;;;3927:8;3919:17;;;;;;2009:9;:7;:9::i;:::-;2001:18;;;;;;13112:15;;;;;;;;;;;13111:16;13103:25;;;;;;13756:4;13738:15;;:22;;;;;;;;;;;;;;;;;;13772:14;;;;;;;;;;13800:4;13793:11;;13652:158;:::o;4199:115::-;2178:9;:7;:9::i;:::-;:25;;;;2191:12;:10;:12::i;:::-;2178:25;2170:34;;;;;;3928:7;;;;;;;;;;;3927:8;3919:17;;;;;;4274:4;4264:7;;:14;;;;;;;;;;;;;;;;;;4290:18;4297:10;4290:18;;;;;;;;;;;;;;;;;;;;;;4199:115::o;1669:73::-;1707:7;1730:6;;;;;;;;;;;1723:13;;1669:73;:::o;2307:86::-;2347:4;2381:6;;;;;;;;;;;2367:20;;:10;:20;;;2360:27;;2307:86;:::o;16914:360::-;16976:4;16989:17;17009:1;16989:21;;17019:8;17030:12;:21;17043:7;17030:21;;;;;;;;;;;;;;;:28;;;;17019:39;;17070:6;17079:1;17070:10;;17065:178;17086:3;17082:1;:7;17065:178;;;17115:12;:21;17128:7;17115:21;;;;;;;;;;;;;;;17137:1;17115:24;;;;;;;;;;;;;;;;;;:34;;;17109:3;:40;17105:131;;;17177:49;17194:12;:21;17207:7;17194:21;;;;;;;;;;;;;;;17216:1;17194:24;;;;;;;;;;;;;;;;;;:31;;;17177:12;:16;;:49;;;;:::i;:::-;17162:64;;17105:131;17091:3;;;;;;;17065:178;;;;17256:12;17249:19;;;;16914:360;;;:::o;17436:37::-;;;;;;;;;;;;;;;;;;;:::o;10117:214::-;10213:4;3928:7;;;;;;;;;;;3927:8;3919:17;;;;;;10226:81;10235:10;10247:7;10256:50;10290:15;10256:8;:20;10265:10;10256:20;;;;;;;;;;;;;;;:29;10277:7;10256:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;10226:8;:81::i;:::-;10321:4;10314:11;;10117:214;;;;:::o;14712:186::-;14784:4;3928:7;;;;;;;;;;;3927:8;3919:17;;;;;;14797:38;14817:10;14829:5;14797:19;:38::i;:::-;14842:32;14852:10;14864:2;14868:5;14842:9;:32::i;:::-;14888:4;14881:11;;14712:186;;;;:::o;15599:227::-;3928:7;;;;;;;;;;;3927:8;3919:17;;;;;;2178:9;:7;:9::i;:::-;:25;;;;2191:12;:10;:12::i;:::-;2178:25;2170:34;;;;;;15727:1;15718:6;:10;15710:19;;;;;;15756:3;15744:9;:15;15736:24;;;;;;15769:12;:21;15782:7;15769:21;;;;;;;;;;;;;;;15796:23;;;;;;;;15801:6;15796:23;;;;15809:9;15796:23;;;15769:51;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;15769:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15599:227;;;:::o;7052:122::-;7124:4;7144:8;:15;7153:5;7144:15;;;;;;;;;;;;;;;:24;7160:7;7144:24;;;;;;;;;;;;;;;;7137:31;;7052:122;;;;:::o;2745:182::-;2009:9;:7;:9::i;:::-;2001:18;;;;;;2842:1;2822:22;;:8;:22;;;;2814:31;;;;;;2888:8;2859:38;;2880:6;;;;;;;;;;;2859:38;;;;;;;;;;;;2913:8;2904:6;;:17;;;;;;;;;;;;;;;;;;2745:182;:::o;12651:233::-;12756:1;12737:21;;:7;:21;;;;12729:30;;;;;;12791:1;12774:19;;:5;:19;;;;12766:28;;;;;;12830:5;12803:8;:15;12812:5;12803:15;;;;;;;;;;;;;;;:24;12819:7;12803:24;;;;;;;;;;;;;;;:32;;;;12863:7;12847:31;;12856:5;12847:31;;;12872:5;12847:31;;;;;;;;;;;;;;;;;;12651:233;;;:::o;16536:224::-;16612:17;16632:21;16648:4;16632:15;:21::i;:::-;16612:41;;16660:18;16681:15;16691:4;16681:9;:15::i;:::-;16660:36;;16748:5;16713:31;16731:12;16713:13;:17;;:31;;;;:::i;:::-;:40;;16705:49;;;;;;16536:224;;;;:::o;11250:181::-;11327:26;11337:4;11343:2;11347:5;11327:9;:26::i;:::-;11360:65;11369:4;11375:10;11387:37;11418:5;11387:8;:14;11396:4;11387:14;;;;;;;;;;;;;;;:26;11402:10;11387:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;11360:8;:65::i;:::-;11250:181;;;:::o;5590:124::-;5642:4;5655:6;5668:1;5664;:5;5655:14;;5689:1;5684;:6;;5676:15;;;;;;5707:1;5700:8;;;5590:124;;;;:::o;11773:248::-;11860:1;11841:21;;:7;:21;;;;11833:30;;;;;;11887:23;11904:5;11887:12;;:16;;:23;;;;:::i;:::-;11872:12;:38;;;;11938:29;11961:5;11938:9;:18;11948:7;11938:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;11917:9;:18;11927:7;11917:18;;;;;;;;;;;;;;;:50;;;;12000:7;11979:36;;11996:1;11979:36;;;12009:5;11979:36;;;;;;;;;;;;;;;;;;11773:248;;:::o;12186:201::-;12244:23;12261:5;12244:12;;:16;;:23;;;;:::i;:::-;12229:12;:38;;;;12298:32;12324:5;12298:9;:21;12308:10;12298:21;;;;;;;;;;;;;;;;:25;;:32;;;;:::i;:::-;12274:9;:21;12284:10;12274:21;;;;;;;;;;;;;;;:56;;;;12371:1;12342:39;;12351:10;12342:39;;;12375:5;12342:39;;;;;;;;;;;;;;;;;;12186:201;:::o;5395:124::-;5447:4;5473:1;5468;:6;;5460:15;;;;;;5482:6;5495:1;5491;:5;5482:14;;5512:1;5505:8;;;5395:124;;;;:::o;10550:241::-;10645:1;10631:16;;:2;:16;;;;10623:25;;;;;;10675:26;10695:5;10675:9;:15;10685:4;10675:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;10657:9;:15;10667:4;10657:15;;;;;;;;;;;;;;;:44;;;;10724:24;10742:5;10724:9;:13;10734:2;10724:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;10708:9;:13;10718:2;10708:13;;;;;;;;;;;;;;;:40;;;;10775:2;10760:25;;10769:4;10760:25;;;10779:5;10760:25;;;;;;;;;;;;;;;;;;10550:241;;;:::o;17335:460::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://df50180fb4480673b19791ae70713cb488345b048c819b84d18b1d6f0044df54
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.