ETH Price: $2,966.56 (+3.55%)
Gas: 2 Gwei

Contract

0x3a859b9ea4998D344547283C7Ce8EBc4aBb77656
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Transfer202450872024-07-06 4:28:359 mins ago1720240115IN
Kinesis Velocity Token
0 ETH0.000115013.09904103
Transfer202450752024-07-06 4:26:1111 mins ago1720239971IN
Kinesis Velocity Token
0 ETH0.000145373.46853326
Transfer202450632024-07-06 4:23:4714 mins ago1720239827IN
Kinesis Velocity Token
0 ETH0.000140873.36108223
Transfer202450522024-07-06 4:21:3516 mins ago1720239695IN
Kinesis Velocity Token
0 ETH0.000147093.50949146
Transfer202440972024-07-06 1:09:593 hrs ago1720228199IN
Kinesis Velocity Token
0 ETH0.000372746.31629187
Transfer202401762024-07-05 12:02:2316 hrs ago1720180943IN
Kinesis Velocity Token
0 ETH0.000283797.64677574
Transfer202399162024-07-05 11:10:1117 hrs ago1720177811IN
Kinesis Velocity Token
0 ETH0.000515668.73822975
Transfer202383772024-07-05 6:00:3522 hrs ago1720159235IN
Kinesis Velocity Token
0 ETH0.0004762612.83277735
Transfer202373752024-07-05 2:39:1125 hrs ago1720147151IN
Kinesis Velocity Token
0 ETH0.000514288.71476424
Transfer202294292024-07-04 0:00:352 days ago1720051235IN
Kinesis Velocity Token
0 ETH0.000125233.37430785
Transfer202288232024-07-03 21:58:592 days ago1720043939IN
Kinesis Velocity Token
0 ETH0.000470827.97837543
Transfer202276362024-07-03 18:00:472 days ago1720029647IN
Kinesis Velocity Token
0 ETH0.000413411.13907813
Transfer202276352024-07-03 18:00:352 days ago1720029635IN
Kinesis Velocity Token
0 ETH0.0004054910.926053
Transfer202276352024-07-03 18:00:352 days ago1720029635IN
Kinesis Velocity Token
0 ETH0.0004579410.926053
Transfer202276342024-07-03 18:00:232 days ago1720029623IN
Kinesis Velocity Token
0 ETH0.000370589.98518213
Transfer202276152024-07-03 17:56:352 days ago1720029395IN
Kinesis Velocity Token
0 ETH0.0006668111.29946943
Transfer202272552024-07-03 16:44:352 days ago1720025075IN
Kinesis Velocity Token
0 ETH0.0005957314.21365938
Transfer202272302024-07-03 16:39:232 days ago1720024763IN
Kinesis Velocity Token
0 ETH0.0007588512.85905338
Transfer202262662024-07-03 13:25:352 days ago1720013135IN
Kinesis Velocity Token
0 ETH0.0012770121.6395293
Transfer202222662024-07-03 0:00:353 days ago1719964835IN
Kinesis Velocity Token
0 ETH0.000117693.17115782
Transfer202218522024-07-02 22:37:233 days ago1719959843IN
Kinesis Velocity Token
0 ETH0.000324557.74347654
Transfer202214682024-07-02 21:19:593 days ago1719955199IN
Kinesis Velocity Token
0 ETH0.000328185.56117701
Transfer202204812024-07-02 18:00:473 days ago1719943247IN
Kinesis Velocity Token
0 ETH0.000142723.8457369
Transfer202204802024-07-02 18:00:353 days ago1719943235IN
Kinesis Velocity Token
0 ETH0.000114233.07812426
Transfer202202652024-07-02 17:17:233 days ago1719940643IN
Kinesis Velocity Token
0 ETH0.000408186.91687832
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
106761392020-08-17 7:12:371418 days ago1597648357
Kinesis Velocity Token
 Contract Creation0 ETH
106438752020-08-12 7:58:171423 days ago1597219097
Kinesis Velocity Token
 Contract Creation0 ETH
105025542020-07-21 11:47:211445 days ago1595332041
Kinesis Velocity Token
 Contract Creation0 ETH
105025542020-07-21 11:47:211445 days ago1595332041
Kinesis Velocity Token
 Contract Creation0 ETH
105025542020-07-21 11:47:211445 days ago1595332041
Kinesis Velocity Token
 Contract Creation0 ETH
105025542020-07-21 11:47:211445 days ago1595332041
Kinesis Velocity Token
 Contract Creation0 ETH
105015382020-07-21 7:52:061445 days ago1595317926
Kinesis Velocity Token
 Contract Creation0 ETH
105015382020-07-21 7:52:061445 days ago1595317926
Kinesis Velocity Token
 Contract Creation0 ETH
105015382020-07-21 7:52:061445 days ago1595317926
Kinesis Velocity Token
 Contract Creation0 ETH
105015382020-07-21 7:52:061445 days ago1595317926
Kinesis Velocity Token
 Contract Creation0 ETH
105015352020-07-21 7:51:361445 days ago1595317896
Kinesis Velocity Token
 Contract Creation0 ETH
105015312020-07-21 7:50:451445 days ago1595317845
Kinesis Velocity Token
 Contract Creation0 ETH
105015312020-07-21 7:50:451445 days ago1595317845
Kinesis Velocity Token
 Contract Creation0 ETH
104232102020-07-09 4:37:021458 days ago1594269422
Kinesis Velocity Token
 Contract Creation0 ETH
104232102020-07-09 4:37:021458 days ago1594269422
Kinesis Velocity Token
 Contract Creation0 ETH
104232102020-07-09 4:37:021458 days ago1594269422
Kinesis Velocity Token
 Contract Creation0 ETH
104232102020-07-09 4:37:021458 days ago1594269422
Kinesis Velocity Token
 Contract Creation0 ETH
103854442020-07-03 8:39:171463 days ago1593765557
Kinesis Velocity Token
 Contract Creation0 ETH
103854442020-07-03 8:39:171463 days ago1593765557
Kinesis Velocity Token
 Contract Creation0 ETH
103854442020-07-03 8:39:171463 days ago1593765557
Kinesis Velocity Token
 Contract Creation0 ETH
103854442020-07-03 8:39:171463 days ago1593765557
Kinesis Velocity Token
 Contract Creation0 ETH
103854442020-07-03 8:39:171463 days ago1593765557
Kinesis Velocity Token
 Contract Creation0 ETH
103854442020-07-03 8:39:171463 days ago1593765557
Kinesis Velocity Token
 Contract Creation0 ETH
103854442020-07-03 8:39:171463 days ago1593765557
Kinesis Velocity Token
 Contract Creation0 ETH
103854442020-07-03 8:39:171463 days ago1593765557
Kinesis Velocity Token
 Contract Creation0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
KinesisVelocityToken

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-09-06
*/

pragma solidity ^0.4.24;
// produced by the Solididy File Flattener (c) David Appleton 2018
// contact : [email protected]
// released under Apache 2.0 licence
contract ERC20Basic {
  function totalSupply() public view returns (uint256);
  function balanceOf(address who) public view returns (uint256);
  function transfer(address to, uint256 value) public returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
}

library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
    // Gas optimization: this is cheaper than asserting '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;
    }

    c = a * b;
    assert(c / a == b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    // uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return a / b;
  }

  /**
  * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

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

contract Ownable {
  address public owner;


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


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

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

  /**
   * @dev Allows the current owner to relinquish control of the contract.
   * @notice Renouncing to ownership will leave the contract without an owner.
   * It will not be possible to call the functions with the `onlyOwner`
   * modifier anymore.
   */
  function renounceOwnership() public onlyOwner {
    emit OwnershipRenounced(owner);
    owner = address(0);
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param _newOwner The address to transfer ownership to.
   */
  function transferOwnership(address _newOwner) public onlyOwner {
    _transferOwnership(_newOwner);
  }

  /**
   * @dev Transfers control of the contract to a newOwner.
   * @param _newOwner The address to transfer ownership to.
   */
  function _transferOwnership(address _newOwner) internal {
    require(_newOwner != address(0));
    emit OwnershipTransferred(owner, _newOwner);
    owner = _newOwner;
  }
}

library Roles {
  struct Role {
    mapping (address => bool) bearer;
  }

  /**
   * @dev give an address access to this role
   */
  function add(Role storage role, address addr)
    internal
  {
    role.bearer[addr] = true;
  }

  /**
   * @dev remove an address' access to this role
   */
  function remove(Role storage role, address addr)
    internal
  {
    role.bearer[addr] = false;
  }

  /**
   * @dev check if an address has this role
   * // reverts
   */
  function check(Role storage role, address addr)
    view
    internal
  {
    require(has(role, addr));
  }

  /**
   * @dev check if an address has this role
   * @return bool
   */
  function has(Role storage role, address addr)
    view
    internal
    returns (bool)
  {
    return role.bearer[addr];
  }
}

contract BasicToken is ERC20Basic {
  using SafeMath for uint256;

  mapping(address => uint256) balances;

  uint256 totalSupply_;

  /**
  * @dev Total number of tokens in existence
  */
  function totalSupply() public view returns (uint256) {
    return totalSupply_;
  }

  /**
  * @dev Transfer token for a specified address
  * @param _to The address to transfer to.
  * @param _value The amount to be transferred.
  */
  function transfer(address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));
    require(_value <= balances[msg.sender]);

    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    emit Transfer(msg.sender, _to, _value);
    return true;
  }

  /**
  * @dev Gets the balance of the specified address.
  * @param _owner The address to query the the balance of.
  * @return An uint256 representing the amount owned by the passed address.
  */
  function balanceOf(address _owner) public view returns (uint256) {
    return balances[_owner];
  }

}

contract MultiSigTransfer is Ownable {
  string public name = "MultiSigTransfer";
  string public symbol = "MST";
  bool public complete = false;
  bool public denied = false;
  uint32 public quantity;
  address public targetAddress;
  address public requesterAddress;

  /**
  * @dev The multisig transfer contract ensures that no single administrator can
  * KVTs without approval of another administrator
  * @param _quantity The number of KVT to transfer
  * @param _targetAddress The receiver of the KVTs
  * @param _requesterAddress The administrator requesting the transfer
  */
  constructor(
    uint32 _quantity,
    address _targetAddress,
    address _requesterAddress
  ) public {
    quantity = _quantity;
    targetAddress = _targetAddress;
    requesterAddress = _requesterAddress;
  }

  /**
  * @dev Mark the transfer as approved / complete
  */
  function approveTransfer() public onlyOwner {
    require(denied == false, "cannot approve a denied transfer");
    require(complete == false, "cannot approve a complete transfer");
    complete = true;
  }

  /**
  * @dev Mark the transfer as denied
  */
  function denyTransfer() public onlyOwner {
    require(denied == false, "cannot deny a transfer that is already denied");
    denied = true;
  }

  /**
  * @dev Determine if the transfer is pending
  */
  function isPending() public view returns (bool) {
    return !complete;
  }
}

contract RBAC {
  using Roles for Roles.Role;

  mapping (string => Roles.Role) private roles;

  event RoleAdded(address indexed operator, string role);
  event RoleRemoved(address indexed operator, string role);

  /**
   * @dev reverts if addr does not have role
   * @param _operator address
   * @param _role the name of the role
   * // reverts
   */
  function checkRole(address _operator, string _role)
    view
    public
  {
    roles[_role].check(_operator);
  }

  /**
   * @dev determine if addr has role
   * @param _operator address
   * @param _role the name of the role
   * @return bool
   */
  function hasRole(address _operator, string _role)
    view
    public
    returns (bool)
  {
    return roles[_role].has(_operator);
  }

  /**
   * @dev add a role to an address
   * @param _operator address
   * @param _role the name of the role
   */
  function addRole(address _operator, string _role)
    internal
  {
    roles[_role].add(_operator);
    emit RoleAdded(_operator, _role);
  }

  /**
   * @dev remove a role from an address
   * @param _operator address
   * @param _role the name of the role
   */
  function removeRole(address _operator, string _role)
    internal
  {
    roles[_role].remove(_operator);
    emit RoleRemoved(_operator, _role);
  }

  /**
   * @dev modifier to scope access to a single role (uses msg.sender as addr)
   * @param _role the name of the role
   * // reverts
   */
  modifier onlyRole(string _role)
  {
    checkRole(msg.sender, _role);
    _;
  }

  /**
   * @dev modifier to scope access to a set of roles (uses msg.sender as addr)
   * @param _roles the names of the roles to scope access to
   * // reverts
   *
   * @TODO - when solidity supports dynamic arrays as arguments to modifiers, provide this
   *  see: https://github.com/ethereum/solidity/issues/2467
   */
  // modifier onlyRoles(string[] _roles) {
  //     bool hasAnyRole = false;
  //     for (uint8 i = 0; i < _roles.length; i++) {
  //         if (hasRole(msg.sender, _roles[i])) {
  //             hasAnyRole = true;
  //             break;
  //         }
  //     }

  //     require(hasAnyRole);

  //     _;
  // }
}

contract KinesisVelocityToken is BasicToken, Ownable, RBAC {
  string public name = "KinesisVelocityToken";
  string public symbol = "KVT";
  uint8 public decimals = 0;
  string public constant ADMIN_ROLE = "ADMIN";

  address[] public transfers;

  uint public constant INITIAL_SUPPLY = 300000;
  uint public totalSupply = 0;

  bool public isTransferable = false;
  bool public toggleTransferablePending = false;
  address public transferToggleRequester = address(0);

  constructor() public {
    totalSupply = INITIAL_SUPPLY;
    balances[msg.sender] = INITIAL_SUPPLY;
    addRole(msg.sender, ADMIN_ROLE);
  }

  /**
  * @dev Determine if the address is the owner of the contract
  * @param _address The address to determine of ownership
  */
  function isOwner(address _address) public view returns (bool) {
    return owner == _address;
  }

  /**
  * @dev Returns the list of MultiSig transfers
  */
  function getTransfers() public view returns (address[]) {
    return transfers;
  }

  /**
  * @dev The KVT ERC20 token uses adminstrators to handle transfering to the crowdsale, vesting and pre-purchasers
  */
  function isAdmin(address _address) public view returns (bool) {
    return hasRole(_address, ADMIN_ROLE);
  }

  /**
  * @dev Set an administrator as the owner, using Open Zepplin RBAC implementation
  */
  function setAdmin(address _newAdmin) public onlyOwner {
    return addRole(_newAdmin, ADMIN_ROLE);
  }

  /**
  * @dev Remove an administrator as the owner, using Open Zepplin RBAC implementation
  */
  function removeAdmin(address _oldAdmin) public onlyOwner {
    return removeRole(_oldAdmin, ADMIN_ROLE);
  }

  /**
  * @dev As an administrator, request the token is made transferable
  * @param _toState The transfer state being requested
  */
  function setTransferable(bool _toState) public onlyRole(ADMIN_ROLE) {
    require(isTransferable != _toState, "to init a transfer toggle, the toState must change");
    toggleTransferablePending = true;
    transferToggleRequester = msg.sender;
  }

  /**
  * @dev As an administrator who did not make the request, approve the transferable state change
  */
  function approveTransferableToggle() public onlyRole(ADMIN_ROLE) {
    require(toggleTransferablePending == true, "transfer toggle not in pending state");
    require(transferToggleRequester != msg.sender, "the requester cannot approve the transfer toggle");
    isTransferable = !isTransferable;
    toggleTransferablePending = false;
    transferToggleRequester = address(0);
  }

  /**
  * @dev transfer token for a specified address
  * @param _to The address to transfer to.
  * @param _value The amount to be transferred.
  */
  function _transfer(address _to, address _from, uint256 _value) private returns (bool) {
    require(_value <= balances[_from], "the balance in the from address is smaller than the tx value");

    // SafeMath.sub will throw if there is not enough balance.
    balances[_from] = balances[_from].sub(_value);
    balances[_to] = balances[_to].add(_value);
    emit Transfer(_from, _to, _value);
    return true;
  }

  /**
  * @dev Public transfer token function. This wrapper ensures the token is transferable
  * @param _to The address to transfer to.
  * @param _value The amount to be transferred.
  */
  function transfer(address _to, uint256 _value) public returns (bool) {
    require(_to != address(0), "cannot transfer to the zero address");

    /* We allow holders to return their Tokens to the contract owner at any point */
    if (_to != owner && msg.sender != crowdsale) {
      require(isTransferable == true, "kvt is not yet transferable");
    }

    /* Transfers from the owner address must use the administrative transfer */
    require(msg.sender != owner, "the owner of the kvt contract cannot transfer");

    return _transfer(_to, msg.sender, _value);
  }

  /**
  * @dev Request an administrative transfer. This does not move tokens
  * @param _to The address to transfer to.
  * @param _quantity The amount to be transferred.
  */
  function adminTransfer(address _to, uint32 _quantity) public onlyRole(ADMIN_ROLE) {
    address newTransfer = new MultiSigTransfer(_quantity, _to, msg.sender);
    transfers.push(newTransfer);
  }

  /**
  * @dev Approve an administrative transfer. This moves the tokens if the requester
  * is an admin, but not the same admin as the one who made the request
  * @param _approvedTransfer The contract address of the multisignature transfer.
  */
  function approveTransfer(address _approvedTransfer) public onlyRole(ADMIN_ROLE) returns (bool) {
    MultiSigTransfer transferToApprove = MultiSigTransfer(_approvedTransfer);

    uint32 transferQuantity = transferToApprove.quantity();
    address deliveryAddress = transferToApprove.targetAddress();
    address requesterAddress = transferToApprove.requesterAddress();

    require(msg.sender != requesterAddress, "a requester cannot approve an admin transfer");

    transferToApprove.approveTransfer();
    return _transfer(deliveryAddress, owner, transferQuantity);
  }

  /**
  * @dev Deny an administrative transfer. This ensures it cannot be approved.
  * @param _approvedTransfer The contract address of the multisignature transfer.
  */
  function denyTransfer(address _approvedTransfer) public onlyRole(ADMIN_ROLE) returns (bool) {
    MultiSigTransfer transferToApprove = MultiSigTransfer(_approvedTransfer);
    transferToApprove.denyTransfer();
  }

  address public crowdsale = address(0);

  /**
  * @dev Any admin can set the current crowdsale address, to allows transfers
  * from the crowdsale to the purchaser
  */
  function setCrowdsaleAddress(address _crowdsaleAddress) public onlyRole(ADMIN_ROLE) {
    crowdsale = _crowdsaleAddress;
  }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_operator","type":"address"},{"name":"_role","type":"string"}],"name":"checkRole","outputs":[],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_oldAdmin","type":"address"}],"name":"removeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_crowdsaleAddress","type":"address"}],"name":"setCrowdsaleAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isTransferable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_operator","type":"address"},{"name":"_role","type":"string"}],"name":"hasRole","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"toggleTransferablePending","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getTransfers","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_quantity","type":"uint32"}],"name":"adminTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"approveTransferableToggle","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_approvedTransfer","type":"address"}],"name":"approveTransfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newAdmin","type":"address"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ADMIN_ROLE","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"transfers","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"crowdsale","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_toState","type":"bool"}],"name":"setTransferable","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"transferToggleRequester","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_approvedTransfer","type":"address"}],"name":"denyTransfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"operator","type":"address"},{"indexed":false,"name":"role","type":"string"}],"name":"RoleAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"operator","type":"address"},{"indexed":false,"name":"role","type":"string"}],"name":"RoleRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

60806040526040805190810160405280601481526020017f4b696e6573697356656c6f63697479546f6b656e000000000000000000000000815250600490805190602001906200005192919062000417565b506040805190810160405280600381526020017f4b56540000000000000000000000000000000000000000000000000000000000815250600590805190602001906200009f92919062000417565b506000600660006101000a81548160ff021916908360ff16021790555060006008556000600960006101000a81548160ff0219169083151502179055506000600960016101000a81548160ff0219169083151502179055506000600960026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200018857600080fd5b5033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620493e0600881905550620493e06000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200026a336040805190810160405280600581526020017f41444d494e00000000000000000000000000000000000000000000000000000081525062000270640100000000026401000000009004565b620004c6565b620002ff826003836040518082805190602001908083835b602083101515620002af578051825260208201915060208101905060208303925062000288565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020620003b96401000000000262002762179091906401000000009004565b8173ffffffffffffffffffffffffffffffffffffffff167fbfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b700489826040518080602001828103825283818151815260200191508051906020019080838360005b838110156200037a5780820151818401526020810190506200035d565b50505050905090810190601f168015620003a85780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200045a57805160ff19168380011785556200048b565b828001600101855582156200048b579182015b828111156200048a5782518255916020019190600101906200046d565b5b5090506200049a91906200049e565b5090565b620004c391905b80821115620004bf576000816000905550600101620004a5565b5090565b90565b61365980620004d66000396000f30060806040526004361062000193576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314620001985780630988ca8c146200022e5780631785f53c14620002ba57806318160ddd14620003005780631f35bc40146200032e5780632121dc751462000374578063217fe6c614620003a657806324d7806c146200044a5780632813de1714620004a85780632f54bf6e14620004da5780632f65142c14620005385780632f8eed9814620005a95780632ff2e9dc14620005ff578063313ce567146200062d57806340c3b18e14620006615780634355b9d2146200067b578063704b6c0214620006d957806370a08231146200071f578063715018a6146200077957806375b238fc14620007935780638da5cb5b14620008295780639377d711146200088357806395d89b4114620008f35780639c1e03a014620009895780639cd2370714620009e3578063a3adb9581462000a15578063a9059cbb1462000a6f578063f2fde38b1462000ad7578063f5c4201f1462000b1d575b600080fd5b348015620001a557600080fd5b50620001b062000b7b565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015620001f2578082015181840152602081019050620001d5565b50505050905090810190601f168015620002205780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156200023b57600080fd5b50620002b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505062000c1d565b005b348015620002c757600080fd5b50620002fe600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062000ca2565b005b3480156200030d57600080fd5b506200031862000d43565b6040518082815260200191505060405180910390f35b3480156200033b57600080fd5b5062000372600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062000d49565b005b3480156200038157600080fd5b506200038c62000dd0565b604051808215151515815260200191505060405180910390f35b348015620003b357600080fd5b5062000430600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505062000de3565b604051808215151515815260200191505060405180910390f35b3480156200045757600080fd5b506200048e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062000e6e565b604051808215151515815260200191505060405180910390f35b348015620004b557600080fd5b50620004c062000eb8565b604051808215151515815260200191505060405180910390f35b348015620004e757600080fd5b506200051e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062000ecb565b604051808215151515815260200191505060405180910390f35b3480156200054557600080fd5b506200055062000f25565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156200059557808201518184015260208101905062000578565b505050509050019250505060405180910390f35b348015620005b657600080fd5b50620005fd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803563ffffffff16906020019092919050505062000fb5565b005b3480156200060c57600080fd5b50620006176200110e565b6040518082815260200191505060405180910390f35b3480156200063a57600080fd5b506200064562001115565b604051808260ff1660ff16815260200191505060405180910390f35b3480156200066e57600080fd5b506200067962001128565b005b3480156200068857600080fd5b50620006bf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062001393565b604051808215151515815260200191505060405180910390f35b348015620006e657600080fd5b506200071d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062001756565b005b3480156200072c57600080fd5b5062000763600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050620017f7565b6040518082815260200191505060405180910390f35b3480156200078657600080fd5b50620007916200183f565b005b348015620007a057600080fd5b50620007ab62001945565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015620007ed578082015181840152602081019050620007d0565b50505050905090810190601f1680156200081b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156200083657600080fd5b50620008416200197e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200089057600080fd5b50620008b160048036038101908080359060200190929190505050620019a4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200090057600080fd5b506200090b620019e3565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156200094d57808201518184015260208101905062000930565b50505050905090810190601f1680156200097b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156200099657600080fd5b50620009a162001a85565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015620009f057600080fd5b5062000a1360048036038101908080351515906020019092919050505062001aab565b005b34801562000a2257600080fd5b5062000a2d62001bff565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801562000a7c57600080fd5b5062000abd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505062001c25565b604051808215151515815260200191505060405180910390f35b34801562000ae457600080fd5b5062000b1b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062001f34565b005b34801562000b2a57600080fd5b5062000b61600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062001f9f565b604051808215151515815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801562000c155780601f1062000be95761010080835404028352916020019162000c15565b820191906000526020600020905b81548152906001019060200180831162000bf757829003601f168201915b505050505081565b62000c9e826003836040518082805190602001908083835b60208310151562000c5c578051825260208201915060208101905060208303925062000c35565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206200206c90919063ffffffff16565b5050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000cff57600080fd5b62000d40816040805190810160405280600581526020017f41444d494e00000000000000000000000000000000000000000000000000000081525062002088565b50565b60085481565b6040805190810160405280600581526020017f41444d494e00000000000000000000000000000000000000000000000000000081525062000d8b338262000c1d565b81600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600960009054906101000a900460ff1681565b600062000e66836003846040518082805190602001908083835b60208310151562000e24578051825260208201915060208101905060208303925062000dfd565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020620021c390919063ffffffff16565b905092915050565b600062000eb1826040805190810160405280600581526020017f41444d494e00000000000000000000000000000000000000000000000000000081525062000de3565b9050919050565b600960019054906101000a900460ff1681565b60008173ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16149050919050565b6060600780548060200260200160405190810160405280929190818152602001828054801562000fab57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831162000f60575b5050505050905090565b60006040805190810160405280600581526020017f41444d494e00000000000000000000000000000000000000000000000000000081525062000ff9338262000c1d565b82843362001006620027c0565b808463ffffffff1663ffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050604051809103906000f0801580156200109f573d6000803e3d6000fd5b50915060078290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b620493e081565b600660009054906101000a900460ff1681565b6040805190810160405280600581526020017f41444d494e0000000000000000000000000000000000000000000000000000008152506200116a338262000c1d565b60011515600960019054906101000a900460ff1615151415156200121c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f7472616e7366657220746f67676c65206e6f7420696e2070656e64696e67207381526020017f746174650000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151562001309576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f746865207265717565737465722063616e6e6f7420617070726f76652074686581526020017f207472616e7366657220746f67676c650000000000000000000000000000000081525060400191505060405180910390fd5b600960009054906101000a900460ff1615600960006101000a81548160ff0219169083151502179055506000600960016101000a81548160ff0219169083151502179055506000600960026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008060006040805190810160405280600581526020017f41444d494e000000000000000000000000000000000000000000000000000000815250620013dd338262000c1d565b8694508473ffffffffffffffffffffffffffffffffffffffff166317fc45e26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200144557600080fd5b505af11580156200145a573d6000803e3d6000fd5b505050506040513d60208110156200147157600080fd5b810190808051906020019092919050505093508473ffffffffffffffffffffffffffffffffffffffff16635210eb566040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015620014e957600080fd5b505af1158015620014fe573d6000803e3d6000fd5b505050506040513d60208110156200151557600080fd5b810190808051906020019092919050505092508473ffffffffffffffffffffffffffffffffffffffff1663d424ee7d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200158d57600080fd5b505af1158015620015a2573d6000803e3d6000fd5b505050506040513d6020811015620015b957600080fd5b810190808051906020019092919050505091508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151562001697576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f61207265717565737465722063616e6e6f7420617070726f766520616e20616481526020017f6d696e207472616e73666572000000000000000000000000000000000000000081525060400191505060405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16632a8d26e86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015620016fc57600080fd5b505af115801562001711573d6000803e3d6000fd5b505050506200174a83600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168663ffffffff166200221c565b95505050505050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620017b357600080fd5b620017f4816040805190810160405280600581526020017f41444d494e00000000000000000000000000000000000000000000000000000081525062002495565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156200189c57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6040805190810160405280600581526020017f41444d494e00000000000000000000000000000000000000000000000000000081525081565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600781815481101515620019b457fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60058054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801562001a7d5780601f1062001a515761010080835404028352916020019162001a7d565b820191906000526020600020905b81548152906001019060200180831162001a5f57829003601f168201915b505050505081565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600581526020017f41444d494e00000000000000000000000000000000000000000000000000000081525062001aed338262000c1d565b811515600960009054906101000a900460ff1615151415151562001b9f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f746f20696e69742061207472616e7366657220746f67676c652c20746865207481526020017f6f5374617465206d757374206368616e6765000000000000000000000000000081525060400191505060405180910390fd5b6001600960016101000a81548160ff02191690831515021790555033600960026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151562001cf2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f63616e6e6f74207472616e7366657220746f20746865207a65726f206164647281526020017f657373000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801562001d9f5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b1562001e325760011515600960009054906101000a900460ff16151514151562001e31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f6b7674206973206e6f7420796574207472616e7366657261626c65000000000081525060200191505060405180910390fd5b5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151562001f1f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f746865206f776e6572206f6620746865206b767420636f6e747261637420636181526020017f6e6e6f74207472616e736665720000000000000000000000000000000000000081525060400191505060405180910390fd5b62001f2c8333846200221c565b905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562001f9157600080fd5b62001f9c81620025d0565b50565b6000806040805190810160405280600581526020017f41444d494e00000000000000000000000000000000000000000000000000000081525062001fe4338262000c1d565b8391508173ffffffffffffffffffffffffffffffffffffffff16639b012dec6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1580156200204c57600080fd5b505af115801562002061573d6000803e3d6000fd5b505050505050919050565b620020788282620021c3565b15156200208457600080fd5b5050565b62002109826003836040518082805190602001908083835b602083101515620020c75780518252602082019150602081019050602083039250620020a0565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020620026cd90919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff167fd211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803a826040518080602001828103825283818151815260200191508051906020019080838360005b838110156200218457808201518184015260208101905062002167565b50505050905090810190601f168015620021b25780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515620022fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001807f7468652062616c616e636520696e207468652066726f6d20616464726573732081526020017f697320736d616c6c6572207468616e207468652074782076616c75650000000081525060400191505060405180910390fd5b6200234e826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200272b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620023e3826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200274590919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b62002516826003836040518082805190602001908083835b602083101515620024d45780518252602082019150602081019050602083039250620024ad565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206200276290919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff167fbfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b700489826040518080602001828103825283818151815260200191508051906020019080838360005b838110156200259157808201518184015260208101905062002574565b50505050905090810190601f168015620025bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200260d57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008282111515156200273a57fe5b818303905092915050565b600081830190508281101515156200275957fe5b80905092915050565b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b604051610e5c80620027d283390190560060806040526040805190810160405280601081526020017f4d756c74695369675472616e73666572000000000000000000000000000000008152506001908051906020019061004f929190610200565b506040805190810160405280600381526020017f4d535400000000000000000000000000000000000000000000000000000000008152506002908051906020019061009b929190610200565b506000600360006101000a81548160ff0219169083151502179055506000600360016101000a81548160ff0219169083151502179055503480156100de57600080fd5b50604051606080610e5c833981018060405281019080805190602001909291908051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600360026101000a81548163ffffffff021916908363ffffffff16021790555081600360066101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506102a5565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061024157805160ff191683800117855561026f565b8280016001018555821561026f579182015b8281111561026e578251825591602001919060010190610253565b5b50905061027c9190610280565b5090565b6102a291905b8082111561029e576000816000905550600101610286565b5090565b90565b610ba8806102b46000396000f3006080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100ca57806317fc45e21461015a5780632a8d26e8146101915780635210eb56146101a8578063522e1177146101ff578063715018a61461022e578063794542ad146102455780638da5cb5b1461027457806395d89b41146102cb5780639b012dec1461035b5780639c30ad7e14610372578063d424ee7d146103a1578063f2fde38b146103f8575b600080fd5b3480156100d657600080fd5b506100df61043b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561011f578082015181840152602081019050610104565b50505050905090810190601f16801561014c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561016657600080fd5b5061016f6104d9565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b34801561019d57600080fd5b506101a66104ef565b005b3480156101b457600080fd5b506101bd6106a3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020b57600080fd5b506102146106c9565b604051808215151515815260200191505060405180910390f35b34801561023a57600080fd5b506102436106dc565b005b34801561025157600080fd5b5061025a6107de565b604051808215151515815260200191505060405180910390f35b34801561028057600080fd5b506102896107f1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102d757600080fd5b506102e0610816565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610320578082015181840152602081019050610305565b50505050905090810190601f16801561034d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561036757600080fd5b506103706108b4565b005b34801561037e57600080fd5b506103876109dd565b604051808215151515815260200191505060405180910390f35b3480156103ad57600080fd5b506103b66109f5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561040457600080fd5b50610439600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a1b565b005b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104d15780601f106104a6576101008083540402835291602001916104d1565b820191906000526020600020905b8154815290600101906020018083116104b457829003601f168201915b505050505081565b600360029054906101000a900463ffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561054a57600080fd5b60001515600360019054906101000a900460ff1615151415156105d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f63616e6e6f7420617070726f766520612064656e696564207472616e7366657281525060200191505060405180910390fd5b60001515600360009054906101000a900460ff161515141515610686576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f63616e6e6f7420617070726f7665206120636f6d706c657465207472616e736681526020017f657200000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600360006101000a81548160ff021916908315150217905550565b600360069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561073757600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600360019054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108ac5780601f10610881576101008083540402835291602001916108ac565b820191906000526020600020905b81548152906001019060200180831161088f57829003601f168201915b505050505081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561090f57600080fd5b60001515600360019054906101000a900460ff1615151415156109c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f63616e6e6f742064656e792061207472616e736665722074686174206973206181526020017f6c72656164792064656e6965640000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600360016101000a81548160ff021916908315150217905550565b6000600360009054906101000a900460ff1615905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a7657600080fd5b610a7f81610a82565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610abe57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820a549ebfc3bdf3c625145d6a8a3afed15b29de8bd4f5d39cef6b560386f695b970029a165627a7a72305820e627866e043cf4da56f8c79cec5a79ae3e0ab147c534df8d16f19fe0b4d13b9c0029

Deployed Bytecode

0x60806040526004361062000193576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314620001985780630988ca8c146200022e5780631785f53c14620002ba57806318160ddd14620003005780631f35bc40146200032e5780632121dc751462000374578063217fe6c614620003a657806324d7806c146200044a5780632813de1714620004a85780632f54bf6e14620004da5780632f65142c14620005385780632f8eed9814620005a95780632ff2e9dc14620005ff578063313ce567146200062d57806340c3b18e14620006615780634355b9d2146200067b578063704b6c0214620006d957806370a08231146200071f578063715018a6146200077957806375b238fc14620007935780638da5cb5b14620008295780639377d711146200088357806395d89b4114620008f35780639c1e03a014620009895780639cd2370714620009e3578063a3adb9581462000a15578063a9059cbb1462000a6f578063f2fde38b1462000ad7578063f5c4201f1462000b1d575b600080fd5b348015620001a557600080fd5b50620001b062000b7b565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015620001f2578082015181840152602081019050620001d5565b50505050905090810190601f168015620002205780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156200023b57600080fd5b50620002b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505062000c1d565b005b348015620002c757600080fd5b50620002fe600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062000ca2565b005b3480156200030d57600080fd5b506200031862000d43565b6040518082815260200191505060405180910390f35b3480156200033b57600080fd5b5062000372600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062000d49565b005b3480156200038157600080fd5b506200038c62000dd0565b604051808215151515815260200191505060405180910390f35b348015620003b357600080fd5b5062000430600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505062000de3565b604051808215151515815260200191505060405180910390f35b3480156200045757600080fd5b506200048e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062000e6e565b604051808215151515815260200191505060405180910390f35b348015620004b557600080fd5b50620004c062000eb8565b604051808215151515815260200191505060405180910390f35b348015620004e757600080fd5b506200051e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062000ecb565b604051808215151515815260200191505060405180910390f35b3480156200054557600080fd5b506200055062000f25565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156200059557808201518184015260208101905062000578565b505050509050019250505060405180910390f35b348015620005b657600080fd5b50620005fd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803563ffffffff16906020019092919050505062000fb5565b005b3480156200060c57600080fd5b50620006176200110e565b6040518082815260200191505060405180910390f35b3480156200063a57600080fd5b506200064562001115565b604051808260ff1660ff16815260200191505060405180910390f35b3480156200066e57600080fd5b506200067962001128565b005b3480156200068857600080fd5b50620006bf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062001393565b604051808215151515815260200191505060405180910390f35b348015620006e657600080fd5b506200071d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062001756565b005b3480156200072c57600080fd5b5062000763600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050620017f7565b6040518082815260200191505060405180910390f35b3480156200078657600080fd5b50620007916200183f565b005b348015620007a057600080fd5b50620007ab62001945565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015620007ed578082015181840152602081019050620007d0565b50505050905090810190601f1680156200081b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156200083657600080fd5b50620008416200197e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200089057600080fd5b50620008b160048036038101908080359060200190929190505050620019a4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200090057600080fd5b506200090b620019e3565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156200094d57808201518184015260208101905062000930565b50505050905090810190601f1680156200097b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156200099657600080fd5b50620009a162001a85565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015620009f057600080fd5b5062000a1360048036038101908080351515906020019092919050505062001aab565b005b34801562000a2257600080fd5b5062000a2d62001bff565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801562000a7c57600080fd5b5062000abd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505062001c25565b604051808215151515815260200191505060405180910390f35b34801562000ae457600080fd5b5062000b1b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062001f34565b005b34801562000b2a57600080fd5b5062000b61600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062001f9f565b604051808215151515815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801562000c155780601f1062000be95761010080835404028352916020019162000c15565b820191906000526020600020905b81548152906001019060200180831162000bf757829003601f168201915b505050505081565b62000c9e826003836040518082805190602001908083835b60208310151562000c5c578051825260208201915060208101905060208303925062000c35565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206200206c90919063ffffffff16565b5050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000cff57600080fd5b62000d40816040805190810160405280600581526020017f41444d494e00000000000000000000000000000000000000000000000000000081525062002088565b50565b60085481565b6040805190810160405280600581526020017f41444d494e00000000000000000000000000000000000000000000000000000081525062000d8b338262000c1d565b81600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600960009054906101000a900460ff1681565b600062000e66836003846040518082805190602001908083835b60208310151562000e24578051825260208201915060208101905060208303925062000dfd565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020620021c390919063ffffffff16565b905092915050565b600062000eb1826040805190810160405280600581526020017f41444d494e00000000000000000000000000000000000000000000000000000081525062000de3565b9050919050565b600960019054906101000a900460ff1681565b60008173ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16149050919050565b6060600780548060200260200160405190810160405280929190818152602001828054801562000fab57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831162000f60575b5050505050905090565b60006040805190810160405280600581526020017f41444d494e00000000000000000000000000000000000000000000000000000081525062000ff9338262000c1d565b82843362001006620027c0565b808463ffffffff1663ffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050604051809103906000f0801580156200109f573d6000803e3d6000fd5b50915060078290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b620493e081565b600660009054906101000a900460ff1681565b6040805190810160405280600581526020017f41444d494e0000000000000000000000000000000000000000000000000000008152506200116a338262000c1d565b60011515600960019054906101000a900460ff1615151415156200121c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f7472616e7366657220746f67676c65206e6f7420696e2070656e64696e67207381526020017f746174650000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151562001309576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f746865207265717565737465722063616e6e6f7420617070726f76652074686581526020017f207472616e7366657220746f67676c650000000000000000000000000000000081525060400191505060405180910390fd5b600960009054906101000a900460ff1615600960006101000a81548160ff0219169083151502179055506000600960016101000a81548160ff0219169083151502179055506000600960026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008060006040805190810160405280600581526020017f41444d494e000000000000000000000000000000000000000000000000000000815250620013dd338262000c1d565b8694508473ffffffffffffffffffffffffffffffffffffffff166317fc45e26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200144557600080fd5b505af11580156200145a573d6000803e3d6000fd5b505050506040513d60208110156200147157600080fd5b810190808051906020019092919050505093508473ffffffffffffffffffffffffffffffffffffffff16635210eb566040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015620014e957600080fd5b505af1158015620014fe573d6000803e3d6000fd5b505050506040513d60208110156200151557600080fd5b810190808051906020019092919050505092508473ffffffffffffffffffffffffffffffffffffffff1663d424ee7d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200158d57600080fd5b505af1158015620015a2573d6000803e3d6000fd5b505050506040513d6020811015620015b957600080fd5b810190808051906020019092919050505091508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151562001697576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f61207265717565737465722063616e6e6f7420617070726f766520616e20616481526020017f6d696e207472616e73666572000000000000000000000000000000000000000081525060400191505060405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16632a8d26e86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015620016fc57600080fd5b505af115801562001711573d6000803e3d6000fd5b505050506200174a83600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168663ffffffff166200221c565b95505050505050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620017b357600080fd5b620017f4816040805190810160405280600581526020017f41444d494e00000000000000000000000000000000000000000000000000000081525062002495565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156200189c57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6040805190810160405280600581526020017f41444d494e00000000000000000000000000000000000000000000000000000081525081565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600781815481101515620019b457fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60058054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801562001a7d5780601f1062001a515761010080835404028352916020019162001a7d565b820191906000526020600020905b81548152906001019060200180831162001a5f57829003601f168201915b505050505081565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600581526020017f41444d494e00000000000000000000000000000000000000000000000000000081525062001aed338262000c1d565b811515600960009054906101000a900460ff1615151415151562001b9f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f746f20696e69742061207472616e7366657220746f67676c652c20746865207481526020017f6f5374617465206d757374206368616e6765000000000000000000000000000081525060400191505060405180910390fd5b6001600960016101000a81548160ff02191690831515021790555033600960026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151562001cf2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f63616e6e6f74207472616e7366657220746f20746865207a65726f206164647281526020017f657373000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801562001d9f5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b1562001e325760011515600960009054906101000a900460ff16151514151562001e31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f6b7674206973206e6f7420796574207472616e7366657261626c65000000000081525060200191505060405180910390fd5b5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151562001f1f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f746865206f776e6572206f6620746865206b767420636f6e747261637420636181526020017f6e6e6f74207472616e736665720000000000000000000000000000000000000081525060400191505060405180910390fd5b62001f2c8333846200221c565b905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562001f9157600080fd5b62001f9c81620025d0565b50565b6000806040805190810160405280600581526020017f41444d494e00000000000000000000000000000000000000000000000000000081525062001fe4338262000c1d565b8391508173ffffffffffffffffffffffffffffffffffffffff16639b012dec6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1580156200204c57600080fd5b505af115801562002061573d6000803e3d6000fd5b505050505050919050565b620020788282620021c3565b15156200208457600080fd5b5050565b62002109826003836040518082805190602001908083835b602083101515620020c75780518252602082019150602081019050602083039250620020a0565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020620026cd90919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff167fd211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803a826040518080602001828103825283818151815260200191508051906020019080838360005b838110156200218457808201518184015260208101905062002167565b50505050905090810190601f168015620021b25780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515620022fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001807f7468652062616c616e636520696e207468652066726f6d20616464726573732081526020017f697320736d616c6c6572207468616e207468652074782076616c75650000000081525060400191505060405180910390fd5b6200234e826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200272b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620023e3826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200274590919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b62002516826003836040518082805190602001908083835b602083101515620024d45780518252602082019150602081019050602083039250620024ad565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206200276290919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff167fbfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b700489826040518080602001828103825283818151815260200191508051906020019080838360005b838110156200259157808201518184015260208101905062002574565b50505050905090810190601f168015620025bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200260d57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008282111515156200273a57fe5b818303905092915050565b600081830190508281101515156200275957fe5b80905092915050565b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b604051610e5c80620027d283390190560060806040526040805190810160405280601081526020017f4d756c74695369675472616e73666572000000000000000000000000000000008152506001908051906020019061004f929190610200565b506040805190810160405280600381526020017f4d535400000000000000000000000000000000000000000000000000000000008152506002908051906020019061009b929190610200565b506000600360006101000a81548160ff0219169083151502179055506000600360016101000a81548160ff0219169083151502179055503480156100de57600080fd5b50604051606080610e5c833981018060405281019080805190602001909291908051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600360026101000a81548163ffffffff021916908363ffffffff16021790555081600360066101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506102a5565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061024157805160ff191683800117855561026f565b8280016001018555821561026f579182015b8281111561026e578251825591602001919060010190610253565b5b50905061027c9190610280565b5090565b6102a291905b8082111561029e576000816000905550600101610286565b5090565b90565b610ba8806102b46000396000f3006080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100ca57806317fc45e21461015a5780632a8d26e8146101915780635210eb56146101a8578063522e1177146101ff578063715018a61461022e578063794542ad146102455780638da5cb5b1461027457806395d89b41146102cb5780639b012dec1461035b5780639c30ad7e14610372578063d424ee7d146103a1578063f2fde38b146103f8575b600080fd5b3480156100d657600080fd5b506100df61043b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561011f578082015181840152602081019050610104565b50505050905090810190601f16801561014c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561016657600080fd5b5061016f6104d9565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b34801561019d57600080fd5b506101a66104ef565b005b3480156101b457600080fd5b506101bd6106a3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020b57600080fd5b506102146106c9565b604051808215151515815260200191505060405180910390f35b34801561023a57600080fd5b506102436106dc565b005b34801561025157600080fd5b5061025a6107de565b604051808215151515815260200191505060405180910390f35b34801561028057600080fd5b506102896107f1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102d757600080fd5b506102e0610816565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610320578082015181840152602081019050610305565b50505050905090810190601f16801561034d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561036757600080fd5b506103706108b4565b005b34801561037e57600080fd5b506103876109dd565b604051808215151515815260200191505060405180910390f35b3480156103ad57600080fd5b506103b66109f5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561040457600080fd5b50610439600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a1b565b005b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104d15780601f106104a6576101008083540402835291602001916104d1565b820191906000526020600020905b8154815290600101906020018083116104b457829003601f168201915b505050505081565b600360029054906101000a900463ffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561054a57600080fd5b60001515600360019054906101000a900460ff1615151415156105d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f63616e6e6f7420617070726f766520612064656e696564207472616e7366657281525060200191505060405180910390fd5b60001515600360009054906101000a900460ff161515141515610686576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f63616e6e6f7420617070726f7665206120636f6d706c657465207472616e736681526020017f657200000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600360006101000a81548160ff021916908315150217905550565b600360069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561073757600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600360019054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108ac5780601f10610881576101008083540402835291602001916108ac565b820191906000526020600020905b81548152906001019060200180831161088f57829003601f168201915b505050505081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561090f57600080fd5b60001515600360019054906101000a900460ff1615151415156109c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f63616e6e6f742064656e792061207472616e736665722074686174206973206181526020017f6c72656164792064656e6965640000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600360016101000a81548160ff021916908315150217905550565b6000600360009054906101000a900460ff1615905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a7657600080fd5b610a7f81610a82565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610abe57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820a549ebfc3bdf3c625145d6a8a3afed15b29de8bd4f5d39cef6b560386f695b970029a165627a7a72305820e627866e043cf4da56f8c79cec5a79ae3e0ab147c534df8d16f19fe0b4d13b9c0029

Swarm Source

bzzr://e627866e043cf4da56f8c79cec5a79ae3e0ab147c534df8d16f19fe0b4d13b9c

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.