ETH Price: $3,547.66 (+0.97%)
Gas: 30 Gwei

Contract

0x56af6596f28d9E6F289521d31aFFDB95c412265e
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Transfer185792842023-11-15 19:10:59134 days ago1700075459IN
LOOiX Token
0 ETH0.0017630357.89187277
Transfer174249222023-06-07 0:21:59295 days ago1686097319IN
LOOiX Token
0 ETH0.0009123719.19101395
Transfer142839332022-02-26 20:37:12761 days ago1645907832IN
LOOiX Token
0 ETH0.0017075735.91716229
Transfer139131992021-12-31 12:41:34818 days ago1640954494IN
LOOiX Token
0 ETH0.00368483104.48702323
Transfer139070312021-12-30 13:45:39819 days ago1640871939IN
LOOiX Token
0 ETH0.0025975173.67996718
Transfer139069592021-12-30 13:29:39819 days ago1640870979IN
LOOiX Token
0 ETH0.0046820189.40952498
Transfer139069502021-12-30 13:27:20819 days ago1640870840IN
LOOiX Token
0 ETH0.0032334791.71925709
Transfer139069072021-12-30 13:16:12819 days ago1640870172IN
LOOiX Token
0 ETH0.0046336688.52673291
Transfer135515482021-11-04 17:27:03875 days ago1636046823IN
LOOiX Token
0 ETH0.00833552175.32963122
Transfer127605252021-07-04 10:30:20998 days ago1625394620IN
LOOiX Token
0 ETH0.000224056
Transfer126252742021-06-13 9:19:451019 days ago1623575985IN
LOOiX Token
0 ETH0.000205385.5
Transfer124005962021-05-09 14:06:351054 days ago1620569195IN
LOOiX Token
0 ETH0.0025744173
Transfer123798892021-05-06 9:22:131057 days ago1620292933IN
LOOiX Token
0 ETH0.0015506444
Transfer122767442021-04-20 11:29:561073 days ago1618918196IN
LOOiX Token
0 ETH0.00776713208
Transfer121467042021-03-31 11:01:511093 days ago1617188511IN
LOOiX Token
0 ETH0.00557046143.001
Transfer115930982021-01-05 7:15:321178 days ago1609830932IN
LOOiX Token
0 ETH0.0029985377
Approve113825192020-12-03 23:02:571210 days ago1607036577IN
LOOiX Token
0 ETH0.0009469121
Transfer111776172020-11-02 12:23:581242 days ago1604319838IN
LOOiX Token
0 ETH0.0035837692
Transfer110404112020-10-12 11:11:141263 days ago1602501074IN
LOOiX Token
0 ETH0.003991774
Transfer107014992020-08-21 4:42:221315 days ago1597984942IN
LOOiX Token
0 ETH0.00553146142
Transfer102586092020-06-13 17:09:111384 days ago1592068151IN
LOOiX Token
0 ETH0.0005843115
Transfer101914972020-06-03 7:24:131394 days ago1591169053IN
LOOiX Token
0 ETH0.0006269616.1
Transfer101751552020-05-31 18:19:481397 days ago1590949188IN
LOOiX Token
0 ETH0.0003832616
Transfer101740722020-05-31 14:18:401397 days ago1590934720IN
LOOiX Token
0 ETH0.0014133536.2826638
Transfer100011362020-05-04 17:38:301424 days ago1588613910IN
LOOiX Token
0 ETH0.000947117.55
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
LOOiXToken

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
No with 200 runs

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

pragma solidity 0.4.25;


/******************************************/
/*       Owned starts here           */
/******************************************/

contract owned 
{
    address public owner;
    address public newOwner;

    event OwnershipTransferred(address indexed _from, address indexed _to);

    constructor() public
    {
        owner = msg.sender;
    }

    modifier onlyOwner
    {
        require(msg.sender == owner, "Sender not authorized.");
        _;
    }

    function transferOwnership(address _newOwner) public onlyOwner
    {
        require(_newOwner != address(0), "0x00 address not allowed.");
        newOwner = _newOwner;
    }

    function acceptOwnership() public
    {
        require(msg.sender == newOwner, "Sender not authorized.");
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
        newOwner = address(0);
    }
}


/******************************************/
/*       TokenERC20 starts here           */
/******************************************/

contract TokenERC20
{

    string public name;
    string public symbol;
    uint8 public decimals;
    uint256 public totalSupply;

    mapping(address => uint256) public balanceOf;
    mapping(address => mapping(address => uint256)) public allowance;

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
   
    constructor() public
    {
        decimals = 18;                       // decimals  
        totalSupply = 0;                     // initialSupply
        name = "LOOiX";                      // Set the name for display purposes
        symbol = "LOOIX";                    // Set the symbol for display purposes
    }

    /**
    * @dev Transfer token for a specified addresses
    * @param _from The address to transfer from.
    * @param _to The address to transfer to.
    * @param _value The amount to be transferred.
    */
    function _transfer(address _from, address _to, uint256 _value) internal
    {
        require(_value > 0, "Transferred value has to be grater than 0."); 
        require(_to != address(0), "0x00 address not allowed.");                      // Prevent transfer to 0x0 address.
        require(balanceOf[_from] >= _value, "Not enough funds on sender address.");   // Check if the sender has enough
        require(balanceOf[_to] + _value > balanceOf[_to], "Overflow protection.");    // Check for overflows
        balanceOf[_from] -= _value;                                                   // Subtract from the sender
        balanceOf[_to] += _value;                                                     // Add the same to the recipient
        emit Transfer(_from, _to, _value);
    }

    /**
    * @dev Transfer tokens
    * @param _to The address of the recipient
    * @param _value the amount to send
    */
    function transfer(address _to, uint256 _value) public returns(bool success)
    {
        _transfer(msg.sender, _to, _value);
        return true;
    }

    /**
    * @dev Transfer tokens from other address
    * @param _from The address of the sender
    * @param _to The address of the recipient
    * @param _value the amount to send
    */
    function transferFrom(address _from, address _to, uint256 _value) public returns(bool success)
    {
        require(_value <= allowance[_from][msg.sender], "Funds not approved.");     // Check allowance
        allowance[_from][msg.sender] -= _value;
        _transfer(_from, _to, _value);
        return true;
    }

    /**
    * @dev Set allowance for other address
    * @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)
    {
        require(_value == 0 || allowance[msg.sender][_spender] == 0, "Approved funds or value are not 0.");
        allowance[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

}


/******************************************/
/*       TokenStaking starts here         */
/******************************************/

contract TokenStaking
{

    uint256 internal stakeID;
    uint256 internal threeMonthTime;
    uint256 internal threeMonthPercentage;
    uint256 internal sixMonthTime;
    uint256 internal sixMonthPercentage;
    uint256 internal twelveMonthTime;
    uint256 internal twelveMonthPercentage;

    struct stakeInfo    // Struct for user vestings
    {
        uint256 endDate;
        uint256 amount;
        address initiator;
        address receiver;
    }

    mapping(address => uint256) public stakedBalanceOf;
    mapping(uint256 => stakeInfo) internal vestings;
    mapping(address => uint256[]) internal userVestingIDs;

    enum StakeOption {three, six, twelve}

    constructor() TokenStaking() public 
    { 
        stakeID = 0;
       
        threeMonthTime = 91 days;
        threeMonthPercentage = 1005012520859401063; // e**(0.02*0.25)
                               
        sixMonthTime = 182 days;
        sixMonthPercentage = 1020201340026755810; // e**(0.04*0.5)

        twelveMonthTime = 365 days;
        twelveMonthPercentage = 1061836546545359622; // e**(0.06*1.0)
    }

    /**
    * @dev Function to get the stake info from a corresponding ID.
    * @param _id uint256 The ID from which the stake info should be read.
    * @return endDate uint256 specifying the seconds since the UNIX Epoch. amount uint256 specifying the amount that was staked plus the stake bonus.
    */
    function getStakeInfo(uint256 _id) external view returns(uint256 endDate, uint256 amount, address receiver, address initiator)
    {
        return (vestings[_id].endDate, vestings[_id].amount, vestings[_id].receiver, vestings[_id].initiator);
    }
    
    /**
    * @dev Function to get the stake IDs from a given address.
    * @param _address address The address which staked tokens.
    * @return Ids uint256[] An array of stake IDs from the given address.
    */
    function getStakeIDs(address _address) external view returns(uint256[] memory Ids)
    {
        return userVestingIDs[_address];
    }

    /**
    * @dev Stake an amount of tokens with one of three options.
    * @param _amount uint256 The amount of tokens which will be staked.
    * @param _option StakeOption An enum which decides how long a stake will be frozen (only 0, 1 and 2 are valid values).
    * @return totalSupplyIncreaseds uint256 The total increase in supply from the staked tokens.
    */
    function _stake(uint256 _amount, StakeOption _option, address _receiver) internal returns(uint256 totalSupplyIncrease)
    {
        require(_option >= StakeOption.three && _option <= StakeOption.twelve);
        
        stakeInfo memory stakeStruct;
        stakeStruct.endDate = 0;
        stakeStruct.amount = 0;
        stakeStruct.initiator = msg.sender;
        stakeStruct.receiver = address(0);

        uint256 tempIncrease;

        if (_option == StakeOption.three) 
        {
            stakeStruct.endDate = now + threeMonthTime;
            stakeStruct.amount = _amount * threeMonthPercentage / (10**18);
            stakeStruct.initiator = msg.sender;
            stakeStruct.receiver = _receiver;
            tempIncrease = (_amount * (threeMonthPercentage - (10**18)) / (10**18));
        } 
        else if (_option == StakeOption.six)
        {
            stakeStruct.endDate = now + sixMonthTime;
            stakeStruct.amount = _amount * sixMonthPercentage / (10**18);
            stakeStruct.initiator = msg.sender;
            stakeStruct.receiver = _receiver;
            tempIncrease = (_amount * (sixMonthPercentage - (10**18)) / (10**18));
        } 
        else if (_option == StakeOption.twelve)
        {
            stakeStruct.endDate = now + twelveMonthTime;
            stakeStruct.amount = _amount * twelveMonthPercentage / (10**18);
            stakeStruct.initiator = msg.sender;
            stakeStruct.receiver = _receiver;
            tempIncrease = (_amount * (twelveMonthPercentage - (10**18)) / (10**18));
        }

        stakeID = stakeID + 1;
        vestings[stakeID] = stakeStruct;
        _setVestingID(stakeID, stakeStruct.receiver);
        stakedBalanceOf[msg.sender] += stakeStruct.amount;
        return tempIncrease;
    }

    /**
    * @dev Function to set a new vesting ID on the userVestingIDs mapping. Free ID slots in the array will be overwritten.
    * @param _id uint256 The new ID that has to be written in the corresponding mapping.
    */
    function _setVestingID(uint256 _id, address _receiver) internal
    {
        bool tempEntryWritten = false;
        uint256 arrayLength = userVestingIDs[_receiver].length;

        if(arrayLength != 0)
        {
            for (uint256 i = 0; i < arrayLength; i++) 
            {
                if (userVestingIDs[_receiver][i] == 0) 
                {
                    userVestingIDs[_receiver][i] = _id;
                    tempEntryWritten = true;
                    break;
                } 
            }

            if(!tempEntryWritten)
            {
                userVestingIDs[_receiver].push(_id);
            }
        } 
        else
        {
            userVestingIDs[_receiver].push(_id);
        }
    }

    /**
    * @dev Redeem the staked tokens.
    * @return amount uint256 The amount that has been redeemed.
    */
    function _redeem() internal returns(uint256 amount)
    {
        uint256[] memory IdArray = userVestingIDs[msg.sender];
        uint256 tempAmount = 0;
        uint256 finalAmount = 0;
        address tempInitiator = address(0);

        for(uint256 i = 0; i < IdArray.length; i++)
        {
            if(IdArray[i] != 0 && vestings[IdArray[i]].endDate <= now)
            {
                tempInitiator = vestings[IdArray[i]].initiator;
                tempAmount = vestings[IdArray[i]].amount;

                stakedBalanceOf[tempInitiator] -= tempAmount;
                finalAmount += tempAmount;

                // delete the vesting history
                delete userVestingIDs[msg.sender][i];
                delete vestings[IdArray[i]];
            }
        }

        require(finalAmount > 0, "No funds to redeem.");
        return finalAmount;
    }
}


/******************************************/
/*       LOOiXToken starts here       */
/******************************************/

contract LOOiXToken is owned, TokenERC20, TokenStaking
{

    bool public mintingActive;
    address public mintDelegate;
    uint256 public unlockAt;
    uint256 public ICO_totalSupply;
    uint256 internal constant MAX_UINT = 2**256 - 1;

    mapping(address => uint256) public allocations;

    event Stake(address indexed _target, uint256 _amount);
    event Redeem(address indexed _target, uint256 _amount);

    constructor() TokenERC20() public 
    {
        mintingActive = true;
        mintDelegate = address(0);
        unlockAt;
    }

    /**
    * @dev Modifier defines addresses allowed to mint. 
    */
    modifier mintingAllowed
    {
        require(msg.sender == owner || msg.sender == mintDelegate, "Sender not authorized.");
        _;
    }

    /**
    * @dev Internal ERC20 transfer.
    */
    function _transfer(address _from, address _to, uint256 _value) internal
    {
        require(_value > 0, "Transferred value has to be grater than 0.");            // value has to be greater than 0
        require(_to != address(0), "0x00 address not allowed.");                      // Prevent transfer to 0x0 address
        require(balanceOf[_from] >= _value, "Not enough funds on sender address.");   // Check if the sender has enough
        require(balanceOf[_to] + _value >= balanceOf[_to], "Overflow protection.");   // Check for overflows
        balanceOf[_from] -= _value;                                                   // Subtract from the sender
        balanceOf[_to] += _value;                                                     // Add the same to the recipient
        emit Transfer(_from, _to, _value);
    }

    /**
    * @dev ERC20 transferFrom, modified such that an allowance of MAX_UINT represents an unlimited allowance.
    * @param _from Address to transfer from.
    * @param _to Address to transfer to.
    * @param _value Amount to transfer.
    * @return Success of transfer.
    */
    function transferFrom(address _from, address _to, uint _value) public returns (bool success)
    {
        uint256 allowanceTemp = allowance[_from][msg.sender];
        
        require(allowanceTemp >= _value, "Funds not approved."); 
        require(balanceOf[_from] >= _value, "Not enough funds on sender address.");
        require(balanceOf[_to] + _value >= balanceOf[_to], "Overflow protection.");

        balanceOf[_to] += _value;
        balanceOf[_from] -= _value;

        if (allowanceTemp < MAX_UINT) 
        {
            allowance[_from][msg.sender] -= _value;
        }

        emit Transfer(_from, _to, _value);

        return true;
    }

    /**
    * @dev Set new mintDelegate address
    * @param _newDelegate The address authorized to mint
    */  
    function setMintDelegate(address _newDelegate) external onlyOwner
    {
        require(_newDelegate != address(0), "0x00 address not allowed.");
        mintDelegate = _newDelegate;
    }
    
    /**
    * @dev Set unlimited allowance for other address
    * @param _controllerAddress The address authorized to spend
    */   
    function giveAccess(address _controllerAddress) external
    {
        require(msg.sender != owner, "Owner of contract can not use this function.");
        require(_controllerAddress != address(0), "0x00 address not allowed.");
        allowance[msg.sender][_controllerAddress] = MAX_UINT;
        emit Approval(msg.sender, _controllerAddress, MAX_UINT);
    }

    /**
    * @dev Set allowance for other address to 0
    * @param _controllerAddress The address authorized to spend
    */   
    function revokeAccess(address _controllerAddress) external
    {
        require(_controllerAddress != address(0), "0x00 address not allowed.");
        allowance[msg.sender][_controllerAddress] = 0;
    }

    /**
    * @dev Withdraw all LOOiX on the contract.
    */ 
    function withdrawLOOiX() external onlyOwner
    {
        require(balanceOf[address(this)] > 0, "No funds available.");
        _transfer(address(this), owner, balanceOf[address(this)]);
    }

    /**
    * @dev Bulk mint function for airdrops. 
    * @param _address Address array to mint to.
    * @param _mintAmount Amount array to mint.
    */
    function mintTokenBulk(address[] _address, uint256[] _mintAmount) external mintingAllowed
    {
        require(mintingActive, "The mint functions are not available anymore.");
        uint256 tempAmount = 0;

        for (uint256 i = 0; i < _address.length; i++) 
        {
            if(balanceOf[_address[i]] + _mintAmount[i] >= balanceOf[_address[i]])
            {
                balanceOf[_address[i]] += _mintAmount[i] * (10**18);
                tempAmount += _mintAmount[i] * (10**18);

                emit Transfer(address(0), _address[i], _mintAmount[i] * (10**18));
            }
        }

        totalSupply += tempAmount;
    }

    /**
    * @dev Mint function for creating new tokens. 
    * @param _target Address to mint to.
    * @param _mintAmount Amount to mint.
    */
    function mintToken(address _target, uint256 _mintAmount) public mintingAllowed 
    {
        require(mintingActive, "The mint functions are not available anymore.");
        require(_target != address(0), "0x00 address not allowed.");

        balanceOf[_target] += _mintAmount * (10**18);
        totalSupply += _mintAmount * (10**18);

        emit Transfer(address(0), _target, _mintAmount * (10**18));
    }

    /**
    * @dev Stops the minting of the token. After this function is called, no new tokens can be minted using the mintToken or mintTokenBulk functions. Irreversible.
    */
    function terminateMinting() external onlyOwner 
    {
        require(mintingActive, "The mint functions are not available anymore.");
        uint256 tempTotalSupply = totalSupply;

        tempTotalSupply = tempTotalSupply + (tempTotalSupply  * 666666666666666666 / 10**18);
        totalSupply = tempTotalSupply;
        ICO_totalSupply = tempTotalSupply;

        mintingActive = false;
        unlockAt = now + 365 days;

        // 40% of the total token supply
        allocations[0xefbDBA37BD0e825d43bac88Ce570dcEFf50373C2] = tempTotalSupply * 9500 / 100000;      // 9.5% - Founders Pot.
        allocations[0x75dE233590c8Dd593CE1bB89d68e9f18Ecdf34C8] = tempTotalSupply * 9500 / 100000;      // 9.5% - Development and Management.
        allocations[0x357C2e4253389CE79440e867E9De14E17Bb97D2E] = tempTotalSupply * 3120 / 100000;      // 3.12% - Bonuspool.
        allocations[0xf35FF681cbb69b47488269CE2BA5CaA34133813A] = tempTotalSupply * 14250 / 100000;     // 14.25% - Marketing.

        balanceOf[0x2A809456adf8bd5A79D598e880f7Bd78e11B4A1c] += tempTotalSupply * 242 / 100000;        
        balanceOf[0x36c321017a8d8655ec7a2b862328678932E53b87] += tempTotalSupply * 242 / 100000;        
        balanceOf[0xc9ebc197Ee00C1E231817b4eb38322C364cFCFCD] += tempTotalSupply * 242 / 100000;
        balanceOf[0x2BE34a67491c6b1f8e0cA3BAA1249c90686CF6FB] += tempTotalSupply * 726 / 100000;
        balanceOf[0x1cF6725538AAcC9574108845D58cF2e89f62bbE9] += tempTotalSupply * 4 / 100000;
        balanceOf[0xc6a3B6ED936bD18FD72e0ae2D50A10B82EF79851] += tempTotalSupply * 130 / 100000;
        balanceOf[0x204Fb77569ca24C09e1425f979141536B89449E3] += tempTotalSupply * 130 / 100000;

        balanceOf[0xbE3Ece67B61Ef6D3Fd0F8b159d16A80BB04C0F7B] += tempTotalSupply * 164 / 100000;        // Bonuspool.
        balanceOf[0x731953d4c9A01c676fb6b013688AA8D512F5Ec03] += tempTotalSupply * 500 / 100000;        // Development and Management.
        balanceOf[0x84A81f3B42BD99Fd435B1498316F8705f84192bC] += tempTotalSupply * 500 / 100000;        // Founders Pot.
        balanceOf[0xEAeC9b7382e5abEBe76Fc7BDd2Dc22BA1a338918] += tempTotalSupply * 750 / 100000;        // Marketing.
    }

    /**
    * @dev Public unlock allocated Tokens.
    */
    function unlock() public
    {
        require(!mintingActive, "Function not available as long as minting is possible.");
        require(now > unlockAt, "Unlock date not reached.");
        require(allocations[msg.sender] > 0, "No tokens to unlock.");
        uint256 tempAmount;

        tempAmount = allocations[msg.sender];
        allocations[msg.sender] = 0;
        balanceOf[msg.sender] += tempAmount;
    }

    /**
    * @dev Public stake function to stake a given amount of tokens for one of the three options.
    * @param _amount Amount to stake.
    * @param _option StakeOption enum with values from 0 to 2.
    * @return Success of stake.
    */
    function stake(uint256 _amount, StakeOption _option, address _receiver) external returns(bool success)
    {
        require(!mintingActive, "Function not available as long as minting is possible.");
        require(balanceOf[msg.sender] >= _amount, "Not enough funds on sender address.");
        require(_amount >= 100*(10**18), "Amount is less than 100 token.");
        require(_receiver != address(0), "0x00 address not allowed.");
        uint256 supplyIncrease;
        uint256 finalBalance;

        supplyIncrease = _stake(_amount, _option, _receiver);
        totalSupply += supplyIncrease;
        balanceOf[msg.sender] -= _amount;
        finalBalance = _amount + supplyIncrease;

        emit Stake(_receiver, _amount);
        emit Transfer(msg.sender, _receiver, finalBalance);
    
        return true;
    }
    
    /**
    * @dev Public redeem function to redeem all redeemable tokens.
    */
    function redeem() public
    {
        require(userVestingIDs[msg.sender].length > 0, "No funds to redeem.");
        uint256 amount;

        amount = _redeem();
        balanceOf[msg.sender] += amount;
        emit Redeem(msg.sender, amount); 
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"mintDelegate","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"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":"_id","type":"uint256"}],"name":"getStakeInfo","outputs":[{"name":"endDate","type":"uint256"},{"name":"amount","type":"uint256"},{"name":"receiver","type":"address"},{"name":"initiator","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"stakedBalanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"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":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mintingActive","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"allocations","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address[]"},{"name":"_mintAmount","type":"uint256[]"}],"name":"mintTokenBulk","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"terminateMinting","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getStakeIDs","outputs":[{"name":"Ids","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"},{"name":"_mintAmount","type":"uint256"}],"name":"mintToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_option","type":"uint8"},{"name":"_receiver","type":"address"}],"name":"stake","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_controllerAddress","type":"address"}],"name":"revokeAccess","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unlock","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"unlockAt","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newDelegate","type":"address"}],"name":"setMintDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"redeem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_controllerAddress","type":"address"}],"name":"giveAccess","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ICO_totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawLOOiX","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_target","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Stake","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_target","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Redeem","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"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

60806040523480156200001157600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600460006101000a81548160ff021916908360ff16021790555060006005819055506040805190810160405280600581526020017f4c4f4f695800000000000000000000000000000000000000000000000000000081525060029080519060200190620000c3929190620001c9565b506040805190810160405280600581526020017f4c4f4f49580000000000000000000000000000000000000000000000000000008152506003908051906020019062000111929190620001c9565b5060006008819055506277f880600981905550670df285901ca4fb67600a8190555062eff100600b81905550670e287bb6a7ac1ae2600c819055506301e13380600d81905550670ebc66b6965d1b06600e819055506001601260006101000a81548160ff0219169083151502179055506000601260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000278565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200020c57805160ff19168380011785556200023d565b828001600101855582156200023d579182015b828111156200023c5782518255916020019190600101906200021f565b5b5090506200024c919062000250565b5090565b6200027591905b808211156200027157600081600090555060010162000257565b5090565b90565b61477480620002886000396000f30060806040526004361061018b576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630672a90a1461019057806306fdde03146101e7578063095ea7b31461027757806309813482146102dc578063167653911461038a57806318160ddd146103e157806323b872dd1461040c578063313ce5671461049157806331f9c919146104c257806352a9039c146104f157806362fca3fa1461054857806363fb5c9d1461059b57806367a6b678146105b257806370a082311461064a57806379ba5097146106a157806379c65068146106b85780637cc2a9601461070557806385e68531146107775780638da5cb5b146107ba57806395d89b4114610811578063a69df4b5146108a1578063a9059cbb146108b8578063aa5dec6f1461091d578063bdf5368c14610948578063be040fb01461098b578063cf12e870146109a2578063d4ee1d90146109e5578063dd62ed3e14610a3c578063ea9647fc14610ab3578063f04395da14610ade578063f2fde38b14610af5575b600080fd5b34801561019c57600080fd5b506101a5610b38565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101f357600080fd5b506101fc610b5e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023c578082015181840152602081019050610221565b50505050905090810190601f1680156102695780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028357600080fd5b506102c2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bfc565b604051808215151515815260200191505060405180910390f35b3480156102e857600080fd5b5061030760048036038101908080359060200190929190505050610e12565b604051808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405180910390f35b34801561039657600080fd5b506103cb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ec3565b6040518082815260200191505060405180910390f35b3480156103ed57600080fd5b506103f6610edb565b6040518082815260200191505060405180910390f35b34801561041857600080fd5b50610477600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee1565b604051808215151515815260200191505060405180910390f35b34801561049d57600080fd5b506104a661136e565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104ce57600080fd5b506104d7611381565b604051808215151515815260200191505060405180910390f35b3480156104fd57600080fd5b50610532600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611394565b6040518082815260200191505060405180910390f35b34801561055457600080fd5b506105996004803603810190808035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293905050506113ac565b005b3480156105a757600080fd5b506105b0611806565b005b3480156105be57600080fd5b506105f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612068565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561063657808201518184015260208101905061061b565b505050509050019250505060405180910390f35b34801561065657600080fd5b5061068b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120ff565b6040518082815260200191505060405180910390f35b3480156106ad57600080fd5b506106b6612117565b005b3480156106c457600080fd5b50610703600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061231f565b005b34801561071157600080fd5b5061075d60048036038101908080359060200190929190803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061266f565b604051808215151515815260200191505060405180910390f35b34801561078357600080fd5b506107b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612a51565b005b3480156107c657600080fd5b506107cf612b7b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561081d57600080fd5b50610826612ba0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561086657808201518184015260208101905061084b565b50505050905090810190601f1680156108935780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108ad57600080fd5b506108b6612c3e565b005b3480156108c457600080fd5b50610903600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612ef2565b604051808215151515815260200191505060405180910390f35b34801561092957600080fd5b50610932612f09565b6040518082815260200191505060405180910390f35b34801561095457600080fd5b50610989600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f0f565b005b34801561099757600080fd5b506109a06130bc565b005b3480156109ae57600080fd5b506109e3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061321f565b005b3480156109f157600080fd5b506109fa6134d8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a4857600080fd5b50610a9d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506134fe565b6040518082815260200191505060405180910390f35b348015610abf57600080fd5b50610ac8613523565b6040518082815260200191505060405180910390f35b348015610aea57600080fd5b50610af3613529565b005b348015610b0157600080fd5b50610b36600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613711565b005b601260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bf45780601f10610bc957610100808354040283529160200191610bf4565b820191906000526020600020905b815481529060010190602001808311610bd757829003601f168201915b505050505081565b600080821480610c8857506000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b1515610d22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f417070726f7665642066756e6473206f722076616c756520617265206e6f742081526020017f302e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600080600080601060008681526020019081526020016000206000015460106000878152602001908152602001600020600101546010600088815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166010600089815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1693509350935093509193509193565b600f6020528060005260406000206000915090505481565b60055481565b600080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110151515610fdb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f46756e6473206e6f7420617070726f7665642e0000000000000000000000000081525060200191505060405180910390fd5b82600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156110b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f4e6f7420656e6f7567682066756e6473206f6e2073656e64657220616464726581526020017f73732e000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401101515156111b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4f766572666c6f772070726f74656374696f6e2e00000000000000000000000081525060200191505060405180910390fd5b82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555082600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156112fd5782600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b600460009054906101000a900460ff1681565b601260009054906101000a900460ff1681565b60156020528060005260406000206000915090505481565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806114575750601260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156114cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b601260009054906101000a900460ff161515611575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f546865206d696e742066756e6374696f6e7320617265206e6f7420617661696c81526020017f61626c6520616e796d6f72652e0000000000000000000000000000000000000081525060400191505060405180910390fd5b60009150600090505b858590508110156117ee5760066000878784818110151561159b57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054848483818110151561160157fe5b9050602002013560066000898986818110151561161a57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011015156117e157670de0b6b3a7640000848483818110151561169157fe5b90506020020135026006600088888581811015156116ab57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550670de0b6b3a7640000848483818110151561172657fe5b905060200201350282019150858582818110151561174057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a764000087878681811015156117c357fe5b90506020020135026040518082815260200191505060405180910390a35b808060010191505061157e565b81600560008282540192505081905550505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b601260009054906101000a900460ff161515611976576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f546865206d696e742066756e6374696f6e7320617265206e6f7420617661696c81526020017f61626c6520616e796d6f72652e0000000000000000000000000000000000000081525060400191505060405180910390fd5b6005549050670de0b6b3a764000067094079cd1a42aaaa820281151561199857fe5b048101905080600581905550806014819055506000601260006101000a81548160ff0219169083151502179055506301e133804201601381905550620186a061251c82028115156119e557fe5b046015600073efbdba37bd0e825d43bac88ce570dceff50373c273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620186a061251c8202811515611a4f57fe5b04601560007375de233590c8dd593ce1bb89d68e9f18ecdf34c873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620186a0610c308202811515611ab957fe5b046015600073357c2e4253389ce79440e867e9de14e17bb97d2e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620186a06137aa8202811515611b2357fe5b046015600073f35ff681cbb69b47488269ce2ba5caa34133813a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620186a060f28202811515611b8c57fe5b0460066000732a809456adf8bd5a79d598e880f7bd78e11b4a1c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a060f28202811515611bfe57fe5b04600660007336c321017a8d8655ec7a2b862328678932e53b8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a060f28202811515611c7057fe5b046006600073c9ebc197ee00c1e231817b4eb38322c364cfcfcd73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a06102d68202811515611ce357fe5b0460066000732be34a67491c6b1f8e0ca3baa1249c90686cf6fb73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a060048202811515611d5557fe5b0460066000731cf6725538aacc9574108845d58cf2e89f62bbe973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a060828202811515611dc757fe5b046006600073c6a3b6ed936bd18fd72e0ae2d50a10b82ef7985173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a060828202811515611e3957fe5b046006600073204fb77569ca24c09e1425f979141536b89449e373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a060a48202811515611eab57fe5b046006600073be3ece67b61ef6d3fd0f8b159d16a80bb04c0f7b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a06101f48202811515611f1e57fe5b046006600073731953d4c9a01c676fb6b013688aa8d512f5ec0373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a06101f48202811515611f9157fe5b04600660007384a81f3b42bd99fd435b1498316f8705f84192bc73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a06102ee820281151561200457fe5b046006600073eaec9b7382e5abebe76fc7bdd2dc22ba1a33891873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555050565b6060601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156120f357602002820191906000526020600020905b8154815260200190600101908083116120df575b50505050509050919050565b60066020528060005260406000206000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806123c75750601260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561243b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b601260009054906101000a900460ff1615156124e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f546865206d696e742066756e6374696f6e7320617265206e6f7420617661696c81526020017f61626c6520616e796d6f72652e0000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561258a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f307830302061646472657373206e6f7420616c6c6f7765642e0000000000000081525060200191505060405180910390fd5b670de0b6b3a76400008102600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550670de0b6b3a764000081026005600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a764000084026040518082815260200191505060405180910390a35050565b6000806000601260009054906101000a900460ff1615151561271f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001807f46756e6374696f6e206e6f7420617661696c61626c65206173206c6f6e67206181526020017f73206d696e74696e6720697320706f737369626c652e0000000000000000000081525060400191505060405180910390fd5b85600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156127fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f4e6f7420656e6f7567682066756e6473206f6e2073656e64657220616464726581526020017f73732e000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b68056bc75e2d63100000861015151561287d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f416d6f756e74206973206c657373207468616e2031303020746f6b656e2e000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515612922576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f307830302061646472657373206e6f7420616c6c6f7765642e0000000000000081525060200191505060405180910390fd5b61292d8686866138be565b91508160056000828254019250508190555085600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081860190508373ffffffffffffffffffffffffffffffffffffffff167febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a876040518082815260200191505060405180910390a28373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36001925050509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612af6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f307830302061646472657373206e6f7420616c6c6f7765642e0000000000000081525060200191505060405180910390fd5b6000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612c365780601f10612c0b57610100808354040283529160200191612c36565b820191906000526020600020905b815481529060010190602001808311612c1957829003601f168201915b505050505081565b6000601260009054906101000a900460ff16151515612ceb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001807f46756e6374696f6e206e6f7420617661696c61626c65206173206c6f6e67206181526020017f73206d696e74696e6720697320706f737369626c652e0000000000000000000081525060400191505060405180910390fd5b60135442111515612d64576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e6c6f636b2064617465206e6f7420726561636865642e000000000000000081525060200191505060405180910390fd5b6000601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111515612e1b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4e6f20746f6b656e7320746f20756e6c6f636b2e00000000000000000000000081525060200191505060405180910390fd5b601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555050565b6000612eff338484613d66565b6001905092915050565b60135481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612fd3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515613078576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f307830302061646472657373206e6f7420616c6c6f7765642e0000000000000081525060200191505060405180910390fd5b80601260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050111515613177576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4e6f2066756e647320746f2072656465656d2e0000000000000000000000000081525060200191505060405180910390fd5b61317f614182565b905080600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167f222838db2794d11532d940e8dec38ae307ed0b63cd97c233322e221f998767a6826040518082815260200191505060405180910390a250565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561330a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4f776e6572206f6620636f6e74726163742063616e206e6f742075736520746881526020017f69732066756e6374696f6e2e000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156133af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f307830302061646472657373206e6f7420616c6c6f7765642e0000000000000081525060200191505060405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518082815260200191505060405180910390a350565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6007602052816000526040600020602052806000526040600020600091509150505481565b60145481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156135ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b6000600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115156136a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4e6f2066756e647320617661696c61626c652e0000000000000000000000000081525060200191505060405180910390fd5b61370f306000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d66565b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156137d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561387a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f307830302061646472657373206e6f7420616c6c6f7765642e0000000000000081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006138c86146f3565b60008060028111156138d657fe5b8560028111156138e257fe5b1015801561390657506002808111156138f757fe5b85600281111561390357fe5b11155b151561391157600080fd5b6000826000018181525050600082602001818152505033826040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000826060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600060028111156139a557fe5b8560028111156139b157fe5b1415613a77576009544201826000018181525050670de0b6b3a7640000600a5487028115156139dc57fe5b0482602001818152505033826040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083826060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050670de0b6b3a764000080600a54038702811515613a6f57fe5b049050613c32565b60016002811115613a8457fe5b856002811115613a9057fe5b1415613b5657600b544201826000018181525050670de0b6b3a7640000600c548702811515613abb57fe5b0482602001818152505033826040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083826060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050670de0b6b3a764000080600c54038702811515613b4e57fe5b049050613c31565b600280811115613b6257fe5b856002811115613b6e57fe5b1415613c3057600d544201826000018181525050670de0b6b3a7640000600e548702811515613b9957fe5b0482602001818152505033826040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083826060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050670de0b6b3a764000080600e54038702811515613c2c57fe5b0490505b5b5b60016008540160088190555081601060006008548152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050613d0960085483606001516144d8565b8160200151600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080925050509392505050565b600081111515613e04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f5472616e736665727265642076616c75652068617320746f206265206772617481526020017f6572207468616e20302e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515613ea9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f307830302061646472657373206e6f7420616c6c6f7765642e0000000000000081525060200191505060405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515613f86576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f4e6f7420656e6f7567682066756e6473206f6e2073656e64657220616464726581526020017f73732e000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011015151561407e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4f766572666c6f772070726f74656374696f6e2e00000000000000000000000081525060200191505060405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60006060600080600080601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561421557602002820191906000526020600020905b815481526020019060010190808311614201575b50505050509450600093506000925060009150600090505b8451811015614455576000858281518110151561424657fe5b906020019060200201511415801561428b57504260106000878481518110151561426c57fe5b9060200190602002015181526020019081526020016000206000015411155b15614448576010600086838151811015156142a257fe5b90602001906020020151815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691506010600086838151811015156142f257fe5b90602001906020020151815260200190815260200160002060010154935083600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508383019250601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020818154811015156143ae57fe5b90600052602060002001600090556010600086838151811015156143ce57fe5b90602001906020020151815260200190815260200160002060008082016000905560018201600090556002820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556003820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550505b808060010191505061422d565b6000831115156144cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4e6f2066756e647320746f2072656465656d2e0000000000000000000000000081525060200191505060405180910390fd5b829550505050505090565b6000806000809250601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050915060008214151561468257600090505b8181101561460c576000601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561458a57fe5b906000526020600020015414156145ff5784601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811015156145e857fe5b90600052602060002001819055506001925061460c565b8080600101915050614534565b82151561467d57601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208590806001815401808255809150509060018203906000526020600020016000909192909190915055505b6146ec565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208590806001815401808255809150509060018203906000526020600020016000909192909190915055505b5050505050565b6080604051908101604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815250905600a165627a7a7230582012b4efe5ea2dadb7c14b916891d1fe50e2f749a38113829ecabd71c2433f64ea0029

Deployed Bytecode

0x60806040526004361061018b576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630672a90a1461019057806306fdde03146101e7578063095ea7b31461027757806309813482146102dc578063167653911461038a57806318160ddd146103e157806323b872dd1461040c578063313ce5671461049157806331f9c919146104c257806352a9039c146104f157806362fca3fa1461054857806363fb5c9d1461059b57806367a6b678146105b257806370a082311461064a57806379ba5097146106a157806379c65068146106b85780637cc2a9601461070557806385e68531146107775780638da5cb5b146107ba57806395d89b4114610811578063a69df4b5146108a1578063a9059cbb146108b8578063aa5dec6f1461091d578063bdf5368c14610948578063be040fb01461098b578063cf12e870146109a2578063d4ee1d90146109e5578063dd62ed3e14610a3c578063ea9647fc14610ab3578063f04395da14610ade578063f2fde38b14610af5575b600080fd5b34801561019c57600080fd5b506101a5610b38565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101f357600080fd5b506101fc610b5e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023c578082015181840152602081019050610221565b50505050905090810190601f1680156102695780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028357600080fd5b506102c2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bfc565b604051808215151515815260200191505060405180910390f35b3480156102e857600080fd5b5061030760048036038101908080359060200190929190505050610e12565b604051808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405180910390f35b34801561039657600080fd5b506103cb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ec3565b6040518082815260200191505060405180910390f35b3480156103ed57600080fd5b506103f6610edb565b6040518082815260200191505060405180910390f35b34801561041857600080fd5b50610477600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee1565b604051808215151515815260200191505060405180910390f35b34801561049d57600080fd5b506104a661136e565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104ce57600080fd5b506104d7611381565b604051808215151515815260200191505060405180910390f35b3480156104fd57600080fd5b50610532600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611394565b6040518082815260200191505060405180910390f35b34801561055457600080fd5b506105996004803603810190808035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293905050506113ac565b005b3480156105a757600080fd5b506105b0611806565b005b3480156105be57600080fd5b506105f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612068565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561063657808201518184015260208101905061061b565b505050509050019250505060405180910390f35b34801561065657600080fd5b5061068b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120ff565b6040518082815260200191505060405180910390f35b3480156106ad57600080fd5b506106b6612117565b005b3480156106c457600080fd5b50610703600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061231f565b005b34801561071157600080fd5b5061075d60048036038101908080359060200190929190803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061266f565b604051808215151515815260200191505060405180910390f35b34801561078357600080fd5b506107b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612a51565b005b3480156107c657600080fd5b506107cf612b7b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561081d57600080fd5b50610826612ba0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561086657808201518184015260208101905061084b565b50505050905090810190601f1680156108935780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108ad57600080fd5b506108b6612c3e565b005b3480156108c457600080fd5b50610903600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612ef2565b604051808215151515815260200191505060405180910390f35b34801561092957600080fd5b50610932612f09565b6040518082815260200191505060405180910390f35b34801561095457600080fd5b50610989600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f0f565b005b34801561099757600080fd5b506109a06130bc565b005b3480156109ae57600080fd5b506109e3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061321f565b005b3480156109f157600080fd5b506109fa6134d8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a4857600080fd5b50610a9d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506134fe565b6040518082815260200191505060405180910390f35b348015610abf57600080fd5b50610ac8613523565b6040518082815260200191505060405180910390f35b348015610aea57600080fd5b50610af3613529565b005b348015610b0157600080fd5b50610b36600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613711565b005b601260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bf45780601f10610bc957610100808354040283529160200191610bf4565b820191906000526020600020905b815481529060010190602001808311610bd757829003601f168201915b505050505081565b600080821480610c8857506000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b1515610d22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f417070726f7665642066756e6473206f722076616c756520617265206e6f742081526020017f302e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600080600080601060008681526020019081526020016000206000015460106000878152602001908152602001600020600101546010600088815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166010600089815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1693509350935093509193509193565b600f6020528060005260406000206000915090505481565b60055481565b600080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110151515610fdb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f46756e6473206e6f7420617070726f7665642e0000000000000000000000000081525060200191505060405180910390fd5b82600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156110b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f4e6f7420656e6f7567682066756e6473206f6e2073656e64657220616464726581526020017f73732e000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401101515156111b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4f766572666c6f772070726f74656374696f6e2e00000000000000000000000081525060200191505060405180910390fd5b82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555082600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156112fd5782600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b600460009054906101000a900460ff1681565b601260009054906101000a900460ff1681565b60156020528060005260406000206000915090505481565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806114575750601260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156114cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b601260009054906101000a900460ff161515611575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f546865206d696e742066756e6374696f6e7320617265206e6f7420617661696c81526020017f61626c6520616e796d6f72652e0000000000000000000000000000000000000081525060400191505060405180910390fd5b60009150600090505b858590508110156117ee5760066000878784818110151561159b57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054848483818110151561160157fe5b9050602002013560066000898986818110151561161a57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011015156117e157670de0b6b3a7640000848483818110151561169157fe5b90506020020135026006600088888581811015156116ab57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550670de0b6b3a7640000848483818110151561172657fe5b905060200201350282019150858582818110151561174057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a764000087878681811015156117c357fe5b90506020020135026040518082815260200191505060405180910390a35b808060010191505061157e565b81600560008282540192505081905550505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b601260009054906101000a900460ff161515611976576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f546865206d696e742066756e6374696f6e7320617265206e6f7420617661696c81526020017f61626c6520616e796d6f72652e0000000000000000000000000000000000000081525060400191505060405180910390fd5b6005549050670de0b6b3a764000067094079cd1a42aaaa820281151561199857fe5b048101905080600581905550806014819055506000601260006101000a81548160ff0219169083151502179055506301e133804201601381905550620186a061251c82028115156119e557fe5b046015600073efbdba37bd0e825d43bac88ce570dceff50373c273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620186a061251c8202811515611a4f57fe5b04601560007375de233590c8dd593ce1bb89d68e9f18ecdf34c873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620186a0610c308202811515611ab957fe5b046015600073357c2e4253389ce79440e867e9de14e17bb97d2e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620186a06137aa8202811515611b2357fe5b046015600073f35ff681cbb69b47488269ce2ba5caa34133813a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620186a060f28202811515611b8c57fe5b0460066000732a809456adf8bd5a79d598e880f7bd78e11b4a1c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a060f28202811515611bfe57fe5b04600660007336c321017a8d8655ec7a2b862328678932e53b8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a060f28202811515611c7057fe5b046006600073c9ebc197ee00c1e231817b4eb38322c364cfcfcd73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a06102d68202811515611ce357fe5b0460066000732be34a67491c6b1f8e0ca3baa1249c90686cf6fb73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a060048202811515611d5557fe5b0460066000731cf6725538aacc9574108845d58cf2e89f62bbe973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a060828202811515611dc757fe5b046006600073c6a3b6ed936bd18fd72e0ae2d50a10b82ef7985173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a060828202811515611e3957fe5b046006600073204fb77569ca24c09e1425f979141536b89449e373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a060a48202811515611eab57fe5b046006600073be3ece67b61ef6d3fd0f8b159d16a80bb04c0f7b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a06101f48202811515611f1e57fe5b046006600073731953d4c9a01c676fb6b013688aa8d512f5ec0373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a06101f48202811515611f9157fe5b04600660007384a81f3b42bd99fd435b1498316f8705f84192bc73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a06102ee820281151561200457fe5b046006600073eaec9b7382e5abebe76fc7bdd2dc22ba1a33891873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555050565b6060601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156120f357602002820191906000526020600020905b8154815260200190600101908083116120df575b50505050509050919050565b60066020528060005260406000206000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806123c75750601260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561243b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b601260009054906101000a900460ff1615156124e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f546865206d696e742066756e6374696f6e7320617265206e6f7420617661696c81526020017f61626c6520616e796d6f72652e0000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561258a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f307830302061646472657373206e6f7420616c6c6f7765642e0000000000000081525060200191505060405180910390fd5b670de0b6b3a76400008102600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550670de0b6b3a764000081026005600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a764000084026040518082815260200191505060405180910390a35050565b6000806000601260009054906101000a900460ff1615151561271f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001807f46756e6374696f6e206e6f7420617661696c61626c65206173206c6f6e67206181526020017f73206d696e74696e6720697320706f737369626c652e0000000000000000000081525060400191505060405180910390fd5b85600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156127fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f4e6f7420656e6f7567682066756e6473206f6e2073656e64657220616464726581526020017f73732e000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b68056bc75e2d63100000861015151561287d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f416d6f756e74206973206c657373207468616e2031303020746f6b656e2e000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515612922576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f307830302061646472657373206e6f7420616c6c6f7765642e0000000000000081525060200191505060405180910390fd5b61292d8686866138be565b91508160056000828254019250508190555085600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081860190508373ffffffffffffffffffffffffffffffffffffffff167febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a876040518082815260200191505060405180910390a28373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36001925050509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612af6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f307830302061646472657373206e6f7420616c6c6f7765642e0000000000000081525060200191505060405180910390fd5b6000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612c365780601f10612c0b57610100808354040283529160200191612c36565b820191906000526020600020905b815481529060010190602001808311612c1957829003601f168201915b505050505081565b6000601260009054906101000a900460ff16151515612ceb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001807f46756e6374696f6e206e6f7420617661696c61626c65206173206c6f6e67206181526020017f73206d696e74696e6720697320706f737369626c652e0000000000000000000081525060400191505060405180910390fd5b60135442111515612d64576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e6c6f636b2064617465206e6f7420726561636865642e000000000000000081525060200191505060405180910390fd5b6000601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111515612e1b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4e6f20746f6b656e7320746f20756e6c6f636b2e00000000000000000000000081525060200191505060405180910390fd5b601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555050565b6000612eff338484613d66565b6001905092915050565b60135481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612fd3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515613078576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f307830302061646472657373206e6f7420616c6c6f7765642e0000000000000081525060200191505060405180910390fd5b80601260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050111515613177576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4e6f2066756e647320746f2072656465656d2e0000000000000000000000000081525060200191505060405180910390fd5b61317f614182565b905080600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167f222838db2794d11532d940e8dec38ae307ed0b63cd97c233322e221f998767a6826040518082815260200191505060405180910390a250565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561330a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4f776e6572206f6620636f6e74726163742063616e206e6f742075736520746881526020017f69732066756e6374696f6e2e000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156133af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f307830302061646472657373206e6f7420616c6c6f7765642e0000000000000081525060200191505060405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518082815260200191505060405180910390a350565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6007602052816000526040600020602052806000526040600020600091509150505481565b60145481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156135ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b6000600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115156136a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4e6f2066756e647320617661696c61626c652e0000000000000000000000000081525060200191505060405180910390fd5b61370f306000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d66565b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156137d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561387a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f307830302061646472657373206e6f7420616c6c6f7765642e0000000000000081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006138c86146f3565b60008060028111156138d657fe5b8560028111156138e257fe5b1015801561390657506002808111156138f757fe5b85600281111561390357fe5b11155b151561391157600080fd5b6000826000018181525050600082602001818152505033826040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000826060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600060028111156139a557fe5b8560028111156139b157fe5b1415613a77576009544201826000018181525050670de0b6b3a7640000600a5487028115156139dc57fe5b0482602001818152505033826040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083826060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050670de0b6b3a764000080600a54038702811515613a6f57fe5b049050613c32565b60016002811115613a8457fe5b856002811115613a9057fe5b1415613b5657600b544201826000018181525050670de0b6b3a7640000600c548702811515613abb57fe5b0482602001818152505033826040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083826060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050670de0b6b3a764000080600c54038702811515613b4e57fe5b049050613c31565b600280811115613b6257fe5b856002811115613b6e57fe5b1415613c3057600d544201826000018181525050670de0b6b3a7640000600e548702811515613b9957fe5b0482602001818152505033826040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083826060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050670de0b6b3a764000080600e54038702811515613c2c57fe5b0490505b5b5b60016008540160088190555081601060006008548152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050613d0960085483606001516144d8565b8160200151600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080925050509392505050565b600081111515613e04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f5472616e736665727265642076616c75652068617320746f206265206772617481526020017f6572207468616e20302e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515613ea9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f307830302061646472657373206e6f7420616c6c6f7765642e0000000000000081525060200191505060405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515613f86576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f4e6f7420656e6f7567682066756e6473206f6e2073656e64657220616464726581526020017f73732e000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011015151561407e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4f766572666c6f772070726f74656374696f6e2e00000000000000000000000081525060200191505060405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60006060600080600080601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561421557602002820191906000526020600020905b815481526020019060010190808311614201575b50505050509450600093506000925060009150600090505b8451811015614455576000858281518110151561424657fe5b906020019060200201511415801561428b57504260106000878481518110151561426c57fe5b9060200190602002015181526020019081526020016000206000015411155b15614448576010600086838151811015156142a257fe5b90602001906020020151815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691506010600086838151811015156142f257fe5b90602001906020020151815260200190815260200160002060010154935083600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508383019250601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020818154811015156143ae57fe5b90600052602060002001600090556010600086838151811015156143ce57fe5b90602001906020020151815260200190815260200160002060008082016000905560018201600090556002820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556003820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550505b808060010191505061422d565b6000831115156144cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4e6f2066756e647320746f2072656465656d2e0000000000000000000000000081525060200191505060405180910390fd5b829550505050505090565b6000806000809250601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050915060008214151561468257600090505b8181101561460c576000601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561458a57fe5b906000526020600020015414156145ff5784601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811015156145e857fe5b90600052602060002001819055506001925061460c565b8080600101915050614534565b82151561467d57601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208590806001815401808255809150509060018203906000526020600020016000909192909190915055505b6146ec565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208590806001815401808255809150509060018203906000526020600020016000909192909190915055505b5050505050565b6080604051908101604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815250905600a165627a7a7230582012b4efe5ea2dadb7c14b916891d1fe50e2f749a38113829ecabd71c2433f64ea0029

Swarm Source

bzzr://12b4efe5ea2dadb7c14b916891d1fe50e2f749a38113829ecabd71c2433f64ea

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

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.