ETH Price: $3,465.03 (+2.19%)
Gas: 7 Gwei

Token

Neutrino EUR (EURN)
 

Overview

Max Total Supply

25,177.273651699554059605 EURN

Holders

33 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.006841662777562193 EURN

Value
$0.00
0x0f97258B5B506B210Ba05f4C1F3c3Cf84Cc44496
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Neutrino EUR (EURN) is an algorithmic crypto-collateralized stablecoin pegged to the euro. All operations involving EURN, such as issuance, collateralization, staking and reward payouts, are fully transparent and governed by a smart contract.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
EURN

Compiler Version
v0.6.8+commit.0bbfe453

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-08-25
*/

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.6.8;

interface Staking {
  function deposit(address account, uint256 amount) external returns (bool);

  function withdraw(address account) external returns (bool);

  function stake(uint256 reward) external returns (bool);

  event Reward(uint256 id, uint256 amount);
}

interface ERC20 {

  function totalSupply() external view returns (uint256);

  function balanceOf(address account) external view returns (uint256);

  function allowance(address owner, address spender) external view returns (uint256);

  function approve(address spender, uint256 amount) external returns (bool);

  function increaseAllowance(address spender, uint256 addedValue) external returns (bool);

  function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool);

  function transfer(address recipient, uint256 amount) external returns (bool);

  function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

  event Transfer(address indexed from, address indexed to, uint256 value);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Ownable {
  address private _owner;
  address private _admin;

  constructor () public {
    _owner = msg.sender;
    _admin = msg.sender;
  }

  modifier onlyOwnerOrAdmin() {
    require(_owner == msg.sender || _admin == msg.sender, "Ownable: caller is not the owner or admin");
    _;
  }

  modifier onlyOwner() {
    require(_owner == msg.sender, "Ownable: caller is not the owner");
    _;
  }

  function transferOwnership(address newOwner) external virtual onlyOwner {
    require(newOwner != address(0), "Ownable: new owner is the zero address");
    _owner = newOwner;
  }

  function transferAdminOwnership(address newAdmin) external virtual onlyOwner {
    require(newAdmin != address(0), "Ownable: new admin is the zero address");
    _admin = newAdmin;
  }
}

abstract contract Deprecateble is Ownable {
  bool internal deprecated;

  modifier onlyNotDeprecated() {
    require(!deprecated, "Deprecateble: contract is deprecated");
    _;
  }

  function deprecate() external onlyOwner {
    deprecated = true;
    emit Deprecate(msg.sender);
  }

  event Deprecate(address indexed account);
}

abstract contract StandartToken is Staking, ERC20, Ownable, Deprecateble {
  uint256[] private _percents;
  uint256 private _liquidTotalSupply;
  uint256 private _liquidDeposit;
  uint256 constant private PERCENT_FACTOR = 10 ** 12;

  mapping(address => uint256) private _balances;
  mapping(address => uint256) private _deposits;
  mapping(address => uint256) private _rewardIndexForAccount;
  mapping(address => mapping(address => uint256)) private _allowances;

  constructor () public {
    _percents.push(PERCENT_FACTOR);
  }

  function deposit(address account, uint256 amount) external onlyOwnerOrAdmin onlyNotDeprecated override virtual returns (bool)  {
    require(amount > 0, "amount should be > 0");
    require(account != address(0), "deposit to the zero address");

    uint256 liquidDeposit = _liquidDeposit;
    require(liquidDeposit + amount >= liquidDeposit, "addition overflow for deposit");
    _liquidDeposit = liquidDeposit + amount;

    uint256 oldDeposit = _deposits[account];
    if (oldDeposit == 0) {
      _balances[account] = balanceOf(account);
      _rewardIndexForAccount[account] = _percents.length - 1;
      _deposits[account] = amount;
    } else {
      uint256 rewardIndex = _rewardIndexForAccount[account];
      if (rewardIndex == _percents.length - 1) {
        require(oldDeposit + amount >= oldDeposit, "addition overflow for deposit");
        _deposits[account] = oldDeposit + amount;
      } else {
        _balances[account] = balanceOf(account);
        _rewardIndexForAccount[account] = _percents.length - 1;
        _deposits[account] = amount;
      }
    }

    emit Transfer(address(0), account, amount);
    return true;
  }

  function stake(uint256 reward) external onlyOwnerOrAdmin onlyNotDeprecated override virtual returns (bool) {
    require(reward > 0, "reward should be > 0");

    uint256 liquidTotalSupply = _liquidTotalSupply;
    uint256 liquidDeposit = _liquidDeposit;

    if (liquidTotalSupply == 0) {
      _percents.push(PERCENT_FACTOR);
    } else {
      uint256 oldPercent = _percents[_percents.length - 1];
      uint256 percent = reward * PERCENT_FACTOR / liquidTotalSupply;
      require(percent + PERCENT_FACTOR >= percent, "addition overflow for percent");
      uint256 newPercent = percent + PERCENT_FACTOR;
      _percents.push(newPercent * oldPercent / PERCENT_FACTOR);

      require(liquidTotalSupply + reward >= liquidTotalSupply, "addition overflow for total supply + reward");
      liquidTotalSupply = liquidTotalSupply + reward;
    }

    require(liquidTotalSupply + liquidDeposit >= liquidTotalSupply, "addition overflow for total supply");
    _liquidTotalSupply = liquidTotalSupply + liquidDeposit;
    _liquidDeposit = 0;

    emit Reward(_percents.length, reward);
    return true;
  }

  function withdraw(address account) external onlyOwnerOrAdmin onlyNotDeprecated override virtual returns (bool) {
    uint256 oldDeposit = _deposits[account];
    uint256 rewardIndex = _rewardIndexForAccount[account];

    if (rewardIndex == _percents.length - 1) {
      uint256 balance = _balances[account];
      require(balance <= _liquidTotalSupply, "subtraction overflow for total supply");
      _liquidTotalSupply = _liquidTotalSupply - balance;

      require(oldDeposit <= _liquidDeposit, "subtraction overflow for liquid deposit");
      _liquidDeposit = _liquidDeposit - oldDeposit;

      require(balance + oldDeposit >= balance, "addition overflow for total balance + oldDeposit");
      emit Transfer(account, address(0), balance + oldDeposit);
    } else {
      uint256 balance = balanceOf(account);
      uint256 liquidTotalSupply = _liquidTotalSupply;
      require(balance <= liquidTotalSupply, "subtraction overflow for total supply");
      _liquidTotalSupply = liquidTotalSupply - balance;
      emit Transfer(account, address(0), balance);
    }

    _balances[account] = 0;
    _deposits[account] = 0;
    return true;
  }

  // ERC20
  function totalSupply() external view override virtual returns (uint256) {
    uint256 liquidTotalSupply = _liquidTotalSupply;
    uint256 liquidDeposit = _liquidDeposit;

    require(liquidTotalSupply + liquidDeposit >= liquidTotalSupply, "addition overflow for total supply");
    return liquidTotalSupply + liquidDeposit;
  }

  function balanceOf(address account) public view override virtual returns (uint256) {
    uint256 balance = _balances[account];
    uint256 oldDeposit = _deposits[account];

    if (balance == 0 && oldDeposit == 0) {
      return 0;
    }

    uint256 rewardIndex = _rewardIndexForAccount[account];
    if (rewardIndex == _percents.length - 1) {
      require(balance + oldDeposit >= balance, "addition overflow for balance");
      return balance + oldDeposit;
    }

    if (oldDeposit == 0) {
      uint256 profit = _percents[_percents.length - 1];
      return profit * balance / _percents[rewardIndex];
    } else {
      uint256 newBalance = balance * _percents[_percents.length - 1] / _percents[rewardIndex];
      uint256 profit = oldDeposit * _percents[_percents.length - 1] / _percents[rewardIndex + 1];
      require(profit + newBalance >= newBalance, "addition overflow for balance");
      return profit + newBalance;
    }
  }

  function allowance(address owner, address spender) external view override virtual returns (uint256) {
    return _allowances[owner][spender];
  }

  function _approve(address owner, address spender, uint256 amount) internal onlyNotDeprecated 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);
  }

  function approve(address spender, uint256 amount) external override virtual returns (bool) {
    _approve(msg.sender, spender, amount);
    return true;
  }

  function increaseAllowance(address spender, uint256 addedValue) external override virtual returns (bool) {
    uint256 temp = _allowances[msg.sender][spender];
    require(temp + addedValue >= temp, "addition overflow");
    _approve(msg.sender, spender, temp + addedValue);
    return true;
  }

  function decreaseAllowance(address spender, uint256 subtractedValue) external override virtual returns (bool) {
    uint256 temp = _allowances[msg.sender][spender];
    require(subtractedValue <= temp, "ERC20: decreased allowance below zero");
    _approve(msg.sender, spender, temp - subtractedValue);
    return true;
  }

  function transfer(address recipient, uint256 amount) external override virtual returns (bool) {
    _transfer(msg.sender, recipient, amount);
    return true;
  }

  function transferFrom(address sender, address recipient, uint256 amount) external override virtual returns (bool) {
    _transfer(sender, recipient, amount);

    uint256 temp = _allowances[sender][msg.sender];
    require(amount <= temp, "ERC20: transfer amount exceeds allowance");
    _approve(sender, msg.sender, temp - amount);
    return true;
  }

  function _transfer(address sender, address recipient, uint256 amount) internal onlyNotDeprecated virtual {
    require(amount > 0, "amount should be > 0");
    require(sender != address(0), "ERC20: transfer from the zero address");
    require(recipient != address(0), "ERC20: transfer to the zero address");

    uint256 oldDeposit = _deposits[sender];
    uint256 rewardIndex = _rewardIndexForAccount[sender];
    uint256 depositDiff = 0;

    if (oldDeposit == 0 || rewardIndex != _percents.length - 1) {
      uint256 senderBalance = balanceOf(sender);
      require(amount <= senderBalance, "ERC20: transfer amount exceeds balance");
      _balances[sender] = senderBalance - amount;

      _deposits[sender] = 0;
      _rewardIndexForAccount[sender] = _percents.length - 1;
    } else {
      if (amount <= oldDeposit) {
        _deposits[sender] = oldDeposit - amount;
        depositDiff = amount;
      } else {
        uint256 senderBalance = _balances[sender];
        require(amount - oldDeposit <= senderBalance, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - (amount - oldDeposit);
        _deposits[sender] = 0;
        depositDiff = oldDeposit;
      }
    }

    oldDeposit = _deposits[recipient];
    rewardIndex = _rewardIndexForAccount[recipient];
    if (oldDeposit == 0 || rewardIndex != _percents.length - 1) {
      uint256 recipientBalance = balanceOf(recipient);
      require((amount - depositDiff) + recipientBalance >= recipientBalance, "ERC20: addition overflow for recipient balance");
      _balances[recipient] = recipientBalance + (amount - depositDiff);
      _rewardIndexForAccount[recipient] = _percents.length - 1;
      _deposits[recipient] = depositDiff;
    } else {
      uint256 recipientBalance = _balances[recipient];
      _balances[recipient] = recipientBalance + (amount - depositDiff);
      _deposits[recipient] = oldDeposit + depositDiff;
    }

    emit Transfer(sender, recipient, amount);
  }
}

contract EURN is StandartToken {
  function name() external pure returns (string memory) {
    return "Neutrino EUR";
  }

  function symbol() external pure returns (string memory) {
    return "EURN";
  } 

  function decimals() external pure returns (uint8) {
    return 18;
  }
}

Contract Security Audit

Contract ABI

[{"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":"account","type":"address"}],"name":"Deprecate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Reward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deprecate","outputs":[],"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":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"reward","type":"uint256"}],"name":"stake","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"newAdmin","type":"address"}],"name":"transferAdminOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"withdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50600080546001600160a01b03199081163390811783556001805490921617815560028054918201815590915264e8d4a510007f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910155611b45806100776000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806347e7ef24116100a2578063a457c2d711610071578063a457c2d714610317578063a694fc3a14610343578063a9059cbb14610360578063dd62ed3e1461038c578063f2fde38b146103ba5761010b565b806347e7ef241461029757806351cff8d9146102c357806370a08231146102e957806395d89b411461030f5761010b565b806318160ddd116100de57806318160ddd146101fd57806323b872dd14610217578063313ce5671461024d578063395093511461026b5761010b565b806306fdde031461011057806308a80ff51461018d578063095ea7b3146101b55780630fcc0c28146101f5575b600080fd5b6101186103e0565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015257818101518382015260200161013a565b50505050905090810190601f16801561017f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101b3600480360360208110156101a357600080fd5b50356001600160a01b0316610406565b005b6101e1600480360360408110156101cb57600080fd5b506001600160a01b0381351690602001356104cc565b604080519115158252519081900360200190f35b6101b36104e2565b610205610581565b60408051918252519081900360200190f35b6101e16004803603606081101561022d57600080fd5b506001600160a01b038135811691602081013590911690604001356105d2565b61025561065a565b6040805160ff9092168252519081900360200190f35b6101e16004803603604081101561028157600080fd5b506001600160a01b03813516906020013561065f565b6101e1600480360360408110156102ad57600080fd5b506001600160a01b0381351690602001356106e5565b6101e1600480360360208110156102d957600080fd5b50356001600160a01b0316610a18565b610205600480360360208110156102ff57600080fd5b50356001600160a01b0316610cd3565b610118610ede565b6101e16004803603604081101561032d57600080fd5b506001600160a01b038135169060200135610efc565b6101e16004803603602081101561035957600080fd5b5035610f6c565b6101e16004803603604081101561037657600080fd5b506001600160a01b038135169060200135611243565b610205600480360360408110156103a257600080fd5b506001600160a01b0381358116916020013516611250565b6101b3600480360360208110156103d057600080fd5b50356001600160a01b031661127b565b60408051808201909152600c81526b2732baba3934b7379022aaa960a11b602082015290565b6000546001600160a01b03163314610465576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166104aa5760405162461bcd60e51b815260040180806020018281038252602681526020018061194e6026913960400191505060405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006104d9338484611341565b50600192915050565b6000546001600160a01b03163314610541576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001805460ff60a01b1916600160a01b17905560405133907fcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e90600090a2565b600354600454600091908082018211156105cc5760405162461bcd60e51b8152600401808060200182810382526022815260200180611a156022913960400191505060405180910390fd5b01905090565b60006105df848484611476565b6001600160a01b0384166000908152600860209081526040808320338452909152902054808311156106425760405162461bcd60e51b81526004018080602001828103825260288152602001806119c86028913960400191505060405180910390fd5b61064f8533858403611341565b506001949350505050565b601290565b3360009081526008602090815260408083206001600160a01b03861684529091528120548281018111156106ce576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b6106db3385858401611341565b5060019392505050565b600080546001600160a01b031633148061070957506001546001600160a01b031633145b6107445760405162461bcd60e51b815260040180806020018281038252602981526020018061199f6029913960400191505060405180910390fd5b600154600160a01b900460ff161561078d5760405162461bcd60e51b8152600401808060200182810382526024815260200180611aec6024913960400191505060405180910390fd5b600082116107d9576040805162461bcd60e51b81526020600482015260146024820152730616d6f756e742073686f756c64206265203e20360641b604482015290519081900360640190fd5b6001600160a01b038316610834576040805162461bcd60e51b815260206004820152601b60248201527f6465706f73697420746f20746865207a65726f20616464726573730000000000604482015290519081900360640190fd5b60045482810181111561088e576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f72206465706f736974000000604482015290519081900360640190fd5b8083016004556001600160a01b038416600090815260066020526040902054806108f9576108bb85610cd3565b6001600160a01b03861660009081526005602090815260408083209390935560025460078252838320600019909101905560069052208490556109de565b6001600160a01b0385166000908152600760205260409020546002546000190181141561099957818583011015610977576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f72206465706f736974000000604482015290519081900360640190fd5b6001600160a01b038616600090815260066020526040902082860190556109dc565b6109a286610cd3565b6001600160a01b03871660009081526005602090815260408083209390935560025460078252838320600019909101905560069052208590555b505b6040805185815290516001600160a01b03871691600091600080516020611a5e8339815191529181900360200190a3506001949350505050565b600080546001600160a01b0316331480610a3c57506001546001600160a01b031633145b610a775760405162461bcd60e51b815260040180806020018281038252602981526020018061199f6029913960400191505060405180910390fd5b600154600160a01b900460ff1615610ac05760405162461bcd60e51b8152600401808060200182810382526024815260200180611aec6024913960400191505060405180910390fd5b6001600160a01b03821660009081526006602090815260408083205460079092529091205460025460001901811415610c1a576001600160a01b038416600090815260056020526040902054600354811115610b4d5760405162461bcd60e51b81526004018080602001828103825260258152602001806119f06025913960400191505060405180910390fd5b600380548290039055600454831115610b975760405162461bcd60e51b8152600401808060200182810382526027815260200180611a376027913960400191505060405180910390fd5b8260045403600481905550808382011015610be35760405162461bcd60e51b81526004018080602001828103825260308152602001806118826030913960400191505060405180910390fd5b60408051828501815290516000916001600160a01b03881691600080516020611a5e8339815191529181900360200190a350610ca2565b6000610c2585610cd3565b60035490915080821115610c6a5760405162461bcd60e51b81526004018080602001828103825260258152602001806119f06025913960400191505060405180910390fd5b8181036003556040805183815290516000916001600160a01b03891691600080516020611a5e8339815191529181900360200190a350505b5050506001600160a01b0381166000908152600560209081526040808320839055600690915281205560015b919050565b6001600160a01b038116600090815260056020908152604080832054600690925282205481158015610d03575080155b15610d1357600092505050610cce565b6001600160a01b03841660009081526007602052604090205460025460001901811415610d9a57828284011015610d91576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f722062616c616e6365000000604482015290519081900360640190fd5b50019050610cce565b81610df05760028054600091906000198101908110610db557fe5b9060005260206000200154905060028281548110610dcf57fe5b906000526020600020015484820281610de457fe5b04945050505050610cce565b600060028281548110610dff57fe5b600091825260209091200154600280546000198101908110610e1d57fe5b9060005260206000200154850281610e3157fe5b049050600060028360010181548110610e4657fe5b600091825260209091200154600280546000198101908110610e6457fe5b9060005260206000200154850281610e7857fe5b049050818282011015610ed2576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f722062616c616e6365000000604482015290519081900360640190fd5b019350610cce92505050565b60408051808201909152600481526322aaa92760e11b602082015290565b3360009081526008602090815260408083206001600160a01b038616845290915281205480831115610f5f5760405162461bcd60e51b8152600401808060200182810382526025815260200180611ac76025913960400191505060405180910390fd5b6106db3385858403611341565b600080546001600160a01b0316331480610f9057506001546001600160a01b031633145b610fcb5760405162461bcd60e51b815260040180806020018281038252602981526020018061199f6029913960400191505060405180910390fd5b600154600160a01b900460ff16156110145760405162461bcd60e51b8152600401808060200182810382526024815260200180611aec6024913960400191505060405180910390fd5b60008211611060576040805162461bcd60e51b815260206004820152601460248201527307265776172642073686f756c64206265203e20360641b604482015290519081900360640190fd5b600354600454816110ab576002805460018101825560009190915264e8d4a510007f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace909101556111b0565b600280546000919060001981019081106110c157fe5b9060005260206000200154905060008364e8d4a510008702816110e057fe5b0490508064e8d4a510008201101561113f576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f722070657263656e74000000604482015290519081900360640190fd5b64e8d4a51000818101906002908483028254600181018455600093845260209093209190049101558685018511156111a85760405162461bcd60e51b815260040180806020018281038252602b815260200180611974602b913960400191505060405180910390fd5b505050908301905b8181830110156111f15760405162461bcd60e51b8152600401808060200182810382526022815260200180611a156022913960400191505060405180910390fd5b8181016003556000600455600254604080519182526020820186905280517f45cad8c10023de80f4c0672ff6c283b671e11aa93c92b9380cdf060d2790da529281900390910190a15060019392505050565b60006104d9338484611476565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b6000546001600160a01b031633146112da576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b03811661131f5760405162461bcd60e51b81526004018080602001828103825260268152602001806118b26026913960400191505060405180910390fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600154600160a01b900460ff161561138a5760405162461bcd60e51b8152600401808060200182810382526024815260200180611aec6024913960400191505060405180910390fd5b6001600160a01b0383166113cf5760405162461bcd60e51b8152600401808060200182810382526024815260200180611aa36024913960400191505060405180910390fd5b6001600160a01b0382166114145760405162461bcd60e51b81526004018080602001828103825260228152602001806118d86022913960400191505060405180910390fd5b6001600160a01b03808416600081815260086020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600154600160a01b900460ff16156114bf5760405162461bcd60e51b8152600401808060200182810382526024815260200180611aec6024913960400191505060405180910390fd5b6000811161150b576040805162461bcd60e51b81526020600482015260146024820152730616d6f756e742073686f756c64206265203e20360641b604482015290519081900360640190fd5b6001600160a01b0383166115505760405162461bcd60e51b8152600401808060200182810382526025815260200180611a7e6025913960400191505060405180910390fd5b6001600160a01b0382166115955760405162461bcd60e51b815260040180806020018281038252602381526020018061185f6023913960400191505060405180910390fd5b6001600160a01b038316600090815260066020908152604080832054600790925282205490918215806115ce5750600254600019018214155b156116635760006115de87610cd3565b90508085111561161f5760405162461bcd60e51b81526004018080602001828103825260268152602001806118fa6026913960400191505060405180910390fd5b6001600160a01b0387166000908152600560209081526040808320938890039093556006815282822082905560025460079091529190206000199091019055611717565b82841161168e57506001600160a01b0385166000908152600660205260409020838303905582611717565b6001600160a01b0386166000908152600560205260409020548385038110156116e85760405162461bcd60e51b81526004018080602001828103825260268152602001806118fa6026913960400191505060405180910390fd5b6001600160a01b0387166000908152600560209081526040808320878903909403909355600690529081205550815b6001600160a01b03851660009081526006602090815260408083205460079092529091205490935091508215806117545750600254600019018214155b156117ed57600061176486610cd3565b905080818387030110156117a95760405162461bcd60e51b815260040180806020018281038252602e815260200180611920602e913960400191505060405180910390fd5b6001600160a01b038616600090815260056020908152604080832085890394909401909355600254600782528383206000199091019055600690522081905561181d565b6001600160a01b038516600090815260056020908152604080832080548589030190556006909152902083820190555b846001600160a01b0316866001600160a01b0316600080516020611a5e833981519152866040518082815260200191505060405180910390a350505050505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573736164646974696f6e206f766572666c6f7720666f7220746f74616c2062616c616e6365202b206f6c644465706f7369744f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a206164646974696f6e206f766572666c6f7720666f7220726563697069656e742062616c616e63654f776e61626c653a206e65772061646d696e20697320746865207a65726f20616464726573736164646974696f6e206f766572666c6f7720666f7220746f74616c20737570706c79202b207265776172644f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572206f722061646d696e45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63657375627472616374696f6e206f766572666c6f7720666f7220746f74616c20737570706c796164646974696f6e206f766572666c6f7720666f7220746f74616c20737570706c797375627472616374696f6e206f766572666c6f7720666f72206c6971756964206465706f736974ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f446570726563617465626c653a20636f6e74726163742069732064657072656361746564a264697066735822122063799d5b9e6f5d80400bf2450b2a7a275f5cbc886b77ffd1a862b2faad92aca264736f6c63430006080033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061010b5760003560e01c806347e7ef24116100a2578063a457c2d711610071578063a457c2d714610317578063a694fc3a14610343578063a9059cbb14610360578063dd62ed3e1461038c578063f2fde38b146103ba5761010b565b806347e7ef241461029757806351cff8d9146102c357806370a08231146102e957806395d89b411461030f5761010b565b806318160ddd116100de57806318160ddd146101fd57806323b872dd14610217578063313ce5671461024d578063395093511461026b5761010b565b806306fdde031461011057806308a80ff51461018d578063095ea7b3146101b55780630fcc0c28146101f5575b600080fd5b6101186103e0565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015257818101518382015260200161013a565b50505050905090810190601f16801561017f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101b3600480360360208110156101a357600080fd5b50356001600160a01b0316610406565b005b6101e1600480360360408110156101cb57600080fd5b506001600160a01b0381351690602001356104cc565b604080519115158252519081900360200190f35b6101b36104e2565b610205610581565b60408051918252519081900360200190f35b6101e16004803603606081101561022d57600080fd5b506001600160a01b038135811691602081013590911690604001356105d2565b61025561065a565b6040805160ff9092168252519081900360200190f35b6101e16004803603604081101561028157600080fd5b506001600160a01b03813516906020013561065f565b6101e1600480360360408110156102ad57600080fd5b506001600160a01b0381351690602001356106e5565b6101e1600480360360208110156102d957600080fd5b50356001600160a01b0316610a18565b610205600480360360208110156102ff57600080fd5b50356001600160a01b0316610cd3565b610118610ede565b6101e16004803603604081101561032d57600080fd5b506001600160a01b038135169060200135610efc565b6101e16004803603602081101561035957600080fd5b5035610f6c565b6101e16004803603604081101561037657600080fd5b506001600160a01b038135169060200135611243565b610205600480360360408110156103a257600080fd5b506001600160a01b0381358116916020013516611250565b6101b3600480360360208110156103d057600080fd5b50356001600160a01b031661127b565b60408051808201909152600c81526b2732baba3934b7379022aaa960a11b602082015290565b6000546001600160a01b03163314610465576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166104aa5760405162461bcd60e51b815260040180806020018281038252602681526020018061194e6026913960400191505060405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006104d9338484611341565b50600192915050565b6000546001600160a01b03163314610541576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001805460ff60a01b1916600160a01b17905560405133907fcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e90600090a2565b600354600454600091908082018211156105cc5760405162461bcd60e51b8152600401808060200182810382526022815260200180611a156022913960400191505060405180910390fd5b01905090565b60006105df848484611476565b6001600160a01b0384166000908152600860209081526040808320338452909152902054808311156106425760405162461bcd60e51b81526004018080602001828103825260288152602001806119c86028913960400191505060405180910390fd5b61064f8533858403611341565b506001949350505050565b601290565b3360009081526008602090815260408083206001600160a01b03861684529091528120548281018111156106ce576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b6106db3385858401611341565b5060019392505050565b600080546001600160a01b031633148061070957506001546001600160a01b031633145b6107445760405162461bcd60e51b815260040180806020018281038252602981526020018061199f6029913960400191505060405180910390fd5b600154600160a01b900460ff161561078d5760405162461bcd60e51b8152600401808060200182810382526024815260200180611aec6024913960400191505060405180910390fd5b600082116107d9576040805162461bcd60e51b81526020600482015260146024820152730616d6f756e742073686f756c64206265203e20360641b604482015290519081900360640190fd5b6001600160a01b038316610834576040805162461bcd60e51b815260206004820152601b60248201527f6465706f73697420746f20746865207a65726f20616464726573730000000000604482015290519081900360640190fd5b60045482810181111561088e576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f72206465706f736974000000604482015290519081900360640190fd5b8083016004556001600160a01b038416600090815260066020526040902054806108f9576108bb85610cd3565b6001600160a01b03861660009081526005602090815260408083209390935560025460078252838320600019909101905560069052208490556109de565b6001600160a01b0385166000908152600760205260409020546002546000190181141561099957818583011015610977576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f72206465706f736974000000604482015290519081900360640190fd5b6001600160a01b038616600090815260066020526040902082860190556109dc565b6109a286610cd3565b6001600160a01b03871660009081526005602090815260408083209390935560025460078252838320600019909101905560069052208590555b505b6040805185815290516001600160a01b03871691600091600080516020611a5e8339815191529181900360200190a3506001949350505050565b600080546001600160a01b0316331480610a3c57506001546001600160a01b031633145b610a775760405162461bcd60e51b815260040180806020018281038252602981526020018061199f6029913960400191505060405180910390fd5b600154600160a01b900460ff1615610ac05760405162461bcd60e51b8152600401808060200182810382526024815260200180611aec6024913960400191505060405180910390fd5b6001600160a01b03821660009081526006602090815260408083205460079092529091205460025460001901811415610c1a576001600160a01b038416600090815260056020526040902054600354811115610b4d5760405162461bcd60e51b81526004018080602001828103825260258152602001806119f06025913960400191505060405180910390fd5b600380548290039055600454831115610b975760405162461bcd60e51b8152600401808060200182810382526027815260200180611a376027913960400191505060405180910390fd5b8260045403600481905550808382011015610be35760405162461bcd60e51b81526004018080602001828103825260308152602001806118826030913960400191505060405180910390fd5b60408051828501815290516000916001600160a01b03881691600080516020611a5e8339815191529181900360200190a350610ca2565b6000610c2585610cd3565b60035490915080821115610c6a5760405162461bcd60e51b81526004018080602001828103825260258152602001806119f06025913960400191505060405180910390fd5b8181036003556040805183815290516000916001600160a01b03891691600080516020611a5e8339815191529181900360200190a350505b5050506001600160a01b0381166000908152600560209081526040808320839055600690915281205560015b919050565b6001600160a01b038116600090815260056020908152604080832054600690925282205481158015610d03575080155b15610d1357600092505050610cce565b6001600160a01b03841660009081526007602052604090205460025460001901811415610d9a57828284011015610d91576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f722062616c616e6365000000604482015290519081900360640190fd5b50019050610cce565b81610df05760028054600091906000198101908110610db557fe5b9060005260206000200154905060028281548110610dcf57fe5b906000526020600020015484820281610de457fe5b04945050505050610cce565b600060028281548110610dff57fe5b600091825260209091200154600280546000198101908110610e1d57fe5b9060005260206000200154850281610e3157fe5b049050600060028360010181548110610e4657fe5b600091825260209091200154600280546000198101908110610e6457fe5b9060005260206000200154850281610e7857fe5b049050818282011015610ed2576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f722062616c616e6365000000604482015290519081900360640190fd5b019350610cce92505050565b60408051808201909152600481526322aaa92760e11b602082015290565b3360009081526008602090815260408083206001600160a01b038616845290915281205480831115610f5f5760405162461bcd60e51b8152600401808060200182810382526025815260200180611ac76025913960400191505060405180910390fd5b6106db3385858403611341565b600080546001600160a01b0316331480610f9057506001546001600160a01b031633145b610fcb5760405162461bcd60e51b815260040180806020018281038252602981526020018061199f6029913960400191505060405180910390fd5b600154600160a01b900460ff16156110145760405162461bcd60e51b8152600401808060200182810382526024815260200180611aec6024913960400191505060405180910390fd5b60008211611060576040805162461bcd60e51b815260206004820152601460248201527307265776172642073686f756c64206265203e20360641b604482015290519081900360640190fd5b600354600454816110ab576002805460018101825560009190915264e8d4a510007f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace909101556111b0565b600280546000919060001981019081106110c157fe5b9060005260206000200154905060008364e8d4a510008702816110e057fe5b0490508064e8d4a510008201101561113f576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f722070657263656e74000000604482015290519081900360640190fd5b64e8d4a51000818101906002908483028254600181018455600093845260209093209190049101558685018511156111a85760405162461bcd60e51b815260040180806020018281038252602b815260200180611974602b913960400191505060405180910390fd5b505050908301905b8181830110156111f15760405162461bcd60e51b8152600401808060200182810382526022815260200180611a156022913960400191505060405180910390fd5b8181016003556000600455600254604080519182526020820186905280517f45cad8c10023de80f4c0672ff6c283b671e11aa93c92b9380cdf060d2790da529281900390910190a15060019392505050565b60006104d9338484611476565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b6000546001600160a01b031633146112da576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b03811661131f5760405162461bcd60e51b81526004018080602001828103825260268152602001806118b26026913960400191505060405180910390fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600154600160a01b900460ff161561138a5760405162461bcd60e51b8152600401808060200182810382526024815260200180611aec6024913960400191505060405180910390fd5b6001600160a01b0383166113cf5760405162461bcd60e51b8152600401808060200182810382526024815260200180611aa36024913960400191505060405180910390fd5b6001600160a01b0382166114145760405162461bcd60e51b81526004018080602001828103825260228152602001806118d86022913960400191505060405180910390fd5b6001600160a01b03808416600081815260086020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600154600160a01b900460ff16156114bf5760405162461bcd60e51b8152600401808060200182810382526024815260200180611aec6024913960400191505060405180910390fd5b6000811161150b576040805162461bcd60e51b81526020600482015260146024820152730616d6f756e742073686f756c64206265203e20360641b604482015290519081900360640190fd5b6001600160a01b0383166115505760405162461bcd60e51b8152600401808060200182810382526025815260200180611a7e6025913960400191505060405180910390fd5b6001600160a01b0382166115955760405162461bcd60e51b815260040180806020018281038252602381526020018061185f6023913960400191505060405180910390fd5b6001600160a01b038316600090815260066020908152604080832054600790925282205490918215806115ce5750600254600019018214155b156116635760006115de87610cd3565b90508085111561161f5760405162461bcd60e51b81526004018080602001828103825260268152602001806118fa6026913960400191505060405180910390fd5b6001600160a01b0387166000908152600560209081526040808320938890039093556006815282822082905560025460079091529190206000199091019055611717565b82841161168e57506001600160a01b0385166000908152600660205260409020838303905582611717565b6001600160a01b0386166000908152600560205260409020548385038110156116e85760405162461bcd60e51b81526004018080602001828103825260268152602001806118fa6026913960400191505060405180910390fd5b6001600160a01b0387166000908152600560209081526040808320878903909403909355600690529081205550815b6001600160a01b03851660009081526006602090815260408083205460079092529091205490935091508215806117545750600254600019018214155b156117ed57600061176486610cd3565b905080818387030110156117a95760405162461bcd60e51b815260040180806020018281038252602e815260200180611920602e913960400191505060405180910390fd5b6001600160a01b038616600090815260056020908152604080832085890394909401909355600254600782528383206000199091019055600690522081905561181d565b6001600160a01b038516600090815260056020908152604080832080548589030190556006909152902083820190555b846001600160a01b0316866001600160a01b0316600080516020611a5e833981519152866040518082815260200191505060405180910390a350505050505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573736164646974696f6e206f766572666c6f7720666f7220746f74616c2062616c616e6365202b206f6c644465706f7369744f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a206164646974696f6e206f766572666c6f7720666f7220726563697069656e742062616c616e63654f776e61626c653a206e65772061646d696e20697320746865207a65726f20616464726573736164646974696f6e206f766572666c6f7720666f7220746f74616c20737570706c79202b207265776172644f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572206f722061646d696e45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63657375627472616374696f6e206f766572666c6f7720666f7220746f74616c20737570706c796164646974696f6e206f766572666c6f7720666f7220746f74616c20737570706c797375627472616374696f6e206f766572666c6f7720666f72206c6971756964206465706f736974ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f446570726563617465626c653a20636f6e74726163742069732064657072656361746564a264697066735822122063799d5b9e6f5d80400bf2450b2a7a275f5cbc886b77ffd1a862b2faad92aca264736f6c63430006080033

Deployed Bytecode Sourcemap

11621:294:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11621:294:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;11657:88:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;11657:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1838:187;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1838:187:0;-1:-1:-1;;;;;1838:187:0;;:::i;:::-;;8242:159;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;8242:159:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;2226:103;;;:::i;6430:333::-;;;:::i;:::-;;;;;;;;;;;;;;;;9218:360;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;9218:360:0;;;;;;;;;;;;;;;;;:::i;11840:72::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8407:300;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;8407:300:0;;;;;;;;:::i;2932:1172::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2932:1172:0;;;;;;;;:::i;5241:1171::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;5241:1171:0;-1:-1:-1;;;;;5241:1171:0;;:::i;6769:962::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6769:962:0;-1:-1:-1;;;;;6769:962:0;;:::i;11751:82::-;;;:::i;8713:328::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;8713:328:0;;;;;;;;:::i;4110:1125::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;4110:1125:0;;:::i;9047:165::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;9047:165:0;;;;;;;;:::i;7737:147::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;7737:147:0;;;;;;;;;;:::i;1650:182::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1650:182:0;-1:-1:-1;;;;;1650:182:0;;:::i;11657:88::-;11718:21;;;;;;;;;;;;-1:-1:-1;;;11718:21:0;;;;11657:88;:::o;1838:187::-;1573:6;;-1:-1:-1;;;;;1573:6:0;1583:10;1573:20;1565:65;;;;;-1:-1:-1;;;1565:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1930:22:0;::::1;1922:73;;;;-1:-1:-1::0;;;1922:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2002:6;:17:::0;;-1:-1:-1;;;;;;2002:17:0::1;-1:-1:-1::0;;;;;2002:17:0;;;::::1;::::0;;;::::1;::::0;;1838:187::o;8242:159::-;8327:4;8340:37;8349:10;8361:7;8370:6;8340:8;:37::i;:::-;-1:-1:-1;8391:4:0;8242:159;;;;:::o;2226:103::-;1573:6;;-1:-1:-1;;;;;1573:6:0;1583:10;1573:20;1565:65;;;;;-1:-1:-1;;;1565:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2286:4:::1;2273:17:::0;;-1:-1:-1;;;;2273:17:0::1;-1:-1:-1::0;;;2273:17:0::1;::::0;;2302:21:::1;::::0;2312:10:::1;::::0;2302:21:::1;::::0;2273:17;;2302:21:::1;2226:103::o:0;6430:333::-;6537:18;;6586:14;;6493:7;;6537:18;6617:33;;;:54;-1:-1:-1;6617:54:0;6609:101;;;;-1:-1:-1;;;6609:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6724:33;;-1:-1:-1;6430:333:0;:::o;9218:360::-;9326:4;9339:36;9349:6;9357:9;9368:6;9339:9;:36::i;:::-;-1:-1:-1;;;;;9399:19:0;;9384:12;9399:19;;;:11;:19;;;;;;;;9419:10;9399:31;;;;;;;;9445:14;;;;9437:67;;;;-1:-1:-1;;;9437:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9511:43;9520:6;9528:10;9547:6;9540:4;:13;9511:8;:43::i;:::-;-1:-1:-1;9568:4:0;;9218:360;-1:-1:-1;;;;9218:360:0:o;11840:72::-;11904:2;11840:72;:::o;8407:300::-;8546:10;8506:4;8534:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8534:32:0;;;;;;;;;;8581:17;;;:25;-1:-1:-1;8581:25:0;8573:55;;;;;-1:-1:-1;;;8573:55:0;;;;;;;;;;;;-1:-1:-1;;;8573:55:0;;;;;;;;;;;;;;;8635:48;8644:10;8656:7;8672:10;8665:4;:17;8635:8;:48::i;:::-;-1:-1:-1;8697:4:0;;8407:300;-1:-1:-1;;;8407:300:0:o;2932:1172::-;3052:4;1427:6;;-1:-1:-1;;;;;1427:6:0;1437:10;1427:20;;:44;;-1:-1:-1;1451:6:0;;-1:-1:-1;;;;;1451:6:0;1461:10;1451:20;1427:44;1419:98;;;;-1:-1:-1;;;1419:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2155:10:::1;::::0;-1:-1:-1;;;2155:10:0;::::1;;;2154:11;2146:60;;;;-1:-1:-1::0;;;2146:60:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3083:1:::2;3074:6;:10;3066:43;;;::::0;;-1:-1:-1;;;3066:43:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;3066:43:0;;;;;;;;;;;;;::::2;;-1:-1:-1::0;;;;;3124:21:0;::::2;3116:61;;;::::0;;-1:-1:-1;;;3116:61:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;3210:14;::::0;3239:22;;::::2;:39:::0;-1:-1:-1;3239:39:0::2;3231:81;;;::::0;;-1:-1:-1;;;3231:81:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;3336:22:::0;;::::2;3319:14;:39:::0;-1:-1:-1;;;;;3388:18:0;::::2;3367;3388::::0;;;:9:::2;:18;::::0;;;;;3417:15;3413:617:::2;;3464:18;3474:7;3464:9;:18::i;:::-;-1:-1:-1::0;;;;;3443:18:0;::::2;;::::0;;;:9:::2;:18;::::0;;;;;;;:39;;;;3525:9:::2;:16:::0;3491:22:::2;:31:::0;;;;;-1:-1:-1;;3525:20:0;;;3491:54;;3554:9:::2;:18:::0;;;:27;;;3413:617:::2;;;-1:-1:-1::0;;;;;3626:31:0;::::2;3604:19;3626:31:::0;;;:22:::2;:31;::::0;;;;;3685:9:::2;:16:::0;-1:-1:-1;;3685:20:0;3670:35;::::2;3666:357;;;3749:10;3739:6;3726:10;:19;:33;;3718:75;;;::::0;;-1:-1:-1;;;3718:75:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;-1:-1:-1::0;;;;;3804:18:0;::::2;;::::0;;;:9:::2;:18;::::0;;;;3825:19;;::::2;3804:40:::0;;3666:357:::2;;;3892:18;3902:7;3892:9;:18::i;:::-;-1:-1:-1::0;;;;;3871:18:0;::::2;;::::0;;;:9:::2;:18;::::0;;;;;;;:39;;;;3955:9:::2;:16:::0;3921:22:::2;:31:::0;;;;;-1:-1:-1;;3955:20:0;;;3921:54;;3986:9:::2;:18:::0;;;:27;;;3666:357:::2;3413:617;;4043:37;::::0;;;;;;;-1:-1:-1;;;;;4043:37:0;::::2;::::0;4060:1:::2;::::0;-1:-1:-1;;;;;;;;;;;4043:37:0;;;;::::2;::::0;;::::2;-1:-1:-1::0;4094:4:0::2;::::0;2932:1172;-1:-1:-1;;;;2932:1172:0:o;5241:1171::-;5346:4;1427:6;;-1:-1:-1;;;;;1427:6:0;1437:10;1427:20;;:44;;-1:-1:-1;1451:6:0;;-1:-1:-1;;;;;1451:6:0;1461:10;1451:20;1427:44;1419:98;;;;-1:-1:-1;;;1419:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2155:10:::1;::::0;-1:-1:-1;;;2155:10:0;::::1;;;2154:11;2146:60;;;;-1:-1:-1::0;;;2146:60:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;5380:18:0;::::2;5359;5380::::0;;;:9:::2;:18;::::0;;;;;;;;5427:22:::2;:31:::0;;;;;;;5486:9:::2;:16:::0;-1:-1:-1;;5486:20:0;5471:35;::::2;5467:862;;;-1:-1:-1::0;;;;;5535:18:0;::::2;5517:15;5535:18:::0;;;:9:::2;:18;::::0;;;;;5581::::2;::::0;5570:29;::::2;;5562:79;;;;-1:-1:-1::0;;;5562:79:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5671:18;::::0;;:28;;::::2;5650:49:::0;;5732:14:::2;::::0;5718:28;::::2;;5710:80;;;;-1:-1:-1::0;;;5710:80:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5833:10;5816:14;;:27;5799:14;:44;;;;5886:7;5872:10;5862:7;:20;:31;;5854:92;;;;-1:-1:-1::0;;;5854:92:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5960:51;::::0;;5990:20;;::::2;5960:51:::0;;;;5986:1:::2;::::0;-1:-1:-1;;;;;5960:51:0;::::2;::::0;-1:-1:-1;;;;;;;;;;;5960:51:0;;;;::::2;::::0;;::::2;5467:862;;;;6034:15;6052:18;6062:7;6052:9;:18::i;:::-;6107;::::0;6034:36;;-1:-1:-1;6142:28:0;;::::2;;6134:78;;;;-1:-1:-1::0;;;6134:78:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6242:27:::0;;::::2;6221:18;:48:::0;6283:38:::2;::::0;;;;;;;6309:1:::2;::::0;-1:-1:-1;;;;;6283:38:0;::::2;::::0;-1:-1:-1;;;;;;;;;;;6283:38:0;;;;::::2;::::0;;::::2;5467:862;;;-1:-1:-1::0;;;;;;;;6337:18:0;::::2;6358:1;6337:18:::0;;;:9:::2;:18;::::0;;;;;;;:22;;;6366:9:::2;:18:::0;;;;;:22;6402:4:::2;2213:1;5241:1171:::0;;;:::o;6769:962::-;-1:-1:-1;;;;;6877:18:0;;6843:7;6877:18;;;:9;:18;;;;;;;;;6923:9;:18;;;;;;6954:12;;:31;;;;-1:-1:-1;6970:15:0;;6954:31;6950:62;;;7003:1;6996:8;;;;;;6950:62;-1:-1:-1;;;;;7042:31:0;;7020:19;7042:31;;;:22;:31;;;;;;7099:9;:16;-1:-1:-1;;7099:20:0;7084:35;;7080:167;;;7162:7;7148:10;7138:7;:20;:31;;7130:73;;;;;-1:-1:-1;;;7130:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7219:20:0;;-1:-1:-1;7212:27:0;;7080:167;7259:15;7255:471;;7302:9;7312:16;;7285:14;;7302:9;-1:-1:-1;;7312:20:0;;;7302:31;;;;;;;;;;;;;;7285:48;;7368:9;7378:11;7368:22;;;;;;;;;;;;;;;;7358:7;7349:6;:16;:41;;;;;;7342:48;;;;;;;;7255:471;7413:18;7478:9;7488:11;7478:22;;;;;;;;;;;;;;;;;;7444:9;7454:16;;-1:-1:-1;;7454:20:0;;;7444:31;;;;;;;;;;;;;;7434:7;:41;:66;;;;;;7413:87;;7509:14;7573:9;7583:11;7597:1;7583:15;7573:26;;;;;;;;;;;;;;;;;;7539:9;7549:16;;-1:-1:-1;;7549:20:0;;;7539:31;;;;;;;;;;;;;;7526:10;:44;:73;;;;;;7509:90;;7639:10;7625;7616:6;:19;:33;;7608:75;;;;;-1:-1:-1;;;7608:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7699:19;;-1:-1:-1;7692:26:0;;-1:-1:-1;;;7692:26:0;11751:82;11814:13;;;;;;;;;;;;-1:-1:-1;;;11814:13:0;;;;11751:82;:::o;8713:328::-;8857:10;8817:4;8845:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8845:32:0;;;;;;;;;;8892:23;;;;8884:73;;;;-1:-1:-1;;;8884:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8964:53;8973:10;8985:7;9001:15;8994:4;:22;8964:8;:53::i;4110:1125::-;4211:4;1427:6;;-1:-1:-1;;;;;1427:6:0;1437:10;1427:20;;:44;;-1:-1:-1;1451:6:0;;-1:-1:-1;;;;;1451:6:0;1461:10;1451:20;1427:44;1419:98;;;;-1:-1:-1;;;1419:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2155:10:::1;::::0;-1:-1:-1;;;2155:10:0;::::1;;;2154:11;2146:60;;;;-1:-1:-1::0;;;2146:60:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4241:1:::2;4232:6;:10;4224:43;;;::::0;;-1:-1:-1;;;4224:43:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;4224:43:0;;;;;;;;;;;;;::::2;;4304:18;::::0;4353:14:::2;::::0;4380:22;4376:594:::2;;4413:9;27:10:-1::0;;39:1:::2;23:18:::0;::::2;45:23:::0;;-1:-1;4413:30:0;;;;2609:8:::2;4413:30:::0;;;::::2;::::0;4376:594:::2;;;4487:9;4497:16:::0;;4466:18:::2;::::0;4487:9;-1:-1:-1;;4497:20:0;;;4487:31;::::2;;;;;;;;;;;;;4466:52;;4527:15;4571:17;2609:8;4545:6;:23;:43;;;;;;4527:61;;4633:7;2609:8;4605:7;:24;:35;;4597:77;;;::::0;;-1:-1:-1;;;4597:77:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;2609:8;4704:24:::0;;::::2;::::0;4737:9:::2;::::0;4752:23;;::::2;27:10:-1::0;;39:1:::2;23:18:::0;::::2;45:23:::0;;-1:-1;4737:56:0;;;::::2;::::0;;;4752:40;;::::2;4737:56:::0;::::2;::::0;4812:26;;::::2;:47:::0;-1:-1:-1;4812:47:0::2;4804:103;;;;-1:-1:-1::0;;;4804:103:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;4936:26:0;;::::2;::::0;4376:594:::2;5023:17;5006:13;4986:17;:33;:54;;4978:101;;;;-1:-1:-1::0;;;4978:101:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5107:33:::0;;::::2;5086:18;:54:::0;5164:1:::2;5147:14;:18:::0;5186:9:::2;:16:::0;5179:32:::2;::::0;;;;;::::2;::::0;::::2;::::0;;;;;::::2;::::0;;;;;;;;::::2;-1:-1:-1::0;5225:4:0::2;::::0;4110:1125;-1:-1:-1;;;4110:1125:0:o;9047:165::-;9135:4;9148:40;9158:10;9170:9;9181:6;9148:9;:40::i;7737:147::-;-1:-1:-1;;;;;7851:18:0;;;7828:7;7851:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7737:147::o;1650:182::-;1573:6;;-1:-1:-1;;;;;1573:6:0;1583:10;1573:20;1565:65;;;;;-1:-1:-1;;;1565:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1737:22:0;::::1;1729:73;;;;-1:-1:-1::0;;;1729:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1809:6;:17:::0;;-1:-1:-1;;;;;;1809:17:0::1;-1:-1:-1::0;;;;;1809:17:0;;;::::1;::::0;;;::::1;::::0;;1650:182::o;7890:346::-;2155:10;;-1:-1:-1;;;2155:10:0;;;;2154:11;2146:60;;;;-1:-1:-1;;;2146:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8006:19:0;::::1;7998:68;;;;-1:-1:-1::0;;;7998:68:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;8081:21:0;::::1;8073:68;;;;-1:-1:-1::0;;;8073:68:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;8150:18:0;;::::1;;::::0;;;:11:::1;:18;::::0;;;;;;;:27;;::::1;::::0;;;;;;;;;;:36;;;8198:32;;;;;;;::::1;::::0;;;;;;;;::::1;7890:346:::0;;;:::o;9584:2030::-;2155:10;;-1:-1:-1;;;2155:10:0;;;;2154:11;2146:60;;;;-1:-1:-1;;;2146:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9713:1:::1;9704:6;:10;9696:43;;;::::0;;-1:-1:-1;;;9696:43:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;9696:43:0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;9754:20:0;::::1;9746:70;;;;-1:-1:-1::0;;;9746:70:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;9831:23:0;::::1;9823:71;;;;-1:-1:-1::0;;;9823:71:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;9924:17:0;::::1;9903:18;9924:17:::0;;;:9:::1;:17;::::0;;;;;;;;9970:22:::1;:30:::0;;;;;;9924:17;;10043:15;;;:54:::1;;-1:-1:-1::0;10077:9:0::1;:16:::0;-1:-1:-1;;10077:20:0;10062:35;::::1;;10043:54;10039:786;;;10108:21;10132:17;10142:6;10132:9;:17::i;:::-;10108:41;;10176:13;10166:6;:23;;10158:74;;;;-1:-1:-1::0;;;10158:74:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;10241:17:0;::::1;;::::0;;;:9:::1;:17;::::0;;;;;;;10261:22;;;::::1;10241:42:::0;;;10294:9:::1;:17:::0;;;;;:21;;;10357:9:::1;:16:::0;10324:22:::1;:30:::0;;;;;;-1:-1:-1;;10357:20:0;;;10324:53;;10039:786:::1;;;10414:10;10404:6;:20;10400:418;;-1:-1:-1::0;;;;;;10437:17:0;::::1;;::::0;;;:9:::1;:17;::::0;;;;10457:19;;::::1;10437:39:::0;;10470:6;10400:418:::1;;;-1:-1:-1::0;;;;;10558:17:0;::::1;10534:21;10558:17:::0;;;:9:::1;:17;::::0;;;;;10594:19;;::::1;:36:::0;-1:-1:-1;10594:36:0::1;10586:87;;;;-1:-1:-1::0;;;10586:87:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;10684:17:0;::::1;;::::0;;;:9:::1;:17;::::0;;;;;;;10721:19;;::::1;10704:37:::0;;::::1;10684:57:::0;;;10752:9:::1;:17:::0;;;;;:21;-1:-1:-1;10730:10:0;10400:418:::1;-1:-1:-1::0;;;;;10846:20:0;::::1;;::::0;;;:9:::1;:20;::::0;;;;;;;;10887:22:::1;:33:::0;;;;;;;10846:20;;-1:-1:-1;10887:33:0;-1:-1:-1;10931:15:0;;;:54:::1;;-1:-1:-1::0;10965:9:0::1;:16:::0;-1:-1:-1;;10965:20:0;10950:35;::::1;;10931:54;10927:633;;;10996:24;11023:20;11033:9;11023;:20::i;:::-;10996:47;;11105:16;11085;11070:11;11061:6;:20;11060:41;:61;;11052:120;;;;-1:-1:-1::0;;;11052:120:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;11181:20:0;::::1;;::::0;;;:9:::1;:20;::::0;;;;;;;11224;;::::1;11204:41:::0;;;::::1;11181:64:::0;;;11290:9:::1;:16:::0;11254:22:::1;:33:::0;;;;;-1:-1:-1;;11290:20:0;;;11254:56;;11319:9:::1;:20:::0;;;:34;;;10927:633:::1;;;-1:-1:-1::0;;;;;11403:20:0;::::1;11376:24;11403:20:::0;;;:9:::1;:20;::::0;;;;;;;;;11475;;::::1;11455:41;11432:64:::0;;11505:9:::1;:20:::0;;;;;11528:24;;::::1;11505:47:::0;;10927:633:::1;11590:9;-1:-1:-1::0;;;;;11573:35:0::1;11582:6;-1:-1:-1::0;;;;;11573:35:0::1;-1:-1:-1::0;;;;;;;;;;;11601:6:0::1;11573:35;;;;;;;;;;;;;;;;;;2213:1;;;9584:2030:::0;;;:::o

Swarm Source

ipfs://63799d5b9e6f5d80400bf2450b2a7a275f5cbc886b77ffd1a862b2faad92aca2
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.