ETH Price: $3,213.86 (-2.93%)

Contract

0x637D1F6532B94b0d88F02bDaf4A3a2E53885291B
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer47546422017-12-18 13:39:342521 days ago1513604374IN
0x637D1F65...53885291B
0.25 ETH0.0005740521
Transfer46740852017-12-04 12:07:132535 days ago1512389233IN
0x637D1F65...53885291B
0.40450125 ETH0.0005740521
Transfer46740802017-12-04 12:05:332535 days ago1512389133IN
0x637D1F65...53885291B
0.40607531 ETH0.0005740521
Transfer46740222017-12-04 11:53:022535 days ago1512388382IN
0x637D1F65...53885291B
0.40664936 ETH0.0005740521
Transfer46740142017-12-04 11:49:502535 days ago1512388190IN
0x637D1F65...53885291B
0.41722342 ETH0.0005740521
Transfer46740032017-12-04 11:47:502535 days ago1512388070IN
0x637D1F65...53885291B
0.41837153 ETH0.0005740521
Transfer46739962017-12-04 11:46:102535 days ago1512387970IN
0x637D1F65...53885291B
0.41837153 ETH0.0005740521
Transfer46739852017-12-04 11:43:202535 days ago1512387800IN
0x637D1F65...53885291B
0.41894559 ETH0.0005740521
Transfer46684402017-12-03 13:14:342536 days ago1512306874IN
0x637D1F65...53885291B
0.07 ETH0.0008009429.3
Transfer46684382017-12-03 13:13:422536 days ago1512306822IN
0x637D1F65...53885291B
0.07 ETH0.0008009429.3
Transfer46684162017-12-03 13:08:512536 days ago1512306531IN
0x637D1F65...53885291B
0.08 ETH0.0002788210.2
Transfer46684012017-12-03 13:05:502536 days ago1512306350IN
0x637D1F65...53885291B
0.0899 ETH0.00009843.6
Transfer46537282017-12-01 3:05:362538 days ago1512097536IN
0x637D1F65...53885291B
1 ETH0.0000823
Transfer46536582017-12-01 2:49:402538 days ago1512096580IN
0x637D1F65...53885291B
1 ETH0.00009843.6
Transfer46536322017-12-01 2:42:222538 days ago1512096142IN
0x637D1F65...53885291B
1 ETH0.0002733610
Transfer46535852017-12-01 2:29:582539 days ago1512095398IN
0x637D1F65...53885291B
1.0755842 ETH0.0002733610
Transfer46535682017-12-01 2:25:532539 days ago1512095153IN
0x637D1F65...53885291B
1.07635757 ETH0.0002733610
Transfer46535062017-12-01 2:12:012539 days ago1512094321IN
0x637D1F65...53885291B
1.07634092 ETH0.0002733610
Transfer46531152017-12-01 0:44:202539 days ago1512089060IN
0x637D1F65...53885291B
0.112 ETH0.0006013922
Transfer46531092017-12-01 0:42:562539 days ago1512088976IN
0x637D1F65...53885291B
0.15 ETH0.0006013922
Transfer46531042017-12-01 0:41:572539 days ago1512088917IN
0x637D1F65...53885291B
0.15 ETH0.0006013922
Transfer46530992017-12-01 0:41:072539 days ago1512088867IN
0x637D1F65...53885291B
0.15 ETH0.0006013922
Transfer46530562017-12-01 0:30:322539 days ago1512088232IN
0x637D1F65...53885291B
0.15 ETH0.0006013922
Transfer46528222017-11-30 23:35:182539 days ago1512084918IN
0x637D1F65...53885291B
0.2 ETH0.0015593921
Transfer46528112017-11-30 23:33:212539 days ago1512084801IN
0x637D1F65...53885291B
6.865 ETH0.0007425710
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
46528222017-11-30 23:35:182539 days ago1512084918
0x637D1F65...53885291B
0.2 ETH
46528112017-11-30 23:33:212539 days ago1512084801
0x637D1F65...53885291B
6.865 ETH
46527722017-11-30 23:22:112539 days ago1512084131
0x637D1F65...53885291B
0.75 ETH
46526902017-11-30 23:01:302539 days ago1512082890
0x637D1F65...53885291B
0.15 ETH
46524142017-11-30 22:00:002539 days ago1512079200
0x637D1F65...53885291B
0.14447 ETH
46522792017-11-30 21:31:022539 days ago1512077462
0x637D1F65...53885291B
0.255 ETH
46522162017-11-30 21:12:572539 days ago1512076377
0x637D1F65...53885291B
2 ETH
46522122017-11-30 21:11:142539 days ago1512076274
0x637D1F65...53885291B
0.221885 ETH
46512232017-11-30 17:25:412539 days ago1512062741
0x637D1F65...53885291B
1 ETH
46509182017-11-30 16:13:422539 days ago1512058422
0x637D1F65...53885291B
0.6 ETH
46505252017-11-30 14:36:072539 days ago1512052567
0x637D1F65...53885291B
1 ETH
46505112017-11-30 14:33:232539 days ago1512052403
0x637D1F65...53885291B
0.29720685 ETH
46504932017-11-30 14:29:322539 days ago1512052172
0x637D1F65...53885291B
0.318 ETH
46504912017-11-30 14:28:452539 days ago1512052125
0x637D1F65...53885291B
2 ETH
46503472017-11-30 13:53:572539 days ago1512050037
0x637D1F65...53885291B
0.188 ETH
46498842017-11-30 12:04:422539 days ago1512043482
0x637D1F65...53885291B
0.44449409 ETH
46496292017-11-30 11:11:092539 days ago1512040269
0x637D1F65...53885291B
0.17091132 ETH
46495812017-11-30 11:00:042539 days ago1512039604
0x637D1F65...53885291B
0.13098 ETH
46493562017-11-30 10:02:432539 days ago1512036163
0x637D1F65...53885291B
0.2 ETH
46484612017-11-30 6:28:552539 days ago1512023335
0x637D1F65...53885291B
0.2 ETH
46475182017-11-30 2:49:382539 days ago1512010178
0x637D1F65...53885291B
1.8 ETH
46455592017-11-29 19:12:162540 days ago1511982736
0x637D1F65...53885291B
10 ETH
46452822017-11-29 18:06:342540 days ago1511978794
0x637D1F65...53885291B
0.09870132 ETH
46451562017-11-29 17:33:042540 days ago1511976784
0x637D1F65...53885291B
0.5 ETH
46438742017-11-29 12:26:502540 days ago1511958410
0x637D1F65...53885291B
0.15 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Crowdsale

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-11-16
*/

pragma solidity ^0.4.18;

library SafeMath {
  function mul(uint256 a, uint256 b) internal constant returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal constant returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

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

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


contract IOwned {
  function owner() public constant returns (address) { owner; }
  function transferOwnership(address _newOwner) public;
}

contract Owned is IOwned {
  address public owner;

  function Owned() public {
    owner = msg.sender;
  }

  modifier validAddress(address _address) {
    require(_address != 0x0);
    _;
  }
  modifier onlyOwner {
    assert(msg.sender == owner);
    _;
  }
  
  function transferOwnership(address _newOwner) public validAddress(_newOwner) onlyOwner {
    require(_newOwner != owner);
    
    owner = _newOwner;
  }
}


contract IERC20Token {
  function name() public constant returns (string) { name; }
  function symbol() public constant returns (string) { symbol; }
  function decimals() public constant returns (uint8) { decimals; }
  function totalSupply() public constant returns (uint256) { totalSupply; }
  function balanceOf(address _owner) public constant returns (uint256 balance) { _owner; balance; }
  function allowance(address _owner, address _spender) public constant returns (uint256 remaining) { _owner; _spender; remaining; }

  function transfer(address _to, uint256 _value) public returns (bool);
  function transferFrom(address _from, address _to, uint256 _value) public returns (bool);
  function approve(address _spender, uint256 _value) public returns (bool);
}

contract ERC20Token is IERC20Token {
  using SafeMath for uint256;

  string public standard = 'Token 0.1';
  string public name = '';
  string public symbol = '';
  uint8 public decimals = 0;
  uint256 public totalSupply = 0;
  mapping (address => uint256) public balanceOf;
  mapping (address => mapping (address => uint256)) public allowance;

  event Transfer(address indexed _from, address indexed _to, uint256 _value);
  event Approval(address indexed _owner, address indexed _spender, uint256 _value);

  function ERC20Token(string _name, string _symbol, uint8 _decimals) public {
    require(bytes(_name).length > 0 && bytes(_symbol).length > 0);
    name = _name;
    symbol = _symbol;
    decimals = _decimals;
  }

  modifier validAddress(address _address) {
    require(_address != 0x0);
    _;
  }

  function transfer(address _to, uint256 _value) public validAddress(_to) returns (bool) {
    balanceOf[msg.sender] = balanceOf[msg.sender].sub(_value);
    balanceOf[_to] = balanceOf[_to].add(_value);
    Transfer(msg.sender, _to, _value);
    
    return true;
  }

  function transferFrom(address _from, address _to, uint256 _value) public validAddress(_to) returns (bool) {
    allowance[_from][msg.sender] = allowance[_from][msg.sender].sub(_value);
    balanceOf[_from] = balanceOf[_from].sub(_value);
    balanceOf[_to] = balanceOf[_to].add(_value);
    Transfer(_from, _to, _value);
    return true;
  }

  function approve(address _spender, uint256 _value) public validAddress(_spender) returns (bool) {
    require(_value == 0 || allowance[msg.sender][_spender] == 0);
    allowance[msg.sender][_spender] = _value;
    Approval(msg.sender, _spender, _value);
    return true;
  }
}



contract ISerenityToken {
  function initialSupply () public constant returns (uint256) { initialSupply; }

  function totalSoldTokens () public constant returns (uint256) { totalSoldTokens; }
  function totalProjectToken() public constant returns (uint256) { totalProjectToken; }

  function fundingEnabled() public constant returns (bool) { fundingEnabled; }
  function transfersEnabled() public constant returns (bool) { transfersEnabled; }
}

contract SerenityToken is ISerenityToken, ERC20Token, Owned {
  using SafeMath for uint256;
 
  address public fundingWallet;
  bool public fundingEnabled = true;
  uint256 public maxSaleToken = 3500000 ether;
  uint256 public initialSupply = 3500000 ether;
  uint256 public totalSoldTokens = 0;
  uint256 public totalProjectToken;
  bool public transfersEnabled = false;

  mapping (address => bool) private fundingWallets;

  event Finalize(address indexed _from, uint256 _value);
  event DisableTransfers(address indexed _from);

  function SerenityToken() ERC20Token("SERENITY", "SERENITY", 18) public {
    fundingWallet = msg.sender; 

    balanceOf[fundingWallet] = maxSaleToken;
    balanceOf[0x47c8F28e6056374aBA3DF0854306c2556B104601] = maxSaleToken;
    balanceOf[0xCAD0AfB8Ec657D0DB9518B930855534f6433360f] = maxSaleToken;
    balanceOf[0x041375343c3Bd1Bb28b40b5Ce7b4665A9a6e21D0] = maxSaleToken;

    fundingWallets[fundingWallet] = true;
    fundingWallets[0x47c8F28e6056374aBA3DF0854306c2556B104601] = true;
    fundingWallets[0xCAD0AfB8Ec657D0DB9518B930855534f6433360f] = true;
    fundingWallets[0x041375343c3Bd1Bb28b40b5Ce7b4665A9a6e21D0] = true;
  }

  modifier validAddress(address _address) {
    require(_address != 0x0);
    _;
  }

  modifier transfersAllowed(address _address) {
    if (fundingEnabled) {
      require(fundingWallets[_address]);
    }
    else {
      require(transfersEnabled);
    }
    _;
  }

  function transfer(address _to, uint256 _value) public validAddress(_to) transfersAllowed(msg.sender) returns (bool) {
    return super.transfer(_to, _value);
  }

  function autoTransfer(address _to, uint256 _value) public validAddress(_to) onlyOwner returns (bool) {
    return super.transfer(_to, _value);
  }

  function transferFrom(address _from, address _to, uint256 _value) public validAddress(_to) transfersAllowed(_from) returns (bool) {
    return super.transferFrom(_from, _to, _value);
  }

  function getTotalSoldTokens() public constant returns (uint256) {
    uint256 result = 0;
    result = result.add(maxSaleToken.sub(balanceOf[fundingWallet]));
    result = result.add(maxSaleToken.sub(balanceOf[0x47c8F28e6056374aBA3DF0854306c2556B104601]));
    result = result.add(maxSaleToken.sub(balanceOf[0xCAD0AfB8Ec657D0DB9518B930855534f6433360f]));
    result = result.add(maxSaleToken.sub(balanceOf[0x041375343c3Bd1Bb28b40b5Ce7b4665A9a6e21D0]));
    return result;
  }

  function finalize() external onlyOwner {
    require(fundingEnabled);
    
    totalSoldTokens = getTotalSoldTokens();

    totalProjectToken = totalSoldTokens.mul(15).div(100);

    // Zeroing a cold wallet.
    balanceOf[fundingWallet] = 0;
    balanceOf[0xCAD0AfB8Ec657D0DB9518B930855534f6433360f] = 0;
    balanceOf[0x041375343c3Bd1Bb28b40b5Ce7b4665A9a6e21D0] = 0;

    // Shareholders/bounties
    balanceOf[0x47c8F28e6056374aBA3DF0854306c2556B104601] = totalProjectToken;

    // End of crowdfunding.
    fundingEnabled = false;
    transfersEnabled = true;

    // End of crowdfunding.
    Transfer(this, fundingWallet, 0);
    Finalize(msg.sender, totalSupply);
  }

  function disableTransfers() external onlyOwner {
    require(transfersEnabled);

    transfersEnabled = false;

    DisableTransfers(msg.sender);
  }

  function disableFundingWallets(address _address) external onlyOwner {
    require(fundingEnabled);
    require(fundingWallet != _address);
    require(fundingWallets[_address]);

    fundingWallets[_address] = false;
  }

  function enableFundingWallets(address _address) external onlyOwner {
    require(fundingEnabled);
    require(fundingWallet != _address);

    fundingWallets[_address] = true;
  }
}


contract Crowdsale {
  using SafeMath for uint256;

  SerenityToken public token;

  mapping(uint256 => uint8) icoWeeksDiscounts; 

  uint256 public preStartTime = 1510704000;
  uint256 public preEndTime = 1512086400; 

  bool public isICOStarted = false; 
  uint256 public icoStartTime; 
  uint256 public icoEndTime; 

  address public wallet = 0x47c8F28e6056374aBA3DF0854306c2556B104601;
  uint256 public finneyPerToken = 100;
  uint256 public weiRaised;
  uint256 public ethRaised;

  event TokenPurchase(address indexed purchaser, address indexed beneficiary, uint256 value, uint256 amount);

  modifier validAddress(address _address) {
    require(_address != 0x0);
    _;
  }

  function Crowdsale() public {
    token = createTokenContract();
    initDiscounts();
  }

  function initDiscounts() internal {
    icoWeeksDiscounts[0] = 40;
    icoWeeksDiscounts[1] = 35;
    icoWeeksDiscounts[2] = 30;
    icoWeeksDiscounts[3] = 25;
    icoWeeksDiscounts[4] = 20;
    icoWeeksDiscounts[5] = 10;
  }

  function createTokenContract() internal returns (SerenityToken) {
    return new SerenityToken();
  }

  function () public payable {
    buyTokens(msg.sender);
  }

  function getTimeDiscount() internal constant returns(uint8) {
    require(isICOStarted == true);
    require(icoStartTime < now);
    require(icoEndTime > now);

    uint256 weeksPassed = (now - icoStartTime) / 7 days;
    return icoWeeksDiscounts[weeksPassed];
  } 

  function getTotalSoldDiscount() internal constant returns(uint8) {
    require(isICOStarted == true);
    require(icoStartTime < now);
    require(icoEndTime > now);

    uint256 totalSold = token.getTotalSoldTokens();

    if (totalSold < 150000 ether)
      return 50;
    else if (totalSold < 250000 ether)
      return 40;
    else if (totalSold < 500000 ether)
      return 35;
    else if (totalSold < 700000 ether)
      return 30;
    else if (totalSold < 1100000 ether)
      return 25;
    else if (totalSold < 2100000 ether)
      return 20;
    else if (totalSold < 3500000 ether)
      return 10;
  }

  function getDiscount() internal constant returns (uint8) {
    if (!isICOStarted)
      return 50;
    else {
      uint8 timeDiscount = getTimeDiscount();
      uint8 totalSoldDiscount = getTotalSoldDiscount();

      if (timeDiscount < totalSoldDiscount)
        return timeDiscount;
      else 
        return totalSoldDiscount;
    }
  }

  function buyTokens(address beneficiary) public validAddress(beneficiary) payable {
    require(isICOStarted || token.getTotalSoldTokens() < 150000 ether);
    require(validPurchase());

    uint8 discountPercents = getDiscount();
    uint256 tokens = msg.value.mul(100).div(100 - discountPercents).mul(10);

    require(tokens > 1 ether);

    weiRaised = weiRaised.add(msg.value);
    
    token.autoTransfer(beneficiary, tokens);
    TokenPurchase(msg.sender, beneficiary, msg.value, tokens);

    forwardFunds();
  }

  function activateICO(uint256 _icoEndTime) public {
    require(msg.sender == wallet);
    require(_icoEndTime >= now);
    require(isICOStarted == false);
      
    isICOStarted = true;
    icoEndTime = _icoEndTime;
    icoStartTime = now;
  }

  function forwardFunds() internal {
    wallet.transfer(msg.value);
  }

  function finalize() public {
    require(msg.sender == wallet);
    token.finalize();
  }

  function validPurchase() internal constant returns (bool) {
    bool withinPresalePeriod = now >= preStartTime && now <= preEndTime;
    bool withinICOPeriod = isICOStarted && now >= icoStartTime && now <= icoEndTime;

    bool nonZeroPurchase = msg.value != 0;
    
    return (withinPresalePeriod || withinICOPeriod) && nonZeroPurchase;
  }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"weiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"preStartTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"wallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"icoEndTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"finneyPerToken","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"preEndTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"icoStartTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_icoEndTime","type":"uint256"}],"name":"activateICO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isICOStarted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"}],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ethRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenPurchase","type":"event"}]

6060604052635a0b8380600255635a209b806003556004805460ff1916905560078054600160a060020a0319167347c8f28e6056374aba3df0854306c2556b1046011790556064600855341561005457600080fd5b61006964010000000061086d6100a382021704565b60008054600160a060020a031916600160a060020a039290921691909117905561009e6401000000006100c881026108951704565b6101e6565b60006100ad6101d6565b604051809103906000f08015156100c357600080fd5b905090565b60016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49805460ff199081166028179091557fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f8054821660231790557fd9d16d34ffb15ba3a3d852f0d403e2ce1d691fb54de27ac87cd2f993f3ec330f80548216601e1790557f7dfe757ecd65cbd7922a9c0161e935dd7fdbcc0e999689c7d31633896b1fc60b8054821660191790557fedc95719e9a3b28dd8e80877cb5880a9be7de1a13fc8b05e7999683b6b56764380548216601417905560056000527fe2689cd4a84e23ad2f564004f1c9013e9589d260bde6380aba3ca7e09e4df40c8054909116600a179055565b6040516113d480611fa983390190565b611db4806101f56000396000f300606060405260043610620000b95763ffffffff60e060020a6000350416634042b66f8114620000c65780634bb278f314620000ee5780634dc412101462000104578063521eb273146200011a5780637e1055b6146200014c57806396d4ebf11462000162578063a12c25641462000178578063a7c3d71b146200018e578063d9246bec14620001a4578063ec2f39b414620001bd578063ec8ac4d814620001e7578063fc0c546a14620001fd578063fddf0fc01462000213575b620000c43362000229565b005b3415620000d257600080fd5b620000dc62000442565b60405190815260200160405180910390f35b3415620000fa57600080fd5b620000c462000448565b34156200011057600080fd5b620000dc620004bb565b34156200012657600080fd5b62000130620004c1565b604051600160a060020a03909116815260200160405180910390f35b34156200015857600080fd5b620000dc620004d0565b34156200016e57600080fd5b620000dc620004d6565b34156200018457600080fd5b620000dc620004dc565b34156200019a57600080fd5b620000dc620004e2565b3415620001b057600080fd5b620000c4600435620004e8565b3415620001c957600080fd5b620001d362000539565b604051901515815260200160405180910390f35b620000c4600160a060020a036004351662000229565b34156200020957600080fd5b6200013062000542565b34156200021f57600080fd5b620000dc62000551565b60008082600160a060020a03811615156200024357600080fd5b60045460ff1680620002c6575060008054691fc3842bd1f071c0000091600160a060020a03909116906359be5e4590604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515620002a857600080fd5b6102c65a03f11515620002ba57600080fd5b50505060405180519050105b1515620002d257600080fd5b620002dc62000557565b1515620002e857600080fd5b620002f2620005bb565b925062000335600a620003288560640360ff166200031b6064346200061290919063ffffffff16565b9063ffffffff6200064016565b9063ffffffff6200061216565b9150670de0b6b3a764000082116200034c57600080fd5b60095462000361903463ffffffff6200065816565b60095560008054600160a060020a031690631d73fb9390869085906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515620003c757600080fd5b6102c65a03f11515620003d957600080fd5b505050604051805190505083600160a060020a031633600160a060020a03167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad18348560405191825260208201526040908101905180910390a36200043c62000668565b50505050565b60095481565b60075433600160a060020a039081169116146200046457600080fd5b600054600160a060020a0316634bb278f36040518163ffffffff1660e060020a028152600401600060405180830381600087803b1515620004a457600080fd5b6102c65a03f11515620004b657600080fd5b505050565b60025481565b600754600160a060020a031681565b60065481565b60085481565b60035481565b60055481565b60075433600160a060020a039081169116146200050457600080fd5b428110156200051257600080fd5b60045460ff16156200052357600080fd5b6004805460ff1916600117905560065542600555565b60045460ff1681565b600054600160a060020a031681565b600a5481565b60008060008060025442101580156200057257506003544211155b60045490935060ff1680156200058a57506005544210155b80156200059957506006544211155b9150503415158280620005a95750815b8015620005b35750805b935050505090565b6004546000908190819060ff161515620005d957603292506200060d565b620005e36200069f565b9150620005ef620006ff565b90508060ff168260ff16101562000609578192506200060d565b8092505b505090565b60008282028315806200063057508284828115156200062d57fe5b04145b15156200063957fe5b9392505050565b60008082848115156200064f57fe5b04949350505050565b6000828201838110156200063957fe5b600754600160a060020a03163480156108fc0290604051600060405180830381858888f1935050505015156200069d57600080fd5b565b600454600090819060ff161515600114620006b957600080fd5b600554429010620006c957600080fd5b600654429011620006d957600080fd5b60055462093a809042030460008181526001602052604090205460ff16925090505b5090565b600454600090819060ff1615156001146200071957600080fd5b6005544290106200072957600080fd5b6006544290116200073957600080fd5b60008054600160a060020a0316906359be5e4590604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156200078357600080fd5b6102c65a03f115156200079557600080fd5b5050506040518051915050691fc3842bd1f071c00000811015620007bd5760329150620006fb565b6934f086f3b33b68400000811015620007da5760289150620006fb565b6969e10de76676d0800000811015620007f75760239150620006fb565b69943b1377290cbd8000008110156200081457601e9150620006fb565b69e8ef1e96ae3897800000811015620008315760199150620006fb565b6a01bcb13a657b26388000008110156200084f5760149150620006fb565b6a02e5276153cd3fb3800000811015620006fb57600a9150620006fb565b600062000879620009a3565b604051809103906000f08015156200089057600080fd5b905090565b60016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49805460ff199081166028179091557fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f8054821660231790557fd9d16d34ffb15ba3a3d852f0d403e2ce1d691fb54de27ac87cd2f993f3ec330f80548216601e1790557f7dfe757ecd65cbd7922a9c0161e935dd7fdbcc0e999689c7d31633896b1fc60b8054821660191790557fedc95719e9a3b28dd8e80877cb5880a9be7de1a13fc8b05e7999683b6b56764380548216601417905560056000527fe2689cd4a84e23ad2f564004f1c9013e9589d260bde6380aba3ca7e09e4df40c8054909116600a179055565b6040516113d480620009b5833901905600606060405260408051908101604052600981527f546f6b656e20302e310000000000000000000000000000000000000000000000602082015260009080516200004d92916020019062000330565b5060206040519081016040526000815260019080516200007292916020019062000330565b5060206040519081016040526000815260029080516200009792916020019062000330565b506003805460ff19908116909155600060048190556008805460a060020a60ff021916740100000000000000000000000000000000000000001790556a02e5276153cd3fb38000006009819055600a55600b55600d805490911690553415620000ff57600080fd5b604080519081016040908152600882527f534552454e49545900000000000000000000000000000000000000000000000060208301528051908101604052600881527f534552454e49545900000000000000000000000000000000000000000000000060208201526012600083511180156200017c575060008251115b15156200018857600080fd5b60018380516200019d92916020019062000330565b506002828051620001b392916020019062000330565b506003805460ff90921660ff1992831617905560078054600160a060020a03338116600160a060020a031992831681179093556008805490921690921780825560095490831660009081526005602090815260408083208490557f3592c6fab48b47b7ae1ef83e7ebd8ad89b35c20a1c13212d035e5cd1279161c08490557f833bc96081b5b4f539ad5a03b241cdb0bbb5cfab3f275ded908aa458e3d866f58490557f5d6e044aeb2ab0715e0ddbe0dba972f40fd782bbd1dc0c563ca0c19c2f385cdd9390935592549093168352600e90915281208054831660019081179091557f88a70ed86e3a980c5357808226ae2f7f87303c74486aecdae79f17de41f9cf0080548416821790557fe38096d56a41577b8871d6f2197653c18c8c6e26967a7d2a522015e3318ab7d8805484168217905573041375343c3bd1bb28b40b5ce7b4665a9a6e21d09091527fdaca80441da638a1c4cfe6664cf1f72f2dd7b0d6d328233f50f8e99ff1cd43e0805490921617905550620003d59050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200037357805160ff1916838001178555620003a3565b82800160010185558215620003a3579182015b82811115620003a357825182559160200191906001019062000386565b50620003b1929150620003b5565b5090565b620003d291905b80821115620003b15760008155600101620003bc565b90565b610fef80620003e56000396000f3006060604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305b95822811461014d57806306fdde031461016e578063095ea7b3146101f857806318160ddd1461022e5780631d73fb931461025357806323b872dd14610275578063313ce5671461029d578063378dc3dc146102c65780633a67a0f6146102d95780633c4b40b8146102ec5780634bb278f31461031b57806354d188641461032e5780635923c7f91461034157806359be5e45146103545780635a3b7e421461036757806370a082311461037a5780638da5cb5b1461039957806395d89b41146103ac578063a9059cbb146103bf578063b9d2fa35146103e1578063bef97c8714610400578063d7ca994914610413578063dd62ed3e14610426578063e10e95c91461044b578063f2fde38b1461045e575b600080fd5b341561015857600080fd5b61016c600160a060020a036004351661047d565b005b341561017957600080fd5b6101816104ec565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101bd5780820151838201526020016101a5565b50505050905090810190601f1680156101ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561020357600080fd5b61021a600160a060020a036004351660243561058a565b604051901515815260200160405180910390f35b341561023957600080fd5b610241610647565b60405190815260200160405180910390f35b341561025e57600080fd5b61021a600160a060020a036004351660243561064d565b341561028057600080fd5b61021a600160a060020a036004358116906024351660443561068f565b34156102a857600080fd5b6102b061070d565b60405160ff909116815260200160405180910390f35b34156102d157600080fd5b610241610716565b34156102e457600080fd5b61016c61071c565b34156102f757600080fd5b6102ff610787565b604051600160a060020a03909116815260200160405180910390f35b341561032657600080fd5b61016c610796565b341561033957600080fd5b610241610946565b341561034c57600080fd5b61024161094c565b341561035f57600080fd5b610241610952565b341561037257600080fd5b610181610aa0565b341561038557600080fd5b610241600160a060020a0360043516610b0b565b34156103a457600080fd5b6102ff610b1d565b34156103b757600080fd5b610181610b2c565b34156103ca57600080fd5b61021a600160a060020a0360043516602435610b97565b34156103ec57600080fd5b61016c600160a060020a0360043516610c13565b341561040b57600080fd5b61021a610ca6565b341561041e57600080fd5b610241610caf565b341561043157600080fd5b610241600160a060020a0360043581169060243516610cb5565b341561045657600080fd5b61021a610cd2565b341561046957600080fd5b61016c600160a060020a0360043516610ce2565b60075433600160a060020a0390811691161461049557fe5b60085460a060020a900460ff1615156104ad57600080fd5b600854600160a060020a03828116911614156104c857600080fd5b600160a060020a03166000908152600e60205260409020805460ff19166001179055565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105825780601f1061055757610100808354040283529160200191610582565b820191906000526020600020905b81548152906001019060200180831161056557829003601f168201915b505050505081565b600082600160a060020a03811615156105a257600080fd5b8215806105d25750600160a060020a03338116600090815260066020908152604080832093881683529290522054155b15156105dd57600080fd5b600160a060020a03338116600081815260066020908152604080832094891680845294909152908190208690557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259086905190815260200160405180910390a35060019392505050565b60045481565b600082600160a060020a038116151561066557600080fd5b60075433600160a060020a0390811691161461067d57fe5b6106878484610d5b565b949350505050565b600082600160a060020a03811615156106a757600080fd5b600854859060a060020a900460ff16156106e757600160a060020a0381166000908152600e602052604090205460ff1615156106e257600080fd5b6106f8565b600d5460ff1615156106f857600080fd5b610703868686610e33565b9695505050505050565b60035460ff1681565b600a5481565b60075433600160a060020a0390811691161461073457fe5b600d5460ff16151561074557600080fd5b600d805460ff19169055600160a060020a0333167fe4e1bd53368c1f6ab96631b284b855345d15dfbdc71054b5796ba0a42153584060405160405180910390a2565b600854600160a060020a031681565b60075433600160a060020a039081169116146107ae57fe5b60085460a060020a900460ff1615156107c657600080fd5b6107ce610952565b600b8190556107f7906064906107eb90600f63ffffffff610f6016565b9063ffffffff610f8b16565b600c90815560088054600160a060020a039081166000908152600560205260408082208290557f833bc96081b5b4f539ad5a03b241cdb0bbb5cfab3f275ded908aa458e3d866f58290557f5d6e044aeb2ab0715e0ddbe0dba972f40fd782bbd1dc0c563ca0c19c2f385cdd82905593547347c8f28e6056374aba3df0854306c2556b10460182527f3592c6fab48b47b7ae1ef83e7ebd8ad89b35c20a1c13212d035e5cd1279161c055825474ff0000000000000000000000000000000000000000198116909355600d805460ff191660011790559181169230909116917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915190815260200160405180910390a333600160a060020a03167fd0e5eaaad928655181d43ca1fb4d47483e60e23e9c17f165728d9979d2d9b93a60045460405190815260200160405180910390a2565b600c5481565b60095481565b600854600160a060020a03166000908152600560205260408120546009548291610992916109859163ffffffff610fa216565b829063ffffffff610fb416565b7347c8f28e6056374aba3df0854306c2556b10460160005260056020527f3592c6fab48b47b7ae1ef83e7ebd8ad89b35c20a1c13212d035e5cd1279161c0546009549192506109ea916109859163ffffffff610fa216565b73cad0afb8ec657d0db9518b930855534f6433360f60005260056020527f833bc96081b5b4f539ad5a03b241cdb0bbb5cfab3f275ded908aa458e3d866f554600954919250610a42916109859163ffffffff610fa216565b73041375343c3bd1bb28b40b5ce7b4665a9a6e21d060005260056020527f5d6e044aeb2ab0715e0ddbe0dba972f40fd782bbd1dc0c563ca0c19c2f385cdd54600954919250610a9a916109859163ffffffff610fa216565b92915050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105825780601f1061055757610100808354040283529160200191610582565b60056020526000908152604090205481565b600754600160a060020a031681565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105825780601f1061055757610100808354040283529160200191610582565b600082600160a060020a0381161515610baf57600080fd5b600854339060a060020a900460ff1615610bef57600160a060020a0381166000908152600e602052604090205460ff161515610bea57600080fd5b610c00565b600d5460ff161515610c0057600080fd5b610c0a8585610d5b565b95945050505050565b60075433600160a060020a03908116911614610c2b57fe5b60085460a060020a900460ff161515610c4357600080fd5b600854600160a060020a0382811691161415610c5e57600080fd5b600160a060020a0381166000908152600e602052604090205460ff161515610c8557600080fd5b600160a060020a03166000908152600e60205260409020805460ff19169055565b600d5460ff1681565b600b5481565b600660209081526000928352604080842090915290825290205481565b60085460a060020a900460ff1681565b80600160a060020a0381161515610cf857600080fd5b60075433600160a060020a03908116911614610d1057fe5b600754600160a060020a0383811691161415610d2b57600080fd5b506007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600082600160a060020a0381161515610d7357600080fd5b600160a060020a033316600090815260056020526040902054610d9c908463ffffffff610fa216565b600160a060020a033381166000908152600560205260408082209390935590861681522054610dd1908463ffffffff610fb416565b600160a060020a0380861660008181526005602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a35060019392505050565b600082600160a060020a0381161515610e4b57600080fd5b600160a060020a0380861660009081526006602090815260408083203390941683529290522054610e82908463ffffffff610fa216565b600160a060020a038087166000818152600660209081526040808320339095168352938152838220949094559081526005909252902054610ec9908463ffffffff610fa216565b600160a060020a038087166000908152600560205260408082209390935590861681522054610efe908463ffffffff610fb416565b600160a060020a03808616600081815260056020526040908190209390935591908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3506001949350505050565b6000828202831580610f7c5750828482811515610f7957fe5b04145b1515610f8457fe5b9392505050565b6000808284811515610f9957fe5b04949350505050565b600082821115610fae57fe5b50900390565b600082820183811015610f8457fe00a165627a7a723058205123eeeaadb285c2eb07ba722c1e3abfda05b7476f8200ac91938c6fc02a7c740029a165627a7a72305820fe62aa6cd309e91395878ecc2e20318d713dd983b5af752e3868bdaaf4370cc60029606060405260408051908101604052600981527f546f6b656e20302e310000000000000000000000000000000000000000000000602082015260009080516200004d92916020019062000330565b5060206040519081016040526000815260019080516200007292916020019062000330565b5060206040519081016040526000815260029080516200009792916020019062000330565b506003805460ff19908116909155600060048190556008805460a060020a60ff021916740100000000000000000000000000000000000000001790556a02e5276153cd3fb38000006009819055600a55600b55600d805490911690553415620000ff57600080fd5b604080519081016040908152600882527f534552454e49545900000000000000000000000000000000000000000000000060208301528051908101604052600881527f534552454e49545900000000000000000000000000000000000000000000000060208201526012600083511180156200017c575060008251115b15156200018857600080fd5b60018380516200019d92916020019062000330565b506002828051620001b392916020019062000330565b506003805460ff90921660ff1992831617905560078054600160a060020a03338116600160a060020a031992831681179093556008805490921690921780825560095490831660009081526005602090815260408083208490557f3592c6fab48b47b7ae1ef83e7ebd8ad89b35c20a1c13212d035e5cd1279161c08490557f833bc96081b5b4f539ad5a03b241cdb0bbb5cfab3f275ded908aa458e3d866f58490557f5d6e044aeb2ab0715e0ddbe0dba972f40fd782bbd1dc0c563ca0c19c2f385cdd9390935592549093168352600e90915281208054831660019081179091557f88a70ed86e3a980c5357808226ae2f7f87303c74486aecdae79f17de41f9cf0080548416821790557fe38096d56a41577b8871d6f2197653c18c8c6e26967a7d2a522015e3318ab7d8805484168217905573041375343c3bd1bb28b40b5ce7b4665a9a6e21d09091527fdaca80441da638a1c4cfe6664cf1f72f2dd7b0d6d328233f50f8e99ff1cd43e0805490921617905550620003d59050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200037357805160ff1916838001178555620003a3565b82800160010185558215620003a3579182015b82811115620003a357825182559160200191906001019062000386565b50620003b1929150620003b5565b5090565b620003d291905b80821115620003b15760008155600101620003bc565b90565b610fef80620003e56000396000f3006060604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305b95822811461014d57806306fdde031461016e578063095ea7b3146101f857806318160ddd1461022e5780631d73fb931461025357806323b872dd14610275578063313ce5671461029d578063378dc3dc146102c65780633a67a0f6146102d95780633c4b40b8146102ec5780634bb278f31461031b57806354d188641461032e5780635923c7f91461034157806359be5e45146103545780635a3b7e421461036757806370a082311461037a5780638da5cb5b1461039957806395d89b41146103ac578063a9059cbb146103bf578063b9d2fa35146103e1578063bef97c8714610400578063d7ca994914610413578063dd62ed3e14610426578063e10e95c91461044b578063f2fde38b1461045e575b600080fd5b341561015857600080fd5b61016c600160a060020a036004351661047d565b005b341561017957600080fd5b6101816104ec565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101bd5780820151838201526020016101a5565b50505050905090810190601f1680156101ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561020357600080fd5b61021a600160a060020a036004351660243561058a565b604051901515815260200160405180910390f35b341561023957600080fd5b610241610647565b60405190815260200160405180910390f35b341561025e57600080fd5b61021a600160a060020a036004351660243561064d565b341561028057600080fd5b61021a600160a060020a036004358116906024351660443561068f565b34156102a857600080fd5b6102b061070d565b60405160ff909116815260200160405180910390f35b34156102d157600080fd5b610241610716565b34156102e457600080fd5b61016c61071c565b34156102f757600080fd5b6102ff610787565b604051600160a060020a03909116815260200160405180910390f35b341561032657600080fd5b61016c610796565b341561033957600080fd5b610241610946565b341561034c57600080fd5b61024161094c565b341561035f57600080fd5b610241610952565b341561037257600080fd5b610181610aa0565b341561038557600080fd5b610241600160a060020a0360043516610b0b565b34156103a457600080fd5b6102ff610b1d565b34156103b757600080fd5b610181610b2c565b34156103ca57600080fd5b61021a600160a060020a0360043516602435610b97565b34156103ec57600080fd5b61016c600160a060020a0360043516610c13565b341561040b57600080fd5b61021a610ca6565b341561041e57600080fd5b610241610caf565b341561043157600080fd5b610241600160a060020a0360043581169060243516610cb5565b341561045657600080fd5b61021a610cd2565b341561046957600080fd5b61016c600160a060020a0360043516610ce2565b60075433600160a060020a0390811691161461049557fe5b60085460a060020a900460ff1615156104ad57600080fd5b600854600160a060020a03828116911614156104c857600080fd5b600160a060020a03166000908152600e60205260409020805460ff19166001179055565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105825780601f1061055757610100808354040283529160200191610582565b820191906000526020600020905b81548152906001019060200180831161056557829003601f168201915b505050505081565b600082600160a060020a03811615156105a257600080fd5b8215806105d25750600160a060020a03338116600090815260066020908152604080832093881683529290522054155b15156105dd57600080fd5b600160a060020a03338116600081815260066020908152604080832094891680845294909152908190208690557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259086905190815260200160405180910390a35060019392505050565b60045481565b600082600160a060020a038116151561066557600080fd5b60075433600160a060020a0390811691161461067d57fe5b6106878484610d5b565b949350505050565b600082600160a060020a03811615156106a757600080fd5b600854859060a060020a900460ff16156106e757600160a060020a0381166000908152600e602052604090205460ff1615156106e257600080fd5b6106f8565b600d5460ff1615156106f857600080fd5b610703868686610e33565b9695505050505050565b60035460ff1681565b600a5481565b60075433600160a060020a0390811691161461073457fe5b600d5460ff16151561074557600080fd5b600d805460ff19169055600160a060020a0333167fe4e1bd53368c1f6ab96631b284b855345d15dfbdc71054b5796ba0a42153584060405160405180910390a2565b600854600160a060020a031681565b60075433600160a060020a039081169116146107ae57fe5b60085460a060020a900460ff1615156107c657600080fd5b6107ce610952565b600b8190556107f7906064906107eb90600f63ffffffff610f6016565b9063ffffffff610f8b16565b600c90815560088054600160a060020a039081166000908152600560205260408082208290557f833bc96081b5b4f539ad5a03b241cdb0bbb5cfab3f275ded908aa458e3d866f58290557f5d6e044aeb2ab0715e0ddbe0dba972f40fd782bbd1dc0c563ca0c19c2f385cdd82905593547347c8f28e6056374aba3df0854306c2556b10460182527f3592c6fab48b47b7ae1ef83e7ebd8ad89b35c20a1c13212d035e5cd1279161c055825474ff0000000000000000000000000000000000000000198116909355600d805460ff191660011790559181169230909116917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915190815260200160405180910390a333600160a060020a03167fd0e5eaaad928655181d43ca1fb4d47483e60e23e9c17f165728d9979d2d9b93a60045460405190815260200160405180910390a2565b600c5481565b60095481565b600854600160a060020a03166000908152600560205260408120546009548291610992916109859163ffffffff610fa216565b829063ffffffff610fb416565b7347c8f28e6056374aba3df0854306c2556b10460160005260056020527f3592c6fab48b47b7ae1ef83e7ebd8ad89b35c20a1c13212d035e5cd1279161c0546009549192506109ea916109859163ffffffff610fa216565b73cad0afb8ec657d0db9518b930855534f6433360f60005260056020527f833bc96081b5b4f539ad5a03b241cdb0bbb5cfab3f275ded908aa458e3d866f554600954919250610a42916109859163ffffffff610fa216565b73041375343c3bd1bb28b40b5ce7b4665a9a6e21d060005260056020527f5d6e044aeb2ab0715e0ddbe0dba972f40fd782bbd1dc0c563ca0c19c2f385cdd54600954919250610a9a916109859163ffffffff610fa216565b92915050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105825780601f1061055757610100808354040283529160200191610582565b60056020526000908152604090205481565b600754600160a060020a031681565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105825780601f1061055757610100808354040283529160200191610582565b600082600160a060020a0381161515610baf57600080fd5b600854339060a060020a900460ff1615610bef57600160a060020a0381166000908152600e602052604090205460ff161515610bea57600080fd5b610c00565b600d5460ff161515610c0057600080fd5b610c0a8585610d5b565b95945050505050565b60075433600160a060020a03908116911614610c2b57fe5b60085460a060020a900460ff161515610c4357600080fd5b600854600160a060020a0382811691161415610c5e57600080fd5b600160a060020a0381166000908152600e602052604090205460ff161515610c8557600080fd5b600160a060020a03166000908152600e60205260409020805460ff19169055565b600d5460ff1681565b600b5481565b600660209081526000928352604080842090915290825290205481565b60085460a060020a900460ff1681565b80600160a060020a0381161515610cf857600080fd5b60075433600160a060020a03908116911614610d1057fe5b600754600160a060020a0383811691161415610d2b57600080fd5b506007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600082600160a060020a0381161515610d7357600080fd5b600160a060020a033316600090815260056020526040902054610d9c908463ffffffff610fa216565b600160a060020a033381166000908152600560205260408082209390935590861681522054610dd1908463ffffffff610fb416565b600160a060020a0380861660008181526005602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a35060019392505050565b600082600160a060020a0381161515610e4b57600080fd5b600160a060020a0380861660009081526006602090815260408083203390941683529290522054610e82908463ffffffff610fa216565b600160a060020a038087166000818152600660209081526040808320339095168352938152838220949094559081526005909252902054610ec9908463ffffffff610fa216565b600160a060020a038087166000908152600560205260408082209390935590861681522054610efe908463ffffffff610fb416565b600160a060020a03808616600081815260056020526040908190209390935591908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3506001949350505050565b6000828202831580610f7c5750828482811515610f7957fe5b04145b1515610f8457fe5b9392505050565b6000808284811515610f9957fe5b04949350505050565b600082821115610fae57fe5b50900390565b600082820183811015610f8457fe00a165627a7a723058205123eeeaadb285c2eb07ba722c1e3abfda05b7476f8200ac91938c6fc02a7c740029

Deployed Bytecode

0x606060405260043610620000b95763ffffffff60e060020a6000350416634042b66f8114620000c65780634bb278f314620000ee5780634dc412101462000104578063521eb273146200011a5780637e1055b6146200014c57806396d4ebf11462000162578063a12c25641462000178578063a7c3d71b146200018e578063d9246bec14620001a4578063ec2f39b414620001bd578063ec8ac4d814620001e7578063fc0c546a14620001fd578063fddf0fc01462000213575b620000c43362000229565b005b3415620000d257600080fd5b620000dc62000442565b60405190815260200160405180910390f35b3415620000fa57600080fd5b620000c462000448565b34156200011057600080fd5b620000dc620004bb565b34156200012657600080fd5b62000130620004c1565b604051600160a060020a03909116815260200160405180910390f35b34156200015857600080fd5b620000dc620004d0565b34156200016e57600080fd5b620000dc620004d6565b34156200018457600080fd5b620000dc620004dc565b34156200019a57600080fd5b620000dc620004e2565b3415620001b057600080fd5b620000c4600435620004e8565b3415620001c957600080fd5b620001d362000539565b604051901515815260200160405180910390f35b620000c4600160a060020a036004351662000229565b34156200020957600080fd5b6200013062000542565b34156200021f57600080fd5b620000dc62000551565b60008082600160a060020a03811615156200024357600080fd5b60045460ff1680620002c6575060008054691fc3842bd1f071c0000091600160a060020a03909116906359be5e4590604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515620002a857600080fd5b6102c65a03f11515620002ba57600080fd5b50505060405180519050105b1515620002d257600080fd5b620002dc62000557565b1515620002e857600080fd5b620002f2620005bb565b925062000335600a620003288560640360ff166200031b6064346200061290919063ffffffff16565b9063ffffffff6200064016565b9063ffffffff6200061216565b9150670de0b6b3a764000082116200034c57600080fd5b60095462000361903463ffffffff6200065816565b60095560008054600160a060020a031690631d73fb9390869085906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515620003c757600080fd5b6102c65a03f11515620003d957600080fd5b505050604051805190505083600160a060020a031633600160a060020a03167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad18348560405191825260208201526040908101905180910390a36200043c62000668565b50505050565b60095481565b60075433600160a060020a039081169116146200046457600080fd5b600054600160a060020a0316634bb278f36040518163ffffffff1660e060020a028152600401600060405180830381600087803b1515620004a457600080fd5b6102c65a03f11515620004b657600080fd5b505050565b60025481565b600754600160a060020a031681565b60065481565b60085481565b60035481565b60055481565b60075433600160a060020a039081169116146200050457600080fd5b428110156200051257600080fd5b60045460ff16156200052357600080fd5b6004805460ff1916600117905560065542600555565b60045460ff1681565b600054600160a060020a031681565b600a5481565b60008060008060025442101580156200057257506003544211155b60045490935060ff1680156200058a57506005544210155b80156200059957506006544211155b9150503415158280620005a95750815b8015620005b35750805b935050505090565b6004546000908190819060ff161515620005d957603292506200060d565b620005e36200069f565b9150620005ef620006ff565b90508060ff168260ff16101562000609578192506200060d565b8092505b505090565b60008282028315806200063057508284828115156200062d57fe5b04145b15156200063957fe5b9392505050565b60008082848115156200064f57fe5b04949350505050565b6000828201838110156200063957fe5b600754600160a060020a03163480156108fc0290604051600060405180830381858888f1935050505015156200069d57600080fd5b565b600454600090819060ff161515600114620006b957600080fd5b600554429010620006c957600080fd5b600654429011620006d957600080fd5b60055462093a809042030460008181526001602052604090205460ff16925090505b5090565b600454600090819060ff1615156001146200071957600080fd5b6005544290106200072957600080fd5b6006544290116200073957600080fd5b60008054600160a060020a0316906359be5e4590604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156200078357600080fd5b6102c65a03f115156200079557600080fd5b5050506040518051915050691fc3842bd1f071c00000811015620007bd5760329150620006fb565b6934f086f3b33b68400000811015620007da5760289150620006fb565b6969e10de76676d0800000811015620007f75760239150620006fb565b69943b1377290cbd8000008110156200081457601e9150620006fb565b69e8ef1e96ae3897800000811015620008315760199150620006fb565b6a01bcb13a657b26388000008110156200084f5760149150620006fb565b6a02e5276153cd3fb3800000811015620006fb57600a9150620006fb565b600062000879620009a3565b604051809103906000f08015156200089057600080fd5b905090565b60016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49805460ff199081166028179091557fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f8054821660231790557fd9d16d34ffb15ba3a3d852f0d403e2ce1d691fb54de27ac87cd2f993f3ec330f80548216601e1790557f7dfe757ecd65cbd7922a9c0161e935dd7fdbcc0e999689c7d31633896b1fc60b8054821660191790557fedc95719e9a3b28dd8e80877cb5880a9be7de1a13fc8b05e7999683b6b56764380548216601417905560056000527fe2689cd4a84e23ad2f564004f1c9013e9589d260bde6380aba3ca7e09e4df40c8054909116600a179055565b6040516113d480620009b5833901905600606060405260408051908101604052600981527f546f6b656e20302e310000000000000000000000000000000000000000000000602082015260009080516200004d92916020019062000330565b5060206040519081016040526000815260019080516200007292916020019062000330565b5060206040519081016040526000815260029080516200009792916020019062000330565b506003805460ff19908116909155600060048190556008805460a060020a60ff021916740100000000000000000000000000000000000000001790556a02e5276153cd3fb38000006009819055600a55600b55600d805490911690553415620000ff57600080fd5b604080519081016040908152600882527f534552454e49545900000000000000000000000000000000000000000000000060208301528051908101604052600881527f534552454e49545900000000000000000000000000000000000000000000000060208201526012600083511180156200017c575060008251115b15156200018857600080fd5b60018380516200019d92916020019062000330565b506002828051620001b392916020019062000330565b506003805460ff90921660ff1992831617905560078054600160a060020a03338116600160a060020a031992831681179093556008805490921690921780825560095490831660009081526005602090815260408083208490557f3592c6fab48b47b7ae1ef83e7ebd8ad89b35c20a1c13212d035e5cd1279161c08490557f833bc96081b5b4f539ad5a03b241cdb0bbb5cfab3f275ded908aa458e3d866f58490557f5d6e044aeb2ab0715e0ddbe0dba972f40fd782bbd1dc0c563ca0c19c2f385cdd9390935592549093168352600e90915281208054831660019081179091557f88a70ed86e3a980c5357808226ae2f7f87303c74486aecdae79f17de41f9cf0080548416821790557fe38096d56a41577b8871d6f2197653c18c8c6e26967a7d2a522015e3318ab7d8805484168217905573041375343c3bd1bb28b40b5ce7b4665a9a6e21d09091527fdaca80441da638a1c4cfe6664cf1f72f2dd7b0d6d328233f50f8e99ff1cd43e0805490921617905550620003d59050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200037357805160ff1916838001178555620003a3565b82800160010185558215620003a3579182015b82811115620003a357825182559160200191906001019062000386565b50620003b1929150620003b5565b5090565b620003d291905b80821115620003b15760008155600101620003bc565b90565b610fef80620003e56000396000f3006060604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305b95822811461014d57806306fdde031461016e578063095ea7b3146101f857806318160ddd1461022e5780631d73fb931461025357806323b872dd14610275578063313ce5671461029d578063378dc3dc146102c65780633a67a0f6146102d95780633c4b40b8146102ec5780634bb278f31461031b57806354d188641461032e5780635923c7f91461034157806359be5e45146103545780635a3b7e421461036757806370a082311461037a5780638da5cb5b1461039957806395d89b41146103ac578063a9059cbb146103bf578063b9d2fa35146103e1578063bef97c8714610400578063d7ca994914610413578063dd62ed3e14610426578063e10e95c91461044b578063f2fde38b1461045e575b600080fd5b341561015857600080fd5b61016c600160a060020a036004351661047d565b005b341561017957600080fd5b6101816104ec565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101bd5780820151838201526020016101a5565b50505050905090810190601f1680156101ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561020357600080fd5b61021a600160a060020a036004351660243561058a565b604051901515815260200160405180910390f35b341561023957600080fd5b610241610647565b60405190815260200160405180910390f35b341561025e57600080fd5b61021a600160a060020a036004351660243561064d565b341561028057600080fd5b61021a600160a060020a036004358116906024351660443561068f565b34156102a857600080fd5b6102b061070d565b60405160ff909116815260200160405180910390f35b34156102d157600080fd5b610241610716565b34156102e457600080fd5b61016c61071c565b34156102f757600080fd5b6102ff610787565b604051600160a060020a03909116815260200160405180910390f35b341561032657600080fd5b61016c610796565b341561033957600080fd5b610241610946565b341561034c57600080fd5b61024161094c565b341561035f57600080fd5b610241610952565b341561037257600080fd5b610181610aa0565b341561038557600080fd5b610241600160a060020a0360043516610b0b565b34156103a457600080fd5b6102ff610b1d565b34156103b757600080fd5b610181610b2c565b34156103ca57600080fd5b61021a600160a060020a0360043516602435610b97565b34156103ec57600080fd5b61016c600160a060020a0360043516610c13565b341561040b57600080fd5b61021a610ca6565b341561041e57600080fd5b610241610caf565b341561043157600080fd5b610241600160a060020a0360043581169060243516610cb5565b341561045657600080fd5b61021a610cd2565b341561046957600080fd5b61016c600160a060020a0360043516610ce2565b60075433600160a060020a0390811691161461049557fe5b60085460a060020a900460ff1615156104ad57600080fd5b600854600160a060020a03828116911614156104c857600080fd5b600160a060020a03166000908152600e60205260409020805460ff19166001179055565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105825780601f1061055757610100808354040283529160200191610582565b820191906000526020600020905b81548152906001019060200180831161056557829003601f168201915b505050505081565b600082600160a060020a03811615156105a257600080fd5b8215806105d25750600160a060020a03338116600090815260066020908152604080832093881683529290522054155b15156105dd57600080fd5b600160a060020a03338116600081815260066020908152604080832094891680845294909152908190208690557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259086905190815260200160405180910390a35060019392505050565b60045481565b600082600160a060020a038116151561066557600080fd5b60075433600160a060020a0390811691161461067d57fe5b6106878484610d5b565b949350505050565b600082600160a060020a03811615156106a757600080fd5b600854859060a060020a900460ff16156106e757600160a060020a0381166000908152600e602052604090205460ff1615156106e257600080fd5b6106f8565b600d5460ff1615156106f857600080fd5b610703868686610e33565b9695505050505050565b60035460ff1681565b600a5481565b60075433600160a060020a0390811691161461073457fe5b600d5460ff16151561074557600080fd5b600d805460ff19169055600160a060020a0333167fe4e1bd53368c1f6ab96631b284b855345d15dfbdc71054b5796ba0a42153584060405160405180910390a2565b600854600160a060020a031681565b60075433600160a060020a039081169116146107ae57fe5b60085460a060020a900460ff1615156107c657600080fd5b6107ce610952565b600b8190556107f7906064906107eb90600f63ffffffff610f6016565b9063ffffffff610f8b16565b600c90815560088054600160a060020a039081166000908152600560205260408082208290557f833bc96081b5b4f539ad5a03b241cdb0bbb5cfab3f275ded908aa458e3d866f58290557f5d6e044aeb2ab0715e0ddbe0dba972f40fd782bbd1dc0c563ca0c19c2f385cdd82905593547347c8f28e6056374aba3df0854306c2556b10460182527f3592c6fab48b47b7ae1ef83e7ebd8ad89b35c20a1c13212d035e5cd1279161c055825474ff0000000000000000000000000000000000000000198116909355600d805460ff191660011790559181169230909116917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915190815260200160405180910390a333600160a060020a03167fd0e5eaaad928655181d43ca1fb4d47483e60e23e9c17f165728d9979d2d9b93a60045460405190815260200160405180910390a2565b600c5481565b60095481565b600854600160a060020a03166000908152600560205260408120546009548291610992916109859163ffffffff610fa216565b829063ffffffff610fb416565b7347c8f28e6056374aba3df0854306c2556b10460160005260056020527f3592c6fab48b47b7ae1ef83e7ebd8ad89b35c20a1c13212d035e5cd1279161c0546009549192506109ea916109859163ffffffff610fa216565b73cad0afb8ec657d0db9518b930855534f6433360f60005260056020527f833bc96081b5b4f539ad5a03b241cdb0bbb5cfab3f275ded908aa458e3d866f554600954919250610a42916109859163ffffffff610fa216565b73041375343c3bd1bb28b40b5ce7b4665a9a6e21d060005260056020527f5d6e044aeb2ab0715e0ddbe0dba972f40fd782bbd1dc0c563ca0c19c2f385cdd54600954919250610a9a916109859163ffffffff610fa216565b92915050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105825780601f1061055757610100808354040283529160200191610582565b60056020526000908152604090205481565b600754600160a060020a031681565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105825780601f1061055757610100808354040283529160200191610582565b600082600160a060020a0381161515610baf57600080fd5b600854339060a060020a900460ff1615610bef57600160a060020a0381166000908152600e602052604090205460ff161515610bea57600080fd5b610c00565b600d5460ff161515610c0057600080fd5b610c0a8585610d5b565b95945050505050565b60075433600160a060020a03908116911614610c2b57fe5b60085460a060020a900460ff161515610c4357600080fd5b600854600160a060020a0382811691161415610c5e57600080fd5b600160a060020a0381166000908152600e602052604090205460ff161515610c8557600080fd5b600160a060020a03166000908152600e60205260409020805460ff19169055565b600d5460ff1681565b600b5481565b600660209081526000928352604080842090915290825290205481565b60085460a060020a900460ff1681565b80600160a060020a0381161515610cf857600080fd5b60075433600160a060020a03908116911614610d1057fe5b600754600160a060020a0383811691161415610d2b57600080fd5b506007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600082600160a060020a0381161515610d7357600080fd5b600160a060020a033316600090815260056020526040902054610d9c908463ffffffff610fa216565b600160a060020a033381166000908152600560205260408082209390935590861681522054610dd1908463ffffffff610fb416565b600160a060020a0380861660008181526005602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a35060019392505050565b600082600160a060020a0381161515610e4b57600080fd5b600160a060020a0380861660009081526006602090815260408083203390941683529290522054610e82908463ffffffff610fa216565b600160a060020a038087166000818152600660209081526040808320339095168352938152838220949094559081526005909252902054610ec9908463ffffffff610fa216565b600160a060020a038087166000908152600560205260408082209390935590861681522054610efe908463ffffffff610fb416565b600160a060020a03808616600081815260056020526040908190209390935591908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3506001949350505050565b6000828202831580610f7c5750828482811515610f7957fe5b04145b1515610f8457fe5b9392505050565b6000808284811515610f9957fe5b04949350505050565b600082821115610fae57fe5b50900390565b600082820183811015610f8457fe00a165627a7a723058205123eeeaadb285c2eb07ba722c1e3abfda05b7476f8200ac91938c6fc02a7c740029a165627a7a72305820fe62aa6cd309e91395878ecc2e20318d713dd983b5af752e3868bdaaf4370cc60029

Swarm Source

bzzr://5123eeeaadb285c2eb07ba722c1e3abfda05b7476f8200ac91938c6fc02a7c74

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
[ 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.