ETH Price: $2,570.45 (-2.81%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer138473922021-12-21 8:16:231249 days ago1640074583IN
0x9288d6b8...56b807112
0 ETH0.0025169941
Transfer137454782021-12-05 10:11:431265 days ago1638699103IN
0x9288d6b8...56b807112
0 ETH0.004090572.28320904
Transfer116085202021-01-07 15:57:271596 days ago1610035047IN
0x9288d6b8...56b807112
0 ETH0.00591705143
Transfer96307282020-03-08 12:15:511902 days ago1583669751IN
0x9288d6b8...56b807112
0 ETH0.0004140210.00000123
Transfer94693892020-02-12 16:59:561926 days ago1581526796IN
0x9288d6b8...56b807112
0 ETH0.0004140210
Transfer90531042019-12-05 4:48:521996 days ago1575521332IN
0x9288d6b8...56b807112
0 ETH0.00016093
Transfer87973942019-10-23 15:04:342038 days ago1571843074IN
0x9288d6b8...56b807112
0 ETH0.0010524819.6
Transfer87887872019-10-22 6:51:212040 days ago1571727081IN
0x9288d6b8...56b807112
0 ETH0.0004862620
Transfer87564632019-10-17 4:29:152045 days ago1571286555IN
0x9288d6b8...56b807112
0 ETH0.000048622
Transfer86990732019-10-08 4:03:192054 days ago1570507399IN
0x9288d6b8...56b807112
0 ETH0.0007629914.20895539
Transfer84568972019-08-31 8:39:202092 days ago1567240760IN
0x9288d6b8...56b807112
0 ETH0.0015839941
Transfer84449072019-08-29 11:49:312094 days ago1567079371IN
0x9288d6b8...56b807112
0 ETH0.0014894227.77014886
Transfer82018562019-07-22 17:42:522131 days ago1563817372IN
0x9288d6b8...56b807112
0 ETH0.000154794
Transfer80389942019-06-27 8:45:212157 days ago1561625121IN
0x9288d6b8...56b807112
0 ETH0.0007739620
Transfer80133382019-06-23 8:50:422161 days ago1561279842IN
0x9288d6b8...56b807112
0 ETH0.0003863410
Transfer79889532019-06-19 13:18:422165 days ago1560950322IN
0x9288d6b8...56b807112
0 ETH0.0009781718.25970176
Transfer79788102019-06-17 23:22:012166 days ago1560813721IN
0x9288d6b8...56b807112
0 ETH0.000094534
Transfer79786362019-06-17 22:39:492166 days ago1560811189IN
0x9288d6b8...56b807112
0 ETH0.00095117.73134233
Transfer79356082019-06-11 5:11:252173 days ago1560229885IN
0x9288d6b8...56b807112
0 ETH0.001421626.5373143
Transfer79354912019-06-11 4:41:342173 days ago1560228094IN
0x9288d6b8...56b807112
0 ETH0.000483289
Transfer78296002019-05-25 15:27:372189 days ago1558798057IN
0x9288d6b8...56b807112
0 ETH0.0003869810
Transfer78086982019-05-22 9:02:162193 days ago1558515736IN
0x9288d6b8...56b807112
0 ETH0.0005899711
Transfer77322942019-05-10 10:29:402205 days ago1557484180IN
0x9288d6b8...56b807112
0 ETH0.000401777.5
Transfer77274462019-05-09 16:29:302205 days ago1557419370IN
0x9288d6b8...56b807112
0 ETH0.0009689941
Transfer77274232019-05-09 16:24:022205 days ago1557419042IN
0x9288d6b8...56b807112
0 ETH0.0015839941
View all transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
JCT

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 200 runs

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

pragma solidity ^0.4.24;

/*      _____    ______    ________ 
 *     /     |  /      \  /        |
 *     $$$$$ | /$$$$$$  | $$$$$$$$/ 
 *        $$ | $$ |  $$/     $$ |  
 *   __   $$ | $$ |          $$ |  
 *  /  |  $$ | $$ |   __     $$ |  
 *  $$ \__$$ | $$ \__/  |    $$ |
 *  $$    $$/  $$    $$/     $$ |
 *   $$$$$$/    $$$$$$/      $$/ 
 */

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
    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;
    }

    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;
    }

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

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



/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization
 *      control functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
    address public owner;
    address public collector;
    address public distributor;
    address public freezer;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    event CollectorshipTransferred(address indexed previousCollector, address indexed newCollector);
    event DistributorshipTransferred(address indexed previousDistributor, address indexed newDistributor);
    event FreezershipTransferred(address indexed previousFreezer, address indexed newFreezer);

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

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

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

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

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

    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function transferOwnership(address newOwner) onlyOwner public {
        require(isNonZeroAccount(newOwner));
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }

    /**
     * @dev Allows the owner to transfer control of the contract to a newCollector.
     * @param newCollector The address to transfer collectorship to.
     */
    function transferCollectorship(address newCollector) onlyOwner public {
        require(isNonZeroAccount(newCollector));
        emit CollectorshipTransferred(collector, newCollector);
        collector = newCollector;
    }

    /**
     * @dev Allows the owner to transfer control of the contract to a newDistributor.
     * @param newDistributor The address to transfer distributorship to.
     */
    function transferDistributorship(address newDistributor) onlyOwner public {
        require(isNonZeroAccount(newDistributor));
        emit DistributorshipTransferred(distributor, newDistributor);
        distributor = newDistributor;
    }

    /**
     * @dev Allows the owner to transfer control of the contract to a newFreezer.
     * @param newFreezer The address to transfer freezership to.
     */
    function transferFreezership(address newFreezer) onlyOwner public {
        require(isNonZeroAccount(newFreezer));
        emit FreezershipTransferred(freezer, newFreezer);
        freezer = newFreezer;
    }

    // check if the given account is valid
    function isNonZeroAccount(address _addr) internal pure returns (bool is_nonzero_account) {
        return _addr != address(0);
    }
}

/**
 * @title ERC20
 * @dev ERC20 contract interface
 */
contract ERC20 {
    uint public totalSupply;

    function balanceOf(address who) public view returns (uint);
    function totalSupply() public view returns (uint256 _supply);
    function transfer(address to, uint value) public returns (bool ok);
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);
    function approve(address _spender, uint256 _value) public returns (bool success);
    function allowance(address _owner, address _spender) public view returns (uint256 remaining);
    function name() public view returns (string _name);
    function symbol() public view returns (string _symbol);
    function decimals() public view returns (uint8 _decimals);
    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint _value);
}

/**
 * @title JCT
 * @author Daisuke Hirata & Noriyuki Izawa
 * @dev JCT is an ERC20 Token. First envisioned by NANJCOIN
 */
contract JCT is ERC20, Ownable {
    using SafeMath for uint256;

    string public name = "JCT";
    string public symbol = "JCT";
    uint8 public decimals = 8;
    uint256 public totalSupply = 18e7 * 1e8;
    address public relay;

    mapping(address => uint256) public balanceOf;
    mapping(address => mapping (address => uint256)) public allowance;
    mapping (address => bool) public frozenAccount;
    mapping (address => uint256) public unlockUnixTime;

    event FrozenFunds(address indexed target, bool frozen);
    event LockedFunds(address indexed target, uint256 locked);

    /**
     * @dev Constructor is called only once and can not be called again
     */
    constructor(address founder, address _relay) public {
        owner = founder;
        collector = founder;
        distributor = founder;
        freezer = founder;

        balanceOf[founder] = totalSupply;

        relay = _relay;
    }

    modifier onlyAuthorized() {
        require(msg.sender == relay || checkMessageData(msg.sender));
        _;
    }

    function name() public view returns (string _name) {
        return name;
    }

    function symbol() public view returns (string _symbol) {
        return symbol;
    }

    function decimals() public view returns (uint8 _decimals) {
        return decimals;
    }

    function totalSupply() public view returns (uint256 _totalSupply) {
        return totalSupply;
    }

    function balanceOf(address _owner) public view returns (uint256 balance) {
        return balanceOf[_owner];
    }

    /**
     * @dev Prevent targets from sending or receiving tokens
     * @param targets Addresses to be frozen
     * @param isFrozen either to freeze it or not
     */
    function freezeAccounts(address[] targets, bool isFrozen) onlyFreezer public {
        require(targets.length > 0);

        for (uint j = 0; j < targets.length; j++) {
            require(isNonZeroAccount(targets[j]));
            frozenAccount[targets[j]] = isFrozen;
            emit FrozenFunds(targets[j], isFrozen);
        }
    }

    /**
     * @dev Prevent targets from sending or receiving tokens by setting Unix times
     * @param targets Addresses to be locked funds
     * @param unixTimes Unix times when locking up will be finished
     */
    function lockupAccounts(address[] targets, uint[] unixTimes) onlyOwner public {
        require(hasSameArrayLength(targets, unixTimes));

        for(uint j = 0; j < targets.length; j++){
            require(unlockUnixTime[targets[j]] < unixTimes[j]);
            unlockUnixTime[targets[j]] = unixTimes[j];
            emit LockedFunds(targets[j], unixTimes[j]);
        }
    }

    /**
     * @dev Standard function transfer with no _data
     */
    function transfer(address _to, uint _value) public returns (bool success) {
        require(hasEnoughBalance(msg.sender, _value)
                && isAvailableAccount(msg.sender)
                && isAvailableAccount(_to));

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

    /**
     * @dev Transfer tokens from one address to another
     * @param _from address The address which you want to send tokens from
     * @param _to address The address which you want to transfer to
     * @param _value uint256 the amount of tokens to be transferred
     */
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
        require(isNonZeroAccount(_to)
                && hasEnoughBalance(_from, _value)
                && hasEnoughAllowance(_from, msg.sender, _value)
                && isAvailableAccount(_from)
                && isAvailableAccount(_to));

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

    /**
     * @dev Allows _spender to spend no more than _value tokens in your behalf
     * @param _spender The address authorized to spend
     * @param _value the max amount they can spend
     */
    function approve(address _spender, uint256 _value) public returns (bool success) {
        allowance[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    /**
     * @dev Allows _spender to spend no more than _value tokens in your behalf. intended to be called from TxRelay contract
     */
    function approveTokenCollection(address _claimedSender, address _spender, uint256 _value) onlyAuthorized public returns (bool success) {
        require(isAvailableAccount(_claimedSender)
                && isAvailableAccount(msg.sender));
        allowance[_claimedSender][_spender] = _value;
        emit Approval(_claimedSender, _spender, _value);
        return true;
    }    

    /**
     * @dev Function to check the amount of tokens that an owner allowed to a spender
     * @param _owner address The address which owns the funds
     * @param _spender address The address which will spend the funds
     */
    function allowance(address _owner, address _spender) public view returns (uint256 remaining) {
        return allowance[_owner][_spender];
    }

    /**
     * @dev Function to collect tokens from the list of addresses
     */
    function collectTokens(address[] addresses, uint[] amounts) onlyCollector public returns (bool) {
        require(hasSameArrayLength(addresses, amounts));

        uint256 totalAmount = 0;

        for (uint j = 0; j < addresses.length; j++) {
            require(amounts[j] > 0
                    && isNonZeroAccount(addresses[j])
                    && isAvailableAccount(addresses[j])
                    && hasEnoughAllowance(addresses[j], msg.sender, amounts[j]));

            require(hasEnoughBalance(addresses[j], amounts[j]));
            balanceOf[addresses[j]] = balanceOf[addresses[j]].sub(amounts[j]);
            allowance[addresses[j]][msg.sender] = allowance[addresses[j]][msg.sender].sub(amounts[j]);
            totalAmount = totalAmount.add(amounts[j]);
            emit Transfer(addresses[j], msg.sender, amounts[j]);
        }
        balanceOf[msg.sender] = balanceOf[msg.sender].add(totalAmount);
        return true;
    }

    /**
     * @dev Function to distribute tokens to the list of addresses
     */
    function distributeTokens(address[] addresses, uint[] amounts) onlyDistributor public returns (bool) {
        require(hasSameArrayLength(addresses, amounts)
                && isAvailableAccount(msg.sender));

        uint256 totalAmount = 0;

        for(uint j = 0; j < addresses.length; j++){
            require(amounts[j] > 0
                    && isNonZeroAccount(addresses[j])
                    && isAvailableAccount(addresses[j]));

            totalAmount = totalAmount.add(amounts[j]);
        }
        require(hasEnoughBalance(msg.sender, totalAmount));

        for (j = 0; j < addresses.length; j++) {
            balanceOf[addresses[j]] = balanceOf[addresses[j]].add(amounts[j]);
            emit Transfer(msg.sender, addresses[j], amounts[j]);
        }
        balanceOf[msg.sender] = balanceOf[msg.sender].sub(totalAmount);
        return true;
    }

    // check if the given account is available
    function isAvailableAccount(address _addr) public view returns (bool is_valid_account) {
        return isUnLockedAccount(_addr) && isUnfrozenAccount(_addr);
    }

    // check if the given account is not locked up
    function isUnLockedAccount(address _addr) public view returns (bool is_unlocked_account) {
        return now > unlockUnixTime[_addr];
    }

    // check if the given account is not frozen
    function isUnfrozenAccount(address _addr) public view returns (bool is_unfrozen_account) {
        return frozenAccount[_addr] == false;
    }

    // check if the given account has enough balance more than given amount
    function hasEnoughBalance(address _addr, uint256 _value) public view returns (bool has_enough_balance) {
        return _value > 0 && balanceOf[_addr] >= _value;
    }

    // check if the given spender has enough allowance of owner more than given amount
    function hasEnoughAllowance(address _owner, address _spender, uint256 _value) public view returns (bool has_enough_balance) {
        return allowance[_owner][_spender] >= _value;
    }    

    // check if the given account is not frozen
    function hasSameArrayLength(address[] addresses, uint[] amounts) private pure returns (bool has_same_array_length) {
        return addresses.length > 0 && addresses.length == amounts.length;
    }

    //Checks that address a is the first input in msg.data.
    //Has very minimal gas overhead.
    function checkMessageData(address a) private pure returns (bool t) {
        if (msg.data.length < 36) return false;
        assembly {
            let mask := 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
            t := eq(a, and(mask, calldataload(4)))
        }
    }    
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"_name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"hasEnoughAllowance","outputs":[{"name":"has_enough_balance","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"_totalSupply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"isUnLockedAccount","outputs":[{"name":"is_unlocked_account","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newCollector","type":"address"}],"name":"transferCollectorship","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"_decimals","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newFreezer","type":"address"}],"name":"transferFreezership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addresses","type":"address[]"},{"name":"amounts","type":"uint256[]"}],"name":"distributeTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"targets","type":"address[]"},{"name":"unixTimes","type":"uint256[]"}],"name":"lockupAccounts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"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":"collector","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"freezer","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"_symbol","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_claimedSender","type":"address"},{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approveTokenCollection","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"isAvailableAccount","outputs":[{"name":"is_valid_account","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"frozenAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"relay","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"distributor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"targets","type":"address[]"},{"name":"isFrozen","type":"bool"}],"name":"freezeAccounts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"unlockUnixTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"},{"name":"_value","type":"uint256"}],"name":"hasEnoughBalance","outputs":[{"name":"has_enough_balance","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newDistributor","type":"address"}],"name":"transferDistributorship","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addresses","type":"address[]"},{"name":"amounts","type":"uint256[]"}],"name":"collectTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"isUnfrozenAccount","outputs":[{"name":"is_unfrozen_account","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"founder","type":"address"},{"name":"_relay","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"target","type":"address"},{"indexed":false,"name":"frozen","type":"bool"}],"name":"FrozenFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"target","type":"address"},{"indexed":false,"name":"locked","type":"uint256"}],"name":"LockedFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousCollector","type":"address"},{"indexed":true,"name":"newCollector","type":"address"}],"name":"CollectorshipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousDistributor","type":"address"},{"indexed":true,"name":"newDistributor","type":"address"}],"name":"DistributorshipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousFreezer","type":"address"},{"indexed":true,"name":"newFreezer","type":"address"}],"name":"FreezershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]

60806040526040805190810160405280600381526020017f4a43540000000000000000000000000000000000000000000000000000000000815250600590805190602001906200005192919062000399565b506040805190810160405280600381526020017f4a43540000000000000000000000000000000000000000000000000000000000815250600690805190602001906200009f92919062000399565b506008600760006101000a81548160ff021916908360ff160217905550663ff2e795f50000600855348015620000d457600080fd5b506040516040806200300d833981018060405281019080805190602001909291908051906020019092919050505033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600854600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000448565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003dc57805160ff19168380011785556200040d565b828001600101855582156200040d579182015b828111156200040c578251825591602001919060010190620003ef565b5b5090506200041c919062000420565b5090565b6200044591905b808211156200044157600081600090555060010162000427565b5090565b90565b612bb580620004586000396000f300608060405260043610610180576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610185578063095ea7b3146102155780630c89ef351461027a57806318160ddd146102ff5780631a8432ea1461032a57806323b872dd1461038557806328ea0fc31461040a578063313ce5671461044d5780634231e2d71461047e5780634bd09c2a146104c157806364ddc6051461058257806370a082311461062b5780638da5cb5b14610682578063913e77ad146106d9578063927160541461073057806395d89b411461078757806397ebe0d614610817578063a3d884531461089c578063a9059cbb146108f7578063b414d4b61461095c578063b59589d1146109b7578063bfe1092814610a0e578063c341b9f614610a65578063cbbe974b14610ad7578063dd62ed3e14610b2e578063e359cbbb14610ba5578063ecd9c15514610c0a578063f0dc417114610c4d578063f2fde38b14610d0e578063ff46f21014610d51575b600080fd5b34801561019157600080fd5b5061019a610dac565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101da5780820151818401526020810190506101bf565b50505050905090810190601f1680156102075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022157600080fd5b50610260600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e4e565b604051808215151515815260200191505060405180910390f35b34801561028657600080fd5b506102e5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f40565b604051808215151515815260200191505060405180910390f35b34801561030b57600080fd5b50610314610fcb565b6040518082815260200191505060405180910390f35b34801561033657600080fd5b5061036b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fd5565b604051808215151515815260200191505060405180910390f35b34801561039157600080fd5b506103f0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611020565b604051808215151515815260200191505060405180910390f35b34801561041657600080fd5b5061044b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611326565b005b34801561045957600080fd5b50610462611456565b604051808260ff1660ff16815260200191505060405180910390f35b34801561048a57600080fd5b506104bf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061146d565b005b3480156104cd57600080fd5b50610568600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061159d565b604051808215151515815260200191505060405180910390f35b34801561058e57600080fd5b506106296004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611923565b005b34801561063757600080fd5b5061066c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b1f565b6040518082815260200191505060405180910390f35b34801561068e57600080fd5b50610697611b68565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106e557600080fd5b506106ee611b8e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561073c57600080fd5b50610745611bb4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561079357600080fd5b5061079c611bda565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107dc5780820151818401526020810190506107c1565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561082357600080fd5b50610882600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c7c565b604051808215151515815260200191505060405180910390f35b3480156108a857600080fd5b506108dd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e00565b604051808215151515815260200191505060405180910390f35b34801561090357600080fd5b50610942600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e23565b604051808215151515815260200191505060405180910390f35b34801561096857600080fd5b5061099d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ff5565b604051808215151515815260200191505060405180910390f35b3480156109c357600080fd5b506109cc612015565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a1a57600080fd5b50610a2361203b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a7157600080fd5b50610ad560048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803515159060200190929190505050612061565b005b348015610ae357600080fd5b50610b18600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121f1565b6040518082815260200191505060405180910390f35b348015610b3a57600080fd5b50610b8f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612209565b6040518082815260200191505060405180910390f35b348015610bb157600080fd5b50610bf0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612290565b604051808215151515815260200191505060405180910390f35b348015610c1657600080fd5b50610c4b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122e8565b005b348015610c5957600080fd5b50610cf46004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050612418565b604051808215151515815260200191505060405180910390f35b348015610d1a57600080fd5b50610d4f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612935565b005b348015610d5d57600080fd5b50610d92600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612a65565b604051808215151515815260200191505060405180910390f35b606060058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e445780601f10610e1957610100808354040283529160200191610e44565b820191906000526020600020905b815481529060010190602001808311610e2757829003601f168201915b5050505050905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600081600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101590509392505050565b6000600854905090565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442119050919050565b600061102b83612ac1565b801561103d575061103c8483612290565b5b8015611050575061104f843384610f40565b5b8015611061575061106084611e00565b5b8015611072575061107183611e00565b5b151561107d57600080fd5b6110cf82600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afa90919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061116482600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1390919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061123682600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afa90919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561138257600080fd5b61138b81612ac1565b151561139657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fd992b87b06713a04c5806924ee3c29dbf04a04144c28c14fd6818e161bbd9a5860405160405180910390a380600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600760009054906101000a900460ff16905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114c957600080fd5b6114d281612ac1565b15156114dd57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f1033cd1b6544a47e7e262eedb7004b145ab50943e4c2cc67e354b4acdb57564f60405160405180910390a380600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115fe57600080fd5b6116088585612b31565b8015611619575061161833611e00565b5b151561162457600080fd5b60009150600090505b84518110156116e5576000848281518110151561164657fe5b906020019060200201511180156116795750611678858281518110151561166957fe5b90602001906020020151612ac1565b5b80156116a157506116a0858281518110151561169157fe5b90602001906020020151611e00565b5b15156116ac57600080fd5b6116d684828151811015156116bd57fe5b9060200190602002015183612b1390919063ffffffff16565b9150808060010191505061162d565b6116ef3383612290565b15156116fa57600080fd5b600090505b845181101561188257611788848281518110151561171957fe5b90602001906020020151600a6000888581518110151561173557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1390919063ffffffff16565b600a6000878481518110151561179a57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084818151811015156117f057fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef868481518110151561185657fe5b906020019060200201516040518082815260200191505060405180910390a380806001019150506116ff565b6118d482600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afa90919063ffffffff16565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019250505092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561198157600080fd5b61198b8383612b31565b151561199657600080fd5b600090505b8251811015611b1a5781818151811015156119b257fe5b90602001906020020151600d600085848151811015156119ce57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515611a1f57600080fd5b8181815181101515611a2d57fe5b90602001906020020151600d60008584815181101515611a4957fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508281815181101515611a9f57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff167f1bd6fb9fa2c39ce5d0d2afa1eaba998963eb5f553fd862c94f131aa9e35c15778383815181101515611aee57fe5b906020019060200201516040518082815260200191505060405180910390a2808060010191505061199b565b505050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c725780601f10611c4757610100808354040283529160200191611c72565b820191906000526020600020905b815481529060010190602001808311611c5557829003601f168201915b5050505050905090565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611cdf5750611cde33612b4c565b5b1515611cea57600080fd5b611cf384611e00565b8015611d045750611d0333611e00565b5b1515611d0f57600080fd5b81600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a3600190509392505050565b6000611e0b82610fd5565b8015611e1c5750611e1b82612a65565b5b9050919050565b6000611e2f3383612290565b8015611e405750611e3f33611e00565b5b8015611e515750611e5083611e00565b5b1515611e5c57600080fd5b611eae82600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afa90919063ffffffff16565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f4382600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1390919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120bf57600080fd5b600083511115156120cf57600080fd5b600090505b82518110156121ec576120fd83828151811015156120ee57fe5b90602001906020020151612ac1565b151561210857600080fd5b81600c6000858481518110151561211b57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550828181518110151561218457fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff167f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a583604051808215151515815260200191505060405180910390a280806001019150506120d4565b505050565b600d6020528060005260406000206000915090505481565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080821180156122e0575081600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561234457600080fd5b61234d81612ac1565b151561235857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f15d6a222d98c55f7cb4bf969055edad614234b365bf9f9342394edb573e32dc160405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561247957600080fd5b6124838585612b31565b151561248e57600080fd5b60009150600090505b845181101561289457600084828151811015156124b057fe5b906020019060200201511180156124e357506124e285828151811015156124d357fe5b90602001906020020151612ac1565b5b801561250b575061250a85828151811015156124fb57fe5b90602001906020020151611e00565b5b801561254c575061254b858281518110151561252357fe5b9060200190602002015133868481518110151561253c57fe5b90602001906020020151610f40565b5b151561255757600080fd5b61258f858281518110151561256857fe5b90602001906020020151858381518110151561258057fe5b90602001906020020151612290565b151561259a57600080fd5b61261a84828151811015156125ab57fe5b90602001906020020151600a600088858151811015156125c757fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afa90919063ffffffff16565b600a6000878481518110151561262c57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612731848281518110151561268557fe5b90602001906020020151600b600088858151811015156126a157fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afa90919063ffffffff16565b600b6000878481518110151561274357fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127f284828151811015156127d957fe5b9060200190602002015183612b1390919063ffffffff16565b91503373ffffffffffffffffffffffffffffffffffffffff16858281518110151561281957fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef868481518110151561286857fe5b906020019060200201516040518082815260200191505060405180910390a38080600101915050612497565b6128e682600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1390919063ffffffff16565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019250505092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561299157600080fd5b61299a81612ac1565b15156129a557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000801515600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000828211151515612b0857fe5b818303905092915050565b6000808284019050838110151515612b2757fe5b8091505092915050565b6000808351118015612b44575081518351145b905092915050565b6000602460003690501015612b645760009050612b84565b73ffffffffffffffffffffffffffffffffffffffff600435811683149150505b9190505600a165627a7a723058202ead92c3fe36c204f6224d995c90d481f4614a35f37a0546ec77124aae91a0f90029000000000000000000000000f64c412d7ad6b9317cafec098c24f7c15cb3bcc10000000000000000000000002057bbafad6e3073c7ee643538770093c965d659

Deployed Bytecode

0x608060405260043610610180576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610185578063095ea7b3146102155780630c89ef351461027a57806318160ddd146102ff5780631a8432ea1461032a57806323b872dd1461038557806328ea0fc31461040a578063313ce5671461044d5780634231e2d71461047e5780634bd09c2a146104c157806364ddc6051461058257806370a082311461062b5780638da5cb5b14610682578063913e77ad146106d9578063927160541461073057806395d89b411461078757806397ebe0d614610817578063a3d884531461089c578063a9059cbb146108f7578063b414d4b61461095c578063b59589d1146109b7578063bfe1092814610a0e578063c341b9f614610a65578063cbbe974b14610ad7578063dd62ed3e14610b2e578063e359cbbb14610ba5578063ecd9c15514610c0a578063f0dc417114610c4d578063f2fde38b14610d0e578063ff46f21014610d51575b600080fd5b34801561019157600080fd5b5061019a610dac565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101da5780820151818401526020810190506101bf565b50505050905090810190601f1680156102075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022157600080fd5b50610260600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e4e565b604051808215151515815260200191505060405180910390f35b34801561028657600080fd5b506102e5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f40565b604051808215151515815260200191505060405180910390f35b34801561030b57600080fd5b50610314610fcb565b6040518082815260200191505060405180910390f35b34801561033657600080fd5b5061036b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fd5565b604051808215151515815260200191505060405180910390f35b34801561039157600080fd5b506103f0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611020565b604051808215151515815260200191505060405180910390f35b34801561041657600080fd5b5061044b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611326565b005b34801561045957600080fd5b50610462611456565b604051808260ff1660ff16815260200191505060405180910390f35b34801561048a57600080fd5b506104bf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061146d565b005b3480156104cd57600080fd5b50610568600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061159d565b604051808215151515815260200191505060405180910390f35b34801561058e57600080fd5b506106296004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611923565b005b34801561063757600080fd5b5061066c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b1f565b6040518082815260200191505060405180910390f35b34801561068e57600080fd5b50610697611b68565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106e557600080fd5b506106ee611b8e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561073c57600080fd5b50610745611bb4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561079357600080fd5b5061079c611bda565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107dc5780820151818401526020810190506107c1565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561082357600080fd5b50610882600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c7c565b604051808215151515815260200191505060405180910390f35b3480156108a857600080fd5b506108dd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e00565b604051808215151515815260200191505060405180910390f35b34801561090357600080fd5b50610942600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e23565b604051808215151515815260200191505060405180910390f35b34801561096857600080fd5b5061099d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ff5565b604051808215151515815260200191505060405180910390f35b3480156109c357600080fd5b506109cc612015565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a1a57600080fd5b50610a2361203b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a7157600080fd5b50610ad560048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803515159060200190929190505050612061565b005b348015610ae357600080fd5b50610b18600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121f1565b6040518082815260200191505060405180910390f35b348015610b3a57600080fd5b50610b8f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612209565b6040518082815260200191505060405180910390f35b348015610bb157600080fd5b50610bf0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612290565b604051808215151515815260200191505060405180910390f35b348015610c1657600080fd5b50610c4b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122e8565b005b348015610c5957600080fd5b50610cf46004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050612418565b604051808215151515815260200191505060405180910390f35b348015610d1a57600080fd5b50610d4f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612935565b005b348015610d5d57600080fd5b50610d92600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612a65565b604051808215151515815260200191505060405180910390f35b606060058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e445780601f10610e1957610100808354040283529160200191610e44565b820191906000526020600020905b815481529060010190602001808311610e2757829003601f168201915b5050505050905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600081600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101590509392505050565b6000600854905090565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442119050919050565b600061102b83612ac1565b801561103d575061103c8483612290565b5b8015611050575061104f843384610f40565b5b8015611061575061106084611e00565b5b8015611072575061107183611e00565b5b151561107d57600080fd5b6110cf82600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afa90919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061116482600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1390919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061123682600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afa90919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561138257600080fd5b61138b81612ac1565b151561139657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fd992b87b06713a04c5806924ee3c29dbf04a04144c28c14fd6818e161bbd9a5860405160405180910390a380600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600760009054906101000a900460ff16905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114c957600080fd5b6114d281612ac1565b15156114dd57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f1033cd1b6544a47e7e262eedb7004b145ab50943e4c2cc67e354b4acdb57564f60405160405180910390a380600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115fe57600080fd5b6116088585612b31565b8015611619575061161833611e00565b5b151561162457600080fd5b60009150600090505b84518110156116e5576000848281518110151561164657fe5b906020019060200201511180156116795750611678858281518110151561166957fe5b90602001906020020151612ac1565b5b80156116a157506116a0858281518110151561169157fe5b90602001906020020151611e00565b5b15156116ac57600080fd5b6116d684828151811015156116bd57fe5b9060200190602002015183612b1390919063ffffffff16565b9150808060010191505061162d565b6116ef3383612290565b15156116fa57600080fd5b600090505b845181101561188257611788848281518110151561171957fe5b90602001906020020151600a6000888581518110151561173557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1390919063ffffffff16565b600a6000878481518110151561179a57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084818151811015156117f057fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef868481518110151561185657fe5b906020019060200201516040518082815260200191505060405180910390a380806001019150506116ff565b6118d482600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afa90919063ffffffff16565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019250505092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561198157600080fd5b61198b8383612b31565b151561199657600080fd5b600090505b8251811015611b1a5781818151811015156119b257fe5b90602001906020020151600d600085848151811015156119ce57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515611a1f57600080fd5b8181815181101515611a2d57fe5b90602001906020020151600d60008584815181101515611a4957fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508281815181101515611a9f57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff167f1bd6fb9fa2c39ce5d0d2afa1eaba998963eb5f553fd862c94f131aa9e35c15778383815181101515611aee57fe5b906020019060200201516040518082815260200191505060405180910390a2808060010191505061199b565b505050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c725780601f10611c4757610100808354040283529160200191611c72565b820191906000526020600020905b815481529060010190602001808311611c5557829003601f168201915b5050505050905090565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611cdf5750611cde33612b4c565b5b1515611cea57600080fd5b611cf384611e00565b8015611d045750611d0333611e00565b5b1515611d0f57600080fd5b81600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a3600190509392505050565b6000611e0b82610fd5565b8015611e1c5750611e1b82612a65565b5b9050919050565b6000611e2f3383612290565b8015611e405750611e3f33611e00565b5b8015611e515750611e5083611e00565b5b1515611e5c57600080fd5b611eae82600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afa90919063ffffffff16565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f4382600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1390919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120bf57600080fd5b600083511115156120cf57600080fd5b600090505b82518110156121ec576120fd83828151811015156120ee57fe5b90602001906020020151612ac1565b151561210857600080fd5b81600c6000858481518110151561211b57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550828181518110151561218457fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff167f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a583604051808215151515815260200191505060405180910390a280806001019150506120d4565b505050565b600d6020528060005260406000206000915090505481565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080821180156122e0575081600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561234457600080fd5b61234d81612ac1565b151561235857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f15d6a222d98c55f7cb4bf969055edad614234b365bf9f9342394edb573e32dc160405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561247957600080fd5b6124838585612b31565b151561248e57600080fd5b60009150600090505b845181101561289457600084828151811015156124b057fe5b906020019060200201511180156124e357506124e285828151811015156124d357fe5b90602001906020020151612ac1565b5b801561250b575061250a85828151811015156124fb57fe5b90602001906020020151611e00565b5b801561254c575061254b858281518110151561252357fe5b9060200190602002015133868481518110151561253c57fe5b90602001906020020151610f40565b5b151561255757600080fd5b61258f858281518110151561256857fe5b90602001906020020151858381518110151561258057fe5b90602001906020020151612290565b151561259a57600080fd5b61261a84828151811015156125ab57fe5b90602001906020020151600a600088858151811015156125c757fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afa90919063ffffffff16565b600a6000878481518110151561262c57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612731848281518110151561268557fe5b90602001906020020151600b600088858151811015156126a157fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afa90919063ffffffff16565b600b6000878481518110151561274357fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127f284828151811015156127d957fe5b9060200190602002015183612b1390919063ffffffff16565b91503373ffffffffffffffffffffffffffffffffffffffff16858281518110151561281957fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef868481518110151561286857fe5b906020019060200201516040518082815260200191505060405180910390a38080600101915050612497565b6128e682600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1390919063ffffffff16565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019250505092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561299157600080fd5b61299a81612ac1565b15156129a557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000801515600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000828211151515612b0857fe5b818303905092915050565b6000808284019050838110151515612b2757fe5b8091505092915050565b6000808351118015612b44575081518351145b905092915050565b6000602460003690501015612b645760009050612b84565b73ffffffffffffffffffffffffffffffffffffffff600435811683149150505b9190505600a165627a7a723058202ead92c3fe36c204f6224d995c90d481f4614a35f37a0546ec77124aae91a0f90029

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

000000000000000000000000f64c412d7ad6b9317cafec098c24f7c15cb3bcc10000000000000000000000002057bbafad6e3073c7ee643538770093c965d659

-----Decoded View---------------
Arg [0] : founder (address): 0xf64C412D7aD6b9317caFEc098c24F7c15Cb3bCC1
Arg [1] : _relay (address): 0x2057bBAFAd6e3073c7EE643538770093c965d659

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000f64c412d7ad6b9317cafec098c24f7c15cb3bcc1
Arg [1] : 0000000000000000000000002057bbafad6e3073c7ee643538770093c965d659


Swarm Source

bzzr://2ead92c3fe36c204f6224d995c90d481f4614a35f37a0546ec77124aae91a0f9

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

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.