ETH Price: $2,088.63 (-11.44%)

Contract

0xA3C230E94D733b2f96503C9452C95cF9E74910E0
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

Advanced mode:
Parent Transaction Hash Block
From
To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Moongang

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-01-21
*/

// Author : shift

pragma solidity ^0.4.18;

//--------- OpenZeppelin's Safe Math
//Source : https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/math/SafeMath.sol
/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
  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;
  }

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a / b;
    return c;
  }

  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}
//-----------------------------------------------------

// ERC20 Interface: https://github.com/ethereum/EIPs/issues/20
contract ERC20 {
  function transfer(address _to, uint256 _value) public returns (bool success);
  function balanceOf(address _owner) public constant returns (uint256 balance);
}

/*
  This contract stores twice every key value in order to be able to redistribute funds
  when the bonus tokens are received (which is typically X months after the initial buy).
*/

contract Moongang {

  modifier onlyOwner {
    require(msg.sender == owner);
    _;
  }

  modifier minAmountReached {
    //In reality, the correct amount is the amount + 1%
    require(this.balance >= SafeMath.div(SafeMath.mul(min_amount, 100), 99));
    _;
  }

  modifier underMaxAmount {
    require(max_amount == 0 || this.balance <= max_amount);
    _;
  }

  //Constants of the contract
  uint256 constant FEE = 100;    //1% fee
  //SafeMath.div(20, 3) = 6
  uint256 constant FEE_DEV = 6; //15% on the 1% fee
  uint256 constant FEE_AUDIT = 12; //7.5% on the 1% fee
  address public owner;
  address constant public developer = 0xEE06BdDafFA56a303718DE53A5bc347EfbE4C68f;
  address constant public auditor = 0x63F7547Ac277ea0B52A0B060Be6af8C5904953aa;
  uint256 public individual_cap;

  //Variables subject to changes
  uint256 public max_amount;  //0 means there is no limit
  uint256 public min_amount;

  //Store the amount of ETH deposited by each account.
  mapping (address => uint256) public balances;
  mapping (address => uint256) public balances_bonus;
  //whitelist
  mapping (address => bool) public whitelist;
  // Track whether the contract has bought the tokens yet.
  bool public bought_tokens;
  // Record ETH value of tokens currently held by contract.
  uint256 public contract_eth_value;
  uint256 public contract_eth_value_bonus;
  //Set by the owner in order to allow the withdrawal of bonus tokens.
  bool public bonus_received;
  //The address of the contact.
  address public sale;
  //Token address
  ERC20 public token;
  //Records the fees that have to be sent
  uint256 fees;
  //Set by the owner. Allows people to refund totally or partially.
  bool public allow_refunds;
  //The reduction of the allocation in % | example : 40 -> 40% reduction
  uint256 public percent_reduction;
  //flag controlled by owner to enable/disable whitelists
  bool public whitelist_enabled;

  //Internal functions
  function Moongang(uint256 max, uint256 min, uint256 cap) {
    /*
    Constructor
    */
    owner = msg.sender;
    max_amount = SafeMath.div(SafeMath.mul(max, 100), 99);
    min_amount = min;
    individual_cap = cap;
    //enable whitelist by default
    whitelist_enabled = true;
  }

  //Functions for the owner

  // Buy the tokens. Sends ETH to the presale wallet and records the ETH amount held in the contract.
  function buy_the_tokens() onlyOwner minAmountReached underMaxAmount {
    //Avoids burning the funds
    require(!bought_tokens && sale != 0x0);
    //Record that the contract has bought the tokens.
    bought_tokens = true;
    //Sends the fee before so the contract_eth_value contains the correct balance
    uint256 dev_fee = SafeMath.div(fees, FEE_DEV);
    uint256 audit_fee = SafeMath.div(fees, FEE_AUDIT);
    owner.transfer(SafeMath.sub(SafeMath.sub(fees, dev_fee), audit_fee));
    developer.transfer(dev_fee);
    auditor.transfer(audit_fee);
    //Record the amount of ETH sent as the contract's current value.
    contract_eth_value = this.balance;
    contract_eth_value_bonus = this.balance;
    // Transfer all the funds to the crowdsale address.
    sale.transfer(contract_eth_value);
  }

  function force_refund(address _to_refund) onlyOwner {
    require(!bought_tokens);
    uint256 eth_to_withdraw = SafeMath.div(SafeMath.mul(balances[_to_refund], 100), 99);
    balances[_to_refund] = 0;
    balances_bonus[_to_refund] = 0;
    fees = SafeMath.sub(fees, SafeMath.div(eth_to_withdraw, FEE));
    _to_refund.transfer(eth_to_withdraw);
  }

  function force_partial_refund(address _to_refund) onlyOwner {
    require(percent_reduction > 0);
    //Amount to refund is the amount minus the X% of the reduction
    //amount_to_refund = balance*X
    uint256 basic_amount = SafeMath.div(SafeMath.mul(balances[_to_refund], percent_reduction), 100);
    uint256 eth_to_withdraw = basic_amount;
    if (!bought_tokens) {
      //We have to take in account the partial refund of the fee too if the tokens weren't bought yet
      eth_to_withdraw = SafeMath.div(SafeMath.mul(basic_amount, 100), 99);
      fees = SafeMath.sub(fees, SafeMath.div(eth_to_withdraw, FEE));
    }
    balances[_to_refund] = SafeMath.sub(balances[_to_refund], eth_to_withdraw);
    balances_bonus[_to_refund] = balances[_to_refund];
    _to_refund.transfer(eth_to_withdraw);
  }

  function whitelist_addys(address[] _addys) onlyOwner {
    for (uint256 i = 0; i < _addys.length; i++) {
      whitelist[_addys[i]] = true;
    }
  }

  function blacklist_addys(address[] _addys) onlyOwner {
    for (uint256 i = 0; i < _addys.length; i++) {
      whitelist[_addys[i]] = false;
    }
  }

  function set_sale_address(address _sale) onlyOwner {
    //Avoid mistake of putting 0x0 and can't change twice the sale address
    require(_sale != 0x0);
    sale = _sale;
  }

  function set_token_address(address _token) onlyOwner {
    require(_token != 0x0);
    token = ERC20(_token);
  }

  function set_bonus_received(bool _boolean) onlyOwner {
    bonus_received = _boolean;
  }

  function set_allow_refunds(bool _boolean) onlyOwner {
    /*
    In case, for some reasons, the project refunds the money
    */
    allow_refunds = _boolean;
  }

  function set_percent_reduction(uint256 _reduction) onlyOwner {
    require(_reduction <= 100);
    percent_reduction = _reduction;
  }

  function set_whitelist_enabled(bool _boolean) onlyOwner {
    whitelist_enabled = _boolean;
  }

  function change_individual_cap(uint256 _cap) onlyOwner {
    individual_cap = _cap;
  }

  function change_owner(address new_owner) onlyOwner {
    require(new_owner != 0x0);
    owner = new_owner;
  }

  function change_max_amount(uint256 _amount) onlyOwner {
      //ATTENTION! The new amount should be in wei
      //Use https://etherconverter.online/
      max_amount = SafeMath.div(SafeMath.mul(_amount, 100), 99);
  }

  function change_min_amount(uint256 _amount) onlyOwner {
      //ATTENTION! The new amount should be in wei
      //Use https://etherconverter.online/
      min_amount = _amount;
  }

  //Public functions

  // Allows any user to withdraw his tokens.
  function withdraw() {
    // Disallow withdraw if tokens haven't been bought yet.
    require(bought_tokens);
    uint256 contract_token_balance = token.balanceOf(address(this));
    // Disallow token withdrawals if there are no tokens to withdraw.
    require(contract_token_balance != 0);
    uint256 tokens_to_withdraw = SafeMath.div(SafeMath.mul(balances[msg.sender], contract_token_balance), contract_eth_value);
    // Update the value of tokens currently held by the contract.
    contract_eth_value = SafeMath.sub(contract_eth_value, balances[msg.sender]);
    // Update the user's balance prior to sending to prevent recursive call.
    balances[msg.sender] = 0;
    // Send the funds.  Throws on failure to prevent loss of funds.
    require(token.transfer(msg.sender, tokens_to_withdraw));
  }

  function withdraw_bonus() {
  /*
    Special function to withdraw the bonus tokens after the 6 months lockup.
    bonus_received has to be set to true.
  */
    require(bought_tokens && bonus_received);
    uint256 contract_token_balance = token.balanceOf(address(this));
    require(contract_token_balance != 0);
    uint256 tokens_to_withdraw = SafeMath.div(SafeMath.mul(balances_bonus[msg.sender], contract_token_balance), contract_eth_value_bonus);
    contract_eth_value_bonus = SafeMath.sub(contract_eth_value_bonus, balances_bonus[msg.sender]);
    balances_bonus[msg.sender] = 0;
    require(token.transfer(msg.sender, tokens_to_withdraw));
  }

  // Allows any user to get his eth refunded before the purchase is made.
  function refund() {
    require(!bought_tokens && allow_refunds && percent_reduction == 0);
    //balance of contributor = contribution * 0.99
    //so contribution = balance/0.99
    uint256 eth_to_withdraw = SafeMath.div(SafeMath.mul(balances[msg.sender], 100), 99);
    // Update the user's balance prior to sending ETH to prevent recursive call.
    balances[msg.sender] = 0;
    //Updates the balances_bonus too
    balances_bonus[msg.sender] = 0;
    //Updates the fees variable by substracting the refunded fee
    fees = SafeMath.sub(fees, SafeMath.div(eth_to_withdraw, FEE));
    // Return the user's funds.  Throws on failure to prevent loss of funds.
    msg.sender.transfer(eth_to_withdraw);
  }

  //Allows any user to get a part of his ETH refunded, in proportion
  //to the % reduced of the allocation
  function partial_refund() {
    require(allow_refunds && percent_reduction > 0);
    //Amount to refund is the amount minus the X% of the reduction
    //amount_to_refund = balance*X
    uint256 basic_amount = SafeMath.div(SafeMath.mul(balances[msg.sender], percent_reduction), 100);
    uint256 eth_to_withdraw = basic_amount;
    if (!bought_tokens) {
      //We have to take in account the partial refund of the fee too if the tokens weren't bought yet
      eth_to_withdraw = SafeMath.div(SafeMath.mul(basic_amount, 100), 99);
      fees = SafeMath.sub(fees, SafeMath.div(eth_to_withdraw, FEE));
    }
    balances[msg.sender] = SafeMath.sub(balances[msg.sender], eth_to_withdraw);
    balances_bonus[msg.sender] = balances[msg.sender];
    msg.sender.transfer(eth_to_withdraw);
  }

  // Default function.  Called when a user sends ETH to the contract.
  function () payable underMaxAmount {
    require(!bought_tokens);
    if (whitelist_enabled) {
      require(whitelist[msg.sender]);
    }
    //1% fee is taken on the ETH
    uint256 fee = SafeMath.div(msg.value, FEE);
    fees = SafeMath.add(fees, fee);
    //Updates both of the balances
    balances[msg.sender] = SafeMath.add(balances[msg.sender], SafeMath.sub(msg.value, fee));
    //Checks if the individual cap is respected
    //If it's not, changes are reverted
    require(individual_cap == 0 || balances[msg.sender] <= individual_cap);
    balances_bonus[msg.sender] = balances[msg.sender];
  }
}

Contract Security Audit

Contract ABI

API
[{"constant":false,"inputs":[],"name":"withdraw_bonus","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_boolean","type":"bool"}],"name":"set_whitelist_enabled","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"individual_cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to_refund","type":"address"}],"name":"force_refund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"max_amount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances_bonus","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"allow_refunds","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"new_owner","type":"address"}],"name":"change_owner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"buy_the_tokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_cap","type":"uint256"}],"name":"change_individual_cap","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"change_min_amount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_boolean","type":"bool"}],"name":"set_bonus_received","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"change_max_amount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"auditor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"set_token_address","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addys","type":"address[]"}],"name":"whitelist_addys","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"bought_tokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_reduction","type":"uint256"}],"name":"set_percent_reduction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"partial_refund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sale","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to_refund","type":"address"}],"name":"force_partial_refund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"min_amount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"whitelist_enabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bonus_received","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"contract_eth_value_bonus","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"percent_reduction","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"contract_eth_value","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"developer","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addys","type":"address[]"}],"name":"blacklist_addys","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_boolean","type":"bool"}],"name":"set_allow_refunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_sale","type":"address"}],"name":"set_sale_address","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"max","type":"uint256"},{"name":"min","type":"uint256"},{"name":"cap","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}]

606060405234156200001057600080fd5b6040516060806200274683398101604052808051906020019091908051906020019091908051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000c0620000a4846064620000f8640100000000026200257c176401000000009004565b6063620001376401000000000262000b97176401000000009004565b60028190555081600381905550806001819055506001600f60006101000a81548160ff02191690831515021790555050505062000153565b60008060008414156200010f576000915062000130565b82840290508284828115156200012157fe5b041415156200012c57fe5b8091505b5092915050565b60008082848115156200014657fe5b0490508091505092915050565b6125e380620001636000396000f3006060604052600436106101cd576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630107a8df1461042457806310d2f2e514610439578063111485ef1461045e57806318af7021146104875780631a34fe81146104c05780631e4532f1146104e9578063223db31514610536578063253c8bd41461056357806327e235e31461059c57806328b8e9cf146105e957806329d98a7b146105fe5780632fbfe95114610621578063346f2eb714610644578063398f2648146106695780633ccfd60b1461068c5780633ec045a6146106a157806342263aa2146106f657806343abab261461072f578063590e1ae3146107895780636360fc3f1461079e578063678f7033146107cb578063689f2456146107ee5780636ad1fe02146108035780637036f9d91461085857806372a85604146108915780638a8b7e02146108ba5780638d521149146108e75780638da5cb5b146109145780639b19251a14610969578063a8644cd5146109ba578063c34dd141146109e3578063c42bb1e414610a0c578063ca4b208b14610a35578063d81494ba14610a8a578063ebc56eec14610ae4578063f2bee03d14610b09578063fc0c546a14610b42575b60008060025414806101f857506002543073ffffffffffffffffffffffffffffffffffffffff163111155b151561020357600080fd5b600760009054906101000a900460ff1615151561021f57600080fd5b600f60009054906101000a900460ff161561028d57600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561028c57600080fd5b5b610298346064610b97565b90506102a6600c5482610bb2565b600c819055506102fe600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546102f93484610bd0565b610bb2565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060015414806103935750600154600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411155b151561039e57600080fd5b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050005b341561042f57600080fd5b610437610be9565b005b341561044457600080fd5b61045c60048080351515906020019091905050610ef4565b005b341561046957600080fd5b610471610f6c565b6040518082815260200191505060405180910390f35b341561049257600080fd5b6104be600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610f72565b005b34156104cb57600080fd5b6104d361112b565b6040518082815260200191505060405180910390f35b34156104f457600080fd5b610520600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611131565b6040518082815260200191505060405180910390f35b341561054157600080fd5b610549611149565b604051808215151515815260200191505060405180910390f35b341561056e57600080fd5b61059a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061115c565b005b34156105a757600080fd5b6105d3600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611220565b6040518082815260200191505060405180910390f35b34156105f457600080fd5b6105fc611238565b005b341561060957600080fd5b61061f6004808035906020019091905050611562565b005b341561062c57600080fd5b61064260048080359060200190919050506115c7565b005b341561064f57600080fd5b6106676004808035151590602001909190505061162c565b005b341561067457600080fd5b61068a60048080359060200190919050506116a4565b005b341561069757600080fd5b61069f61171d565b005b34156106ac57600080fd5b6106b4611a10565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561070157600080fd5b61072d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611a28565b005b341561073a57600080fd5b610787600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050611aed565b005b341561079457600080fd5b61079c611bd8565b005b34156107a957600080fd5b6107b1611d5b565b604051808215151515815260200191505060405180910390f35b34156107d657600080fd5b6107ec6004808035906020019091905050611d6e565b005b34156107f957600080fd5b610801611de3565b005b341561080e57600080fd5b610816612006565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561086357600080fd5b61088f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061202c565b005b341561089c57600080fd5b6108a4612293565b6040518082815260200191505060405180910390f35b34156108c557600080fd5b6108cd612299565b604051808215151515815260200191505060405180910390f35b34156108f257600080fd5b6108fa6122ac565b604051808215151515815260200191505060405180910390f35b341561091f57600080fd5b6109276122bf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561097457600080fd5b6109a0600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506122e4565b604051808215151515815260200191505060405180910390f35b34156109c557600080fd5b6109cd612304565b6040518082815260200191505060405180910390f35b34156109ee57600080fd5b6109f661230a565b6040518082815260200191505060405180910390f35b3415610a1757600080fd5b610a1f612310565b6040518082815260200191505060405180910390f35b3415610a4057600080fd5b610a48612316565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a9557600080fd5b610ae260048080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190505061232e565b005b3415610aef57600080fd5b610b0760048080351515906020019091905050612419565b005b3415610b1457600080fd5b610b40600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612491565b005b3415610b4d57600080fd5b610b55612556565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000808284811515610ba557fe5b0490508091505092915050565b6000808284019050838110151515610bc657fe5b8091505092915050565b6000828211151515610bde57fe5b818303905092915050565b600080600760009054906101000a900460ff168015610c145750600a60009054906101000a900460ff165b1515610c1f57600080fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515610ce457600080fd5b6102c65a03f11515610cf557600080fd5b50505060405180519050915060008214151515610d1157600080fd5b610d65610d5d600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461257c565b600954610b97565b9050610db2600954600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bd0565b6009819055506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610eca57600080fd5b6102c65a03f11515610edb57600080fd5b505050604051805190501515610ef057600080fd5b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f4f57600080fd5b80600f60006101000a81548160ff02191690831515021790555050565b60015481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fcf57600080fd5b600760009054906101000a900460ff16151515610feb57600080fd5b61103f611038600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054606461257c565b6063610b97565b90506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110e1600c546110dc836064610b97565b610bd0565b600c819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561112757600080fd5b5050565b60025481565b60056020528060005260406000206000915090505481565b600d60009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111b757600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156111dd57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60046020528060005260406000206000915090505481565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561129657600080fd5b6112ad6112a6600354606461257c565b6063610b97565b3073ffffffffffffffffffffffffffffffffffffffff1631101515156112d257600080fd5b600060025414806112fc57506002543073ffffffffffffffffffffffffffffffffffffffff163111155b151561130757600080fd5b600760009054906101000a900460ff1615801561135d57506000600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b151561136857600080fd5b6001600760006101000a81548160ff021916908315150217905550611390600c546006610b97565b915061139f600c54600c610b97565b90506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6113f16113eb600c5486610bd0565b84610bd0565b9081150290604051600060405180830381858888f19350505050151561141657600080fd5b73ee06bddaffa56a303718de53a5bc347efbe4c68f73ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050151561146a57600080fd5b7363f7547ac277ea0b52a0b060be6af8c5904953aa73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156114be57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16316008819055503073ffffffffffffffffffffffffffffffffffffffff1631600981905550600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6008549081150290604051600060405180830381858888f19350505050151561155e57600080fd5b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115bd57600080fd5b8060018190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561162257600080fd5b8060038190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561168757600080fd5b80600a60006101000a81548160ff02191690831515021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116ff57600080fd5b61171461170d82606461257c565b6063610b97565b60028190555050565b600080600760009054906101000a900460ff16151561173b57600080fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561180057600080fd5b6102c65a03f1151561181157600080fd5b5050506040518051905091506000821415151561182d57600080fd5b611881611879600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461257c565b600854610b97565b90506118ce600854600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bd0565b6008819055506000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156119e657600080fd5b6102c65a03f115156119f757600080fd5b505050604051805190501515611a0c57600080fd5b5050565b7363f7547ac277ea0b52a0b060be6af8c5904953aa81565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a8357600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611aa957600080fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b4a57600080fd5b600090505b8151811015611bd4576001600660008484815181101515611b6c57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050611b4f565b5050565b6000600760009054906101000a900460ff16158015611c035750600d60009054906101000a900460ff165b8015611c1157506000600e54145b1515611c1c57600080fd5b611c70611c69600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054606461257c565b6063610b97565b90506000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d12600c54611d0d836064610b97565b610bd0565b600c819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515611d5857600080fd5b50565b600760009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611dc957600080fd5b60648111151515611dd957600080fd5b80600e8190555050565b600080600d60009054906101000a900460ff168015611e0457506000600e54115b1515611e0f57600080fd5b611e64611e5d600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600e5461257c565b6064610b97565b9150819050600760009054906101000a900460ff161515611eb357611e94611e8d83606461257c565b6063610b97565b9050611eac600c54611ea7836064610b97565b610bd0565b600c819055505b611efc600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482610bd0565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561200257600080fd5b5050565b600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561208a57600080fd5b6000600e5411151561209b57600080fd5b6120f06120e9600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600e5461257c565b6064610b97565b9150819050600760009054906101000a900460ff16151561213f5761212061211983606461257c565b6063610b97565b9050612138600c54612133836064610b97565b610bd0565b600c819055505b612188600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482610bd0565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561228e57600080fd5b505050565b60035481565b600f60009054906101000a900460ff1681565b600a60009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60066020528060005260406000206000915054906101000a900460ff1681565b60095481565b600e5481565b60085481565b73ee06bddaffa56a303718de53a5bc347efbe4c68f81565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561238b57600080fd5b600090505b81518110156124155760006006600084848151811015156123ad57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050612390565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561247457600080fd5b80600d60006101000a81548160ff02191690831515021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156124ec57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561251257600080fd5b80600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600084141561259157600091506125b0565b82840290508284828115156125a257fe5b041415156125ac57fe5b8091505b50929150505600a165627a7a72305820714ad3e0e9ec3a5d8beb82112cf94df12f0355b26e9ffa14fb1e8ba6b5b3cf240029000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6060604052600436106101cd576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630107a8df1461042457806310d2f2e514610439578063111485ef1461045e57806318af7021146104875780631a34fe81146104c05780631e4532f1146104e9578063223db31514610536578063253c8bd41461056357806327e235e31461059c57806328b8e9cf146105e957806329d98a7b146105fe5780632fbfe95114610621578063346f2eb714610644578063398f2648146106695780633ccfd60b1461068c5780633ec045a6146106a157806342263aa2146106f657806343abab261461072f578063590e1ae3146107895780636360fc3f1461079e578063678f7033146107cb578063689f2456146107ee5780636ad1fe02146108035780637036f9d91461085857806372a85604146108915780638a8b7e02146108ba5780638d521149146108e75780638da5cb5b146109145780639b19251a14610969578063a8644cd5146109ba578063c34dd141146109e3578063c42bb1e414610a0c578063ca4b208b14610a35578063d81494ba14610a8a578063ebc56eec14610ae4578063f2bee03d14610b09578063fc0c546a14610b42575b60008060025414806101f857506002543073ffffffffffffffffffffffffffffffffffffffff163111155b151561020357600080fd5b600760009054906101000a900460ff1615151561021f57600080fd5b600f60009054906101000a900460ff161561028d57600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561028c57600080fd5b5b610298346064610b97565b90506102a6600c5482610bb2565b600c819055506102fe600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546102f93484610bd0565b610bb2565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060015414806103935750600154600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411155b151561039e57600080fd5b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050005b341561042f57600080fd5b610437610be9565b005b341561044457600080fd5b61045c60048080351515906020019091905050610ef4565b005b341561046957600080fd5b610471610f6c565b6040518082815260200191505060405180910390f35b341561049257600080fd5b6104be600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610f72565b005b34156104cb57600080fd5b6104d361112b565b6040518082815260200191505060405180910390f35b34156104f457600080fd5b610520600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611131565b6040518082815260200191505060405180910390f35b341561054157600080fd5b610549611149565b604051808215151515815260200191505060405180910390f35b341561056e57600080fd5b61059a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061115c565b005b34156105a757600080fd5b6105d3600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611220565b6040518082815260200191505060405180910390f35b34156105f457600080fd5b6105fc611238565b005b341561060957600080fd5b61061f6004808035906020019091905050611562565b005b341561062c57600080fd5b61064260048080359060200190919050506115c7565b005b341561064f57600080fd5b6106676004808035151590602001909190505061162c565b005b341561067457600080fd5b61068a60048080359060200190919050506116a4565b005b341561069757600080fd5b61069f61171d565b005b34156106ac57600080fd5b6106b4611a10565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561070157600080fd5b61072d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611a28565b005b341561073a57600080fd5b610787600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050611aed565b005b341561079457600080fd5b61079c611bd8565b005b34156107a957600080fd5b6107b1611d5b565b604051808215151515815260200191505060405180910390f35b34156107d657600080fd5b6107ec6004808035906020019091905050611d6e565b005b34156107f957600080fd5b610801611de3565b005b341561080e57600080fd5b610816612006565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561086357600080fd5b61088f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061202c565b005b341561089c57600080fd5b6108a4612293565b6040518082815260200191505060405180910390f35b34156108c557600080fd5b6108cd612299565b604051808215151515815260200191505060405180910390f35b34156108f257600080fd5b6108fa6122ac565b604051808215151515815260200191505060405180910390f35b341561091f57600080fd5b6109276122bf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561097457600080fd5b6109a0600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506122e4565b604051808215151515815260200191505060405180910390f35b34156109c557600080fd5b6109cd612304565b6040518082815260200191505060405180910390f35b34156109ee57600080fd5b6109f661230a565b6040518082815260200191505060405180910390f35b3415610a1757600080fd5b610a1f612310565b6040518082815260200191505060405180910390f35b3415610a4057600080fd5b610a48612316565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a9557600080fd5b610ae260048080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190505061232e565b005b3415610aef57600080fd5b610b0760048080351515906020019091905050612419565b005b3415610b1457600080fd5b610b40600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612491565b005b3415610b4d57600080fd5b610b55612556565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000808284811515610ba557fe5b0490508091505092915050565b6000808284019050838110151515610bc657fe5b8091505092915050565b6000828211151515610bde57fe5b818303905092915050565b600080600760009054906101000a900460ff168015610c145750600a60009054906101000a900460ff165b1515610c1f57600080fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515610ce457600080fd5b6102c65a03f11515610cf557600080fd5b50505060405180519050915060008214151515610d1157600080fd5b610d65610d5d600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461257c565b600954610b97565b9050610db2600954600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bd0565b6009819055506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610eca57600080fd5b6102c65a03f11515610edb57600080fd5b505050604051805190501515610ef057600080fd5b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f4f57600080fd5b80600f60006101000a81548160ff02191690831515021790555050565b60015481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fcf57600080fd5b600760009054906101000a900460ff16151515610feb57600080fd5b61103f611038600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054606461257c565b6063610b97565b90506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110e1600c546110dc836064610b97565b610bd0565b600c819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561112757600080fd5b5050565b60025481565b60056020528060005260406000206000915090505481565b600d60009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111b757600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156111dd57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60046020528060005260406000206000915090505481565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561129657600080fd5b6112ad6112a6600354606461257c565b6063610b97565b3073ffffffffffffffffffffffffffffffffffffffff1631101515156112d257600080fd5b600060025414806112fc57506002543073ffffffffffffffffffffffffffffffffffffffff163111155b151561130757600080fd5b600760009054906101000a900460ff1615801561135d57506000600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b151561136857600080fd5b6001600760006101000a81548160ff021916908315150217905550611390600c546006610b97565b915061139f600c54600c610b97565b90506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6113f16113eb600c5486610bd0565b84610bd0565b9081150290604051600060405180830381858888f19350505050151561141657600080fd5b73ee06bddaffa56a303718de53a5bc347efbe4c68f73ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050151561146a57600080fd5b7363f7547ac277ea0b52a0b060be6af8c5904953aa73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156114be57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16316008819055503073ffffffffffffffffffffffffffffffffffffffff1631600981905550600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6008549081150290604051600060405180830381858888f19350505050151561155e57600080fd5b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115bd57600080fd5b8060018190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561162257600080fd5b8060038190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561168757600080fd5b80600a60006101000a81548160ff02191690831515021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116ff57600080fd5b61171461170d82606461257c565b6063610b97565b60028190555050565b600080600760009054906101000a900460ff16151561173b57600080fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561180057600080fd5b6102c65a03f1151561181157600080fd5b5050506040518051905091506000821415151561182d57600080fd5b611881611879600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461257c565b600854610b97565b90506118ce600854600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bd0565b6008819055506000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156119e657600080fd5b6102c65a03f115156119f757600080fd5b505050604051805190501515611a0c57600080fd5b5050565b7363f7547ac277ea0b52a0b060be6af8c5904953aa81565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a8357600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611aa957600080fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b4a57600080fd5b600090505b8151811015611bd4576001600660008484815181101515611b6c57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050611b4f565b5050565b6000600760009054906101000a900460ff16158015611c035750600d60009054906101000a900460ff165b8015611c1157506000600e54145b1515611c1c57600080fd5b611c70611c69600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054606461257c565b6063610b97565b90506000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d12600c54611d0d836064610b97565b610bd0565b600c819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515611d5857600080fd5b50565b600760009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611dc957600080fd5b60648111151515611dd957600080fd5b80600e8190555050565b600080600d60009054906101000a900460ff168015611e0457506000600e54115b1515611e0f57600080fd5b611e64611e5d600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600e5461257c565b6064610b97565b9150819050600760009054906101000a900460ff161515611eb357611e94611e8d83606461257c565b6063610b97565b9050611eac600c54611ea7836064610b97565b610bd0565b600c819055505b611efc600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482610bd0565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561200257600080fd5b5050565b600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561208a57600080fd5b6000600e5411151561209b57600080fd5b6120f06120e9600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600e5461257c565b6064610b97565b9150819050600760009054906101000a900460ff16151561213f5761212061211983606461257c565b6063610b97565b9050612138600c54612133836064610b97565b610bd0565b600c819055505b612188600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482610bd0565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561228e57600080fd5b505050565b60035481565b600f60009054906101000a900460ff1681565b600a60009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60066020528060005260406000206000915054906101000a900460ff1681565b60095481565b600e5481565b60085481565b73ee06bddaffa56a303718de53a5bc347efbe4c68f81565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561238b57600080fd5b600090505b81518110156124155760006006600084848151811015156123ad57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050612390565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561247457600080fd5b80600d60006101000a81548160ff02191690831515021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156124ec57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561251257600080fd5b80600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600084141561259157600091506125b0565b82840290508284828115156125a257fe5b041415156125ac57fe5b8091505b50929150505600a165627a7a72305820714ad3e0e9ec3a5d8beb82112cf94df12f0355b26e9ffa14fb1e8ba6b5b3cf240029

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

000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : max (uint256): 0
Arg [1] : min (uint256): 0
Arg [2] : cap (uint256): 0

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000


Swarm Source

bzzr://714ad3e0e9ec3a5d8beb82112cf94df12f0355b26e9ffa14fb1e8ba6b5b3cf24

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.