ETH Price: $2,076.77 (-4.69%)

Contract

0x62d85F7A5e5E53451d5Decca6Cd8FDA3C6d9380e
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer91863172019-12-30 14:45:462257 days ago1577717146IN
0x62d85F7A...3C6d9380e
0 ETH0.004107858
Transfer91863082019-12-30 14:43:532257 days ago1577717033IN
0x62d85F7A...3C6d9380e
0 ETH0.001983958
Transfer91862812019-12-30 14:36:342257 days ago1577716594IN
0x62d85F7A...3C6d9380e
0 ETH0.000417678
Transfer91862692019-12-30 14:32:022257 days ago1577716322IN
0x62d85F7A...3C6d9380e
0 ETH0.000417678
Transfer90384472019-12-02 14:03:212285 days ago1575295401IN
0x62d85F7A...3C6d9380e
0 ETH0.000558112
Transfer90286512019-11-30 20:33:042286 days ago1575145984IN
0x62d85F7A...3C6d9380e
0.015 ETH0.0010409210
Transfer90213532019-11-29 13:35:192288 days ago1575034519IN
0x62d85F7A...3C6d9380e
0 ETH0.0005115911
0x8710ce5890212182019-11-29 12:56:482288 days ago1575032208IN
0x62d85F7A...3C6d9380e
0.04263596 ETH0.0014080310
0x8710ce5890210932019-11-29 12:22:372288 days ago1575030157IN
0x62d85F7A...3C6d9380e
0.25121786 ETH0.0014080310
Transfer90210722019-11-29 12:15:582288 days ago1575029758IN
0x62d85F7A...3C6d9380e
0.01373 ETH0.0018409210
Do Disown90210612019-11-29 12:12:042288 days ago1575029524IN
0x62d85F7A...3C6d9380e
0 ETH0.0001421610
Set Advertising ...90210542019-11-29 12:10:142288 days ago1575029414IN
0x62d85F7A...3C6d9380e
0 ETH0.0002878510
Set Admins Addre...90210462019-11-29 12:07:542288 days ago1575029274IN
0x62d85F7A...3C6d9380e
0 ETH0.0002863310

Latest 16 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
-91863172019-12-30 14:45:462257 days ago1577717146
0x62d85F7A...3C6d9380e
0.03570337 ETH
-91863172019-12-30 14:45:462257 days ago1577717146
0x62d85F7A...3C6d9380e
 Contract Creation0 ETH
-91863082019-12-30 14:43:532257 days ago1577717033
0x62d85F7A...3C6d9380e
 Contract Creation0 ETH
-91862812019-12-30 14:36:342257 days ago1577716594
0x62d85F7A...3C6d9380e
0.0133875 ETH
-91862692019-12-30 14:32:022257 days ago1577716322
0x62d85F7A...3C6d9380e
0.2174615 ETH
-90384472019-12-02 14:03:212285 days ago1575295401
0x62d85F7A...3C6d9380e
0.0233957 ETH
-90286512019-11-30 20:33:042286 days ago1575145984
0x62d85F7A...3C6d9380e
0.0003 ETH
-90286512019-11-30 20:33:042286 days ago1575145984
0x62d85F7A...3C6d9380e
0.0012 ETH
-90213532019-11-29 13:35:192288 days ago1575034519
0x62d85F7A...3C6d9380e
0.00037735 ETH
-90212182019-11-29 12:56:482288 days ago1575032208
0x62d85F7A...3C6d9380e
0.00085271 ETH
-90212182019-11-29 12:56:482288 days ago1575032208
0x62d85F7A...3C6d9380e
0.00341087 ETH
-90210932019-11-29 12:22:372288 days ago1575030157
0x62d85F7A...3C6d9380e
0.00502435 ETH
-90210932019-11-29 12:22:372288 days ago1575030157
0x62d85F7A...3C6d9380e
0.02009742 ETH
-90210722019-11-29 12:15:582288 days ago1575029758
0x62d85F7A...3C6d9380e
0.0002746 ETH
-90210722019-11-29 12:15:582288 days ago1575029758
0x62d85F7A...3C6d9380e
0.0010984 ETH
-90210262019-11-29 12:04:042288 days ago1575029044
0x62d85F7A...3C6d9380e
 Contract Creation0 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

Contract Source Code Verified (Exact Match)

Contract Name:
Ethprofitspace

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2019-11-29
*/

pragma solidity 0.4.25;


/**
*
* ETHPROFIT.SPACE
*
* ETH CRYPTOCURRENCY DISTRIBUTION PROJECT
* 
*  - GAIN 3% PER 24 HOURS (interest is charges in equal parts every 10 min)
*  - Life-long payments
*  - The revolutionary reliability
*  - Minimal contribution 0.01 eth
*  - Currency and payment - ETH
*  - Contribution allocation schemes:
*    -- 90% payments
*    --  8% marketing
*    --  2% technical support
* 
* ---How to use:
*  1. Send from ETH wallet to the smart contract address 
*     any amount from 0.01 ETH.
*  2. Verify your transaction in the history of your application or etherscan.io, specifying the address 
*     of your wallet.
*  3a. Claim your profit by sending 0 ether transaction (every 10 min, every day, every week, i don't care unless you're 
*      spending too much on GAS)
*  OR
*  3b. For reinvest, you need to deposit the amount that you want to reinvest and the 
*      accrued interest automatically summed to your new contribution.
*  
* RECOMMENDED GAS LIMIT: 250000
* RECOMMENDED GAS PRICE: https://ethgasstation.info/
* You can check the payments on the etherscan.io site, in the "Internal Txns" tab of your wallet.
*
* ---Refferral system: remuneration to each contributor is 3%, 
*     
* ---It is not allowed to transfer from exchanges, only from your personal ETH wallet, for which you 
* have private keys.
* 
* Contracts reviewed and approved by pros!
* 
*/ 



library Math {
  function min(uint a, uint b) internal pure returns(uint) {
    if (a > b) {
      return b;
    }
    return a;
  }
}


library Zero {
  function requireNotZero(address addr) internal pure {
    require(addr != address(0), "require not zero address");
  }

  function requireNotZero(uint val) internal pure {
    require(val != 0, "require not zero value");
  }

  function notZero(address addr) internal pure returns(bool) {
    return !(addr == address(0));
  }

  function isZero(address addr) internal pure returns(bool) {
    return addr == address(0);
  }

  function isZero(uint a) internal pure returns(bool) {
    return a == 0;
  }

  function notZero(uint a) internal pure returns(bool) {
    return a != 0;
  }
}


library Percent {
  // Solidity automatically throws when dividing by 0
  struct percent {
    uint num;
    uint den;
  }
  
  // storage
  function mul(percent storage p, uint a) internal view returns (uint) {
    if (a == 0) {
      return 0;
    }
    return a*p.num/p.den;
  }

  function div(percent storage p, uint a) internal view returns (uint) {
    return a/p.num*p.den;
  }

  function sub(percent storage p, uint a) internal view returns (uint) {
    uint b = mul(p, a);
    if (b >= a) {
      return 0;
    }
    return a - b;
  }

  function add(percent storage p, uint a) internal view returns (uint) {
    return a + mul(p, a);
  }

  function toMemory(percent storage p) internal view returns (Percent.percent memory) {
    return Percent.percent(p.num, p.den);
  }

  // memory 
  function mmul(percent memory p, uint a) internal pure returns (uint) {
    if (a == 0) {
      return 0;
    }
    return a*p.num/p.den;
  }

  function mdiv(percent memory p, uint a) internal pure returns (uint) {
    return a/p.num*p.den;
  }

  function msub(percent memory p, uint a) internal pure returns (uint) {
    uint b = mmul(p, a);
    if (b >= a) {
      return 0;
    }
    return a - b;
  }

  function madd(percent memory p, uint a) internal pure returns (uint) {
    return a + mmul(p, a);
  }
}


library Address {
  function toAddress(bytes source) internal pure returns(address addr) {
    assembly { addr := mload(add(source,0x14)) }
    return addr;
  }

  function isNotContract(address addr) internal view returns(bool) {
    uint length;
    assembly { length := extcodesize(addr) }
    return length == 0;
  }
}


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

  /**
  * @dev Multiplies two numbers, reverts on overflow.
  */
  function mul(uint256 _a, uint256 _b) internal pure returns (uint256) {
    // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
    // benefit is lost if 'b' is also tested.
    // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
    if (_a == 0) {
      return 0;
    }

    uint256 c = _a * _b;
    require(c / _a == _b);

    return c;
  }

  /**
  * @dev Integer division of two numbers truncating the quotient, reverts on division by zero.
  */
  function div(uint256 _a, uint256 _b) internal pure returns (uint256) {
    require(_b > 0); // Solidity only automatically asserts 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, reverts on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 _a, uint256 _b) internal pure returns (uint256) {
    require(_b <= _a);
    uint256 c = _a - _b;

    return c;
  }

  /**
  * @dev Adds two numbers, reverts on overflow.
  */
  function add(uint256 _a, uint256 _b) internal pure returns (uint256) {
    uint256 c = _a + _b;
    require(c >= _a);

    return c;
  }

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


contract Accessibility {
  address private owner;
  modifier onlyOwner() {
    require(msg.sender == owner, "access denied");
    _;
  }

  constructor() public {
    owner = msg.sender;
  }

  function disown() internal {
    delete owner;
  }
}


contract InvestorsStorage is Accessibility {
  struct Investor {
    uint investment;
    uint paymentTime;
  }
  uint public size;

  mapping (address => Investor) private investors;

  function isInvestor(address addr) public view returns (bool) {
    return investors[addr].investment > 0;
  }

  function investorInfo(address addr) public view returns(uint investment, uint paymentTime) {
    investment = investors[addr].investment;
    paymentTime = investors[addr].paymentTime;
  }

  function newInvestor(address addr, uint investment, uint paymentTime) public onlyOwner returns (bool) {
    Investor storage inv = investors[addr];
    if (inv.investment != 0 || investment == 0) {
      return false;
    }
    inv.investment = investment;
    inv.paymentTime = paymentTime;
    size++;
    return true;
  }

  function addInvestment(address addr, uint investment) public onlyOwner returns (bool) {
    if (investors[addr].investment == 0) {
      return false;
    }
    investors[addr].investment += investment;
    return true;
  }

  function setPaymentTime(address addr, uint paymentTime) public onlyOwner returns (bool) {
    if (investors[addr].investment == 0) {
      return false;
    }
    investors[addr].paymentTime = paymentTime;
    return true;
  }
}

contract Ethprofitspace is Accessibility {
  using Percent for Percent.percent;
  using SafeMath for uint;
  using Math for uint;

  // easy read for investors
  using Address for *;
  using Zero for *; 
  
  mapping(address => bool) private m_referrals;
  InvestorsStorage private m_investors;

  // automatically generates getters
  uint public constant minInvesment = 10 finney; //       0.01 eth
  uint public constant maxBalance = 100e5 ether; // 10 000 000 eth
  address public advertisingAddress;
  address public adminsAddress;
  uint public investmentsNumber;
  uint public waveStartup;

  // percents
  Percent.percent private m_3_percent = Percent.percent(3, 100);    // 3/100*100% = 3%
  Percent.percent private m_adminsPercent = Percent.percent(2, 100);       //   2/100  *100% = 2%
  Percent.percent private m_advertisingPercent = Percent.percent(8, 100);// 8/100  *100% = 8%

  // more events for easy read from blockchain
  event LogSendExcessOfEther(address indexed addr, uint when, uint value, uint investment, uint excess);
  event LogNewReferral(address indexed addr, address indexed referrerAddr, uint when, uint refBonus);
  event LogNewInvesment(address indexed addr, uint when, uint investment, uint value);
  event LogAutomaticReinvest(address indexed addr, uint when, uint investment);
  event LogPayDividends(address indexed addr, uint when, uint dividends);
  event LogNewInvestor(address indexed addr, uint when);
  event LogBalanceChanged(uint when, uint balance);
  event LogNextWave(uint when);
  event LogDisown(uint when);


  modifier balanceChanged {
    _;
    emit LogBalanceChanged(now, address(this).balance);
  }

  modifier notFromContract() {
    require(msg.sender.isNotContract(), "only externally accounts");
    _;
  }

  constructor() public {
    adminsAddress = msg.sender;
    advertisingAddress = msg.sender;
    nextWave();
  }

  function() public payable {
    // investor get him dividends
    if (msg.value.isZero()) {
      getMyDividends();
      return;
    }

    // sender do invest
    doInvest(msg.data.toAddress());
  }

  function doDisown() public onlyOwner {
    disown();
    emit LogDisown(now);
  }

  

  function setAdvertisingAddress(address addr) public onlyOwner {
    addr.requireNotZero();
    advertisingAddress = addr;
  }

  function setAdminsAddress(address addr) public onlyOwner {
    addr.requireNotZero();
    adminsAddress = addr;
  }

  function investorsNumber() public view returns(uint) {
    return m_investors.size();
  }

  function balanceETH() public view returns(uint) {
    return address(this).balance;
  }

  function percent3() public view returns(uint numerator, uint denominator) {
    (numerator, denominator) = (m_3_percent.num, m_3_percent.den);
  }

  function advertisingPercent() public view returns(uint numerator, uint denominator) {
    (numerator, denominator) = (m_advertisingPercent.num, m_advertisingPercent.den);
  }

  function adminsPercent() public view returns(uint numerator, uint denominator) {
    (numerator, denominator) = (m_adminsPercent.num, m_adminsPercent.den);
  }

  function investorInfo(address investorAddr) public view returns(uint investment, uint paymentTime, bool isReferral) {
    (investment, paymentTime) = m_investors.investorInfo(investorAddr);
    isReferral = m_referrals[investorAddr];
  }

  function investorDividendsAtNow(address investorAddr) public view returns(uint dividends) {
    dividends = calcDividends(investorAddr);
  }

  function dailyPercentAtNow() public view returns(uint numerator, uint denominator) {
    Percent.percent memory p = dailyPercent();
    (numerator, denominator) = (p.num, p.den);
  }

  function refBonusPercentAtNow() public view returns(uint numerator, uint denominator) {
    Percent.percent memory p = refBonusPercent();
    (numerator, denominator) = (p.num, p.den);
  }

  function getMyDividends() public notFromContract balanceChanged {
    // calculate dividends
    uint dividends = calcDividends(msg.sender);
    require (dividends.notZero(), "cannot to pay zero dividends");

    // update investor payment timestamp
    assert(m_investors.setPaymentTime(msg.sender, now));

    // check enough eth - goto next wave if needed
    if (address(this).balance <= dividends) {
      nextWave();
      dividends = address(this).balance;
    } 

    // transfer dividends to investor
    msg.sender.transfer(dividends);
    emit LogPayDividends(msg.sender, now, dividends);
  }

  function doInvest(address referrerAddr) public payable notFromContract balanceChanged {
    uint investment = msg.value;
    uint receivedEther = msg.value;
    require(investment >= minInvesment, "investment must be >= minInvesment");
    require(address(this).balance <= maxBalance, "the contract eth balance limit");

    // send excess of ether if needed
    if (receivedEther > investment) {
      uint excess = receivedEther - investment;
      msg.sender.transfer(excess);
      receivedEther = investment;
      emit LogSendExcessOfEther(msg.sender, now, msg.value, investment, excess);
    }

    // commission
    advertisingAddress.send(m_advertisingPercent.mul(receivedEther));
    adminsAddress.send(m_adminsPercent.mul(receivedEther));

    bool senderIsInvestor = m_investors.isInvestor(msg.sender);

    // ref system works only once and only on first invest
    if (referrerAddr.notZero() && !senderIsInvestor && !m_referrals[msg.sender] &&
      referrerAddr != msg.sender && m_investors.isInvestor(referrerAddr)) {
      
      m_referrals[msg.sender] = true;
      // add referral bonus to investor`s and referral`s investments
      uint refBonus = refBonusPercent().mmul(investment);
      assert(m_investors.addInvestment(referrerAddr, refBonus)); // add referrer bonus
      investment += refBonus;                                    // add referral bonus
      emit LogNewReferral(msg.sender, referrerAddr, now, refBonus);
    }

    // automatic reinvest - prevent burning dividends
    uint dividends = calcDividends(msg.sender);
    if (senderIsInvestor && dividends.notZero()) {
      investment += dividends;
      emit LogAutomaticReinvest(msg.sender, now, dividends);
    }

    if (senderIsInvestor) {
      // update existing investor
      assert(m_investors.addInvestment(msg.sender, investment));
      assert(m_investors.setPaymentTime(msg.sender, now));
    } else {
      // create new investor
      assert(m_investors.newInvestor(msg.sender, investment, now));
      emit LogNewInvestor(msg.sender, now);
    }

    investmentsNumber++;
    emit LogNewInvesment(msg.sender, now, investment, receivedEther);
  }

  function getMemInvestor(address investorAddr) internal view returns(InvestorsStorage.Investor memory) {
    (uint investment, uint paymentTime) = m_investors.investorInfo(investorAddr);
    return InvestorsStorage.Investor(investment, paymentTime);
  }

  function calcDividends(address investorAddr) internal view returns(uint dividends) {
    InvestorsStorage.Investor memory investor = getMemInvestor(investorAddr);

    // safe gas if dividends will be 0
    if (investor.investment.isZero() || now.sub(investor.paymentTime) < 10 minutes) {
      return 0;
    }
    
    // for prevent burning daily dividends if 24h did not pass - calculate it per 10 min interval
    // if daily percent is X, then 10min percent = X / (24h / 10 min) = X / 144

    // and we must to get numbers of 10 min interval after investor got payment:
    // (now - investor.paymentTime) / 10min 

    // finaly calculate dividends = ((now - investor.paymentTime) / 10min) * (X * investor.investment)  / 144) 

    Percent.percent memory p = dailyPercent();
    dividends = (now.sub(investor.paymentTime) / 10 minutes) * p.mmul(investor.investment) / 144;
  }

  function dailyPercent() internal view returns(Percent.percent memory p) {
    uint balance = address(this).balance;

    // (3) 3% if balance < 10 000 000 ETH

    if (balance < 10000000 ether) { 
      p = m_3_percent.toMemory(); // (3)
    }
  }

  function refBonusPercent() internal view returns(Percent.percent memory p) {
    uint balance = address(this).balance;

    
    // (3) 3% if balance < 10 000 000 ETH   
    
    if (balance < 10000000 ether) { 
      p = m_3_percent.toMemory(); // (3)
    }     
  }

  function nextWave() private {
    m_investors = new InvestorsStorage();
    investmentsNumber = 0;
    waveStartup = now;
    emit LogNextWave(now);
  }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"advertisingAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"refBonusPercentAtNow","outputs":[{"name":"numerator","type":"uint256"},{"name":"denominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minInvesment","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminsAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"investorsNumber","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"investorAddr","type":"address"}],"name":"investorDividendsAtNow","outputs":[{"name":"dividends","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"advertisingPercent","outputs":[{"name":"numerator","type":"uint256"},{"name":"denominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminsPercent","outputs":[{"name":"numerator","type":"uint256"},{"name":"denominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"setAdminsAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"investmentsNumber","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"dailyPercentAtNow","outputs":[{"name":"numerator","type":"uint256"},{"name":"denominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"percent3","outputs":[{"name":"numerator","type":"uint256"},{"name":"denominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"setAdvertisingAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"getMyDividends","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"referrerAddr","type":"address"}],"name":"doInvest","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"investorAddr","type":"address"}],"name":"investorInfo","outputs":[{"name":"investment","type":"uint256"},{"name":"paymentTime","type":"uint256"},{"name":"isReferral","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"waveStartup","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"balanceETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"doDisown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"investment","type":"uint256"},{"indexed":false,"name":"excess","type":"uint256"}],"name":"LogSendExcessOfEther","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":true,"name":"referrerAddr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"refBonus","type":"uint256"}],"name":"LogNewReferral","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"investment","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"}],"name":"LogNewInvesment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"investment","type":"uint256"}],"name":"LogAutomaticReinvest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"dividends","type":"uint256"}],"name":"LogPayDividends","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"}],"name":"LogNewInvestor","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"balance","type":"uint256"}],"name":"LogBalanceChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"when","type":"uint256"}],"name":"LogNextWave","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"when","type":"uint256"}],"name":"LogDisown","type":"event"}]

6080604052604080519081016040528060038152602001606481525060076000820151816000015560208201518160010155505060408051908101604052806002815260200160648152506009600082015181600001556020820151816001015550506040805190810160405280600881526020016064815250600b600082015181600001556020820151816001015550503480156200009e57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200017a62000180640100000000026401000000009004565b62000241565b6200018a62000230565b604051809103906000f080158015620001a7573d6000803e3d6000fd5b50600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600581905550426006819055507fc66870ef5f6257a76295d443e9221488043ec691f830f6c6128755c3518e3c75426040518082815260200191505060405180910390a1565b60405161083b8062002ce383390190565b612a9280620002516000396000f300608060405260043610610112576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631686531a14610174578063341bae0e146101cb5780633d7ac9f8146101fd57806362d2c55514610228578063653c31741461027f57806373ad468a146102aa578063900334b1146102d55780639396df321461032c57806395a23c3a1461035e578063984d4a93146103905780639ec6e054146103d3578063b8fde2a4146103fe578063bab2b5e914610430578063cb192f2c14610462578063d50030ad146104a5578063d82fa3f1146104bc578063dbcbaca4146104f2578063eafecc7a1461055b578063ecbdbb3214610586578063fc7c41af146105b1575b61011b346105c8565b1561012d576101286105d4565b610172565b61017161016c6000368080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050610932565b610943565b5b005b34801561018057600080fd5b50610189611623565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101d757600080fd5b506101e0611649565b604051808381526020018281526020019250505060405180910390f35b34801561020957600080fd5b50610212611675565b6040518082815260200191505060405180910390f35b34801561023457600080fd5b5061023d611680565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028b57600080fd5b506102946116a6565b6040518082815260200191505060405180910390f35b3480156102b657600080fd5b506102bf61176e565b6040518082815260200191505060405180910390f35b3480156102e157600080fd5b50610316600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061177d565b6040518082815260200191505060405180910390f35b34801561033857600080fd5b5061034161178f565b604051808381526020018281526020019250505060405180910390f35b34801561036a57600080fd5b506103736117aa565b604051808381526020018281526020019250505060405180910390f35b34801561039c57600080fd5b506103d1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117c5565b005b3480156103df57600080fd5b506103e86118ec565b6040518082815260200191505060405180910390f35b34801561040a57600080fd5b506104136118f2565b604051808381526020018281526020019250505060405180910390f35b34801561043c57600080fd5b5061044561191e565b604051808381526020018281526020019250505060405180910390f35b34801561046e57600080fd5b506104a3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611939565b005b3480156104b157600080fd5b506104ba6105d4565b005b6104f0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610943565b005b3480156104fe57600080fd5b50610533600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a60565b6040518084815260200183815260200182151515158152602001935050505060405180910390f35b34801561056757600080fd5b50610570611bc4565b6040518082815260200191505060405180910390f35b34801561059257600080fd5b5061059b611bca565b6040518082815260200191505060405180910390f35b3480156105bd57600080fd5b506105c6611be9565b005b60008082149050919050565b60006105f53373ffffffffffffffffffffffffffffffffffffffff16611cee565b1515610669576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f6f6e6c792065787465726e616c6c79206163636f756e7473000000000000000081525060200191505060405180910390fd5b61067233611d01565b905061067d81611db7565b15156106f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f63616e6e6f7420746f20706179207a65726f206469766964656e64730000000081525060200191505060405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634401358533426040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156107b657600080fd5b505af11580156107ca573d6000803e3d6000fd5b505050506040513d60208110156107e057600080fd5b810190808051906020019092919050505015156107f957fe5b803073ffffffffffffffffffffffffffffffffffffffff163111151561083c57610821611dc4565b3073ffffffffffffffffffffffffffffffffffffffff163190505b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610882573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff167f6710e0cad56444677ac916513b384a4acc6501cfb5219f59657ad4ddffef9d604283604051808381526020018281526020019250505060405180910390a27f32367fddaa1baa1c6a0fc5c3e8284df724bacc7b50e847c32c9f9765f9f96137423073ffffffffffffffffffffffffffffffffffffffff1631604051808381526020018281526020019250505060405180910390a150565b600060148201519050809050919050565b60008060008060008061096b3373ffffffffffffffffffffffffffffffffffffffff16611cee565b15156109df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f6f6e6c792065787465726e616c6c79206163636f756e7473000000000000000081525060200191505060405180910390fd5b349550349450662386f26fc100008610151515610a8a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f696e766573746d656e74206d757374206265203e3d206d696e496e7665736d6581526020017f6e7400000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6a084595161401484a0000003073ffffffffffffffffffffffffffffffffffffffff163111151515610b24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f74686520636f6e7472616374206574682062616c616e6365206c696d6974000081525060200191505060405180910390fd5b85851115610be25785850393503373ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f19350505050158015610b77573d6000803e3d6000fd5b508594503373ffffffffffffffffffffffffffffffffffffffff167faac472d912a7451062b64c942775db41d65cce271603099e1c4760e072050951423489886040518085815260200184815260200183815260200182815260200194505050505060405180910390a25b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc610c3287600b611e7190919063ffffffff16565b9081150290604051600060405180830381858888f1935050505050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc610c9d876009611e7190919063ffffffff16565b9081150290604051600060405180830381858888f1935050505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cee2a9cf336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610d7557600080fd5b505af1158015610d89573d6000803e3d6000fd5b505050506040513d6020811015610d9f57600080fd5b81019080805190602001909291905050509250610dd18773ffffffffffffffffffffffffffffffffffffffff16611ea3565b8015610ddb575082155b8015610e315750600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610e6957503373ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b8015610f695750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cee2a9cf886040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610f2d57600080fd5b505af1158015610f41573d6000803e3d6000fd5b505050506040513d6020811015610f5757600080fd5b81019080805190602001909291905050505b1561115c5760018060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610fdf86610fd1611edc565b611f2490919063ffffffff16565b9150600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166320987e6488846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156110a657600080fd5b505af11580156110ba573d6000803e3d6000fd5b505050506040513d60208110156110d057600080fd5b810190808051906020019092919050505015156110e957fe5b81860195508673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc04fb14bddd876003a335c37b1fe6524ac1dbf74eb64dd08cd085fba4b97d5924285604051808381526020018281526020019250505060405180910390a35b61116533611d01565b9050828015611179575061117881611db7565b5b156111da5780860195503373ffffffffffffffffffffffffffffffffffffffff167f149822e3a65d38c9b6f40e835864c61ef5ca0866219afc2db638e3f85ae788664283604051808381526020018281526020019250505060405180910390a25b82156113f557600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166320987e6433886040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156112a557600080fd5b505af11580156112b9573d6000803e3d6000fd5b505050506040513d60208110156112cf57600080fd5b810190808051906020019092919050505015156112e857fe5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634401358533426040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156113ad57600080fd5b505af11580156113c1573d6000803e3d6000fd5b505050506040513d60208110156113d757600080fd5b810190808051906020019092919050505015156113f057fe5b611554565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166341b2121c3388426040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019350505050602060405180830381600087803b1580156114c257600080fd5b505af11580156114d6573d6000803e3d6000fd5b505050506040513d60208110156114ec57600080fd5b8101908080519060200190929190505050151561150557fe5b3373ffffffffffffffffffffffffffffffffffffffff167fc8616cf56c542aa2540734215ee474180fc3b9cc7c2fad288000504632cacf18426040518082815260200191505060405180910390a25b6005600081548092919060010191905055503373ffffffffffffffffffffffffffffffffffffffff167fd5a986028ae9e04f72859f7d3c1d8ae8b649c26be5b99d4c2d98ca4a19a0502e42888860405180848152602001838152602001828152602001935050505060405180910390a27f32367fddaa1baa1c6a0fc5c3e8284df724bacc7b50e847c32c9f9765f9f96137423073ffffffffffffffffffffffffffffffffffffffff1631604051808381526020018281526020019250505060405180910390a150505050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806116546121e7565b61165c611edc565b9050806000015181602001518093508194505050509091565b662386f26fc1000081565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561172e57600080fd5b505af1158015611742573d6000803e3d6000fd5b505050506040513d602081101561175857600080fd5b8101908080519060200190929190505050905090565b6a084595161401484a00000081565b600061178882611d01565b9050919050565b600080600b60000154600b6001015480925081935050509091565b60008060096000015460096001015480925081935050509091565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611889576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6163636573732064656e6965640000000000000000000000000000000000000081525060200191505060405180910390fd5b6118a88173ffffffffffffffffffffffffffffffffffffffff16611f56565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60055481565b6000806118fd6121e7565b611905611ffe565b9050806000015181602001518093508194505050509091565b60008060076000015460076001015480925081935050509091565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6163636573732064656e6965640000000000000000000000000000000000000081525060200191505060405180910390fd5b611a1c8173ffffffffffffffffffffffffffffffffffffffff16611f56565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dbcbaca4856040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506040805180830381600087803b158015611b2157600080fd5b505af1158015611b35573d6000803e3d6000fd5b505050506040513d6040811015611b4b57600080fd5b8101908080519060200190929190805190602001909291905050508093508194505050600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690509193909250565b60065481565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6163636573732064656e6965640000000000000000000000000000000000000081525060200191505060405180910390fd5b611cb5612046565b7f5189687a7ec9d4aebe2f548f952ffbbad19e4cd545c4a05b5e2369cd272dd551426040518082815260200191505060405180910390a1565b600080823b905060008114915050919050565b6000611d0b612201565b611d136121e7565b611d1c8461206c565b9150611d2b82600001516105c8565b80611d4d5750610258611d4b83602001514261219a90919063ffffffff16565b105b15611d5b5760009250611db0565b611d63611ffe565b90506090611d7e836000015183611f2490919063ffffffff16565b610258611d9885602001514261219a90919063ffffffff16565b811515611da157fe5b0402811515611dac57fe5b0492505b5050919050565b6000808214159050919050565b611dcc61221b565b604051809103906000f080158015611de8573d6000803e3d6000fd5b50600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600581905550426006819055507fc66870ef5f6257a76295d443e9221488043ec691f830f6c6128755c3518e3c75426040518082815260200191505060405180910390a1565b600080821415611e845760009050611e9d565b826001015483600001548302811515611e9957fe5b0490505b92915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614159050919050565b611ee46121e7565b60003073ffffffffffffffffffffffffffffffffffffffff163190506a084595161401484a000000811015611f2057611f1d60076121bb565b91505b5090565b600080821415611f375760009050611f50565b826020015183600001518302811515611f4c57fe5b0490505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611ffb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f72657175697265206e6f74207a65726f2061646472657373000000000000000081525060200191505060405180910390fd5b50565b6120066121e7565b60003073ffffffffffffffffffffffffffffffffffffffff163190506a084595161401484a0000008110156120425761203f60076121bb565b91505b5090565b6000806101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055565b612074612201565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dbcbaca4856040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506040805180830381600087803b15801561213357600080fd5b505af1158015612147573d6000803e3d6000fd5b505050506040513d604081101561215d57600080fd5b8101908080519060200190929190805190602001909291905050509150915060408051908101604052808381526020018281525092505050919050565b6000808383111515156121ac57600080fd5b82840390508091505092915050565b6121c36121e7565b60408051908101604052808360000154815260200183600101548152509050919050565b604080519081016040528060008152602001600081525090565b604080519081016040528060008152602001600081525090565b60405161083b8061222c8339019056006080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506107e8806100536000396000f300608060405260043610610078576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806320987e641461007d57806341b2121c146100e25780634401358514610151578063949d225d146101b6578063cee2a9cf146101e1578063dbcbaca41461023c575b600080fd5b34801561008957600080fd5b506100c8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061029a565b604051808215151515815260200191505060405180910390f35b3480156100ee57600080fd5b50610137600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919050505061040f565b604051808215151515815260200191505060405180910390f35b34801561015d57600080fd5b5061019c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061056a565b604051808215151515815260200191505060405180910390f35b3480156101c257600080fd5b506101cb6106d6565b6040518082815260200191505060405180910390f35b3480156101ed57600080fd5b50610222600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106dc565b604051808215151515815260200191505060405180910390f35b34801561024857600080fd5b5061027d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061072a565b604051808381526020018281526020019250505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610360576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6163636573732064656e6965640000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156103b45760009050610409565b81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282540192505081905550600190505b92915050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156104d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6163636573732064656e6965640000000000000000000000000000000000000081525060200191505060405180910390fd5b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816000015414158061052b5750600084145b156105395760009150610562565b838160000181905550828160010181905550600160008154809291906001019190505550600191505b509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610630576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6163636573732064656e6965640000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561068457600090506106d0565b81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550600190505b92915050565b60015481565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154119050919050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549150600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490509150915600a165627a7a723058204b49317588e0db61809faca2f1737ead957e11894585afa192cd39c562a7ddcc0029a165627a7a723058209a21d0c025108709e237775c899d70e829e0dce6364611d11f6401c7a39857ac00296080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506107e8806100536000396000f300608060405260043610610078576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806320987e641461007d57806341b2121c146100e25780634401358514610151578063949d225d146101b6578063cee2a9cf146101e1578063dbcbaca41461023c575b600080fd5b34801561008957600080fd5b506100c8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061029a565b604051808215151515815260200191505060405180910390f35b3480156100ee57600080fd5b50610137600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919050505061040f565b604051808215151515815260200191505060405180910390f35b34801561015d57600080fd5b5061019c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061056a565b604051808215151515815260200191505060405180910390f35b3480156101c257600080fd5b506101cb6106d6565b6040518082815260200191505060405180910390f35b3480156101ed57600080fd5b50610222600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106dc565b604051808215151515815260200191505060405180910390f35b34801561024857600080fd5b5061027d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061072a565b604051808381526020018281526020019250505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610360576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6163636573732064656e6965640000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156103b45760009050610409565b81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282540192505081905550600190505b92915050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156104d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6163636573732064656e6965640000000000000000000000000000000000000081525060200191505060405180910390fd5b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816000015414158061052b5750600084145b156105395760009150610562565b838160000181905550828160010181905550600160008154809291906001019190505550600191505b509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610630576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6163636573732064656e6965640000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561068457600090506106d0565b81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550600190505b92915050565b60015481565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154119050919050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549150600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490509150915600a165627a7a723058204b49317588e0db61809faca2f1737ead957e11894585afa192cd39c562a7ddcc0029

Deployed Bytecode

0x608060405260043610610112576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631686531a14610174578063341bae0e146101cb5780633d7ac9f8146101fd57806362d2c55514610228578063653c31741461027f57806373ad468a146102aa578063900334b1146102d55780639396df321461032c57806395a23c3a1461035e578063984d4a93146103905780639ec6e054146103d3578063b8fde2a4146103fe578063bab2b5e914610430578063cb192f2c14610462578063d50030ad146104a5578063d82fa3f1146104bc578063dbcbaca4146104f2578063eafecc7a1461055b578063ecbdbb3214610586578063fc7c41af146105b1575b61011b346105c8565b1561012d576101286105d4565b610172565b61017161016c6000368080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050610932565b610943565b5b005b34801561018057600080fd5b50610189611623565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101d757600080fd5b506101e0611649565b604051808381526020018281526020019250505060405180910390f35b34801561020957600080fd5b50610212611675565b6040518082815260200191505060405180910390f35b34801561023457600080fd5b5061023d611680565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028b57600080fd5b506102946116a6565b6040518082815260200191505060405180910390f35b3480156102b657600080fd5b506102bf61176e565b6040518082815260200191505060405180910390f35b3480156102e157600080fd5b50610316600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061177d565b6040518082815260200191505060405180910390f35b34801561033857600080fd5b5061034161178f565b604051808381526020018281526020019250505060405180910390f35b34801561036a57600080fd5b506103736117aa565b604051808381526020018281526020019250505060405180910390f35b34801561039c57600080fd5b506103d1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117c5565b005b3480156103df57600080fd5b506103e86118ec565b6040518082815260200191505060405180910390f35b34801561040a57600080fd5b506104136118f2565b604051808381526020018281526020019250505060405180910390f35b34801561043c57600080fd5b5061044561191e565b604051808381526020018281526020019250505060405180910390f35b34801561046e57600080fd5b506104a3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611939565b005b3480156104b157600080fd5b506104ba6105d4565b005b6104f0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610943565b005b3480156104fe57600080fd5b50610533600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a60565b6040518084815260200183815260200182151515158152602001935050505060405180910390f35b34801561056757600080fd5b50610570611bc4565b6040518082815260200191505060405180910390f35b34801561059257600080fd5b5061059b611bca565b6040518082815260200191505060405180910390f35b3480156105bd57600080fd5b506105c6611be9565b005b60008082149050919050565b60006105f53373ffffffffffffffffffffffffffffffffffffffff16611cee565b1515610669576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f6f6e6c792065787465726e616c6c79206163636f756e7473000000000000000081525060200191505060405180910390fd5b61067233611d01565b905061067d81611db7565b15156106f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f63616e6e6f7420746f20706179207a65726f206469766964656e64730000000081525060200191505060405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634401358533426040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156107b657600080fd5b505af11580156107ca573d6000803e3d6000fd5b505050506040513d60208110156107e057600080fd5b810190808051906020019092919050505015156107f957fe5b803073ffffffffffffffffffffffffffffffffffffffff163111151561083c57610821611dc4565b3073ffffffffffffffffffffffffffffffffffffffff163190505b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610882573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff167f6710e0cad56444677ac916513b384a4acc6501cfb5219f59657ad4ddffef9d604283604051808381526020018281526020019250505060405180910390a27f32367fddaa1baa1c6a0fc5c3e8284df724bacc7b50e847c32c9f9765f9f96137423073ffffffffffffffffffffffffffffffffffffffff1631604051808381526020018281526020019250505060405180910390a150565b600060148201519050809050919050565b60008060008060008061096b3373ffffffffffffffffffffffffffffffffffffffff16611cee565b15156109df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f6f6e6c792065787465726e616c6c79206163636f756e7473000000000000000081525060200191505060405180910390fd5b349550349450662386f26fc100008610151515610a8a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f696e766573746d656e74206d757374206265203e3d206d696e496e7665736d6581526020017f6e7400000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6a084595161401484a0000003073ffffffffffffffffffffffffffffffffffffffff163111151515610b24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f74686520636f6e7472616374206574682062616c616e6365206c696d6974000081525060200191505060405180910390fd5b85851115610be25785850393503373ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f19350505050158015610b77573d6000803e3d6000fd5b508594503373ffffffffffffffffffffffffffffffffffffffff167faac472d912a7451062b64c942775db41d65cce271603099e1c4760e072050951423489886040518085815260200184815260200183815260200182815260200194505050505060405180910390a25b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc610c3287600b611e7190919063ffffffff16565b9081150290604051600060405180830381858888f1935050505050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc610c9d876009611e7190919063ffffffff16565b9081150290604051600060405180830381858888f1935050505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cee2a9cf336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610d7557600080fd5b505af1158015610d89573d6000803e3d6000fd5b505050506040513d6020811015610d9f57600080fd5b81019080805190602001909291905050509250610dd18773ffffffffffffffffffffffffffffffffffffffff16611ea3565b8015610ddb575082155b8015610e315750600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610e6957503373ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b8015610f695750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cee2a9cf886040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610f2d57600080fd5b505af1158015610f41573d6000803e3d6000fd5b505050506040513d6020811015610f5757600080fd5b81019080805190602001909291905050505b1561115c5760018060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610fdf86610fd1611edc565b611f2490919063ffffffff16565b9150600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166320987e6488846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156110a657600080fd5b505af11580156110ba573d6000803e3d6000fd5b505050506040513d60208110156110d057600080fd5b810190808051906020019092919050505015156110e957fe5b81860195508673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc04fb14bddd876003a335c37b1fe6524ac1dbf74eb64dd08cd085fba4b97d5924285604051808381526020018281526020019250505060405180910390a35b61116533611d01565b9050828015611179575061117881611db7565b5b156111da5780860195503373ffffffffffffffffffffffffffffffffffffffff167f149822e3a65d38c9b6f40e835864c61ef5ca0866219afc2db638e3f85ae788664283604051808381526020018281526020019250505060405180910390a25b82156113f557600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166320987e6433886040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156112a557600080fd5b505af11580156112b9573d6000803e3d6000fd5b505050506040513d60208110156112cf57600080fd5b810190808051906020019092919050505015156112e857fe5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634401358533426040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156113ad57600080fd5b505af11580156113c1573d6000803e3d6000fd5b505050506040513d60208110156113d757600080fd5b810190808051906020019092919050505015156113f057fe5b611554565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166341b2121c3388426040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019350505050602060405180830381600087803b1580156114c257600080fd5b505af11580156114d6573d6000803e3d6000fd5b505050506040513d60208110156114ec57600080fd5b8101908080519060200190929190505050151561150557fe5b3373ffffffffffffffffffffffffffffffffffffffff167fc8616cf56c542aa2540734215ee474180fc3b9cc7c2fad288000504632cacf18426040518082815260200191505060405180910390a25b6005600081548092919060010191905055503373ffffffffffffffffffffffffffffffffffffffff167fd5a986028ae9e04f72859f7d3c1d8ae8b649c26be5b99d4c2d98ca4a19a0502e42888860405180848152602001838152602001828152602001935050505060405180910390a27f32367fddaa1baa1c6a0fc5c3e8284df724bacc7b50e847c32c9f9765f9f96137423073ffffffffffffffffffffffffffffffffffffffff1631604051808381526020018281526020019250505060405180910390a150505050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806116546121e7565b61165c611edc565b9050806000015181602001518093508194505050509091565b662386f26fc1000081565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561172e57600080fd5b505af1158015611742573d6000803e3d6000fd5b505050506040513d602081101561175857600080fd5b8101908080519060200190929190505050905090565b6a084595161401484a00000081565b600061178882611d01565b9050919050565b600080600b60000154600b6001015480925081935050509091565b60008060096000015460096001015480925081935050509091565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611889576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6163636573732064656e6965640000000000000000000000000000000000000081525060200191505060405180910390fd5b6118a88173ffffffffffffffffffffffffffffffffffffffff16611f56565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60055481565b6000806118fd6121e7565b611905611ffe565b9050806000015181602001518093508194505050509091565b60008060076000015460076001015480925081935050509091565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6163636573732064656e6965640000000000000000000000000000000000000081525060200191505060405180910390fd5b611a1c8173ffffffffffffffffffffffffffffffffffffffff16611f56565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dbcbaca4856040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506040805180830381600087803b158015611b2157600080fd5b505af1158015611b35573d6000803e3d6000fd5b505050506040513d6040811015611b4b57600080fd5b8101908080519060200190929190805190602001909291905050508093508194505050600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690509193909250565b60065481565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6163636573732064656e6965640000000000000000000000000000000000000081525060200191505060405180910390fd5b611cb5612046565b7f5189687a7ec9d4aebe2f548f952ffbbad19e4cd545c4a05b5e2369cd272dd551426040518082815260200191505060405180910390a1565b600080823b905060008114915050919050565b6000611d0b612201565b611d136121e7565b611d1c8461206c565b9150611d2b82600001516105c8565b80611d4d5750610258611d4b83602001514261219a90919063ffffffff16565b105b15611d5b5760009250611db0565b611d63611ffe565b90506090611d7e836000015183611f2490919063ffffffff16565b610258611d9885602001514261219a90919063ffffffff16565b811515611da157fe5b0402811515611dac57fe5b0492505b5050919050565b6000808214159050919050565b611dcc61221b565b604051809103906000f080158015611de8573d6000803e3d6000fd5b50600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600581905550426006819055507fc66870ef5f6257a76295d443e9221488043ec691f830f6c6128755c3518e3c75426040518082815260200191505060405180910390a1565b600080821415611e845760009050611e9d565b826001015483600001548302811515611e9957fe5b0490505b92915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614159050919050565b611ee46121e7565b60003073ffffffffffffffffffffffffffffffffffffffff163190506a084595161401484a000000811015611f2057611f1d60076121bb565b91505b5090565b600080821415611f375760009050611f50565b826020015183600001518302811515611f4c57fe5b0490505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611ffb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f72657175697265206e6f74207a65726f2061646472657373000000000000000081525060200191505060405180910390fd5b50565b6120066121e7565b60003073ffffffffffffffffffffffffffffffffffffffff163190506a084595161401484a0000008110156120425761203f60076121bb565b91505b5090565b6000806101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055565b612074612201565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dbcbaca4856040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506040805180830381600087803b15801561213357600080fd5b505af1158015612147573d6000803e3d6000fd5b505050506040513d604081101561215d57600080fd5b8101908080519060200190929190805190602001909291905050509150915060408051908101604052808381526020018281525092505050919050565b6000808383111515156121ac57600080fd5b82840390508091505092915050565b6121c36121e7565b60408051908101604052808360000154815260200183600101548152509050919050565b604080519081016040528060008152602001600081525090565b604080519081016040528060008152602001600081525090565b60405161083b8061222c8339019056006080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506107e8806100536000396000f300608060405260043610610078576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806320987e641461007d57806341b2121c146100e25780634401358514610151578063949d225d146101b6578063cee2a9cf146101e1578063dbcbaca41461023c575b600080fd5b34801561008957600080fd5b506100c8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061029a565b604051808215151515815260200191505060405180910390f35b3480156100ee57600080fd5b50610137600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919050505061040f565b604051808215151515815260200191505060405180910390f35b34801561015d57600080fd5b5061019c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061056a565b604051808215151515815260200191505060405180910390f35b3480156101c257600080fd5b506101cb6106d6565b6040518082815260200191505060405180910390f35b3480156101ed57600080fd5b50610222600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106dc565b604051808215151515815260200191505060405180910390f35b34801561024857600080fd5b5061027d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061072a565b604051808381526020018281526020019250505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610360576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6163636573732064656e6965640000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156103b45760009050610409565b81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282540192505081905550600190505b92915050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156104d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6163636573732064656e6965640000000000000000000000000000000000000081525060200191505060405180910390fd5b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816000015414158061052b5750600084145b156105395760009150610562565b838160000181905550828160010181905550600160008154809291906001019190505550600191505b509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610630576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6163636573732064656e6965640000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561068457600090506106d0565b81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550600190505b92915050565b60015481565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154119050919050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549150600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490509150915600a165627a7a723058204b49317588e0db61809faca2f1737ead957e11894585afa192cd39c562a7ddcc0029a165627a7a723058209a21d0c025108709e237775c899d70e829e0dce6364611d11f6401c7a39857ac0029

Deployed Bytecode Sourcemap

7254:8689:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9263:18;:9;:16;:18::i;:::-;9259:72;;;9292:16;:14;:16::i;:::-;9317:7;;9259:72;9364:30;9373:20;:8;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:20::i;:::-;9364:8;:30::i;:::-;9191:209;7254:8689;7738:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7738:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;11040:191;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11040:191:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7602:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7602:45:0;;;;;;;;;;;;;;;;;;;;;;;7776:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7776:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;9760:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9760:91:0;;;;;;;;;;;;;;;;;;;;;;;7670:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7670:45:0;;;;;;;;;;;;;;;;;;;;;;;10701:142;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10701:142:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10106:176;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10106:176:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10288:161;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10288:161:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9636:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9636:118:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7809:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7809:29:0;;;;;;;;;;;;;;;;;;;;;;;10849:185;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10849:185:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9952:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9952:148:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9502:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9502:128:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11237:620;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11237:620:0;;;;;;11863:2203;;;;;;;;;;;;;;;;;;;;;;;;;;;;10455:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10455:240:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7843:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7843:23:0;;;;;;;;;;;;;;;;;;;;;;;9857:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9857:89:0;;;;;;;;;;;;;;;;;;;;;;;9406:84;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9406:84:0;;;;;;2060:78;2106:4;2131:1;2126;:6;2119:13;;2060:78;;;:::o;11237:620::-;11336:14;8995:26;:10;:24;;;:26::i;:::-;8987:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11353:25;11367:10;11353:13;:25::i;:::-;11336:42;;11394:19;:9;:17;:19::i;:::-;11385:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11504:11;;;;;;;;;;;:26;;;11531:10;11543:3;11504:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11504:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11504:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11504:43:0;;;;;;;;;;;;;;;;11497:51;;;;;;11638:9;11621:4;11613:21;;;:34;;11609:109;;;11658:10;:8;:10::i;:::-;11697:4;11689:21;;;11677:33;;11609:109;11766:10;:19;;:30;11786:9;11766:30;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11766:30:0;11824:10;11808:43;;;11836:3;11841:9;11808:43;;;;;;;;;;;;;;;;;;;;;;;;8896:45;8914:3;8927:4;8919:21;;;8896:45;;;;;;;;;;;;;;;;;;;;;;;;11237:620;:::o;3630:143::-;3685:12;3742:4;3735:6;3731:16;3725:23;3717:31;;3763:4;3756:11;;3630:143;;;:::o;11863:2203::-;11956:15;11990:18;12274:11;12636:21;13043:13;13409:14;8995:26;:10;:24;;;:26::i;:::-;8987:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11974:9;11956:27;;12011:9;11990:30;;7638:9;12035:10;:26;;12027:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7704:11;12123:4;12115:21;;;:35;;12107:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12253:10;12237:13;:26;12233:242;;;12304:10;12288:13;:26;12274:40;;12323:10;:19;;:27;12343:6;12323:27;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12323:27:0;12375:10;12359:26;;12420:10;12399:68;;;12432:3;12437:9;12448:10;12460:6;12399:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12233:242;12502:18;;;;;;;;;;;:23;;:64;12526:39;12551:13;12526:20;:24;;:39;;;;:::i;:::-;12502:64;;;;;;;;;;;;;;;;;;;;;;;;12573:13;;;;;;;;;;;:18;;:54;12592:34;12612:13;12592:15;:19;;:34;;;;:::i;:::-;12573:54;;;;;;;;;;;;;;;;;;;;;;;;12660:11;;;;;;;;;;;:22;;;12683:10;12660:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12660:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12660:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12660:34:0;;;;;;;;;;;;;;;;12636:58;;12767:22;:12;:20;;;:22::i;:::-;:43;;;;;12794:16;12793:17;12767:43;:71;;;;;12815:11;:23;12827:10;12815:23;;;;;;;;;;;;;;;;;;;;;;;;;12814:24;12767:71;:108;;;;;12865:10;12849:26;;:12;:26;;;;12767:108;:148;;;;;12879:11;;;;;;;;;;;:22;;;12902:12;12879:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12879:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12879:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12879:36:0;;;;;;;;;;;;;;;;12767:148;12763:583;;;12960:4;12934:11;:23;12946:10;12934:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;13059:34;13082:10;13059:17;:15;:17::i;:::-;:22;;:34;;;;:::i;:::-;13043:50;;13109:11;;;;;;;;;;;:25;;;13135:12;13149:8;13109:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13109:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13109:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13109:49:0;;;;;;;;;;;;;;;;13102:57;;;;;;13204:8;13190:22;;;;13310:12;13283:55;;13298:10;13283:55;;;13324:3;13329:8;13283:55;;;;;;;;;;;;;;;;;;;;;;;;12763:583;13426:25;13440:10;13426:13;:25::i;:::-;13409:42;;13462:16;:39;;;;;13482:19;:9;:17;:19::i;:::-;13462:39;13458:147;;;13526:9;13512:23;;;;13570:10;13549:48;;;13582:3;13587:9;13549:48;;;;;;;;;;;;;;;;;;;;;;;;13458:147;13617:16;13613:349;;;13686:11;;;;;;;;;;;:25;;;13712:10;13724;13686:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13686:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13686:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13686:49:0;;;;;;;;;;;;;;;;13679:57;;;;;;13752:11;;;;;;;;;;;:26;;;13779:10;13791:3;13752:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13752:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13752:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13752:43:0;;;;;;;;;;;;;;;;13745:51;;;;;;13613:349;;;13856:11;;;;;;;;;;;:23;;;13880:10;13892;13904:3;13856:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13856:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13856:52:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13856:52:0;;;;;;;;;;;;;;;;13849:60;;;;;;13938:10;13923:31;;;13950:3;13923:31;;;;;;;;;;;;;;;;;;13613:349;13970:17;;:19;;;;;;;;;;;;;14017:10;14001:59;;;14029:3;14034:10;14046:13;14001:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8896:45;8914:3;8927:4;8919:21;;;8896:45;;;;;;;;;;;;;;;;;;;;;;;;11863:2203;;;;;;;:::o;7738:33::-;;;;;;;;;;;;;:::o;11040:191::-;11092:14;11108:16;11133:24;;:::i;:::-;11160:17;:15;:17::i;:::-;11133:44;;11212:1;:5;;;11219:1;:5;;;11184:41;;;;;;;;11040:191;;;:::o;7602:45::-;7638:9;7602:45;:::o;7776:28::-;;;;;;;;;;;;;:::o;9760:91::-;9807:4;9827:11;;;;;;;;;;;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9827:18:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9827:18:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9827:18:0;;;;;;;;;;;;;;;;9820:25;;9760:91;:::o;7670:45::-;7704:11;7670:45;:::o;10701:142::-;10775:14;10810:27;10824:12;10810:13;:27::i;:::-;10798:39;;10701:142;;;:::o;10106:176::-;10156:14;10172:16;10225:20;:24;;;10251:20;:24;;;10197:79;;;;;;;;10106:176;;:::o;10288:161::-;10333:14;10349:16;10402:15;:19;;;10423:15;:19;;;10374:69;;;;;;;;10288:161;;:::o;9636:118::-;5769:5;;;;;;;;;;;5755:19;;:10;:19;;;5747:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9700:21;:4;:19;;;:21::i;:::-;9744:4;9728:13;;:20;;;;;;;;;;;;;;;;;;9636:118;:::o;7809:29::-;;;;:::o;10849:185::-;10898:14;10914:16;10939:24;;:::i;:::-;10966:14;:12;:14::i;:::-;10939:41;;11015:1;:5;;;11022:1;:5;;;10987:41;;;;;;;;10849:185;;;:::o;9952:148::-;9992:14;10008:16;10061:11;:15;;;10078:11;:15;;;10033:61;;;;;;;;9952:148;;:::o;9502:128::-;5769:5;;;;;;;;;;;5755:19;;:10;:19;;;5747:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9571:21;:4;:19;;;:21::i;:::-;9620:4;9599:18;;:25;;;;;;;;;;;;;;;;;;9502:128;:::o;10455:240::-;10519:15;10536:16;10554:15;10606:11;;;;;;;;;;;:24;;;10631:12;10606:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10606:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10606:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10606:38:0;;;;;;;;;;;;;;;;;;;;;;;;;10578:66;;;;;;;;10664:11;:25;10676:12;10664:25;;;;;;;;;;;;;;;;;;;;;;;;;10651:38;;10455:240;;;;;:::o;7843:23::-;;;;:::o;9857:89::-;9899:4;9927;9919:21;;;9912:28;;9857:89;:::o;9406:84::-;5769:5;;;;;;;;;;;5755:19;;:10;:19;;;5747:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9450:8;:6;:8::i;:::-;9470:14;9480:3;9470:14;;;;;;;;;;;;;;;;;;9406:84::o;3779:160::-;3838:4;3851:11;3902:4;3890:17;3880:27;;3932:1;3922:6;:11;3915:18;;3779:160;;;;:::o;14333:901::-;14400:14;14423:41;;:::i;:::-;15088:24;;:::i;:::-;14467:28;14482:12;14467:14;:28::i;:::-;14423:72;;14548:28;:8;:19;;;:26;:28::i;:::-;:74;;;;14612:10;14580:29;14588:8;:20;;;14580:3;:7;;:29;;;;:::i;:::-;:42;14548:74;14544:105;;;14640:1;14633:8;;;;14544:105;15115:14;:12;:14::i;:::-;15088:41;;15225:3;15195:27;15202:8;:19;;;15195:1;:6;;:27;;;;:::i;:::-;15181:10;15149:29;15157:8;:20;;;15149:3;:7;;:29;;;;:::i;:::-;:42;;;;;;;;15148:74;:80;;;;;;;;15136:92;;14333:901;;;;;;:::o;2144:79::-;2191:4;2216:1;2211;:6;;2204:13;;2144:79;;;:::o;15783:157::-;15832:22;;:::i;:::-;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15832:22:0;15818:11;;:36;;;;;;;;;;;;;;;;;;15881:1;15861:17;:21;;;;15903:3;15889:11;:17;;;;15918:16;15930:3;15918:16;;;;;;;;;;;;;;;;;;15783:157::o;2381:145::-;2444:4;2466:1;2461;:6;2457:37;;;2485:1;2478:8;;;;2457:37;2515:1;:5;;;2509:1;:5;;;2507:1;:7;:13;;;;;;;;2500:20;;2381:145;;;;;:::o;1852:100::-;1905:4;1943:1;1927:18;;:4;:18;;;1925:21;1918:28;;1852:100;;;:::o;15501:276::-;15550:24;;:::i;:::-;15583:12;15606:4;15598:21;;;15583:36;;15700:14;15690:7;:24;15686:81;;;15730:22;:11;:20;:22::i;:::-;15726:26;;15686:81;15501:276;;:::o;3069:145::-;3132:4;3154:1;3149;:6;3145:37;;;3173:1;3166:8;;;;3145:37;3203:1;:5;;;3197:1;:5;;;3195:1;:7;:13;;;;;;;;3188:20;;3069:145;;;;;:::o;1616:120::-;1699:1;1683:18;;:4;:18;;;;1675:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1616:120;:::o;15240:255::-;15286:24;;:::i;:::-;15319:12;15342:4;15334:21;;;15319:36;;15423:14;15413:7;:24;15409:81;;;15453:22;:11;:20;:22::i;:::-;15449:26;;15409:81;15240:255;;:::o;5870:52::-;5911:5;;5904:12;;;;;;;;;;;5870:52::o;14072:255::-;14140:25;;:::i;:::-;14182:15;14199:16;14219:11;;;;;;;;;;;:24;;;14244:12;14219:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14219:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14219:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14219:38:0;;;;;;;;;;;;;;;;;;;;;;;;;14181:76;;;;14271:50;;;;;;;;;14297:10;14271:50;;;;14309:11;14271:50;;;14264:57;;14072:255;;;;;:::o;5053:142::-;5113:7;5153:9;5143:2;5137;:8;;5129:17;;;;;;;;5170:2;5165;:7;5153:19;;5188:1;5181:8;;5053:142;;;;;:::o;2916:133::-;2976:15;;:::i;:::-;3014:29;;;;;;;;;3030:1;:5;;;3014:29;;;;3037:1;:5;;;3014:29;;;3007:36;;2916:133;;;:::o;7254:8689::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o

Swarm Source

bzzr://4b49317588e0db61809faca2f1737ead957e11894585afa192cd39c562a7ddcc

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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.