MOVR Price: $17.16 (+1.39%)
Gas: 3.13 GWei

Token

HYDRO TOKEN (HYDRO)

Overview

Max Total Supply

111,111,111.11 HYDRO

Holders

4 (0.00%)

Total Transfers

-

Market

Price

$0.0003 @ 0.000019 MOVR (+0.63%)

Onchain Market Cap

$36,397.78

Circulating Supply Market Cap

$14,040.68

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Hydro is a decentralized ecosystem using cutting-edge cryptography to secure user accounts, identities, and transactions. Multi-chain protocols securing the web3 reality.

Market

Volume (24H):$27,677.00
Market Capitalization:$14,040.68
Circulating Supply:42,861,653.00 HYDRO
Market Data Source: Coinmarketcap

Contract Source Code Verified (Exact Match)

Contract Name:
HydroToken

Compiler Version
v0.6.0+commit.26b70077

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at moonriver.moonscan.io on 2022-06-27
*/

//////////////////////////////////////////
// PROJECT HYDRO
// Multi Chain Token
//////////////////////////////////////////
pragma solidity 0.6.0;
contract Ownable {
    address public owner;


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


    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
   constructor() public {
        owner = msg.sender;
    }

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

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

}

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    assert(c / a == b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 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(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

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

interface Raindrop {
    function authenticate(address _sender, uint _value, uint _challenge, uint _partnerId) external;
}

interface tokenRecipient {
    function receiveApproval(address _from, uint256 _value, address _token, bytes calldata _extraData) external;
}

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

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

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

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

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

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

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

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

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

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

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

contract HydroToken is Ownable,IERC20 {
    using SafeMath for uint256;

    string public _name;
    string public _symbol;
    uint8 public _decimals;            // Number of decimals of the smallest unit
    uint public _totalSupply;
    address public raindropAddress;
    uint256 ratio;
    uint256 public MAX_BURN= 100000000000000000; //0.1 hydro tokens

    mapping (address => uint256) public balances;
    // `allowed` tracks any extra transfer rights as in all ERC20 tokens
    mapping (address => mapping (address => uint256)) public allowed;
    mapping(address=>bool) public whitelistedDapps; //dapps that can burn tokens
    
    //makes sure only dappstore apps can burn tokens
    modifier onlyFromDapps(address _dapp){
        require(whitelistedDapps[msg.sender]==true,'Hydro: Burn error');
        _;
    }
    
    event dappBurned(address indexed _dapp, uint256 _amount );

////////////////
// Constructor
////////////////

    /// @notice Constructor to create a HydroToken
    constructor(uint256 _ratio) public {
        _name='HYDRO TOKEN';
        _symbol='HYDRO';
        _decimals=18;
        raindropAddress=address(0);
       _totalSupply = (11111111111 * 10**18)/_ratio;
        // Give the creator all initial tokens
        balances[msg.sender] = _totalSupply;
        ratio = _ratio;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }
    


///////////////////
// ERC20 Methods
///////////////////

    //transfers an amount of tokens from one account to another
    //accepts two variables
    function transfer(address _to, uint256 _amount) public override  returns (bool success) {
        doTransfer(msg.sender, _to, _amount);
        return true;
}

  /**
   * @dev Returns the token symbol.
   */
  function symbol() public override view returns (string memory) {
    return _symbol;
  }
  
  /**
  * @dev Returns the token name.
  */
  function name() public override view returns (string memory) {
    return _name;
  }
  
    //transfers an amount of tokens from one account to another
    //accepts three variables
    function transferFrom(address _from, address _to, uint256 _amount
    ) public override returns (bool success) {
        // The standard ERC 20 transferFrom functionality
        require(allowed[_from][msg.sender] >= _amount);
        allowed[_from][msg.sender] -= _amount;
        doTransfer(_from, _to, _amount);
        return true;
    }
    
    //allows the owner to change the MAX_BURN amount
    function changeMaxBurn(uint256 _newBurn) public onlyOwner returns(uint256 ) {
        MAX_BURN=_newBurn;
        return (_newBurn);
    }

    //internal function to implement the transfer function and perform some safety checks
    function doTransfer(address _from, address _to, uint _amount
    ) internal {
        // Do not allow transfer to 0x0 or the token contract itself
        require((_to != address(0)) && (_to != address(this)));
        require(_amount <= balances[_from]);
        balances[_from] = balances[_from].sub(_amount);
        balances[_to] = balances[_to].add(_amount);
        emit Transfer(_from, _to, _amount);
    }

    //returns balance of an address
    function balanceOf(address _owner) public override view returns (uint256 balance) {
        return balances[_owner];
    }

    //allows an address to approve another address to spend its tokens
    function approve(address _spender, uint256 _amount) public override returns (bool success) {
        // To change the approve amount you first have to reduce the addresses`
        //  allowance to zero by calling `approve(_spender,0)` if it is not
        //  already 0 to mitigate the race condition described here:
        //  https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
        require((_amount == 0) || (allowed[msg.sender][_spender] == 0));
        allowed[msg.sender][_spender] = _amount;
        emit Approval(msg.sender, _spender, _amount);
        return true;
    }
    
    //sends the approve function but with a data argument
    function approveAndCall(address _spender, uint256 _value, bytes memory _extraData) public  returns (bool success) {
        tokenRecipient spender = tokenRecipient(_spender);
        if (approve(_spender, _value)) {
            spender.receiveApproval(msg.sender, _value, address(this), _extraData);
            return true;
        }
    }
    
   /**
   * @dev Returns the token decimals.
   */
  function decimals() external view override returns (uint8) {
    return _decimals;
  }



    //returns the allowance an address has granted a spender
    function allowance(address _owner, address _spender
    ) public view override returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }
    
    //allows an owner to whitelist a dapp so it can burn tokens
    function _whiteListDapp(address _dappAddress) public onlyOwner returns(bool){
        whitelistedDapps[_dappAddress]=true;
        return true;
    }
    
    //allows an owner to blacklist a dapp so it can stop burn tokens
    function _blackListDapp(address _dappAddress) public onlyOwner returns(bool){
         whitelistedDapps[_dappAddress]=false;
         return false;
    }

    //returns current hydro totalSupply
    function totalSupply() public view override returns (uint) {
        return _totalSupply;
    }

    //allows the owner to set the Raindrop
    function setRaindropAddress(address _raindrop) public onlyOwner {
        raindropAddress = _raindrop;
    }
    
    //the main public burn function which uses the internal burn function
    function burn(address _from,uint256 _value) external returns(uint burnAmount) {
    _burn(_from,_value);
    emit dappBurned(msg.sender,_value);
    return(burnAmount);
    }

    function authenticate(uint _value, uint _challenge, uint _partnerId) public  {
        Raindrop raindrop = Raindrop(raindropAddress);
        raindrop.authenticate(msg.sender, _value, _challenge, _partnerId);
        doTransfer(msg.sender, owner, _value);
    }

    //internal burn function which makes sure that only whitelisted addresses can burn
    function _burn(address account, uint256 amount) internal onlyFromDapps(msg.sender) {
    require(account != address(0), "ERC20: burn from the zero address");
    require(amount >= MAX_BURN,'ERC20: Exceeds maximum burn amount');
    balances[account] = balances[account].sub(amount); 
    _totalSupply = _totalSupply.sub(amount);
    emit Transfer(account, address(0), amount);
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"_ratio","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_dapp","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"dappBurned","type":"event"},{"inputs":[],"name":"MAX_BURN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_dappAddress","type":"address"}],"name":"_blackListDapp","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_dappAddress","type":"address"}],"name":"_whiteListDapp","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowed","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":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_challenge","type":"uint256"},{"internalType":"uint256","name":"_partnerId","type":"uint256"}],"name":"authenticate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"burn","outputs":[{"internalType":"uint256","name":"burnAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newBurn","type":"uint256"}],"name":"changeMaxBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"raindropAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_raindrop","type":"address"}],"name":"setRaindropAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelistedDapps","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]

608060405267016345785d8a00006007553480156200001d57600080fd5b50604051620021ea380380620021ea833981810160405260208110156200004357600080fd5b8101908080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600b81526020017f485944524f20544f4b454e00000000000000000000000000000000000000000081525060019080519060200190620000e192919062000267565b506040518060400160405280600581526020017f485944524f000000000000000000000000000000000000000000000000000000815250600290805190602001906200012f92919062000267565b506012600360006101000a81548160ff021916908360ff1602179055506000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806b23e6e54c4381ee57e2bc000081620001a457fe5b04600481905550600454600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806006819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040518082815260200191505060405180910390a35062000316565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002aa57805160ff1916838001178555620002db565b82800160010185558215620002db579182015b82811115620002da578251825591602001919060010190620002bd565b5b509050620002ea9190620002ee565b5090565b6200031391905b808211156200030f576000816000905550600101620002f5565b5090565b90565b611ec480620003266000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806371ee5ca9116100f9578063b1bbd59e11610097578063d28d885211610071578063d28d8852146109c6578063dd62ed3e14610a49578063e749d6a614610ac1578063f2fde38b14610b1d576101a9565b8063b1bbd59e14610829578063b302ea1e14610885578063cae9ca51146108c9576101a9565b806395d89b41116100d357806395d89b411461065b5780639dc29fac146106de578063a9059cbb14610740578063b09f1266146107a6576101a9565b806371ee5ca9146105b1578063831946c7146105f35780638da5cb5b14610611576101a9565b806327e235e3116101665780633eaaf86b116101405780633eaaf86b14610467578063540dbf34146104855780635c658165146104e157806370a0823114610559576101a9565b806327e235e3146103c7578063313ce5671461041f57806332424aa314610443576101a9565b806303960631146101ae578063053011b7146101f857806306fdde031461023a578063095ea7b3146102bd57806318160ddd1461032357806323b872dd14610341575b600080fd5b6101b6610b61565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102386004803603606081101561020e57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050610b87565b005b610242610c8f565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610282578082015181840152602081019050610267565b50505050905090810190601f1680156102af5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610309600480360360408110156102d357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d31565b604051808215151515815260200191505060405180910390f35b61032b610eb6565b6040518082815260200191505060405180910390f35b6103ad6004803603606081101561035757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ec0565b604051808215151515815260200191505060405180910390f35b610409600480360360208110156103dd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610feb565b6040518082815260200191505060405180910390f35b610427611003565b604051808260ff1660ff16815260200191505060405180910390f35b61044b61101a565b604051808260ff1660ff16815260200191505060405180910390f35b61046f61102d565b6040518082815260200191505060405180910390f35b6104c76004803603602081101561049b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611033565b604051808215151515815260200191505060405180910390f35b610543600480360360408110156104f757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110ef565b6040518082815260200191505060405180910390f35b61059b6004803603602081101561056f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611114565b6040518082815260200191505060405180910390f35b6105dd600480360360208110156105c757600080fd5b810190808035906020019092919050505061115d565b6040518082815260200191505060405180910390f35b6105fb6111c7565b6040518082815260200191505060405180910390f35b6106196111cd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106636111f2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106a3578082015181840152602081019050610688565b50505050905090810190601f1680156106d05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61072a600480360360408110156106f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611294565b6040518082815260200191505060405180910390f35b61078c6004803603604081101561075657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112f7565b604051808215151515815260200191505060405180910390f35b6107ae61130e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107ee5780820151818401526020810190506107d3565b50505050905090810190601f16801561081b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61086b6004803603602081101561083f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113ac565b604051808215151515815260200191505060405180910390f35b6108c76004803603602081101561089b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611468565b005b6109ac600480360360608110156108df57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561092657600080fd5b82018360208201111561093857600080fd5b8035906020019184600183028401116401000000008311171561095a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611505565b604051808215151515815260200191505060405180910390f35b6109ce61166d565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a0e5780820151818401526020810190506109f3565b50505050905090810190601f168015610a3b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610aab60048036036040811015610a5f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061170b565b6040518082815260200191505060405180910390f35b610b0360048036036020811015610ad757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611792565b604051808215151515815260200191505060405180910390f35b610b5f60048036036020811015610b3357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117b2565b005b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663c68ae617338686866040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001838152602001828152602001945050505050600060405180830381600087803b158015610c4557600080fd5b505af1158015610c59573d6000803e3d6000fd5b50505050610c89336000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686611903565b50505050565b606060018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d275780601f10610cfc57610100808354040283529160200191610d27565b820191906000526020600020905b815481529060010190602001808311610d0a57829003601f168201915b5050505050905090565b600080821480610dbd57506000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b610dc657600080fd5b81600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600454905090565b600081600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610f4b57600080fd5b81600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550610fe0848484611903565b600190509392505050565b60086020528060005260406000206000915090505481565b6000600360009054906101000a900460ff16905090565b600360009054906101000a900460ff1681565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461108e57600080fd5b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060009050919050565b6009602052816000526040600020602052806000526040600020600091509150505481565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111b857600080fd5b81600781905550819050919050565b60075481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060028054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561128a5780601f1061125f5761010080835404028352916020019161128a565b820191906000526020600020905b81548152906001019060200180831161126d57829003601f168201915b5050505050905090565b60006112a08383611b55565b3373ffffffffffffffffffffffffffffffffffffffff167fe3833cad7d2b62a57b31546765698888596a7671d178a6177e7235131b84fed0836040518082815260200191505060405180910390a280905092915050565b6000611304338484611903565b6001905092915050565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113a45780601f10611379576101008083540402835291602001916113a4565b820191906000526020600020905b81548152906001019060200180831161138757829003601f168201915b505050505081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461140757600080fd5b6001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114c157600080fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808490506115158585610d31565b15611664578073ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338630876040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156115f35780820151818401526020810190506115d8565b50505050905090810190601f1680156116205780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561164257600080fd5b505af1158015611656573d6000803e3d6000fd5b505050506001915050611666565b505b9392505050565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117035780601f106116d857610100808354040283529160200191611703565b820191906000526020600020905b8154815290600101906020018083116116e657829003601f168201915b505050505081565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461180b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561184557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561196c57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61197557600080fd5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156119c157600080fd5b611a1381600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e1890919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611aa881600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e2f90919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b3360011515600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611c1c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f487964726f3a204275726e206572726f7200000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ca2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611e4c6021913960400191505060405180910390fd5b600754821015611cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611e6d6022913960400191505060405180910390fd5b611d4f82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e1890919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611da782600454611e1890919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3505050565b600082821115611e2457fe5b818303905092915050565b600080828401905083811015611e4157fe5b809150509291505056fe45524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a2045786365656473206d6178696d756d206275726e20616d6f756e74a2646970667358221220d4554ae75f783734c3d98e671bc13db0929ad046dc1547dc46fe962901acf05a64736f6c634300060000330000000000000000000000000000000000000000000000000000000000000064

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101a95760003560e01c806371ee5ca9116100f9578063b1bbd59e11610097578063d28d885211610071578063d28d8852146109c6578063dd62ed3e14610a49578063e749d6a614610ac1578063f2fde38b14610b1d576101a9565b8063b1bbd59e14610829578063b302ea1e14610885578063cae9ca51146108c9576101a9565b806395d89b41116100d357806395d89b411461065b5780639dc29fac146106de578063a9059cbb14610740578063b09f1266146107a6576101a9565b806371ee5ca9146105b1578063831946c7146105f35780638da5cb5b14610611576101a9565b806327e235e3116101665780633eaaf86b116101405780633eaaf86b14610467578063540dbf34146104855780635c658165146104e157806370a0823114610559576101a9565b806327e235e3146103c7578063313ce5671461041f57806332424aa314610443576101a9565b806303960631146101ae578063053011b7146101f857806306fdde031461023a578063095ea7b3146102bd57806318160ddd1461032357806323b872dd14610341575b600080fd5b6101b6610b61565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102386004803603606081101561020e57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050610b87565b005b610242610c8f565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610282578082015181840152602081019050610267565b50505050905090810190601f1680156102af5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610309600480360360408110156102d357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d31565b604051808215151515815260200191505060405180910390f35b61032b610eb6565b6040518082815260200191505060405180910390f35b6103ad6004803603606081101561035757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ec0565b604051808215151515815260200191505060405180910390f35b610409600480360360208110156103dd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610feb565b6040518082815260200191505060405180910390f35b610427611003565b604051808260ff1660ff16815260200191505060405180910390f35b61044b61101a565b604051808260ff1660ff16815260200191505060405180910390f35b61046f61102d565b6040518082815260200191505060405180910390f35b6104c76004803603602081101561049b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611033565b604051808215151515815260200191505060405180910390f35b610543600480360360408110156104f757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110ef565b6040518082815260200191505060405180910390f35b61059b6004803603602081101561056f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611114565b6040518082815260200191505060405180910390f35b6105dd600480360360208110156105c757600080fd5b810190808035906020019092919050505061115d565b6040518082815260200191505060405180910390f35b6105fb6111c7565b6040518082815260200191505060405180910390f35b6106196111cd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106636111f2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106a3578082015181840152602081019050610688565b50505050905090810190601f1680156106d05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61072a600480360360408110156106f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611294565b6040518082815260200191505060405180910390f35b61078c6004803603604081101561075657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112f7565b604051808215151515815260200191505060405180910390f35b6107ae61130e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107ee5780820151818401526020810190506107d3565b50505050905090810190601f16801561081b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61086b6004803603602081101561083f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113ac565b604051808215151515815260200191505060405180910390f35b6108c76004803603602081101561089b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611468565b005b6109ac600480360360608110156108df57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561092657600080fd5b82018360208201111561093857600080fd5b8035906020019184600183028401116401000000008311171561095a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611505565b604051808215151515815260200191505060405180910390f35b6109ce61166d565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a0e5780820151818401526020810190506109f3565b50505050905090810190601f168015610a3b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610aab60048036036040811015610a5f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061170b565b6040518082815260200191505060405180910390f35b610b0360048036036020811015610ad757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611792565b604051808215151515815260200191505060405180910390f35b610b5f60048036036020811015610b3357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117b2565b005b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663c68ae617338686866040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001838152602001828152602001945050505050600060405180830381600087803b158015610c4557600080fd5b505af1158015610c59573d6000803e3d6000fd5b50505050610c89336000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686611903565b50505050565b606060018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d275780601f10610cfc57610100808354040283529160200191610d27565b820191906000526020600020905b815481529060010190602001808311610d0a57829003601f168201915b5050505050905090565b600080821480610dbd57506000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b610dc657600080fd5b81600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600454905090565b600081600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610f4b57600080fd5b81600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550610fe0848484611903565b600190509392505050565b60086020528060005260406000206000915090505481565b6000600360009054906101000a900460ff16905090565b600360009054906101000a900460ff1681565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461108e57600080fd5b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060009050919050565b6009602052816000526040600020602052806000526040600020600091509150505481565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111b857600080fd5b81600781905550819050919050565b60075481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060028054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561128a5780601f1061125f5761010080835404028352916020019161128a565b820191906000526020600020905b81548152906001019060200180831161126d57829003601f168201915b5050505050905090565b60006112a08383611b55565b3373ffffffffffffffffffffffffffffffffffffffff167fe3833cad7d2b62a57b31546765698888596a7671d178a6177e7235131b84fed0836040518082815260200191505060405180910390a280905092915050565b6000611304338484611903565b6001905092915050565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113a45780601f10611379576101008083540402835291602001916113a4565b820191906000526020600020905b81548152906001019060200180831161138757829003601f168201915b505050505081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461140757600080fd5b6001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114c157600080fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808490506115158585610d31565b15611664578073ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338630876040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156115f35780820151818401526020810190506115d8565b50505050905090810190601f1680156116205780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561164257600080fd5b505af1158015611656573d6000803e3d6000fd5b505050506001915050611666565b505b9392505050565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117035780601f106116d857610100808354040283529160200191611703565b820191906000526020600020905b8154815290600101906020018083116116e657829003601f168201915b505050505081565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461180b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561184557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561196c57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61197557600080fd5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156119c157600080fd5b611a1381600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e1890919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611aa881600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e2f90919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b3360011515600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611c1c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f487964726f3a204275726e206572726f7200000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ca2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611e4c6021913960400191505060405180910390fd5b600754821015611cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611e6d6022913960400191505060405180910390fd5b611d4f82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e1890919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611da782600454611e1890919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3505050565b600082821115611e2457fe5b818303905092915050565b600080828401905083811015611e4157fe5b809150509291505056fe45524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a2045786365656473206d6178696d756d206275726e20616d6f756e74a2646970667358221220d4554ae75f783734c3d98e671bc13db0929ad046dc1547dc46fe962901acf05a64736f6c63430006000033

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

0000000000000000000000000000000000000000000000000000000000000064

-----Decoded View---------------
Arg [0] : _ratio (uint256): 100

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000064


Deployed Bytecode Sourcemap

5318:6680:0:-:0;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5318:6680:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5566:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11248:265;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11248:265:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7276:86;;;:::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;7276:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8791:607;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8791:607:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10716:97;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7468:348;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7468:348:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5694:44;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5694:44:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9879:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5452:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5535:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10511:156;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10511:156:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5819:64;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5819:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8587:124;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8587:124:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7882:140;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7882:140:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5623:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;176:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7131:90;;;:::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;7131:90:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11062:178;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11062:178:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6913:161;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6913:161:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5424:21;;;:::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;5424:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10277:152;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10277:152:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10865:110;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10865:110:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;9469:346;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9469:346:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;9469:346:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9469:346:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;9469:346:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;9469:346:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5398:19;;;:::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;5398:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10041:159;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10041:159:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5890:46;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5890:46:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;836:192;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;836:192:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;5566:30;;;;;;;;;;;;;:::o;11248:265::-;11336:17;11365:15;;;;;;;;;;;11336:45;;11392:8;:21;;;11414:10;11426:6;11434:10;11446;11392:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11392:65:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11392:65:0;;;;11468:37;11479:10;11491:5;;;;;;;;;;;11498:6;11468:10;:37::i;:::-;11248:265;;;;:::o;7276:86::-;7322:13;7351:5;7344:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7276:86;:::o;8791:607::-;8868:12;9220:1;9209:7;:12;9208:54;;;;9260:1;9227:7;:19;9235:10;9227:19;;;;;;;;;;;;;;;:29;9247:8;9227:29;;;;;;;;;;;;;;;;:34;9208:54;9200:63;;;;;;9306:7;9274;:19;9282:10;9274:19;;;;;;;;;;;;;;;:29;9294:8;9274:29;;;;;;;;;;;;;;;:39;;;;9350:8;9329:39;;9338:10;9329:39;;;9360:7;9329:39;;;;;;;;;;;;;;;;;;9386:4;9379:11;;8791:607;;;;:::o;10716:97::-;10769:4;10793:12;;10786:19;;10716:97;:::o;7468:348::-;7566:12;7688:7;7658;:14;7666:5;7658:14;;;;;;;;;;;;;;;:26;7673:10;7658:26;;;;;;;;;;;;;;;;:37;;7650:46;;;;;;7737:7;7707;:14;7715:5;7707:14;;;;;;;;;;;;;;;:26;7722:10;7707:26;;;;;;;;;;;;;;;;:37;;;;;;;;;;;7755:31;7766:5;7773:3;7778:7;7755:10;:31::i;:::-;7804:4;7797:11;;7468:348;;;;;:::o;5694:44::-;;;;;;;;;;;;;;;;;:::o;9879:88::-;9931:5;9952:9;;;;;;;;;;;9945:16;;9879:88;:::o;5452:22::-;;;;;;;;;;;;;:::o;5535:24::-;;;;:::o;10511:156::-;10582:4;633:5;;;;;;;;;;;619:19;;:10;:19;;;611:28;;;;;;10630:5:::1;10599:16;:30;10616:12;10599:30;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;10654:5;10647:12;;10511:156:::0;;;:::o;5819:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8587:124::-;8652:15;8687:8;:16;8696:6;8687:16;;;;;;;;;;;;;;;;8680:23;;8587:124;;;:::o;7882:140::-;7948:7;633:5;;;;;;;;;;;619:19;;:10;:19;;;611:28;;;;;;7978:8:::1;7969;:17;;;;8005:8;7997:17;;7882:140:::0;;;:::o;5623:43::-;;;;:::o;176:20::-;;;;;;;;;;;;;:::o;7131:90::-;7179:13;7208:7;7201:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7131:90;:::o;11062:178::-;11123:15;11147:19;11153:5;11159:6;11147:5;:19::i;:::-;11189:10;11178:29;;;11200:6;11178:29;;;;;;;;;;;;;;;;;;11221:10;11214:18;;11062:178;;;;:::o;6913:161::-;6987:12;7012:36;7023:10;7035:3;7040:7;7012:10;:36::i;:::-;7066:4;7059:11;;6913:161;;;;:::o;5424:21::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10277:152::-;10348:4;633:5;;;;;;;;;;;619:19;;:10;:19;;;611:28;;;;;;10395:4:::1;10364:16;:30;10381:12;10364:30;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;10417:4;10410:11;;10277:152:::0;;;:::o;10865:110::-;633:5;;;;;;;;;;;619:19;;:10;:19;;;611:28;;;;;;10958:9:::1;10940:15;;:27;;;;;;;;;;;;;;;;;;10865:110:::0;:::o;9469:346::-;9569:12;9594:22;9634:8;9594:49;;9658:25;9666:8;9676:6;9658:7;:25::i;:::-;9654:154;;;9700:7;:23;;;9724:10;9736:6;9752:4;9759:10;9700:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;9700:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9700:70:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9700:70:0;;;;9792:4;9785:11;;;;;9654:154;9469:346;;;;;;;:::o;5398:19::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10041:159::-;10130:17;10167:7;:15;10175:6;10167:15;;;;;;;;;;;;;;;:25;10183:8;10167:25;;;;;;;;;;;;;;;;10160:32;;10041:159;;;;:::o;5890:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;836:192::-;633:5;;;;;;;;;;;619:19;;:10;:19;;;611:28;;;;;;937:1:::1;917:22;;:8;:22;;;;909:31;;;::::0;::::1;;984:8;956:37;;977:5;::::0;::::1;;;;;;;;;956:37;;;;;;;;;;;;1012:8;1004:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;836:192:::0;:::o;8121:421::-;8303:1;8288:17;;:3;:17;;;;8287:45;;;;;8326:4;8311:20;;:3;:20;;;;8287:45;8279:54;;;;;;8363:8;:15;8372:5;8363:15;;;;;;;;;;;;;;;;8352:7;:26;;8344:35;;;;;;8408:28;8428:7;8408:8;:15;8417:5;8408:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;8390:8;:15;8399:5;8390:15;;;;;;;;;;;;;;;:46;;;;8463:26;8481:7;8463:8;:13;8472:3;8463:13;;;;;;;;;;;;;;;;:17;;:26;;;;:::i;:::-;8447:8;:13;8456:3;8447:13;;;;;;;;;;;;;;;:42;;;;8521:3;8505:29;;8514:5;8505:29;;;8526:7;8505:29;;;;;;;;;;;;;;;;;;8121:421;;;:::o;11609:386::-;11680:10;6118:4;6088:34;;:16;:28;6105:10;6088:28;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;6080:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11726:1:::1;11707:21;;:7;:21;;;;11699:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11791:8;;11781:6;:18;;11773:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11864:29;11886:6;11864:8;:17;11873:7;11864:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;11844:8;:17;11853:7;11844:17;;;;;;;;;;;;;;;:49;;;;11916:24;11933:6;11916:12;;:16;;:24;;;;:::i;:::-;11901:12;:39;;;;11978:1;11952:37;;11961:7;11952:37;;;11982:6;11952:37;;;;;;;;;;;;;;;;;;11609:386:::0;;;:::o;1876:113::-;1934:7;1962:1;1957;:6;;1950:14;;;;1982:1;1978;:5;1971:12;;1876:113;;;;:::o;2056:133::-;2114:7;2130:9;2146:1;2142;:5;2130:17;;2166:1;2161;:6;;2154:14;;;;2182:1;2175:8;;;2056:133;;;;:::o

Swarm Source

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