ETH Price: $2,699.74 (-0.14%)

Contract

0x93a92Eb9a01F8A1f3e82e17e56fF7AFA3640269d
 

Overview

ETH Balance

0.007833222728587974 ETH

Eth Value

$21.15 (@ $2,699.74/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer Kitty78440542019-05-27 21:21:222090 days ago1558992082IN
0x93a92Eb9...A3640269d
0 ETH0.00016754
Transfer Kitty78440522019-05-27 21:20:222090 days ago1558992022IN
0x93a92Eb9...A3640269d
0 ETH0.00022754
Transfer Kitty78440512019-05-27 21:20:152090 days ago1558992015IN
0x93a92Eb9...A3640269d
0 ETH0.00022754
Transfer Kitty78440512019-05-27 21:20:152090 days ago1558992015IN
0x93a92Eb9...A3640269d
0 ETH0.00022754
Transfer Kitty78440492019-05-27 21:20:032090 days ago1558992003IN
0x93a92Eb9...A3640269d
0 ETH0.00022754
Transfer Kitty78440462019-05-27 21:19:232090 days ago1558991963IN
0x93a92Eb9...A3640269d
0 ETH0.00022754
Transfer Kitty78440442019-05-27 21:18:492090 days ago1558991929IN
0x93a92Eb9...A3640269d
0 ETH0.00022754
Transfer Kitty78440432019-05-27 21:18:352090 days ago1558991915IN
0x93a92Eb9...A3640269d
0 ETH0.00022754
Cancel Sale Auct...78440372019-05-27 21:17:432090 days ago1558991863IN
0x93a92Eb9...A3640269d
0 ETH0.000075222
Cancel Sale Auct...78440172019-05-27 21:13:072090 days ago1558991587IN
0x93a92Eb9...A3640269d
0 ETH0.000112843
Cancel Sale Auct...78440172019-05-27 21:13:072090 days ago1558991587IN
0x93a92Eb9...A3640269d
0 ETH0.000112843
Cancel Sale Auct...78440162019-05-27 21:12:562090 days ago1558991576IN
0x93a92Eb9...A3640269d
0 ETH0.000112843
Cancel Sale Auct...78440162019-05-27 21:12:562090 days ago1558991576IN
0x93a92Eb9...A3640269d
0 ETH0.000112843
Cancel Sale Auct...78440142019-05-27 21:12:352090 days ago1558991555IN
0x93a92Eb9...A3640269d
0 ETH0.000112843
Cancel Sale Auct...78440142019-05-27 21:12:352090 days ago1558991555IN
0x93a92Eb9...A3640269d
0 ETH0.000112843
Cancel Sale Auct...78440052019-05-27 21:09:362090 days ago1558991376IN
0x93a92Eb9...A3640269d
0 ETH0.000135683
Transfer Kitty78439902019-05-27 21:06:322090 days ago1558991192IN
0x93a92Eb9...A3640269d
0 ETH0.00016754
Transfer Kitty78439892019-05-27 21:06:242090 days ago1558991184IN
0x93a92Eb9...A3640269d
0 ETH0.00022754
Transfer Kitty78439892019-05-27 21:06:242090 days ago1558991184IN
0x93a92Eb9...A3640269d
0 ETH0.00022754
Transfer Kitty78439892019-05-27 21:06:242090 days ago1558991184IN
0x93a92Eb9...A3640269d
0 ETH0.00022754
Transfer Kitty78439872019-05-27 21:05:452090 days ago1558991145IN
0x93a92Eb9...A3640269d
0 ETH0.00022754
Transfer Kitty78439872019-05-27 21:05:452090 days ago1558991145IN
0x93a92Eb9...A3640269d
0 ETH0.00022754
Transfer Kitty78439852019-05-27 21:05:142090 days ago1558991114IN
0x93a92Eb9...A3640269d
0 ETH0.00022754
Transfer Kitty78439792019-05-27 21:03:312090 days ago1558991011IN
0x93a92Eb9...A3640269d
0 ETH0.00022754
Transfer Kitty78439792019-05-27 21:03:312090 days ago1558991011IN
0x93a92Eb9...A3640269d
0 ETH0.00022754
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
78235332019-05-24 16:50:362093 days ago1558716636
0x93a92Eb9...A3640269d
0.00385 ETH
78175572019-05-23 18:26:012094 days ago1558635961
0x93a92Eb9...A3640269d
0.001 ETH
78175572019-05-23 18:26:012094 days ago1558635961
0x93a92Eb9...A3640269d
0.008 ETH
78175552019-05-23 18:25:472094 days ago1558635947
0x93a92Eb9...A3640269d
0.001 ETH
78175552019-05-23 18:25:472094 days ago1558635947
0x93a92Eb9...A3640269d
0.008 ETH
78155782019-05-23 11:01:592094 days ago1558609319
0x93a92Eb9...A3640269d
0.001 ETH
78155782019-05-23 11:01:592094 days ago1558609319
0x93a92Eb9...A3640269d
0.008 ETH
78155762019-05-23 11:01:502094 days ago1558609310
0x93a92Eb9...A3640269d
0.001 ETH
78155762019-05-23 11:01:502094 days ago1558609310
0x93a92Eb9...A3640269d
0.008 ETH
78155732019-05-23 11:00:442094 days ago1558609244
0x93a92Eb9...A3640269d
0.001 ETH
78155732019-05-23 11:00:442094 days ago1558609244
0x93a92Eb9...A3640269d
0.008 ETH
78146002019-05-23 7:15:192095 days ago1558595719
0x93a92Eb9...A3640269d
0.001 ETH
78146002019-05-23 7:15:192095 days ago1558595719
0x93a92Eb9...A3640269d
0.008 ETH
78145512019-05-23 7:02:282095 days ago1558594948
0x93a92Eb9...A3640269d
0.001 ETH
78145512019-05-23 7:02:282095 days ago1558594948
0x93a92Eb9...A3640269d
0.008 ETH
78145482019-05-23 7:01:482095 days ago1558594908
0x93a92Eb9...A3640269d
0.001 ETH
78145482019-05-23 7:01:482095 days ago1558594908
0x93a92Eb9...A3640269d
0.008 ETH
78140652019-05-23 5:11:152095 days ago1558588275
0x93a92Eb9...A3640269d
0.001 ETH
78140652019-05-23 5:11:152095 days ago1558588275
0x93a92Eb9...A3640269d
0.008 ETH
78140192019-05-23 5:00:592095 days ago1558587659
0x93a92Eb9...A3640269d
0.001 ETH
78140192019-05-23 5:00:592095 days ago1558587659
0x93a92Eb9...A3640269d
0.008 ETH
78140172019-05-23 5:00:512095 days ago1558587651
0x93a92Eb9...A3640269d
0.001 ETH
78140172019-05-23 5:00:512095 days ago1558587651
0x93a92Eb9...A3640269d
0.008 ETH
78110822019-05-22 17:59:382095 days ago1558547978
0x93a92Eb9...A3640269d
0.001 ETH
78110822019-05-22 17:59:382095 days ago1558547978
0x93a92Eb9...A3640269d
0.008 ETH
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xa9aeE61a...c1d92283A
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
SimpleBreeding

Compiler Version
v0.5.3+commit.10d17f24

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-25
*/

pragma solidity ^0.5.3;

/**
 * @title SafeMath
 * @dev Unsigned math operations with safety checks that revert on error
 */
library SafeMath {
    /**
     * @dev Multiplies two unsigned integers, 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 unsigned integers truncating the quotient, reverts on division by zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 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 unsigned integers, 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 unsigned integers, 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 unsigned integers 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;
    }
}

/// @title Interface for contracts conforming to ERC-721: Non-Fungible Tokens
contract ERC721 {
    // Required methods
    function totalSupply() public view returns (uint256 total);
    function balanceOf(address _owner) public view returns (uint256 balance);
    function ownerOf(uint256 _tokenId) external view returns (address owner);
    function approve(address _to, uint256 _tokenId) external;
    function transfer(address _to, uint256 _tokenId) external;
    function transferFrom(address _from, address _to, uint256 _tokenId) external;

    // Events
    event Transfer(address from, address to, uint256 tokenId);
    event Approval(address owner, address approved, uint256 tokenId);

    // Optional
    // function name() public view returns (string name);
    // function symbol() public view returns (string symbol);
    // function tokensOfOwner(address _owner) external view returns (uint256[] tokenIds);
    // function tokenMetadata(uint256 _tokenId, string _preferredTransport) public view returns (string infoUrl);

    // ERC-165 Compatibility (https://github.com/ethereum/EIPs/issues/165)
    function supportsInterface(bytes4 _interfaceID) external view returns (bool);
}

contract KittyCoreInterface is ERC721  {
    uint256 public autoBirthFee;
    address public saleAuction;
    address public siringAuction;
    function breedWithAuto(uint256 _matronId, uint256 _sireId) public payable;
    function createSaleAuction(uint256 _kittyId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration) external;
    function createSiringAuction(uint256 _kittyId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration) external;
    function supportsInterface(bytes4 _interfaceID) external view returns (bool);
}

contract AuctionInterface {
    function cancelAuction(uint256 _tokenId) external;
}

contract Ownable {
  address payable public owner;

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

  constructor(address payable _owner) public {
    if(_owner == address(0)) {
      owner = msg.sender;
    } else {
      owner = _owner;
    }
  }

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

  function transferOwnership(address payable _newOwner) public onlyOwner {
    _transferOwnership(_newOwner);
  }

  function _transferOwnership(address payable _newOwner) internal {
    require(_newOwner != address(0));
    emit OwnershipTransferred(owner, _newOwner);
    owner = _newOwner;
  }

  function destroy() public onlyOwner {
    selfdestruct(owner);
  }

  function destroyAndSend(address payable _recipient) public onlyOwner {
    selfdestruct(_recipient);
  }
}

contract Pausable is Ownable {
    event Pause();
    event Unpause();

    bool public paused = false;

    constructor(address payable _owner) Ownable(_owner) public {}

    modifier whenNotPaused() {
        require(!paused, "Contract paused");
        _;
    }

    modifier whenPaused() {
        require(paused, "Contract should be paused");
        _;
    }

    function pause() public onlyOwner whenNotPaused {
        paused = true;
        emit Pause();
    }

    function unpause() public onlyOwner whenPaused {
        paused = false;
        emit Unpause();
    }
}

contract CKProxy is Pausable {
  KittyCoreInterface public kittyCore;
  AuctionInterface public saleAuction;
  AuctionInterface public siringAuction;

constructor(address payable _owner, address _kittyCoreAddress) Pausable(_owner) public {
    require(_kittyCoreAddress != address(0));
    kittyCore = KittyCoreInterface(_kittyCoreAddress);
    require(kittyCore.supportsInterface(0x9a20483d));

    saleAuction = AuctionInterface(kittyCore.saleAuction());
    siringAuction = AuctionInterface(kittyCore.siringAuction());
  }

  /**
   * Owner can transfer kitty
   */
  function transferKitty(address _to, uint256 _kittyId) external onlyOwner {
    kittyCore.transfer(_to, _kittyId);
  }

  /**
   * Owner can transfer kitty
   */
  function transferKittyBulk(address _to, uint256[] calldata _kittyIds) external onlyOwner {
    for(uint256 i = 0; i < _kittyIds.length; i++) {
      kittyCore.transfer(_to, _kittyIds[i]);
    }
  }

  /**
   * Owner can transferFrom kitty
   */
  function transferKittyFrom(address _from, address _to, uint256 _kittyId) external onlyOwner {
    kittyCore.transferFrom(_from, _to, _kittyId);
  }

  /**
   * Owner can approve kitty
   */
  function approveKitty(address _to, uint256 _kittyId) external  onlyOwner {
    kittyCore.approve(_to, _kittyId);
  }

  /**
   * Owner can start sales auction for kitty owned by contract
   */
  function createSaleAuction(uint256 _kittyId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration) external onlyOwner {
    kittyCore.createSaleAuction(_kittyId, _startingPrice, _endingPrice, _duration);
  }

  /**
   * Owner can cancel sales auction for kitty owned by contract
   */
  function cancelSaleAuction(uint256 _kittyId) external onlyOwner {
    saleAuction.cancelAuction(_kittyId);
  }

  /**
   * Owner can start siring auction for kitty owned by contract
   */
  function createSiringAuction(uint256 _kittyId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration) external onlyOwner {
    kittyCore.createSiringAuction(_kittyId, _startingPrice, _endingPrice, _duration);
  }

  /**
   * Owner can cancel siring auction for kitty owned by contract
   */
  function cancelSiringAuction(uint256 _kittyId) external onlyOwner {
    siringAuction.cancelAuction(_kittyId);
  }
}

 /**
 * @title SimpleBreeding
 * @dev Simple breeding contract allows dedicated breeder to breed kitties on behalf of owner, while owner retains control over funds and kitties.
 * Breeder gets reward per each successful breed. Breeder can breed when contract is not paused.
 * Owner should transfer kitties and funds to contact to breeding starts and withdraw afterwards.
 * Breeder can only breed kitties owned by contract and cannot transfer funds or kitties itself.
 */

contract SimpleBreeding is CKProxy {
  address payable public breeder;
  uint256 public breederReward;
  uint256 public originalBreederReward;
  uint256 public maxBreedingFee;

  event Breed(address breeder, uint256 matronId, uint256 sireId, uint256 reward);
  event MaxBreedingFeeChange(uint256 oldBreedingFee, uint256 newBreedingFee);
  event BreederRewardChange(uint256 oldBreederReward, uint256 newBreederReward);

  constructor(address payable _owner, address payable _breeder, address _kittyCoreAddress, uint256 _breederReward) CKProxy(_owner, _kittyCoreAddress) public {
    require(_breeder != address(0));
    breeder = _breeder;
    maxBreedingFee = kittyCore.autoBirthFee();
    breederReward = _breederReward;
    originalBreederReward = _breederReward;
  }

  /**
   * Contract funds are used to cover breeding fees and pay callee
   */
  function () external payable {}

  /**
   * Owner can withdraw funds from contract
   */
  function withdraw(uint256 amount) external onlyOwner {
    owner.transfer(amount);
  }

  /**
   * Owner can adjust breedering fee if needed
   */
  function setMaxBreedingFee(
    uint256 _maxBreedingFee
  ) external onlyOwner {
    emit MaxBreedingFeeChange(maxBreedingFee, _maxBreedingFee);
    maxBreedingFee = _maxBreedingFee;
  }

   /**
   * Owner or breeder can change breeder's reward if needed.
   * Breeder can lower reward to make more attractive offer, it cannot set more than was originally agreed.
   * Owner can increase reward to motivate breeder to breed during high gas price, it cannot set less than was set by breeder.
   */
  function setBreederReward(
    uint256 _breederReward
  ) external {
    require(msg.sender == breeder || msg.sender == owner);
    
    if(msg.sender == owner) {
      require(_breederReward >= originalBreederReward || _breederReward > breederReward, 'Reward value is less than required');
    } else if(msg.sender == breeder) {
      require(_breederReward <= originalBreederReward, 'Reward value is more than original');
    }

    emit BreederRewardChange(breederReward, _breederReward);
    breederReward = _breederReward;
  }

  /**
   * Breeder can call this function to breed kitties on behalf of owner
   * Owner can breed as well
   */
  function breed(uint256 _matronId, uint256 _sireId) external whenNotPaused {
    require(msg.sender == breeder || msg.sender == owner);
    uint256 fee = kittyCore.autoBirthFee();
    require(fee <= maxBreedingFee);
    kittyCore.breedWithAuto.value(fee)(_matronId, _sireId);

    uint256 reward = 0;
    // breeder can reenter but that's OK, since breeder is payed per successful breed
    if(msg.sender == breeder) {
      reward = breederReward;
      breeder.transfer(reward);
    }

    emit Breed(msg.sender, _matronId, _sireId, reward);
  }

  function destroy() public onlyOwner {
    require(kittyCore.balanceOf(address(this)) == 0, 'Contract has tokens');
    selfdestruct(owner);
  }

  function destroyAndSend(address payable _recipient) public onlyOwner {
    require(kittyCore.balanceOf(address(this)) == 0, 'Contract has tokens');
    selfdestruct(_recipient);
  }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_kittyId","type":"uint256"}],"name":"approveKitty","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"originalBreederReward","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_kittyId","type":"uint256"}],"name":"cancelSiringAuction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"siringAuction","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kittyCore","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_maxBreedingFee","type":"uint256"}],"name":"setMaxBreedingFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kittyId","type":"uint256"},{"name":"_startingPrice","type":"uint256"},{"name":"_endingPrice","type":"uint256"},{"name":"_duration","type":"uint256"}],"name":"createSaleAuction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_breederReward","type":"uint256"}],"name":"setBreederReward","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kittyId","type":"uint256"},{"name":"_startingPrice","type":"uint256"},{"name":"_endingPrice","type":"uint256"},{"name":"_duration","type":"uint256"}],"name":"createSiringAuction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"destroy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_kittyIds","type":"uint256[]"}],"name":"transferKittyBulk","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"breeder","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_kittyId","type":"uint256"}],"name":"transferKittyFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kittyId","type":"uint256"}],"name":"cancelSaleAuction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"breederReward","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_matronId","type":"uint256"},{"name":"_sireId","type":"uint256"}],"name":"breed","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"saleAuction","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_recipient","type":"address"}],"name":"destroyAndSend","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxBreedingFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_kittyId","type":"uint256"}],"name":"transferKitty","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_owner","type":"address"},{"name":"_breeder","type":"address"},{"name":"_kittyCoreAddress","type":"address"},{"name":"_breederReward","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"breeder","type":"address"},{"indexed":false,"name":"matronId","type":"uint256"},{"indexed":false,"name":"sireId","type":"uint256"},{"indexed":false,"name":"reward","type":"uint256"}],"name":"Breed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldBreedingFee","type":"uint256"},{"indexed":false,"name":"newBreedingFee","type":"uint256"}],"name":"MaxBreedingFeeChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldBreederReward","type":"uint256"},{"indexed":false,"name":"newBreederReward","type":"uint256"}],"name":"BreederRewardChange","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

Deployed Bytecode

0x60806040526004361061019d576000357c0100000000000000000000000000000000000000000000000000000000900480638456cb59116100ee578063d0826cbb116100a7578063f2fde38b11610081578063f2fde38b146107b6578063f5074f4114610807578063fc1e747614610858578063ffc42470146108835761019d565b8063d0826cbb146106ef578063d9ecad7b1461071a578063e6cbe3511461075f5761019d565b80638456cb59146104ce5780638da5cb5b146104e55780638fb4fc4f1461053c578063ae9dfc4d146105e2578063b2e2418a14610639578063c31f586d146106b45761019d565b80633d280e8e1161015b578063489b388c11610135578063489b388c146103f45780634ad8c9381461042f5780635c975abb1461048857806383197ef0146104b75761019d565b80633d280e8e146103495780633d7d3f5a146103845780633f4ba83a146103dd5761019d565b8062aa418f1461019f5780630504d9c5146101fa578063103335671461022557806321717ebf146102605780632e1a7d4d146102b75780633d115334146102f2575b005b3480156101ab57600080fd5b506101f8600480360360408110156101c257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108de565b005b34801561020657600080fd5b5061020f610a1a565b6040518082815260200191505060405180910390f35b34801561023157600080fd5b5061025e6004803603602081101561024857600080fd5b8101908080359060200190929190505050610a20565b005b34801561026c57600080fd5b50610275610b27565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102c357600080fd5b506102f0600480360360208110156102da57600080fd5b8101908080359060200190929190505050610b4d565b005b3480156102fe57600080fd5b50610307610c13565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561035557600080fd5b506103826004803603602081101561036c57600080fd5b8101908080359060200190929190505050610c39565b005b34801561039057600080fd5b506103db600480360360808110156103a757600080fd5b8101908080359060200190929190803590602001909291908035906020019092919080359060200190929190505050610cdf565b005b3480156103e957600080fd5b506103f2610e01565b005b34801561040057600080fd5b5061042d6004803603602081101561041757600080fd5b8101908080359060200190929190505050610f28565b005b34801561043b57600080fd5b506104866004803603608081101561045257600080fd5b810190808035906020019092919080359060200190929190803590602001909291908035906020019092919050505061119e565b005b34801561049457600080fd5b5061049d6112c0565b604051808215151515815260200191505060405180910390f35b3480156104c357600080fd5b506104cc6112d3565b005b3480156104da57600080fd5b506104e36114d5565b005b3480156104f157600080fd5b506104fa6115fe565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561054857600080fd5b506105e06004803603604081101561055f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561059c57600080fd5b8201836020820111156105ae57600080fd5b803590602001918460208302840111640100000000831117156105d057600080fd5b9091929391929390505050611623565b005b3480156105ee57600080fd5b506105f7611793565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561064557600080fd5b506106b26004803603606081101561065c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117b9565b005b3480156106c057600080fd5b506106ed600480360360208110156106d757600080fd5b810190808035906020019092919050505061192a565b005b3480156106fb57600080fd5b50610704611a31565b6040518082815260200191505060405180910390f35b34801561072657600080fd5b5061075d6004803603604081101561073d57600080fd5b810190808035906020019092919080359060200190929190505050611a37565b005b34801561076b57600080fd5b50610774611e40565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107c257600080fd5b50610805600480360360208110156107d957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e66565b005b34801561081357600080fd5b506108566004803603602081101561082a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ecd565b005b34801561086457600080fd5b5061086d6120ae565b6040518082815260200191505060405180910390f35b34801561088f57600080fd5b506108dc600480360360408110156108a657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506120b4565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561093957600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b383836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156109fe57600080fd5b505af1158015610a12573d6000803e3d6000fd5b505050505050565b60065481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a7b57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166396b5a755826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015610b0c57600080fd5b505af1158015610b20573d6000803e3d6000fd5b5050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ba857600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610c0f573d6000803e3d6000fd5b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c9457600080fd5b7f693d3e7d14d8f845811b787f8d28c1aef4b4bac15721fbea5dc8a8a7c85da61b60075482604051808381526020018281526020019250505060405180910390a18060078190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d3a57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633d7d3f5a858585856040518563ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180858152602001848152602001838152602001828152602001945050505050600060405180830381600087803b158015610de357600080fd5b505af1158015610df7573d6000803e3d6000fd5b5050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e5c57600080fd5b600060149054906101000a900460ff161515610ee0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f436f6e74726163742073686f756c64206265207061757365640000000000000081525060200191505060405180910390fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610fd057506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610fdb57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561109e5760065481101580611042575060055481115b1515611099576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806122eb6022913960400191505060405180910390fd5b611153565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611152576006548111151515611151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061230d6022913960400191505060405180910390fd5b5b5b7ffdac16f44d837cccd5f18e297e4e2c1366844b81ed087ea6506eb1f1bcd7b6f460055482604051808381526020018281526020019250505060405180910390a18060058190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111f957600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634ad8c938858585856040518563ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180858152602001848152602001838152602001828152602001945050505050600060405180830381600087803b1580156112a257600080fd5b505af11580156112b6573d6000803e3d6000fd5b5050505050505050565b600060149054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561132e57600080fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156113eb57600080fd5b505afa1580156113ff573d6000803e3d6000fd5b505050506040513d602081101561141557600080fd5b810190808051906020019092919050505014151561149b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f436f6e74726163742068617320746f6b656e730000000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561153057600080fd5b600060149054906101000a900460ff161515156115b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f436f6e747261637420706175736564000000000000000000000000000000000081525060200191505060405180910390fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561167e57600080fd5b60008090505b8282905081101561178d57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8585858581811015156116dc57fe5b905060200201356040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561176857600080fd5b505af115801561177c573d6000803e3d6000fd5b505050508080600101915050611684565b50505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561181457600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561190d57600080fd5b505af1158015611921573d6000803e3d6000fd5b50505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561198557600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166396b5a755826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015611a1657600080fd5b505af1158015611a2a573d6000803e3d6000fd5b5050505050565b60055481565b600060149054906101000a900460ff16151515611abc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f436f6e747261637420706175736564000000000000000000000000000000000081525060200191505060405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611b6457506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611b6f57600080fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b0c35c056040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015611bf557600080fd5b505afa158015611c09573d6000803e3d6000fd5b505050506040513d6020811015611c1f57600080fd5b810190808051906020019092919050505090506007548111151515611c4357600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f7d8c8838285856040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303818588803b158015611cdc57600080fd5b505af1158015611cf0573d6000803e3d6000fd5b50505050506000809050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611dbf576005549050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611dbd573d6000803e3d6000fd5b505b7fddf1e8fec06a50aa72b8a39a06787808c53eca73b2bd1cc995681cf7b801465033858584604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200194505050505060405180910390a150505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ec157600080fd5b611eca816121f0565b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f2857600080fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611fe557600080fd5b505afa158015611ff9573d6000803e3d6000fd5b505050506040513d602081101561200f57600080fd5b8101908080519060200190929190505050141515612095576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f436f6e74726163742068617320746f6b656e730000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16ff5b60075481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561210f57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156121d457600080fd5b505af11580156121e8573d6000803e3d6000fd5b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561222c57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fe5265776172642076616c7565206973206c657373207468616e2072657175697265645265776172642076616c7565206973206d6f7265207468616e206f726967696e616ca165627a7a72305820415d3718bd51e9a2d179ab2e727c3e3c482db902f7607a5a94da2c6775443e3a0029

Deployed Bytecode Sourcemap

8139:3208:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6520:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6520:118:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6520:118:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8247:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8247:36:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7534:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7534:116:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7534:116:0;;;;;;;;;;;;;;;;;:::i;:::-;;5421:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5421:37:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9108:88;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9108:88:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9108:88:0;;;;;;;;;;;;;;;;;:::i;:::-;;5341:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5341:35:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9264:191;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9264:191:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9264:191:0;;;;;;;;;;;;;;;;;:::i;:::-;;6722:220;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6722:220:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;6722:220:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5195:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5195:105:0;;;:::i;:::-;;9775:544;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9775:544:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9775:544:0;;;;;;;;;;;;;;;;;:::i;:::-;;7224:224;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7224:224:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;7224:224:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4776:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4776:26:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11008:146;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11008:146:0;;;:::i;:::-;;5084:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5084:103:0;;;:::i;:::-;;3827:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3827:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6065:201;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6065:201:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6065:201:0;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6065:201:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6065:201:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;6065:201:0;;;;;;;;;;;;:::i;:::-;;8179:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8179:30:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6321:149;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6321:149:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6321:149:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7027:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7027:112:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7027:112:0;;;;;;;;;;;;;;;;;:::i;:::-;;8214:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8214:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10442:560;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10442:560:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10442:560:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5381:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5381:35:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4201:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4201:113:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4201:113:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;11160:184;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11160:184:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11160:184:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;8288:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8288:29:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5895:119;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5895:119:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5895:119:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6520:118;4175:5;;;;;;;;;;;4161:19;;:10;:19;;;4153:28;;;;;;;;6600:9;;;;;;;;;;;:17;;;6618:3;6623:8;6600:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6600:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6600:32:0;;;;6520:118;;:::o;8247:36::-;;;;:::o;7534:116::-;4175:5;;;;;;;;;;;4161:19;;:10;:19;;;4153:28;;;;;;;;7607:13;;;;;;;;;;;:27;;;7635:8;7607:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7607:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7607:37:0;;;;7534:116;:::o;5421:37::-;;;;;;;;;;;;;:::o;9108:88::-;4175:5;;;;;;;;;;;4161:19;;:10;:19;;;4153:28;;;;;;;;9168:5;;;;;;;;;;;:14;;:22;9183:6;9168:22;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9168:22:0;9108:88;:::o;5341:35::-;;;;;;;;;;;;;:::o;9264:191::-;4175:5;;;;;;;;;;;4161:19;;:10;:19;;;4153:28;;;;;;;;9357:53;9378:14;;9394:15;9357:53;;;;;;;;;;;;;;;;;;;;;;;;9434:15;9417:14;:32;;;;9264:191;:::o;6722:220::-;4175:5;;;;;;;;;;;4161:19;;:10;:19;;;4153:28;;;;;;;;6858:9;;;;;;;;;;;:27;;;6886:8;6896:14;6912:12;6926:9;6858:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6858:78:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6858:78:0;;;;6722:220;;;;:::o;5195:105::-;4175:5;;;;;;;;;;;4161:19;;:10;:19;;;4153:28;;;;;;;;5020:6;;;;;;;;;;;5012:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5262:5;5253:6;;:14;;;;;;;;;;;;;;;;;;5283:9;;;;;;;;;;5195:105::o;9775:544::-;9873:7;;;;;;;;;;;9859:21;;:10;:21;;;:44;;;;9898:5;;;;;;;;;;;9884:19;;:10;:19;;;9859:44;9851:53;;;;;;;;9934:5;;;;;;;;;;;9920:19;;:10;:19;;;9917:296;;;9976:21;;9958:14;:39;;:73;;;;10018:13;;10001:14;:30;9958:73;9950:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9917:296;;;10101:7;;;;;;;;;;;10087:21;;:10;:21;;;10084:129;;;10145:21;;10127:14;:39;;10119:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10084:129;9917:296;10226:50;10246:13;;10261:14;10226:50;;;;;;;;;;;;;;;;;;;;;;;;10299:14;10283:13;:30;;;;9775:544;:::o;7224:224::-;4175:5;;;;;;;;;;;4161:19;;:10;:19;;;4153:28;;;;;;;;7362:9;;;;;;;;;;;:29;;;7392:8;7402:14;7418:12;7432:9;7362:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7362:80:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7362:80:0;;;;7224:224;;;;:::o;4776:26::-;;;;;;;;;;;;;:::o;11008:146::-;4175:5;;;;;;;;;;;4161:19;;:10;:19;;;4153:28;;;;;;;;11097:1;11059:9;;;;;;;;;;;:19;;;11087:4;11059:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11059:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11059:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11059:34:0;;;;;;;;;;;;;;;;:39;11051:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11142:5;;;;;;;;;;;11129:19;;;5084:103;4175:5;;;;;;;;;;;4161:19;;:10;:19;;;4153:28;;;;;;;;4925:6;;;;;;;;;;;4924:7;4916:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5152:4;5143:6;;:13;;;;;;;;;;;;;;;;;;5172:7;;;;;;;;;;5084:103::o;3827:28::-;;;;;;;;;;;;;:::o;6065:201::-;4175:5;;;;;;;;;;;4161:19;;:10;:19;;;4153:28;;;;;;;;6165:9;6177:1;6165:13;;6161:100;6184:9;;:16;;6180:1;:20;6161:100;;;6216:9;;;;;;;;;;;:18;;;6235:3;6240:9;;6250:1;6240:12;;;;;;;;;;;;;;;6216:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6216:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6216:37:0;;;;6202:3;;;;;;;6161:100;;;;6065:201;;;:::o;8179:30::-;;;;;;;;;;;;;:::o;6321:149::-;4175:5;;;;;;;;;;;4161:19;;:10;:19;;;4153:28;;;;;;;;6420:9;;;;;;;;;;;:22;;;6443:5;6450:3;6455:8;6420:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6420:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6420:44:0;;;;6321:149;;;:::o;7027:112::-;4175:5;;;;;;;;;;;4161:19;;:10;:19;;;4153:28;;;;;;;;7098:11;;;;;;;;;;;:25;;;7124:8;7098:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7098:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7098:35:0;;;;7027:112;:::o;8214:28::-;;;;:::o;10442:560::-;4925:6;;;;;;;;;;;4924:7;4916:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10545:7;;;;;;;;;;;10531:21;;:10;:21;;;:44;;;;10570:5;;;;;;;;;;;10556:19;;:10;:19;;;10531:44;10523:53;;;;;;;;10583:11;10597:9;;;;;;;;;;;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10597:24:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10597:24:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10597:24:0;;;;;;;;;;;;;;;;10583:38;;10643:14;;10636:3;:21;;10628:30;;;;;;;;10665:9;;;;;;;;;;;:23;;;10695:3;10700:9;10711:7;10665:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10665:54:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10665:54:0;;;;;10728:14;10745:1;10728:18;;10857:7;;;;;;;;;;;10843:21;;:10;:21;;;10840:98;;;10884:13;;10875:22;;10906:7;;;;;;;;;;;:16;;:24;10923:6;10906:24;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10906:24:0;10840:98;10951:45;10957:10;10969:9;10980:7;10989:6;10951:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4962:1;;10442:560;;:::o;5381:35::-;;;;;;;;;;;;;:::o;4201:113::-;4175:5;;;;;;;;;;;4161:19;;:10;:19;;;4153:28;;;;;;;;4279:29;4298:9;4279:18;:29::i;:::-;4201:113;:::o;11160:184::-;4175:5;;;;;;;;;;;4161:19;;:10;:19;;;4153:28;;;;;;;;11282:1;11244:9;;;;;;;;;;;:19;;;11272:4;11244:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11244:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11244:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11244:34:0;;;;;;;;;;;;;;;;:39;11236:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11327:10;11314:24;;;8288:29;;;;:::o;5895:119::-;4175:5;;;;;;;;;;;4161:19;;:10;:19;;;4153:28;;;;;;;;5975:9;;;;;;;;;;;:18;;;5994:3;5999:8;5975:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5975:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5975:33:0;;;;5895:119;;:::o;4320:183::-;4420:1;4399:23;;:9;:23;;;;4391:32;;;;;;;;4463:9;4435:38;;4456:5;;;;;;;;;;;4435:38;;;;;;;;;;;;4488:9;4480:5;;:17;;;;;;;;;;;;;;;;;;4320:183;:::o

Swarm Source

bzzr://415d3718bd51e9a2d179ab2e727c3e3c482db902f7607a5a94da2c6775443e3a

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.