ETH Price: $2,138.77 (+4.23%)

Contract

0x14796A10F6DdE2A5575cbA91ceBBdfFFE45Ca45A
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Ether Payout71194792019-01-24 15:10:422615 days ago1548342642IN
0x14796A10...FE45Ca45A
0 ETH0.000833935
Ether Payout71186672019-01-24 11:21:042615 days ago1548328864IN
0x14796A10...FE45Ca45A
0 ETH0.000833935
Ether Payout71186042019-01-24 11:04:532615 days ago1548327893IN
0x14796A10...FE45Ca45A
0 ETH0.000500363
Ether Payout71185272019-01-24 10:43:102615 days ago1548326590IN
0x14796A10...FE45Ca45A
0 ETH0.000833935
Ether Payout71184582019-01-24 10:22:452615 days ago1548325365IN
0x14796A10...FE45Ca45A
0 ETH0.000667144
Ether Payout71182362019-01-24 9:13:092615 days ago1548321189IN
0x14796A10...FE45Ca45A
0 ETH0.000667144
Ether Payout71179542019-01-24 8:02:302615 days ago1548316950IN
0x14796A10...FE45Ca45A
0 ETH0.000833935
Ether Payout71158862019-01-23 22:18:382616 days ago1548281918IN
0x14796A10...FE45Ca45A
0 ETH0.000500363
Ether Payout71156742019-01-23 21:18:352616 days ago1548278315IN
0x14796A10...FE45Ca45A
0 ETH0.000500363
Ether Payout71154792019-01-23 20:23:282616 days ago1548275008IN
0x14796A10...FE45Ca45A
0 ETH0.000333572
Ether Payout71154272019-01-23 20:08:212616 days ago1548274101IN
0x14796A10...FE45Ca45A
0 ETH0.000500363
Ether Payout71152402019-01-23 19:08:352616 days ago1548270515IN
0x14796A10...FE45Ca45A
0 ETH0.000500363
Ether Payout70920212019-01-19 9:23:022620 days ago1547889782IN
0x14796A10...FE45Ca45A
0 ETH0.000500363
Token Payout70870322019-01-18 12:04:372621 days ago1547813077IN
0x14796A10...FE45Ca45A
0 ETH0.00151636
Ether Payout70869692019-01-18 11:45:452621 days ago1547811945IN
0x14796A10...FE45Ca45A
0 ETH0.000500363
Ether Payout70864232019-01-18 9:30:482621 days ago1547803848IN
0x14796A10...FE45Ca45A
0 ETH0.00116757
Ether Payout70836512019-01-17 21:32:132622 days ago1547760733IN
0x14796A10...FE45Ca45A
0 ETH0.000333572
Ether Payout70821792019-01-17 15:24:192622 days ago1547738659IN
0x14796A10...FE45Ca45A
0 ETH0.000500363
Ether Payout70802842019-01-17 7:13:032622 days ago1547709183IN
0x14796A10...FE45Ca45A
0 ETH0.000833935
Ether Payout70763562019-01-16 14:27:322623 days ago1547648852IN
0x14796A10...FE45Ca45A
0 ETH0.000833935
Ether Payout70696432019-01-15 9:14:462624 days ago1547543686IN
0x14796A10...FE45Ca45A
0 ETH0.001501089
Ether Payout70542742019-01-12 15:34:322627 days ago1547307272IN
0x14796A10...FE45Ca45A
0 ETH0.000667144
Ether Payout70493642019-01-11 18:25:302628 days ago1547231130IN
0x14796A10...FE45Ca45A
0 ETH0.000667144
Ether Payout70435752019-01-10 17:35:052629 days ago1547141705IN
0x14796A10...FE45Ca45A
0 ETH0.000333572
Ether Payout70435172019-01-10 17:20:462629 days ago1547140846IN
0x14796A10...FE45Ca45A
0 ETH0.000333572
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
-71194792019-01-24 15:10:422615 days ago1548342642
0x14796A10...FE45Ca45A
3.37157999 ETH
-71194792019-01-24 15:10:422615 days ago1548342642
0x14796A10...FE45Ca45A
0.07492399 ETH
-71194792019-01-24 15:10:422615 days ago1548342642
0x14796A10...FE45Ca45A
0.07492399 ETH
-71194792019-01-24 15:10:422615 days ago1548342642
0x14796A10...FE45Ca45A
0.07492399 ETH
-71194792019-01-24 15:10:422615 days ago1548342642
0x14796A10...FE45Ca45A
0.07492399 ETH
-71194792019-01-24 15:10:422615 days ago1548342642
0x14796A10...FE45Ca45A
0.07492399 ETH
-71194792019-01-24 15:10:422615 days ago1548342642
0x14796A10...FE45Ca45A
3.74619999 ETH
-71194722019-01-24 15:09:022615 days ago1548342542
0x14796A10...FE45Ca45A
7.49239998 ETH
-71186672019-01-24 11:21:042615 days ago1548328864
0x14796A10...FE45Ca45A
1.044 ETH
-71186672019-01-24 11:21:042615 days ago1548328864
0x14796A10...FE45Ca45A
0.0232 ETH
-71186672019-01-24 11:21:042615 days ago1548328864
0x14796A10...FE45Ca45A
0.0232 ETH
-71186672019-01-24 11:21:042615 days ago1548328864
0x14796A10...FE45Ca45A
0.0232 ETH
-71186672019-01-24 11:21:042615 days ago1548328864
0x14796A10...FE45Ca45A
0.0232 ETH
-71186672019-01-24 11:21:042615 days ago1548328864
0x14796A10...FE45Ca45A
0.0232 ETH
-71186672019-01-24 11:21:042615 days ago1548328864
0x14796A10...FE45Ca45A
1.16 ETH
-71186612019-01-24 11:20:102615 days ago1548328810
0x14796A10...FE45Ca45A
2.32 ETH
-71186042019-01-24 11:04:532615 days ago1548327893
0x14796A10...FE45Ca45A
8.75221735 ETH
-71186042019-01-24 11:04:532615 days ago1548327893
0x14796A10...FE45Ca45A
0.19449371 ETH
-71186042019-01-24 11:04:532615 days ago1548327893
0x14796A10...FE45Ca45A
0.19449371 ETH
-71186042019-01-24 11:04:532615 days ago1548327893
0x14796A10...FE45Ca45A
0.19449371 ETH
-71186042019-01-24 11:04:532615 days ago1548327893
0x14796A10...FE45Ca45A
0.19449371 ETH
-71186042019-01-24 11:04:532615 days ago1548327893
0x14796A10...FE45Ca45A
0.19449371 ETH
-71186042019-01-24 11:04:532615 days ago1548327893
0x14796A10...FE45Ca45A
9.72468594 ETH
-71185972019-01-24 11:02:322615 days ago1548327752
0x14796A10...FE45Ca45A
14.99498589 ETH
-71185942019-01-24 11:01:482615 days ago1548327708
0x14796A10...FE45Ca45A
1.004544 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

Contract Source Code Verified (Exact Match)

Contract Name:
ShareManager

Compiler Version
v0.5.2+commit.1df8f40c

Optimization Enabled:
No with 200 runs

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

pragma solidity > 0.4.99 <0.6.0;

interface IERC20Token {
    function balanceOf(address owner) external returns (uint256);
    function transfer(address to, uint256 amount) external returns (bool);
    function burn(uint256 _value) external returns (bool);
    function decimals() external returns (uint256);
    function approve(address _spender, uint256 _value) external returns (bool success);
    function transferFrom(address _from, address _to, uint256 _value) external returns (bool success);
}

contract Ownable {
  address payable public _owner;

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

  /**
  * @dev The Ownable constructor sets the original `owner` of the contract to the sender
  * account.
  */
  constructor() internal {
    _owner = tx.origin;
    emit OwnershipTransferred(address(0), _owner);
  }

  /**
  * @return the address of the owner.
  */
  function owner() public view returns(address) {
    return _owner;
  }

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

  /**
  * @return true if `msg.sender` is the owner of the contract.
  */
  function isOwner() public view returns(bool) {
    return 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 OwnershipTransferred(_owner, address(0));
    _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 payable 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 payable newOwner) internal {
    require(newOwner != address(0));
    emit OwnershipTransferred(_owner, newOwner);
    _owner = newOwner;
  }
}

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

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    assert(c / a == b);
    return c;
  }

  /**
  * @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 c;
  }

  /**
  * @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) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}

contract PayeeShare is Ownable{
    
    struct Payee {
        address payable payee;
        uint payeePercentage;
    }
    
    Payee[] public payees;
    
    string public constant createdBy = "AssetSplit.org - the guys who cut the pizza";
    
    IERC20Token public tokenContract;
    
    bool processingPayout = false;
    
    uint256 public payeePartsLeft = 100;
    uint256 public payeePartsToSell = 0;
    uint256 public payeePricePerPart = 0;
    
    uint256 public lockedToken;
    uint256 public lockedTokenTime;
    uint256 minTokenTransfer = 1;
    
    using SafeMath for uint256;
    
    event TokenPayout(address receiver, uint256 value, string memberOf);
    event EtherPayout(address receiver, uint256 value, string memberOf);
    event PayeeAdded(address payee, uint256 partsPerFull);
    event LockedTokensUnlocked();
    
    constructor(address _tokenContract, uint256 _lockedToken, uint256 _lockedTokenTime) public {
        tokenContract = IERC20Token(_tokenContract);
        lockedToken = _lockedToken;
        lockedTokenTime = _lockedTokenTime;
    }
  
    function getPayeeLenght() public view returns (uint256) {
        return payees.length;
    }
    
     function getLockedToken() public view returns (uint256) {
        return lockedToken;
    }
    
    function addPayee(address payable _address, uint _payeePercentage) public payable {
        if (msg.sender == _owner) {
        require(payeePartsLeft >= _payeePercentage);
        payeePartsLeft = payeePartsLeft.sub(_payeePercentage);
        payees.push(Payee(_address, _payeePercentage));
        emit PayeeAdded(_address, _payeePercentage);
        }
        else if (msg.value == _payeePercentage.mul(payeePricePerPart)) {
        if (address(this).balance > 0) {
          etherPayout();
        }
        if (tokenContract.balanceOf(address(this)).sub(lockedToken) > 1) {
          tokenPayout();
        }
            require(payeePartsLeft >= _payeePercentage);
            require(payeePartsToSell >= _payeePercentage);
            require(tx.origin == msg.sender);
            payeePartsToSell = payeePartsToSell.sub(_payeePercentage);
            payeePartsLeft = payeePartsLeft.sub(_payeePercentage);
            payees.push(Payee(tx.origin, _payeePercentage));
            emit PayeeAdded(tx.origin, _payeePercentage);
        } else revert();
    } 
    
    function setPartsToSell(uint256 _parts, uint256 _price) public onlyOwner {
        require(payeePartsLeft >= _parts);
        payeePartsToSell = _parts;
        payeePricePerPart = _price;
    }
    
    function etherPayout() public {
        require(processingPayout == false);
        processingPayout = true;
        uint256 receivedValue = address(this).balance;
        uint counter = 0;
        for (uint i = 0; i < payees.length; i++) {
           Payee memory myPayee = payees[i];
           myPayee.payee.transfer((receivedValue.mul(myPayee.payeePercentage).div(100)));
           emit EtherPayout(myPayee.payee, receivedValue.mul(myPayee.payeePercentage).div(100), "Shareholder");
            counter++;
          }
        if(address(this).balance > 0) {
            _owner.transfer(address(this).balance);
            emit EtherPayout(_owner, address(this).balance, "Owner");
        }
        processingPayout = false;
    }
    
     function tokenPayout() public payable {
        require(processingPayout == false);
        require(tokenContract.balanceOf(address(this)) >= lockedToken.add((minTokenTransfer.mul(10 ** tokenContract.decimals()))));
        processingPayout = true;
        uint256 receivedValue = tokenContract.balanceOf(address(this)).sub(lockedToken);
        uint counter = 0;
        for (uint i = 0; i < payees.length; i++) {
           Payee memory myPayee = payees[i];
           tokenContract.transfer(myPayee.payee, receivedValue.mul(myPayee.payeePercentage).div(100));
           emit TokenPayout(myPayee.payee, receivedValue.mul(myPayee.payeePercentage).div(100), "Shareholder");
            counter++;
          } 
        if (tokenContract.balanceOf(address(this)).sub(lockedToken) > 0) {
            tokenContract.transfer(_owner, tokenContract.balanceOf(address(this)).sub(lockedToken));
            emit TokenPayout(_owner, tokenContract.balanceOf(address(this)).sub(lockedToken), "Owner");
        }
        processingPayout = false;
    }
    
    function payoutLockedToken() public payable onlyOwner {
        require(processingPayout == false);
        require(now > lockedTokenTime);
        require(tokenContract.balanceOf(address(this)) >= lockedToken);
        lockedToken = 0;
        if (address(this).balance > 0) {
          etherPayout();
        }
        if (tokenContract.balanceOf(address(this)).sub(lockedToken) > 1) {
          tokenPayout();
        }
        processingPayout = true;
        emit LockedTokensUnlocked();
        tokenContract.transfer(_owner, tokenContract.balanceOf(address(this)));
        processingPayout = false;
    }
    
    function() external payable {
    }
}

contract ShareManager is Ownable{
    using SafeMath for uint256;

    IERC20Token public tokenContract;
    
    struct Share {
        address payable share;
        uint sharePercentage;
    }
    
    Share[] public shares;
    
    mapping (uint => address) public sharesToManager;
    mapping (address => uint) ownerShareCount;
    
    string public constant createdBy = "AssetSplit.org - the guys who cut the pizza";
    
    bool processingPayout = false;
    bool processingShare = false;
    
    PayeeShare payeeShareContract;
    
    uint256 public sharesMaxLength;
    uint256 public sharesSold;
    uint256 public percentagePerShare;
    uint256 public tokenPerShare;
    uint256 public tokenLockDays;
    address payable ownerAddress;
    
    event TokenPayout(address receiver, uint256 value, string memberOf);
    event EtherPayout(address receiver, uint256 value, string memberOf);
    event ShareSigned(address shareOwner, address shareContract, uint256 lockTime);
    
    constructor(address _tokenContract, uint256 _tokenPerShare, address payable _contractOwner, uint _ownerPercentage, uint _percentagePerShare) public {
        tokenContract = IERC20Token(_tokenContract);
        shares.push(Share(_contractOwner, _ownerPercentage));
        sharesMaxLength = (uint256(100).sub(_ownerPercentage)).div(_percentagePerShare);
        percentagePerShare = _percentagePerShare;
        tokenPerShare = _tokenPerShare;
        ownerAddress = _owner;
        tokenLockDays = 100;
    }
    
    function tokenPayout() public payable {
        require(processingPayout == false);
        require(tokenContract.balanceOf(address(this)) >= uint256(1).mul(10 ** tokenContract.decimals()));
        processingPayout = true;
        uint256 receivedValue = tokenContract.balanceOf(address(this));
        uint counter = 0;
        for (uint i = 0; i < shares.length; i++) {
           Share memory myShare = shares[i];
           if (i > 0) {
               payeeShareContract = PayeeShare(myShare.share);
               if (payeeShareContract.getLockedToken() == tokenPerShare.mul(10 ** tokenContract.decimals())) {
                 tokenContract.transfer(myShare.share, receivedValue.mul(myShare.sharePercentage).div(100));
                 emit TokenPayout(myShare.share, receivedValue.mul(myShare.sharePercentage).div(100), "Shareholder");
               }
           } else {
               tokenContract.transfer(myShare.share, receivedValue.mul(myShare.sharePercentage).div(100));
               emit TokenPayout(myShare.share, receivedValue.mul(myShare.sharePercentage).div(100), "Owner");
           }
           
            counter++;
          } 
        if(tokenContract.balanceOf(address(this)) > 0) {
            tokenContract.transfer(_owner, tokenContract.balanceOf(address(this)));
            emit TokenPayout(_owner, tokenContract.balanceOf(address(this)), "Owner - left from shares");
        }
        processingPayout = false;
    }
    
    function etherPayout() public payable {
        require(address(this).balance > uint256(1).mul(10 ** 18).div(100));
        require(processingPayout == false);
        processingPayout = true;
        uint256 receivedValue = address(this).balance;
        uint counter = 0;
        for (uint i = 0; i < shares.length; i++) {
           Share memory myShare = shares[i];
           if (i > 0) {
           payeeShareContract = PayeeShare(myShare.share);
               if (payeeShareContract.getLockedToken() == tokenPerShare.mul(10 ** tokenContract.decimals())) {
                 myShare.share.transfer((receivedValue.mul(myShare.sharePercentage).div(100)));
                 emit EtherPayout(myShare.share, receivedValue.mul(myShare.sharePercentage).div(100), "Shareholder");
               }
           } else {
               myShare.share.transfer((receivedValue.mul(myShare.sharePercentage).div(100)));
               emit EtherPayout(myShare.share, receivedValue.mul(myShare.sharePercentage).div(100), "Owner");
           }
            counter++;
          }
        if(address(this).balance > 0) {
            _owner.transfer(address(this).balance);
            emit EtherPayout(_owner, address(this).balance, "Owner - left from shares");
        }
        processingPayout = false;
    }
    function() external payable {
     
    }
    
    function newShare() public payable returns (address) {
        require(shares.length <= sharesMaxLength);
        require(tokenContract.balanceOf(msg.sender) >= tokenPerShare.mul((10 ** tokenContract.decimals())));
        if (address(this).balance > uint256(1).mul(10 ** 18).div(100)) {
            etherPayout();
        }
        if (tokenContract.balanceOf(address(this)) >= uint256(1).mul(10 ** tokenContract.decimals())) {
            tokenPayout();
        }
        require(processingShare == false);
        uint256 lockedUntil = now.add((tokenLockDays).mul(1 days));
        processingShare = true;
        PayeeShare c = (new PayeeShare)(address(tokenContract), tokenPerShare.mul(10 ** tokenContract.decimals()), lockedUntil); 
        require(tokenContract.transferFrom(msg.sender, address(c), tokenPerShare.mul(10 ** tokenContract.decimals())));
        uint id = shares.push(Share(address(c), percentagePerShare)).sub(1);
        sharesToManager[id] = msg.sender;
        ownerShareCount[msg.sender] = ownerShareCount[msg.sender].add(1);
        emit ShareSigned(msg.sender, address(c), lockedUntil);
        if (tokenLockDays > 0) {
        tokenLockDays = tokenLockDays.sub(1);
        }
        sharesSold = sharesSold.add(1);
        processingShare = false;
        return address(c);
    }
    
    function getSharesByShareOwner(address _shareOwner) external view returns (uint[] memory) {
    uint[] memory result = new uint[](ownerShareCount[_shareOwner]);
    uint counter = 0;
    for (uint i = 0; i < shares.length; i++) {
      if (sharesToManager[i] == _shareOwner) {
        result[counter] = i;
        counter++;
      }
    }
    return result;
  }
  
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"sharesSold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"etherPayout","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"tokenLockDays","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_shareOwner","type":"address"}],"name":"getSharesByShareOwner","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"createdBy","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"shares","outputs":[{"name":"share","type":"address"},{"name":"sharePercentage","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sharesMaxLength","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":"percentagePerShare","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"tokenPayout","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"newShare","outputs":[{"name":"","type":"address"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"sharesToManager","outputs":[{"name":"","type":"address"}],"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":"tokenPerShare","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_tokenContract","type":"address"},{"name":"_tokenPerShare","type":"uint256"},{"name":"_contractOwner","type":"address"},{"name":"_ownerPercentage","type":"uint256"},{"name":"_percentagePerShare","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"receiver","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"memberOf","type":"string"}],"name":"TokenPayout","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"receiver","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"memberOf","type":"string"}],"name":"EtherPayout","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"shareOwner","type":"address"},{"indexed":false,"name":"shareContract","type":"address"},{"indexed":false,"name":"lockTime","type":"uint256"}],"name":"ShareSigned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

60806040526000600560006101000a81548160ff0219169083151502179055506000600560016101000a81548160ff0219169083151502179055503480156200004757600080fd5b5060405160a08062005573833981018060405260a08110156200006957600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050326000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a384600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260408051908101604052808573ffffffffffffffffffffffffffffffffffffffff168152602001848152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101555050506200029181620002748460646200031a6401000000000262002b54179091906401000000009004565b620003346401000000000262002b1b179091906401000000009004565b60068190555080600881905550836009819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506064600a81905550505050505062000350565b60008282111515156200032957fe5b818303905092915050565b60008082848115156200034357fe5b0490508091505092915050565b61521380620003606000396000f3fe608060405260043610610126576000357c0100000000000000000000000000000000000000000000000000000000900480637286cff5116100b2578063983032c211610081578063983032c214610494578063a7467039146104de578063b2bdfa7b14610559578063c7f73448146105b0578063f2fde38b146105db57610126565b80637286cff5146103d957806387b551b5146104045780638da5cb5b1461040e5780638f32d59b1461046557610126565b80633a5673a4116100f95780633a5673a41461022e57806355a373d6146102be57806357a858fc146103155780635f1fc59a14610397578063715018a6146103c257610126565b8063192fc5161461012857806323d1b8eb146101535780632cc6b2ce1461015d578063359fe13214610188575b005b34801561013457600080fd5b5061013d61062c565b6040518082815260200191505060405180910390f35b61015b610632565b005b34801561016957600080fd5b50610172610db6565b6040518082815260200191505060405180910390f35b34801561019457600080fd5b506101d7600480360360208110156101ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dbc565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561021a5780820151818401526020810190506101ff565b505050509050019250505060405180910390f35b34801561023a57600080fd5b50610243610eed565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610283578082015181840152602081019050610268565b50505050905090810190601f1680156102b05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102ca57600080fd5b506102d3610f0a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561032157600080fd5b5061034e6004803603602081101561033857600080fd5b8101908080359060200190929190505050610f30565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b3480156103a357600080fd5b506103ac610f83565b6040518082815260200191505060405180910390f35b3480156103ce57600080fd5b506103d7610f89565b005b3480156103e557600080fd5b506103ee61105b565b6040518082815260200191505060405180910390f35b61040c611061565b005b34801561041a57600080fd5b50610423611f1c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561047157600080fd5b5061047a611f45565b604051808215151515815260200191505060405180910390f35b61049c611f9c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104ea57600080fd5b506105176004803603602081101561050157600080fd5b8101908080359060200190929190505050612a63565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561056557600080fd5b5061056e612a96565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105bc57600080fd5b506105c5612abb565b6040518082815260200191505060405180910390f35b3480156105e757600080fd5b5061062a600480360360208110156105fe57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ac1565b005b60075481565b6106616064610653670de0b6b3a76400006001612ae090919063ffffffff16565b612b1b90919063ffffffff16565b3073ffffffffffffffffffffffffffffffffffffffff163111151561068557600080fd5b60001515600560009054906101000a900460ff1615151415156106a757600080fd5b6001600560006101000a81548160ff02191690831515021790555060003073ffffffffffffffffffffffffffffffffffffffff16319050600080905060008090505b600280549050811015610c1a576106fe612c67565b60028281548110151561070d57fe5b90600052602060002090600202016040805190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152505090506000821115610abe578060000151600560026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506108ae600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561085f57600080fd5b505af1158015610873573d6000803e3d6000fd5b505050506040513d602081101561088957600080fd5b8101908080519060200190929190505050600a0a600954612ae090919063ffffffff16565b600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633366eeb26040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b15801561093257600080fd5b505afa158015610946573d6000803e3d6000fd5b505050506040513d602081101561095c57600080fd5b81019080805190602001909291905050501415610ab957806000015173ffffffffffffffffffffffffffffffffffffffff166108fc6109bb60646109ad856020015189612ae090919063ffffffff16565b612b1b90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156109e6573d6000803e3d6000fd5b507f7b1915f1ae57d8d86ff61ec338136f50004fc068b9a39c08f43afc42f89b883c8160000151610a376064610a29856020015189612ae090919063ffffffff16565b612b1b90919063ffffffff16565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001806020018281038252600b8152602001807f5368617265686f6c646572000000000000000000000000000000000000000000815250602001935050505060405180910390a15b610c04565b806000015173ffffffffffffffffffffffffffffffffffffffff166108fc610b066064610af8856020015189612ae090919063ffffffff16565b612b1b90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015610b31573d6000803e3d6000fd5b507f7b1915f1ae57d8d86ff61ec338136f50004fc068b9a39c08f43afc42f89b883c8160000151610b826064610b74856020015189612ae090919063ffffffff16565b612b1b90919063ffffffff16565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200180602001828103825260058152602001807f4f776e6572000000000000000000000000000000000000000000000000000000815250602001935050505060405180910390a15b82806001019350505080806001019150506106e9565b5060003073ffffffffffffffffffffffffffffffffffffffff16311115610d97576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015610cb9573d6000803e3d6000fd5b507f7b1915f1ae57d8d86ff61ec338136f50004fc068b9a39c08f43afc42f89b883c6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1631604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200180602001828103825260188152602001807f4f776e6572202d206c6566742066726f6d207368617265730000000000000000815250602001935050505060405180910390a15b6000600560006101000a81548160ff0219169083151502179055505050565b600a5481565b606080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051908082528060200260200182016040528015610e2d5781602001602082028038833980820191505090505b509050600080905060008090505b600280549050811015610ee2578473ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610ed557808383815181101515610ebe57fe5b906020019060200201818152505081806001019250505b8080600101915050610e3b565b508192505050919050565b606060405190810160405280602b81526020016151bd602b913981565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600281815481101515610f3f57fe5b90600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b60065481565b610f91611f45565b1515610f9c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60085481565b60001515600560009054906101000a900460ff16151514151561108357600080fd5b61115a600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561110c57600080fd5b505af1158015611120573d6000803e3d6000fd5b505050506040513d602081101561113657600080fd5b8101908080519060200190929190505050600a0a6001612ae090919063ffffffff16565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561121757600080fd5b505af115801561122b573d6000803e3d6000fd5b505050506040513d602081101561124157600080fd5b81019080805190602001909291905050501015151561125f57600080fd5b6001600560006101000a81548160ff0219169083151502179055506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561133957600080fd5b505af115801561134d573d6000803e3d6000fd5b505050506040513d602081101561136357600080fd5b81019080805190602001909291905050509050600080905060008090505b600280549050811015611a2657611396612c67565b6002828154811015156113a557fe5b90600052602060002090600202016040805190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152505090506000821115611810578060000151600560026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611546600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156114f757600080fd5b505af115801561150b573d6000803e3d6000fd5b505050506040513d602081101561152157600080fd5b8101908080519060200190929190505050600a0a600954612ae090919063ffffffff16565b600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633366eeb26040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156115ca57600080fd5b505afa1580156115de573d6000803e3d6000fd5b505050506040513d60208110156115f457600080fd5b8101908080519060200190929190505050141561180b57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8260000151611678606461166a86602001518a612ae090919063ffffffff16565b612b1b90919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156116fd57600080fd5b505af1158015611711573d6000803e3d6000fd5b505050506040513d602081101561172757600080fd5b8101908080519060200190929190505050507fede359a9cbdf682fc00d6db6d5e05f710a5c0a56b7dbcb8486431bc4e569736c8160000151611789606461177b856020015189612ae090919063ffffffff16565b612b1b90919063ffffffff16565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001806020018281038252600b8152602001807f5368617265686f6c646572000000000000000000000000000000000000000000815250602001935050505060405180910390a15b611a10565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb826000015161187d606461186f86602001518a612ae090919063ffffffff16565b612b1b90919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561190257600080fd5b505af1158015611916573d6000803e3d6000fd5b505050506040513d602081101561192c57600080fd5b8101908080519060200190929190505050507fede359a9cbdf682fc00d6db6d5e05f710a5c0a56b7dbcb8486431bc4e569736c816000015161198e6064611980856020015189612ae090919063ffffffff16565b612b1b90919063ffffffff16565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200180602001828103825260058152602001807f4f776e6572000000000000000000000000000000000000000000000000000000815250602001935050505060405180910390a15b8280600101935050508080600101915050611381565b506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611ae657600080fd5b505af1158015611afa573d6000803e3d6000fd5b505050506040513d6020811015611b1057600080fd5b81019080805190602001909291905050501115611efd57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611c4457600080fd5b505af1158015611c58573d6000803e3d6000fd5b505050506040513d6020811015611c6e57600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611d0457600080fd5b505af1158015611d18573d6000803e3d6000fd5b505050506040513d6020811015611d2e57600080fd5b8101908080519060200190929190505050507fede359a9cbdf682fc00d6db6d5e05f710a5c0a56b7dbcb8486431bc4e569736c6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611e4057600080fd5b505af1158015611e54573d6000803e3d6000fd5b505050506040513d6020811015611e6a57600080fd5b8101908080519060200190929190505050604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200180602001828103825260188152602001807f4f776e6572202d206c6566742066726f6d207368617265730000000000000000815250602001935050505060405180910390a15b6000600560006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b600060065460028054905011151515611fb457600080fd5b61208c600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561203d57600080fd5b505af1158015612051573d6000803e3d6000fd5b505050506040513d602081101561206757600080fd5b8101908080519060200190929190505050600a0a600954612ae090919063ffffffff16565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561214957600080fd5b505af115801561215d573d6000803e3d6000fd5b505050506040513d602081101561217357600080fd5b81019080805190602001909291905050501015151561219157600080fd5b6121c060646121b2670de0b6b3a76400006001612ae090919063ffffffff16565b612b1b90919063ffffffff16565b3073ffffffffffffffffffffffffffffffffffffffff163111156121e7576121e6610632565b5b6122be600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561227057600080fd5b505af1158015612284573d6000803e3d6000fd5b505050506040513d602081101561229a57600080fd5b8101908080519060200190929190505050600a0a6001612ae090919063ffffffff16565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561237b57600080fd5b505af115801561238f573d6000803e3d6000fd5b505050506040513d60208110156123a557600080fd5b81019080805190602001909291905050501015156123c6576123c5611061565b5b60001515600560019054906101000a900460ff1615151415156123e857600080fd5b600061241461240562015180600a54612ae090919063ffffffff16565b42612b3690919063ffffffff16565b90506001600560016101000a81548160ff0219169083151502179055506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661252e600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156124df57600080fd5b505af11580156124f3573d6000803e3d6000fd5b505050506040513d602081101561250957600080fd5b8101908080519060200190929190505050600a0a600954612ae090919063ffffffff16565b83612537612c97565b808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019350505050604051809103906000f080158015612597573d6000803e3d6000fd5b509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33836126b2600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561266357600080fd5b505af1158015612677573d6000803e3d6000fd5b505050506040513d602081101561268d57600080fd5b8101908080519060200190929190505050600a0a600954612ae090919063ffffffff16565b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561276a57600080fd5b505af115801561277e573d6000803e3d6000fd5b505050506040513d602081101561279457600080fd5b810190808051906020019092919050505015156127b057600080fd5b60006128726001600260408051908101604052808673ffffffffffffffffffffffffffffffffffffffff1681526020016008548152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101555050612b5490919063ffffffff16565b9050336003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506129196001600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b3690919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f0e8b267ab6eb5f4c7ffb8917ad6e53f7aeecc8acc2bb9afe92bf7ef7e8104f24338385604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a16000600a541115612a2357612a1c6001600a54612b5490919063ffffffff16565b600a819055505b612a396001600754612b3690919063ffffffff16565b6007819055506000600560016101000a81548160ff02191690831515021790555081935050505090565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b612ac9611f45565b1515612ad457600080fd5b612add81612b6d565b50565b600080831415612af35760009050612b15565b60008284029050828482811515612b0657fe5b04141515612b1057fe5b809150505b92915050565b6000808284811515612b2957fe5b0490508091505092915050565b6000808284019050838110151515612b4a57fe5b8091505092915050565b6000828211151515612b6257fe5b818303905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612ba957600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b60405161251580612ca88339019056fe60806040526000600260146101000a81548160ff021916908315150217905550606460035560006004556000600555600160085534801561003f57600080fd5b506040516060806125158339810180604052606081101561005f57600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050326000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a382600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160068190555080600781905550505050612374806101a16000396000f3fe60806040526004361061013c576000357c010000000000000000000000000000000000000000000000000000000090048063715018a6116100bd578063b2bdfa7b11610081578063b2bdfa7b14610494578063c3a3ee80146104eb578063d9bfbcd914610530578063dce388b61461055b578063f2fde38b146105865761013c565b8063715018a6146103c25780638366ee2b146103d957806387b551b5146104045780638da5cb5b1461040e5780638f32d59b146104655761013c565b80632c3dcc50116101045780632c3dcc50146102035780633366eeb21461022e5780633a5673a41461025957806355a373d6146102e957806363037b0c146103405761013c565b80630ead3ec81461013e5780630f45cc81146101695780630f78ee7c1461019457806318f9b0231461019e57806323d1b8eb146101ec575b005b34801561014a57600080fd5b506101536105d7565b6040518082815260200191505060405180910390f35b34801561017557600080fd5b5061017e6105dd565b6040518082815260200191505060405180910390f35b61019c6105e3565b005b6101ea600480360360408110156101b457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610afb565b005b3480156101f857600080fd5b50610201610fb2565b005b34801561020f57600080fd5b506102186113ac565b6040518082815260200191505060405180910390f35b34801561023a57600080fd5b506102436113b2565b6040518082815260200191505060405180910390f35b34801561026557600080fd5b5061026e6113bc565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102ae578082015181840152602081019050610293565b50505050905090810190601f1680156102db5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102f557600080fd5b506102fe6113d9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561034c57600080fd5b506103796004803603602081101561036357600080fd5b81019080803590602001909291905050506113ff565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b3480156103ce57600080fd5b506103d7611452565b005b3480156103e557600080fd5b506103ee611524565b6040518082815260200191505060405180910390f35b61040c611531565b005b34801561041a57600080fd5b50610423612060565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561047157600080fd5b5061047a612089565b604051808215151515815260200191505060405180910390f35b3480156104a057600080fd5b506104a96120e0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104f757600080fd5b5061052e6004803603604081101561050e57600080fd5b810190808035906020019092919080359060200190929190505050612105565b005b34801561053c57600080fd5b5061054561213b565b6040518082815260200191505060405180910390f35b34801561056757600080fd5b50610570612141565b6040518082815260200191505060405180910390f35b34801561059257600080fd5b506105d5600480360360208110156105a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612147565b005b60055481565b60065481565b6105eb612089565b15156105f657600080fd5b60001515600260149054906101000a900460ff16151514151561061857600080fd5b6007544211151561062857600080fd5b600654600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156106e857600080fd5b505af11580156106fc573d6000803e3d6000fd5b505050506040513d602081101561071257600080fd5b81019080805190602001909291905050501015151561073057600080fd5b600060068190555060003073ffffffffffffffffffffffffffffffffffffffff1631111561076157610760610fb2565b5b600161086f600654600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561082657600080fd5b505af115801561083a573d6000803e3d6000fd5b505050506040513d602081101561085057600080fd5b810190808051906020019092919050505061216690919063ffffffff16565b111561087e5761087d611531565b5b6001600260146101000a81548160ff0219169083151502179055507f6230c817254ff1969790b994503ac3aa7c0551db994c951e30df61cd6413c7c760405160405180910390a1600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156109e257600080fd5b505af11580156109f6573d6000803e3d6000fd5b505050506040513d6020811015610a0c57600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610aa257600080fd5b505af1158015610ab6573d6000803e3d6000fd5b505050506040513d6020811015610acc57600080fd5b8101908080519060200190929190505050506000600260146101000a81548160ff021916908315150217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610c98578060035410151515610b6157600080fd5b610b768160035461216690919063ffffffff16565b600381905550600160408051908101604052808473ffffffffffffffffffffffffffffffffffffffff168152602001838152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101555050507f40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac8282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1610fae565b610cad6005548261217f90919063ffffffff16565b341415610fa85760003073ffffffffffffffffffffffffffffffffffffffff16311115610cdd57610cdc610fb2565b5b6001610deb600654600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610da257600080fd5b505af1158015610db6573d6000803e3d6000fd5b505050506040513d6020811015610dcc57600080fd5b810190808051906020019092919050505061216690919063ffffffff16565b1115610dfa57610df9611531565b5b8060035410151515610e0b57600080fd5b8060045410151515610e1c57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16141515610e5657600080fd5b610e6b8160045461216690919063ffffffff16565b600481905550610e868160035461216690919063ffffffff16565b600381905550600160408051908101604052803273ffffffffffffffffffffffffffffffffffffffff168152602001838152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101555050507f40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac3282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1610fad565b600080fd5b5b5050565b60001515600260149054906101000a900460ff161515141515610fd457600080fd5b6001600260146101000a81548160ff02191690831515021790555060003073ffffffffffffffffffffffffffffffffffffffff16319050600080905060008090505b6001805490508110156112105761102b6122ed565b60018281548110151561103a57fe5b90600052602060002090600202016040805190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815250509050806000015173ffffffffffffffffffffffffffffffffffffffff166108fc6110fd60646110ef85602001518961217f90919063ffffffff16565b6121ba90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611128573d6000803e3d6000fd5b507f7b1915f1ae57d8d86ff61ec338136f50004fc068b9a39c08f43afc42f89b883c8160000151611179606461116b85602001518961217f90919063ffffffff16565b6121ba90919063ffffffff16565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001806020018281038252600b8152602001807f5368617265686f6c646572000000000000000000000000000000000000000000815250602001935050505060405180910390a18280600101935050508080600101915050611016565b5060003073ffffffffffffffffffffffffffffffffffffffff1631111561138d576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501580156112af573d6000803e3d6000fd5b507f7b1915f1ae57d8d86ff61ec338136f50004fc068b9a39c08f43afc42f89b883c6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1631604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200180602001828103825260058152602001807f4f776e6572000000000000000000000000000000000000000000000000000000815250602001935050505060405180910390a15b6000600260146101000a81548160ff0219169083151502179055505050565b60035481565b6000600654905090565b606060405190810160405280602b815260200161231e602b913981565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018181548110151561140e57fe5b90600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b61145a612089565b151561146557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600180549050905090565b60001515600260149054906101000a900460ff16151514151561155357600080fd5b61163f61162e600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156115df57600080fd5b505af11580156115f3573d6000803e3d6000fd5b505050506040513d602081101561160957600080fd5b8101908080519060200190929190505050600a0a60085461217f90919063ffffffff16565b6006546121d590919063ffffffff16565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156116fc57600080fd5b505af1158015611710573d6000803e3d6000fd5b505050506040513d602081101561172657600080fd5b81019080805190602001909291905050501015151561174457600080fd5b6001600260146101000a81548160ff021916908315150217905550600061186d600654600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561182457600080fd5b505af1158015611838573d6000803e3d6000fd5b505050506040513d602081101561184e57600080fd5b810190808051906020019092919050505061216690919063ffffffff16565b9050600080905060008090505b600180549050811015611b2e5761188f6122ed565b60018281548110151561189e57fe5b90600052602060002090600202016040805190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815250509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8260000151611986606461197886602001518a61217f90919063ffffffff16565b6121ba90919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611a0b57600080fd5b505af1158015611a1f573d6000803e3d6000fd5b505050506040513d6020811015611a3557600080fd5b8101908080519060200190929190505050507fede359a9cbdf682fc00d6db6d5e05f710a5c0a56b7dbcb8486431bc4e569736c8160000151611a976064611a8985602001518961217f90919063ffffffff16565b6121ba90919063ffffffff16565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001806020018281038252600b8152602001807f5368617265686f6c646572000000000000000000000000000000000000000000815250602001935050505060405180910390a1828060010193505050808060010191505061187a565b506000611c3d600654600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611bf457600080fd5b505af1158015611c08573d6000803e3d6000fd5b505050506040513d6020811015611c1e57600080fd5b810190808051906020019092919050505061216690919063ffffffff16565b111561204157600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611daf600654600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611d6657600080fd5b505af1158015611d7a573d6000803e3d6000fd5b505050506040513d6020811015611d9057600080fd5b810190808051906020019092919050505061216690919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611e3457600080fd5b505af1158015611e48573d6000803e3d6000fd5b505050506040513d6020811015611e5e57600080fd5b8101908080519060200190929190505050507fede359a9cbdf682fc00d6db6d5e05f710a5c0a56b7dbcb8486431bc4e569736c6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611fbf600654600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611f7657600080fd5b505af1158015611f8a573d6000803e3d6000fd5b505050506040513d6020811015611fa057600080fd5b810190808051906020019092919050505061216690919063ffffffff16565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200180602001828103825260058152602001807f4f776e6572000000000000000000000000000000000000000000000000000000815250602001935050505060405180910390a15b6000600260146101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61210d612089565b151561211857600080fd5b816003541015151561212957600080fd5b81600481905550806005819055505050565b60075481565b60045481565b61214f612089565b151561215a57600080fd5b612163816121f3565b50565b600082821115151561217457fe5b818303905092915050565b60008083141561219257600090506121b4565b600082840290508284828115156121a557fe5b041415156121af57fe5b809150505b92915050565b60008082848115156121c857fe5b0490508091505092915050565b60008082840190508381101515156121e957fe5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561222f57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152509056fe417373657453706c69742e6f7267202d2074686520677579732077686f20637574207468652070697a7a61a165627a7a723058200f59f6c3758dbcbfdced61820f293982396b78c7dcf1c1c247bf0f1fa4a043170029417373657453706c69742e6f7267202d2074686520677579732077686f20637574207468652070697a7a61a165627a7a723058201e3c6c92a9f0f5e866d5b789969e8fb26ef5a1b5f94ce5b7ea7b2e6c6be0c22300290000000000000000000000002d1e23144b89fc7364ed3efcd5af04093f7d9a3d00000000000000000000000000000000000000000000000000000000000003e8000000000000000000000000f001f2be101bca44997a3d3fcd6327dc3d8bd45c00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000001

Deployed Bytecode

0x608060405260043610610126576000357c0100000000000000000000000000000000000000000000000000000000900480637286cff5116100b2578063983032c211610081578063983032c214610494578063a7467039146104de578063b2bdfa7b14610559578063c7f73448146105b0578063f2fde38b146105db57610126565b80637286cff5146103d957806387b551b5146104045780638da5cb5b1461040e5780638f32d59b1461046557610126565b80633a5673a4116100f95780633a5673a41461022e57806355a373d6146102be57806357a858fc146103155780635f1fc59a14610397578063715018a6146103c257610126565b8063192fc5161461012857806323d1b8eb146101535780632cc6b2ce1461015d578063359fe13214610188575b005b34801561013457600080fd5b5061013d61062c565b6040518082815260200191505060405180910390f35b61015b610632565b005b34801561016957600080fd5b50610172610db6565b6040518082815260200191505060405180910390f35b34801561019457600080fd5b506101d7600480360360208110156101ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dbc565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561021a5780820151818401526020810190506101ff565b505050509050019250505060405180910390f35b34801561023a57600080fd5b50610243610eed565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610283578082015181840152602081019050610268565b50505050905090810190601f1680156102b05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102ca57600080fd5b506102d3610f0a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561032157600080fd5b5061034e6004803603602081101561033857600080fd5b8101908080359060200190929190505050610f30565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b3480156103a357600080fd5b506103ac610f83565b6040518082815260200191505060405180910390f35b3480156103ce57600080fd5b506103d7610f89565b005b3480156103e557600080fd5b506103ee61105b565b6040518082815260200191505060405180910390f35b61040c611061565b005b34801561041a57600080fd5b50610423611f1c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561047157600080fd5b5061047a611f45565b604051808215151515815260200191505060405180910390f35b61049c611f9c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104ea57600080fd5b506105176004803603602081101561050157600080fd5b8101908080359060200190929190505050612a63565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561056557600080fd5b5061056e612a96565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105bc57600080fd5b506105c5612abb565b6040518082815260200191505060405180910390f35b3480156105e757600080fd5b5061062a600480360360208110156105fe57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ac1565b005b60075481565b6106616064610653670de0b6b3a76400006001612ae090919063ffffffff16565b612b1b90919063ffffffff16565b3073ffffffffffffffffffffffffffffffffffffffff163111151561068557600080fd5b60001515600560009054906101000a900460ff1615151415156106a757600080fd5b6001600560006101000a81548160ff02191690831515021790555060003073ffffffffffffffffffffffffffffffffffffffff16319050600080905060008090505b600280549050811015610c1a576106fe612c67565b60028281548110151561070d57fe5b90600052602060002090600202016040805190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152505090506000821115610abe578060000151600560026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506108ae600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561085f57600080fd5b505af1158015610873573d6000803e3d6000fd5b505050506040513d602081101561088957600080fd5b8101908080519060200190929190505050600a0a600954612ae090919063ffffffff16565b600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633366eeb26040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b15801561093257600080fd5b505afa158015610946573d6000803e3d6000fd5b505050506040513d602081101561095c57600080fd5b81019080805190602001909291905050501415610ab957806000015173ffffffffffffffffffffffffffffffffffffffff166108fc6109bb60646109ad856020015189612ae090919063ffffffff16565b612b1b90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156109e6573d6000803e3d6000fd5b507f7b1915f1ae57d8d86ff61ec338136f50004fc068b9a39c08f43afc42f89b883c8160000151610a376064610a29856020015189612ae090919063ffffffff16565b612b1b90919063ffffffff16565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001806020018281038252600b8152602001807f5368617265686f6c646572000000000000000000000000000000000000000000815250602001935050505060405180910390a15b610c04565b806000015173ffffffffffffffffffffffffffffffffffffffff166108fc610b066064610af8856020015189612ae090919063ffffffff16565b612b1b90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015610b31573d6000803e3d6000fd5b507f7b1915f1ae57d8d86ff61ec338136f50004fc068b9a39c08f43afc42f89b883c8160000151610b826064610b74856020015189612ae090919063ffffffff16565b612b1b90919063ffffffff16565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200180602001828103825260058152602001807f4f776e6572000000000000000000000000000000000000000000000000000000815250602001935050505060405180910390a15b82806001019350505080806001019150506106e9565b5060003073ffffffffffffffffffffffffffffffffffffffff16311115610d97576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015610cb9573d6000803e3d6000fd5b507f7b1915f1ae57d8d86ff61ec338136f50004fc068b9a39c08f43afc42f89b883c6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1631604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200180602001828103825260188152602001807f4f776e6572202d206c6566742066726f6d207368617265730000000000000000815250602001935050505060405180910390a15b6000600560006101000a81548160ff0219169083151502179055505050565b600a5481565b606080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051908082528060200260200182016040528015610e2d5781602001602082028038833980820191505090505b509050600080905060008090505b600280549050811015610ee2578473ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610ed557808383815181101515610ebe57fe5b906020019060200201818152505081806001019250505b8080600101915050610e3b565b508192505050919050565b606060405190810160405280602b81526020016151bd602b913981565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600281815481101515610f3f57fe5b90600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b60065481565b610f91611f45565b1515610f9c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60085481565b60001515600560009054906101000a900460ff16151514151561108357600080fd5b61115a600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561110c57600080fd5b505af1158015611120573d6000803e3d6000fd5b505050506040513d602081101561113657600080fd5b8101908080519060200190929190505050600a0a6001612ae090919063ffffffff16565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561121757600080fd5b505af115801561122b573d6000803e3d6000fd5b505050506040513d602081101561124157600080fd5b81019080805190602001909291905050501015151561125f57600080fd5b6001600560006101000a81548160ff0219169083151502179055506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561133957600080fd5b505af115801561134d573d6000803e3d6000fd5b505050506040513d602081101561136357600080fd5b81019080805190602001909291905050509050600080905060008090505b600280549050811015611a2657611396612c67565b6002828154811015156113a557fe5b90600052602060002090600202016040805190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152505090506000821115611810578060000151600560026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611546600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156114f757600080fd5b505af115801561150b573d6000803e3d6000fd5b505050506040513d602081101561152157600080fd5b8101908080519060200190929190505050600a0a600954612ae090919063ffffffff16565b600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633366eeb26040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156115ca57600080fd5b505afa1580156115de573d6000803e3d6000fd5b505050506040513d60208110156115f457600080fd5b8101908080519060200190929190505050141561180b57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8260000151611678606461166a86602001518a612ae090919063ffffffff16565b612b1b90919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156116fd57600080fd5b505af1158015611711573d6000803e3d6000fd5b505050506040513d602081101561172757600080fd5b8101908080519060200190929190505050507fede359a9cbdf682fc00d6db6d5e05f710a5c0a56b7dbcb8486431bc4e569736c8160000151611789606461177b856020015189612ae090919063ffffffff16565b612b1b90919063ffffffff16565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001806020018281038252600b8152602001807f5368617265686f6c646572000000000000000000000000000000000000000000815250602001935050505060405180910390a15b611a10565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb826000015161187d606461186f86602001518a612ae090919063ffffffff16565b612b1b90919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561190257600080fd5b505af1158015611916573d6000803e3d6000fd5b505050506040513d602081101561192c57600080fd5b8101908080519060200190929190505050507fede359a9cbdf682fc00d6db6d5e05f710a5c0a56b7dbcb8486431bc4e569736c816000015161198e6064611980856020015189612ae090919063ffffffff16565b612b1b90919063ffffffff16565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200180602001828103825260058152602001807f4f776e6572000000000000000000000000000000000000000000000000000000815250602001935050505060405180910390a15b8280600101935050508080600101915050611381565b506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611ae657600080fd5b505af1158015611afa573d6000803e3d6000fd5b505050506040513d6020811015611b1057600080fd5b81019080805190602001909291905050501115611efd57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611c4457600080fd5b505af1158015611c58573d6000803e3d6000fd5b505050506040513d6020811015611c6e57600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611d0457600080fd5b505af1158015611d18573d6000803e3d6000fd5b505050506040513d6020811015611d2e57600080fd5b8101908080519060200190929190505050507fede359a9cbdf682fc00d6db6d5e05f710a5c0a56b7dbcb8486431bc4e569736c6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611e4057600080fd5b505af1158015611e54573d6000803e3d6000fd5b505050506040513d6020811015611e6a57600080fd5b8101908080519060200190929190505050604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200180602001828103825260188152602001807f4f776e6572202d206c6566742066726f6d207368617265730000000000000000815250602001935050505060405180910390a15b6000600560006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b600060065460028054905011151515611fb457600080fd5b61208c600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561203d57600080fd5b505af1158015612051573d6000803e3d6000fd5b505050506040513d602081101561206757600080fd5b8101908080519060200190929190505050600a0a600954612ae090919063ffffffff16565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561214957600080fd5b505af115801561215d573d6000803e3d6000fd5b505050506040513d602081101561217357600080fd5b81019080805190602001909291905050501015151561219157600080fd5b6121c060646121b2670de0b6b3a76400006001612ae090919063ffffffff16565b612b1b90919063ffffffff16565b3073ffffffffffffffffffffffffffffffffffffffff163111156121e7576121e6610632565b5b6122be600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561227057600080fd5b505af1158015612284573d6000803e3d6000fd5b505050506040513d602081101561229a57600080fd5b8101908080519060200190929190505050600a0a6001612ae090919063ffffffff16565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561237b57600080fd5b505af115801561238f573d6000803e3d6000fd5b505050506040513d60208110156123a557600080fd5b81019080805190602001909291905050501015156123c6576123c5611061565b5b60001515600560019054906101000a900460ff1615151415156123e857600080fd5b600061241461240562015180600a54612ae090919063ffffffff16565b42612b3690919063ffffffff16565b90506001600560016101000a81548160ff0219169083151502179055506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661252e600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156124df57600080fd5b505af11580156124f3573d6000803e3d6000fd5b505050506040513d602081101561250957600080fd5b8101908080519060200190929190505050600a0a600954612ae090919063ffffffff16565b83612537612c97565b808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019350505050604051809103906000f080158015612597573d6000803e3d6000fd5b509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33836126b2600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561266357600080fd5b505af1158015612677573d6000803e3d6000fd5b505050506040513d602081101561268d57600080fd5b8101908080519060200190929190505050600a0a600954612ae090919063ffffffff16565b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561276a57600080fd5b505af115801561277e573d6000803e3d6000fd5b505050506040513d602081101561279457600080fd5b810190808051906020019092919050505015156127b057600080fd5b60006128726001600260408051908101604052808673ffffffffffffffffffffffffffffffffffffffff1681526020016008548152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101555050612b5490919063ffffffff16565b9050336003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506129196001600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b3690919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f0e8b267ab6eb5f4c7ffb8917ad6e53f7aeecc8acc2bb9afe92bf7ef7e8104f24338385604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a16000600a541115612a2357612a1c6001600a54612b5490919063ffffffff16565b600a819055505b612a396001600754612b3690919063ffffffff16565b6007819055506000600560016101000a81548160ff02191690831515021790555081935050505090565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b612ac9611f45565b1515612ad457600080fd5b612add81612b6d565b50565b600080831415612af35760009050612b15565b60008284029050828482811515612b0657fe5b04141515612b1057fe5b809150505b92915050565b6000808284811515612b2957fe5b0490508091505092915050565b6000808284019050838110151515612b4a57fe5b8091505092915050565b6000828211151515612b6257fe5b818303905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612ba957600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b60405161251580612ca88339019056fe60806040526000600260146101000a81548160ff021916908315150217905550606460035560006004556000600555600160085534801561003f57600080fd5b506040516060806125158339810180604052606081101561005f57600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050326000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a382600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160068190555080600781905550505050612374806101a16000396000f3fe60806040526004361061013c576000357c010000000000000000000000000000000000000000000000000000000090048063715018a6116100bd578063b2bdfa7b11610081578063b2bdfa7b14610494578063c3a3ee80146104eb578063d9bfbcd914610530578063dce388b61461055b578063f2fde38b146105865761013c565b8063715018a6146103c25780638366ee2b146103d957806387b551b5146104045780638da5cb5b1461040e5780638f32d59b146104655761013c565b80632c3dcc50116101045780632c3dcc50146102035780633366eeb21461022e5780633a5673a41461025957806355a373d6146102e957806363037b0c146103405761013c565b80630ead3ec81461013e5780630f45cc81146101695780630f78ee7c1461019457806318f9b0231461019e57806323d1b8eb146101ec575b005b34801561014a57600080fd5b506101536105d7565b6040518082815260200191505060405180910390f35b34801561017557600080fd5b5061017e6105dd565b6040518082815260200191505060405180910390f35b61019c6105e3565b005b6101ea600480360360408110156101b457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610afb565b005b3480156101f857600080fd5b50610201610fb2565b005b34801561020f57600080fd5b506102186113ac565b6040518082815260200191505060405180910390f35b34801561023a57600080fd5b506102436113b2565b6040518082815260200191505060405180910390f35b34801561026557600080fd5b5061026e6113bc565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102ae578082015181840152602081019050610293565b50505050905090810190601f1680156102db5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102f557600080fd5b506102fe6113d9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561034c57600080fd5b506103796004803603602081101561036357600080fd5b81019080803590602001909291905050506113ff565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b3480156103ce57600080fd5b506103d7611452565b005b3480156103e557600080fd5b506103ee611524565b6040518082815260200191505060405180910390f35b61040c611531565b005b34801561041a57600080fd5b50610423612060565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561047157600080fd5b5061047a612089565b604051808215151515815260200191505060405180910390f35b3480156104a057600080fd5b506104a96120e0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104f757600080fd5b5061052e6004803603604081101561050e57600080fd5b810190808035906020019092919080359060200190929190505050612105565b005b34801561053c57600080fd5b5061054561213b565b6040518082815260200191505060405180910390f35b34801561056757600080fd5b50610570612141565b6040518082815260200191505060405180910390f35b34801561059257600080fd5b506105d5600480360360208110156105a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612147565b005b60055481565b60065481565b6105eb612089565b15156105f657600080fd5b60001515600260149054906101000a900460ff16151514151561061857600080fd5b6007544211151561062857600080fd5b600654600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156106e857600080fd5b505af11580156106fc573d6000803e3d6000fd5b505050506040513d602081101561071257600080fd5b81019080805190602001909291905050501015151561073057600080fd5b600060068190555060003073ffffffffffffffffffffffffffffffffffffffff1631111561076157610760610fb2565b5b600161086f600654600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561082657600080fd5b505af115801561083a573d6000803e3d6000fd5b505050506040513d602081101561085057600080fd5b810190808051906020019092919050505061216690919063ffffffff16565b111561087e5761087d611531565b5b6001600260146101000a81548160ff0219169083151502179055507f6230c817254ff1969790b994503ac3aa7c0551db994c951e30df61cd6413c7c760405160405180910390a1600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156109e257600080fd5b505af11580156109f6573d6000803e3d6000fd5b505050506040513d6020811015610a0c57600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610aa257600080fd5b505af1158015610ab6573d6000803e3d6000fd5b505050506040513d6020811015610acc57600080fd5b8101908080519060200190929190505050506000600260146101000a81548160ff021916908315150217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610c98578060035410151515610b6157600080fd5b610b768160035461216690919063ffffffff16565b600381905550600160408051908101604052808473ffffffffffffffffffffffffffffffffffffffff168152602001838152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101555050507f40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac8282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1610fae565b610cad6005548261217f90919063ffffffff16565b341415610fa85760003073ffffffffffffffffffffffffffffffffffffffff16311115610cdd57610cdc610fb2565b5b6001610deb600654600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610da257600080fd5b505af1158015610db6573d6000803e3d6000fd5b505050506040513d6020811015610dcc57600080fd5b810190808051906020019092919050505061216690919063ffffffff16565b1115610dfa57610df9611531565b5b8060035410151515610e0b57600080fd5b8060045410151515610e1c57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16141515610e5657600080fd5b610e6b8160045461216690919063ffffffff16565b600481905550610e868160035461216690919063ffffffff16565b600381905550600160408051908101604052803273ffffffffffffffffffffffffffffffffffffffff168152602001838152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101555050507f40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac3282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1610fad565b600080fd5b5b5050565b60001515600260149054906101000a900460ff161515141515610fd457600080fd5b6001600260146101000a81548160ff02191690831515021790555060003073ffffffffffffffffffffffffffffffffffffffff16319050600080905060008090505b6001805490508110156112105761102b6122ed565b60018281548110151561103a57fe5b90600052602060002090600202016040805190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815250509050806000015173ffffffffffffffffffffffffffffffffffffffff166108fc6110fd60646110ef85602001518961217f90919063ffffffff16565b6121ba90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611128573d6000803e3d6000fd5b507f7b1915f1ae57d8d86ff61ec338136f50004fc068b9a39c08f43afc42f89b883c8160000151611179606461116b85602001518961217f90919063ffffffff16565b6121ba90919063ffffffff16565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001806020018281038252600b8152602001807f5368617265686f6c646572000000000000000000000000000000000000000000815250602001935050505060405180910390a18280600101935050508080600101915050611016565b5060003073ffffffffffffffffffffffffffffffffffffffff1631111561138d576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501580156112af573d6000803e3d6000fd5b507f7b1915f1ae57d8d86ff61ec338136f50004fc068b9a39c08f43afc42f89b883c6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1631604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200180602001828103825260058152602001807f4f776e6572000000000000000000000000000000000000000000000000000000815250602001935050505060405180910390a15b6000600260146101000a81548160ff0219169083151502179055505050565b60035481565b6000600654905090565b606060405190810160405280602b815260200161231e602b913981565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018181548110151561140e57fe5b90600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b61145a612089565b151561146557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600180549050905090565b60001515600260149054906101000a900460ff16151514151561155357600080fd5b61163f61162e600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156115df57600080fd5b505af11580156115f3573d6000803e3d6000fd5b505050506040513d602081101561160957600080fd5b8101908080519060200190929190505050600a0a60085461217f90919063ffffffff16565b6006546121d590919063ffffffff16565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156116fc57600080fd5b505af1158015611710573d6000803e3d6000fd5b505050506040513d602081101561172657600080fd5b81019080805190602001909291905050501015151561174457600080fd5b6001600260146101000a81548160ff021916908315150217905550600061186d600654600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561182457600080fd5b505af1158015611838573d6000803e3d6000fd5b505050506040513d602081101561184e57600080fd5b810190808051906020019092919050505061216690919063ffffffff16565b9050600080905060008090505b600180549050811015611b2e5761188f6122ed565b60018281548110151561189e57fe5b90600052602060002090600202016040805190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815250509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8260000151611986606461197886602001518a61217f90919063ffffffff16565b6121ba90919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611a0b57600080fd5b505af1158015611a1f573d6000803e3d6000fd5b505050506040513d6020811015611a3557600080fd5b8101908080519060200190929190505050507fede359a9cbdf682fc00d6db6d5e05f710a5c0a56b7dbcb8486431bc4e569736c8160000151611a976064611a8985602001518961217f90919063ffffffff16565b6121ba90919063ffffffff16565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001806020018281038252600b8152602001807f5368617265686f6c646572000000000000000000000000000000000000000000815250602001935050505060405180910390a1828060010193505050808060010191505061187a565b506000611c3d600654600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611bf457600080fd5b505af1158015611c08573d6000803e3d6000fd5b505050506040513d6020811015611c1e57600080fd5b810190808051906020019092919050505061216690919063ffffffff16565b111561204157600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611daf600654600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611d6657600080fd5b505af1158015611d7a573d6000803e3d6000fd5b505050506040513d6020811015611d9057600080fd5b810190808051906020019092919050505061216690919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611e3457600080fd5b505af1158015611e48573d6000803e3d6000fd5b505050506040513d6020811015611e5e57600080fd5b8101908080519060200190929190505050507fede359a9cbdf682fc00d6db6d5e05f710a5c0a56b7dbcb8486431bc4e569736c6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611fbf600654600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611f7657600080fd5b505af1158015611f8a573d6000803e3d6000fd5b505050506040513d6020811015611fa057600080fd5b810190808051906020019092919050505061216690919063ffffffff16565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200180602001828103825260058152602001807f4f776e6572000000000000000000000000000000000000000000000000000000815250602001935050505060405180910390a15b6000600260146101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61210d612089565b151561211857600080fd5b816003541015151561212957600080fd5b81600481905550806005819055505050565b60075481565b60045481565b61214f612089565b151561215a57600080fd5b612163816121f3565b50565b600082821115151561217457fe5b818303905092915050565b60008083141561219257600090506121b4565b600082840290508284828115156121a557fe5b041415156121af57fe5b809150505b92915050565b60008082848115156121c857fe5b0490508091505092915050565b60008082840190508381101515156121e957fe5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561222f57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152509056fe417373657453706c69742e6f7267202d2074686520677579732077686f20637574207468652070697a7a61a165627a7a723058200f59f6c3758dbcbfdced61820f293982396b78c7dcf1c1c247bf0f1fa4a043170029417373657453706c69742e6f7267202d2074686520677579732077686f20637574207468652070697a7a61a165627a7a723058201e3c6c92a9f0f5e866d5b789969e8fb26ef5a1b5f94ce5b7ea7b2e6c6be0c2230029

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

0000000000000000000000002d1e23144b89fc7364ed3efcd5af04093f7d9a3d00000000000000000000000000000000000000000000000000000000000003e8000000000000000000000000f001f2be101bca44997a3d3fcd6327dc3d8bd45c00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000001

-----Decoded View---------------
Arg [0] : _tokenContract (address): 0x2d1E23144B89fC7364eD3efCd5Af04093F7d9a3D
Arg [1] : _tokenPerShare (uint256): 1000
Arg [2] : _contractOwner (address): 0xf001f2bE101bcA44997A3D3fCD6327DC3D8bD45c
Arg [3] : _ownerPercentage (uint256): 50
Arg [4] : _percentagePerShare (uint256): 1

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000002d1e23144b89fc7364ed3efcd5af04093f7d9a3d
Arg [1] : 00000000000000000000000000000000000000000000000000000000000003e8
Arg [2] : 000000000000000000000000f001f2be101bca44997a3d3fcd6327dc3d8bd45c
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000032
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000001


Swarm Source

bzzr://1e3c6c92a9f0f5e866d5b789969e8fb26ef5a1b5f94ce5b7ea7b2e6c6be0c223

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

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