ETH Price: $2,663.00 (+1.63%)

Contract

0xA08364440657EDe29c4Ae70A4E623623C783E29A
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

1 Internal Transaction found.

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block
From
To
52776852018-03-18 14:07:142519 days ago1521382034
0xA0836444...3C783E29A
 Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
LBTokenSale

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-03-18
*/

pragma solidity 0.4.18;

contract Ownable {
	address public owner;
	event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

	function Ownable() {
		owner = msg.sender;
	}

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

	function transferOwnership(address newOwner) onlyOwner public {
		require(newOwner != address(0));
		OwnershipTransferred(owner, newOwner);
		owner = newOwner;
	}
}

library SafeMath {
	function mul(uint256 a, uint256 b) internal constant returns (uint256) {
		uint256 c = a * b;
		assert(a == 0 || c / a == b);
		return c;
	}

	function div(uint256 a, uint256 b) internal constant returns (uint256) {
		uint256 c = a / b;
		return c;
	}

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

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

contract ERC20 {
	uint256 public totalSupply;
	function balanceOf(address who) public constant returns (uint256);
	function transfer(address to, uint256 value) public returns (bool);
	event Transfer(address indexed from, address indexed to, uint256 value);

	function allowance(address owner, address spender) public constant returns (uint256);
	function transferFrom(address from, address to, uint256 value) public returns (bool);
	function approve(address spender, uint256 value) public returns (bool);
	event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract StandardToken is ERC20 {
	using SafeMath for uint256;

	mapping (address => uint256) balances;
    mapping (address => mapping (address => uint256)) allowed;

	function transfer(address _to, uint256 _value) public returns (bool) {
		require(_to != address(0));

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

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

	function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
		require(_to != address(0));

		uint256 _allowance = allowed[_from][msg.sender];

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

	function approve(address _spender, uint256 _value) public returns (bool) {
		allowed[msg.sender][_spender] = _value;
		Approval(msg.sender, _spender, _value);
		return true;
	}

	function allowance(address _owner, address _spender) public constant returns (uint256 remaining) {
		return allowed[_owner][_spender];
	}
}

contract LBToken is StandardToken {
	string public constant name = "LB Token";
    string public constant symbol = "LB";
    uint8  public constant decimals = 18;

	address public minter; 
	uint    public tokenSaleEndTime; 

	modifier onlyMinter {
		require (msg.sender == minter);
		_;
	}

	modifier whenMintable {
		require (now <= tokenSaleEndTime);
		_;
	}

    modifier validDestination(address to) {
        require(to != address(this));
        _;
    }

	function LBToken(address _minter, uint _tokenSaleEndTime) public {
		minter = _minter;
		tokenSaleEndTime = _tokenSaleEndTime;
    }

	function transfer(address _to, uint _value)
        public
        validDestination(_to)
        returns (bool) 
    {
        return super.transfer(_to, _value);
    }

	function transferFrom(address _from, address _to, uint _value)
        public
        validDestination(_to)
        returns (bool) 
    {
        return super.transferFrom(_from, _to, _value);
    }

	function createToken(address _recipient, uint _value)
		whenMintable
		onlyMinter
		returns (bool)
	{
		balances[_recipient] += _value;
		totalSupply += _value;
		return true;
	}
}

contract LBTokenSale is Ownable {
    using SafeMath for uint256;

	// token allocation
	uint public constant TOTAL_LBTOKEN_SUPPLY   = 480000000;
	uint public constant ALLOC_TEAM             =  72000000e18;
	uint public constant ALLOC_RESERVED         =  96000000e18;
	uint public constant ALLOC_COMMUNITY        =  72000000e18;
	uint public constant ALLOC_ADVISOR          =  24000000e18;
	uint public constant ALLOC_SALE_CORNERSTONE =  32500000e18; 
	uint public constant ALLOC_SALE_PRIVATE     = 120000000e18; 
	uint public constant ALLOC_SALE_GENERAL_1   =  22500000e18; 
	uint public constant ALLOC_SALE_GENERAL_2   =  21000000e18; 
	uint public constant ALLOC_SALE_GENERAL_3   =  20000000e18; 

	// Token sale rate from ETH to LB
	uint public constant RATE_CORNERSTONE  = 3250;
	uint public constant RATE_PRIVATE      = 3000;
	uint public constant RATE_CROWDSALE_S1 = 2250;
	uint public constant RATE_CROWDSALE_S2 = 2100;
	uint public constant RATE_CROWDSALE_S3 = 2000;

	// For token transfer
	address public constant WALLET_LB_RESERVED  = 0x2cde024b3dcf68081F0aA03f33e4631D7293544f;
	address public constant WALLET_LB_COMMUNITY = 0x60e95CE9A740cF66bE5598B994Ed97D6c143aDE9;
	address public constant WALLET_LB_TEAM      = 0x90545665F7Be2DB1880eDA948EA55AE6De2726F3;
	address public constant WALLET_LB_ADMIN     = 0x4Db76c3F8d0169ABa7aD5795dA1253231a09a22C;

	// For ether transfer
	address private constant WALLET_ETH_LB    = 0xc6bc39A8038A9C1dfdFE73ce1df4e5094D30E6f4;
	address private constant WALLET_ETH_ADMIN = 0x782872fb9459FC0dbdf8c0EDb5fE3D5f214a6660;

    LBToken public lbToken; 

	uint256 public presaleStartTime;
    uint256 public publicStartTime;
    uint256 public publicEndTime;
	bool public halted;

	// stat
	uint256 public totalLBSold_CORNERSTONE;
	uint256 public totalLBSold_PRIVATE;
	uint256 public totalLBSold_GENERAL_1;
	uint256 public totalLBSold_GENERAL_2;
	uint256 public totalLBSold_GENERAL_3;
    uint256 public weiRaised;
	mapping(address=>uint256) public weiContributions;

	// whitelisting
	mapping(address=>bool) public whitelisted_Private;
	mapping(address=>bool) public whitelisted_Cornerstone;
	event WhitelistedPrivateStatusChanged(address target, bool isWhitelisted);
	event WhitelistedCornerstoneStatusChanged(address target, bool isWhitelisted);

    event TokenPurchase(address indexed purchaser, uint256 value, uint256 amount);

    function LBTokenSale(uint256 _presaleStartTime, uint256 _publicStartTime, uint256 _publicEndTime) {
        presaleStartTime = _presaleStartTime;
        publicStartTime = _publicStartTime;
		publicEndTime = _publicEndTime;

        lbToken = new LBToken(address(this), publicEndTime);
		lbToken.createToken(WALLET_LB_RESERVED, ALLOC_RESERVED);
		lbToken.createToken(WALLET_LB_COMMUNITY, ALLOC_COMMUNITY);
		lbToken.createToken(WALLET_LB_TEAM, ALLOC_TEAM);
		lbToken.createToken(WALLET_LB_ADMIN, ALLOC_ADVISOR);
    }


    function changeWhitelistPrivateStatus(address _target, bool _isWhitelisted)
        public
        onlyOwner
    {
        whitelisted_Private[_target] = _isWhitelisted;
        WhitelistedPrivateStatusChanged(_target, _isWhitelisted);
    }

    function changeWhitelistPrivateStatuses(address[] _targets, bool _isWhitelisted)
        public
        onlyOwner
    {
        for (uint i = 0; i < _targets.length; i++) {
            changeWhitelistPrivateStatus(_targets[i], _isWhitelisted);
        }
    }

	function changeWhitelistCornerstoneStatus(address _target, bool _isWhitelisted)
        public
        onlyOwner
    {
        whitelisted_Cornerstone[_target] = _isWhitelisted;
        WhitelistedCornerstoneStatusChanged(_target, _isWhitelisted);
    }

    function changeWhitelistCornerstoneStatuses(address[] _targets, bool _isWhitelisted)
        public
        onlyOwner
    {
        for (uint i = 0; i < _targets.length; i++) {
            changeWhitelistCornerstoneStatus(_targets[i], _isWhitelisted);
        }
    }

    function validPurchase() 
        internal 
        returns(bool) 
    {
		bool nonZeroPurchase = msg.value != 0;
		bool withinSalePeriod = now >= presaleStartTime && now <= publicEndTime;
        bool withinPublicPeriod = now >= publicStartTime && now <= publicEndTime;

		bool whitelisted = whitelisted_Cornerstone[msg.sender] || whitelisted_Private[msg.sender];
		bool whitelistedCanBuy = whitelisted && withinSalePeriod;
        
        return nonZeroPurchase && (whitelistedCanBuy || withinPublicPeriod);
    }

    function () 
       payable 
    {
        buyTokens();
    }

    function buyTokens() 
       payable 
    {
		require(!halted);
        require(validPurchase());

		address investor = msg.sender;
        uint256 weiInvested = msg.value;
		uint256 purchaseTokens; 
		
		if (whitelisted_Cornerstone[investor]) {
			purchaseTokens = weiInvested.mul(RATE_CORNERSTONE); 
			require(ALLOC_SALE_CORNERSTONE - totalLBSold_CORNERSTONE >= purchaseTokens); // buy only if enough supply
			require(lbToken.createToken(investor, purchaseTokens));
			totalLBSold_CORNERSTONE = totalLBSold_CORNERSTONE.add(purchaseTokens); 
		} else if (whitelisted_Private[investor]) {
			purchaseTokens = weiInvested.mul(RATE_PRIVATE); 
			require(ALLOC_SALE_PRIVATE - totalLBSold_PRIVATE >= purchaseTokens); // buy only if enough supply
			require(lbToken.createToken(investor, purchaseTokens));
			totalLBSold_PRIVATE = totalLBSold_PRIVATE.add(purchaseTokens); 
		} else {
			purchaseTokens = _getPurchaseToken(investor, weiInvested);
			require(purchaseTokens > 0);
			require(lbToken.createToken(investor, purchaseTokens));
		}

		weiRaised = weiRaised.add(weiInvested);
		weiContributions[investor] = weiContributions[investor].add(weiInvested);

		TokenPurchase(investor, weiInvested, purchaseTokens);
		forwardFunds();
    }

	function _getPurchaseToken(address sender, uint256 weiInvested)
		internal
		returns(uint256) 
	{
		uint256 tokenRemain1 = ALLOC_SALE_GENERAL_1 - totalLBSold_GENERAL_1;
		uint256 tokenToPurchase1 = weiInvested.mul(RATE_CROWDSALE_S1);
		if (tokenRemain1 >= tokenToPurchase1) {
			totalLBSold_GENERAL_1 = totalLBSold_GENERAL_1.add(tokenToPurchase1);
			return tokenToPurchase1;
		} else if (tokenRemain1 > 0) {
			uint256 weiRemain = weiInvested - tokenRemain1.div(RATE_CROWDSALE_S1); 
			uint256 tokenToPurchase2 = weiRemain.mul(RATE_CROWDSALE_S2);
			totalLBSold_GENERAL_1 = totalLBSold_GENERAL_1.add(tokenRemain1);
			totalLBSold_GENERAL_2 = totalLBSold_GENERAL_2.add(tokenToPurchase2);
			return tokenRemain1 + tokenToPurchase2;
		}

		uint256 tokenRemain2 = ALLOC_SALE_GENERAL_2 - totalLBSold_GENERAL_2;
		tokenToPurchase2 = weiInvested.mul(RATE_CROWDSALE_S2);
		if (tokenRemain2 >= tokenToPurchase2) {
			totalLBSold_GENERAL_2 = totalLBSold_GENERAL_2.add(tokenToPurchase2);
			return tokenToPurchase2;
		} else if (tokenRemain2 > 0) {
			weiRemain = weiInvested - tokenRemain2.div(RATE_CROWDSALE_S2); 
			uint256 tokenToPurchase3 = weiRemain.mul(RATE_CROWDSALE_S3);
			totalLBSold_GENERAL_2 = totalLBSold_GENERAL_2.add(tokenRemain2);
			totalLBSold_GENERAL_3 = totalLBSold_GENERAL_3.add(tokenToPurchase3);
			return tokenRemain2 + tokenToPurchase3;
		}

		uint256 tokenRemain3 = ALLOC_SALE_GENERAL_3 - totalLBSold_GENERAL_3;
		tokenToPurchase3 = weiInvested.mul(RATE_CROWDSALE_S3);
		if (tokenRemain3 >= tokenToPurchase3) {
			totalLBSold_GENERAL_3 = totalLBSold_GENERAL_3.add(tokenToPurchase3);
			return tokenToPurchase3;
		}

		return 0;
	}

    function forwardFunds() 
       internal 
    {
        WALLET_ETH_LB.transfer((msg.value).mul(98).div(100));
		WALLET_ETH_ADMIN.transfer((msg.value).mul(2).div(100));
    }

    function hasEnded() 
        public 
        constant 
        returns(bool) 
    {
        return now > publicEndTime;
    }

	function toggleHalt(bool _halted)
		public
		onlyOwner
	{
		halted = _halted;
	}
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"totalLBSold_GENERAL_1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelisted_Private","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"RATE_CROWDSALE_S2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_targets","type":"address[]"},{"name":"_isWhitelisted","type":"bool"}],"name":"changeWhitelistCornerstoneStatuses","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"weiContributions","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ALLOC_SALE_GENERAL_1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ALLOC_SALE_GENERAL_2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalLBSold_GENERAL_3","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"publicEndTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"RATE_CROWDSALE_S3","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lbToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"},{"name":"_isWhitelisted","type":"bool"}],"name":"changeWhitelistCornerstoneStatus","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"weiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ALLOC_RESERVED","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"RATE_CROWDSALE_S1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"publicStartTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelisted_Cornerstone","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ALLOC_SALE_PRIVATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ALLOC_SALE_GENERAL_3","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_halted","type":"bool"}],"name":"toggleHalt","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"WALLET_LB_TEAM","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"WALLET_LB_ADMIN","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"WALLET_LB_RESERVED","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalLBSold_CORNERSTONE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"presaleStartTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOTAL_LBTOKEN_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ALLOC_TEAM","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ALLOC_SALE_CORNERSTONE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"halted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"},{"name":"_isWhitelisted","type":"bool"}],"name":"changeWhitelistPrivateStatus","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalLBSold_PRIVATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ALLOC_ADVISOR","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"totalLBSold_GENERAL_2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hasEnded","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ALLOC_COMMUNITY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"RATE_PRIVATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"WALLET_LB_COMMUNITY","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_targets","type":"address[]"},{"name":"_isWhitelisted","type":"bool"}],"name":"changeWhitelistPrivateStatuses","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"RATE_CORNERSTONE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_presaleStartTime","type":"uint256"},{"name":"_publicStartTime","type":"uint256"},{"name":"_publicEndTime","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"target","type":"address"},{"indexed":false,"name":"isWhitelisted","type":"bool"}],"name":"WhitelistedPrivateStatusChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"target","type":"address"},{"indexed":false,"name":"isWhitelisted","type":"bool"}],"name":"WhitelistedCornerstoneStatusChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

606060405234156200001057600080fd5b6040516060806200308283398101604052808051906020019091908051906020019091908051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600281905550816003819055508060048190555030600454620000a262000567565b808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051809103906000f0801515620000f657600080fd5b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a10d4d6732cde024b3dcf68081f0aa03f33e4631d7293544f6a4f68ca6d8cd91c600000006000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156200022357600080fd5b6102c65a03f115156200023557600080fd5b5050506040518051905050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a10d4d67360e95ce9a740cf66be5598b994ed97d6c143ade96a3b8e97d229a2d5480000006000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156200032d57600080fd5b6102c65a03f115156200033f57600080fd5b5050506040518051905050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a10d4d67390545665f7be2db1880eda948ea55ae6de2726f36a3b8e97d229a2d5480000006000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156200043757600080fd5b6102c65a03f115156200044957600080fd5b5050506040518051905050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a10d4d6734db76c3f8d0169aba7ad5795da1253231a09a22c6a13da329b633647180000006000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156200054157600080fd5b6102c65a03f115156200055357600080fd5b505050604051805190505050505062000578565b604051610e8780620021fb83390190565b611c7380620005886000396000f300606060405260043610610203576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680620e2f3a1461020d5780630e376d3d14610236578063184ffd9d14610287578063201e8f0e146102b057806325d18e31146103155780632921be51146103625780632a022f221461038b5780632b7dd488146103b45780632c27e581146103dd5780632ccc90571461040657806334f1f9b11461042f5780633b427b20146104845780634042b66f146104c857806341595f04146104f157806346d5688e1461051a5780635fd1bbc4146105435780636c3012fe1461056c5780636d022003146105bd5780636d584266146105e65780638c3466901461060f5780638c937da3146106345780638da5cb5b1461068957806391da9178146106de5780639c71fda414610733578063a68e457814610788578063a82524b2146107b1578063b38c1504146107da578063b475a1c814610803578063b781ad991461082c578063b9b8af0b14610855578063c1c6c74914610882578063cca5020b146108c6578063cec77ad5146108ef578063d0febe4c14610918578063e122c02814610922578063ecb70fb71461094b578063eeab57bf14610978578063f2fde38b146109a1578063f53bde25146109da578063f9d6de4814610a03578063f9df816a14610a58578063fa51ae8614610abd575b61020b610ae6565b005b341561021857600080fd5b610220611077565b6040518082815260200191505060405180910390f35b341561024157600080fd5b61026d600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061107d565b604051808215151515815260200191505060405180910390f35b341561029257600080fd5b61029a61109d565b6040518082815260200191505060405180910390f35b34156102bb57600080fd5b61031360048080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803515159060200190919050506110a3565b005b341561032057600080fd5b61034c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611141565b6040518082815260200191505060405180910390f35b341561036d57600080fd5b610375611159565b6040518082815260200191505060405180910390f35b341561039657600080fd5b61039e611168565b6040518082815260200191505060405180910390f35b34156103bf57600080fd5b6103c7611177565b6040518082815260200191505060405180910390f35b34156103e857600080fd5b6103f061117d565b6040518082815260200191505060405180910390f35b341561041157600080fd5b610419611183565b6040518082815260200191505060405180910390f35b341561043a57600080fd5b610442611189565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561048f57600080fd5b6104c6600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803515159060200190919050506111af565b005b34156104d357600080fd5b6104db6112d4565b6040518082815260200191505060405180910390f35b34156104fc57600080fd5b6105046112da565b6040518082815260200191505060405180910390f35b341561052557600080fd5b61052d6112e9565b6040518082815260200191505060405180910390f35b341561054e57600080fd5b6105566112ef565b6040518082815260200191505060405180910390f35b341561057757600080fd5b6105a3600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506112f5565b604051808215151515815260200191505060405180910390f35b34156105c857600080fd5b6105d0611315565b6040518082815260200191505060405180910390f35b34156105f157600080fd5b6105f9611324565b6040518082815260200191505060405180910390f35b341561061a57600080fd5b61063260048080351515906020019091905050611333565b005b341561063f57600080fd5b6106476113ab565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561069457600080fd5b61069c6113c3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106e957600080fd5b6106f16113e8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561073e57600080fd5b610746611400565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561079357600080fd5b61079b611418565b6040518082815260200191505060405180910390f35b34156107bc57600080fd5b6107c461141e565b6040518082815260200191505060405180910390f35b34156107e557600080fd5b6107ed611424565b6040518082815260200191505060405180910390f35b341561080e57600080fd5b61081661142c565b6040518082815260200191505060405180910390f35b341561083757600080fd5b61083f61143b565b6040518082815260200191505060405180910390f35b341561086057600080fd5b61086861144a565b604051808215151515815260200191505060405180910390f35b341561088d57600080fd5b6108c4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035151590602001909190505061145d565b005b34156108d157600080fd5b6108d9611582565b6040518082815260200191505060405180910390f35b34156108fa57600080fd5b610902611588565b6040518082815260200191505060405180910390f35b610920610ae6565b005b341561092d57600080fd5b610935611597565b6040518082815260200191505060405180910390f35b341561095657600080fd5b61095e61159d565b604051808215151515815260200191505060405180910390f35b341561098357600080fd5b61098b6115a9565b6040518082815260200191505060405180910390f35b34156109ac57600080fd5b6109d8600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506115b8565b005b34156109e557600080fd5b6109ed61170d565b6040518082815260200191505060405180910390f35b3415610a0e57600080fd5b610a16611713565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a6357600080fd5b610abb600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091908035151590602001909190505061172b565b005b3415610ac857600080fd5b610ad06117c9565b6040518082815260200191505060405180910390f35b6000806000600560009054906101000a900460ff16151515610b0757600080fd5b610b0f6117cf565b1515610b1a57600080fd5b339250349150600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610cba57610b87610cb2836118d690919063ffffffff16565b9050806006546a1ae22487c1042af08000000310151515610ba757600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a10d4d684836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610c7457600080fd5b6102c65a03f11515610c8557600080fd5b505050604051805190501515610c9a57600080fd5b610caf8160065461190990919063ffffffff16565b600681905550610f64565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e5457610d21610bb8836118d690919063ffffffff16565b9050806007546a6342fd08f00f63780000000310151515610d4157600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a10d4d684836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610e0e57600080fd5b6102c65a03f11515610e1f57600080fd5b505050604051805190501515610e3457600080fd5b610e498160075461190990919063ffffffff16565b600781905550610f63565b610e5e8383611927565b9050600081111515610e6f57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a10d4d684836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610f3c57600080fd5b6102c65a03f11515610f4d57600080fd5b505050604051805190501515610f6257600080fd5b5b5b610f7982600b5461190990919063ffffffff16565b600b81905550610fd182600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461190990919063ffffffff16565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167fcd60aa75dea3072fbc07ae6d7d856b5dc5f4eee88854f5b4abf7b680ef8bc50f8383604051808381526020018281526020019250505060405180910390a2611072611b36565b505050565b60085481565b600d6020528060005260406000206000915054906101000a900460ff1681565b61083481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561110057600080fd5b600090505b825181101561113c5761112f838281518110151561111f57fe5b90602001906020020151836111af565b8080600101915050611105565b505050565b600c6020528060005260406000206000915090505481565b6a129c8f71ad02e2a680000081565b6a115eec47f6cf7e3500000081565b600a5481565b60045481565b6107d081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561120a57600080fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fb972cf81d102e7e9916abf5276742ff50b046aac8d6af9b4fd93507e0e1dc5608282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a15050565b600b5481565b6a4f68ca6d8cd91c6000000081565b6108ca81565b60035481565b600e6020528060005260406000206000915054906101000a900460ff1681565b6a6342fd08f00f637800000081565b6a108b2a2c2802909400000081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561138e57600080fd5b80600560006101000a81548160ff02191690831515021790555050565b7390545665f7be2db1880eda948ea55ae6de2726f381565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b734db76c3f8d0169aba7ad5795da1253231a09a22c81565b732cde024b3dcf68081f0aa03f33e4631d7293544f81565b60065481565b60025481565b631c9c380081565b6a3b8e97d229a2d54800000081565b6a1ae22487c1042af080000081565b600560009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114b857600080fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f0ac8e5df6f33adebdb511fa106f31a02485aa1e6e4ceef8397a052f9d0783c478282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a15050565b60075481565b6a13da329b6336471800000081565b60095481565b60006004544211905090565b6a3b8e97d229a2d54800000081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561161357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561164f57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610bb881565b7360e95ce9a740cf66be5598b994ed97d6c143ade981565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561178857600080fd5b600090505b82518110156117c4576117b783828151811015156117a757fe5b906020019060200201518361145d565b808060010191505061178d565b505050565b610cb281565b6000806000806000806000341415945060025442101580156117f357506004544211155b9350600354421015801561180957506004544211155b9250600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118ac5750600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b91508180156118b85750835b90508480156118cc575080806118cb5750825b5b9550505050505090565b600080828402905060008414806118f757508284828115156118f457fe5b04145b15156118ff57fe5b8091505092915050565b600080828401905083811015151561191d57fe5b8091505092915050565b6000806000806000806000806008546a129c8f71ad02e2a680000003965061195a6108ca8a6118d690919063ffffffff16565b955085871015156119885761197a8660085461190990919063ffffffff16565b600881905550859750611b29565b6000871115611a01576119a66108ca88611c2c90919063ffffffff16565b890394506119bf610834866118d690919063ffffffff16565b93506119d68760085461190990919063ffffffff16565b6008819055506119f18460095461190990919063ffffffff16565b6009819055508387019750611b29565b6009546a115eec47f6cf7e35000000039250611a286108348a6118d690919063ffffffff16565b93508383101515611a5657611a488460095461190990919063ffffffff16565b600981905550839750611b29565b6000831115611acf57611a7461083484611c2c90919063ffffffff16565b89039450611a8d6107d0866118d690919063ffffffff16565b9150611aa48360095461190990919063ffffffff16565b600981905550611abf82600a5461190990919063ffffffff16565b600a819055508183019750611b29565b600a546a108b2a2c28029094000000039050611af66107d08a6118d690919063ffffffff16565b91508181101515611b2457611b1682600a5461190990919063ffffffff16565b600a81905550819750611b29565b600097505b5050505050505092915050565b73c6bc39a8038a9c1dfdfe73ce1df4e5094d30e6f473ffffffffffffffffffffffffffffffffffffffff166108fc611b8b6064611b7d6062346118d690919063ffffffff16565b611c2c90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501515611bb057600080fd5b73782872fb9459fc0dbdf8c0edb5fe3d5f214a666073ffffffffffffffffffffffffffffffffffffffff166108fc611c056064611bf76002346118d690919063ffffffff16565b611c2c90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501515611c2a57600080fd5b565b6000808284811515611c3a57fe5b04905080915050929150505600a165627a7a72305820ab5e36e59a1374c009414ae71ec9300eda4bb276d82f4c3f8ab12dc6f3b075b700296060604052341561000f57600080fd5b604051604080610e878339810160405280805190602001909190805190602001909190505081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806004819055505050610dfa8061008d6000396000f3006060604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100bf578063075461721461014d578063095ea7b3146101a257806318160ddd146101fc57806323b872dd14610225578063313ce5671461029e5780636a10d4d6146102cd57806370a082311461032757806395d89b4114610374578063a9059cbb14610402578063b12a82291461045c578063dd62ed3e14610485575b600080fd5b34156100ca57600080fd5b6100d26104f1565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101125780820151818401526020810190506100f7565b50505050905090810190601f16801561013f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561015857600080fd5b61016061052a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101ad57600080fd5b6101e2600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610550565b604051808215151515815260200191505060405180910390f35b341561020757600080fd5b61020f610642565b6040518082815260200191505060405180910390f35b341561023057600080fd5b610284600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610648565b604051808215151515815260200191505060405180910390f35b34156102a957600080fd5b6102b161069b565b604051808260ff1660ff16815260200191505060405180910390f35b34156102d857600080fd5b61030d600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506106a0565b604051808215151515815260200191505060405180910390f35b341561033257600080fd5b61035e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610775565b6040518082815260200191505060405180910390f35b341561037f57600080fd5b6103876107be565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103c75780820151818401526020810190506103ac565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561040d57600080fd5b610442600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506107f7565b604051808215151515815260200191505060405180910390f35b341561046757600080fd5b61046f610848565b6040518082815260200191505060405180910390f35b341561049057600080fd5b6104db600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061084e565b6040518082815260200191505060405180910390f35b6040805190810160405280600881526020017f4c4220546f6b656e00000000000000000000000000000000000000000000000081525081565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60005481565b6000823073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561068657600080fd5b6106918585856108d5565b9150509392505050565b601281565b600060045442111515156106b357600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561070f57600080fd5b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508160008082825401925050819055506001905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6040805190810160405280600281526020017f4c4200000000000000000000000000000000000000000000000000000000000081525081565b6000823073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561083557600080fd5b61083f8484610bc1565b91505092915050565b60045481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561091457600080fd5b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506109e583600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d9790919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a7a83600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610db090919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ad08382610d9790919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610bfe57600080fd5b610c5082600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d9790919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ce582600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610db090919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000828211151515610da557fe5b818303905092915050565b6000808284019050838110151515610dc457fe5b80915050929150505600a165627a7a7230582099d832302c6f27a2d3da4a190ed362c3b0594b3b3aa0c3c5cc3f43a5285eae560029000000000000000000000000000000000000000000000000000000005aafa640000000000000000000000000000000000000000000000000000000005ac0c9c0000000000000000000000000000000000000000000000000000000005ae70540

Deployed Bytecode

0x606060405260043610610203576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680620e2f3a1461020d5780630e376d3d14610236578063184ffd9d14610287578063201e8f0e146102b057806325d18e31146103155780632921be51146103625780632a022f221461038b5780632b7dd488146103b45780632c27e581146103dd5780632ccc90571461040657806334f1f9b11461042f5780633b427b20146104845780634042b66f146104c857806341595f04146104f157806346d5688e1461051a5780635fd1bbc4146105435780636c3012fe1461056c5780636d022003146105bd5780636d584266146105e65780638c3466901461060f5780638c937da3146106345780638da5cb5b1461068957806391da9178146106de5780639c71fda414610733578063a68e457814610788578063a82524b2146107b1578063b38c1504146107da578063b475a1c814610803578063b781ad991461082c578063b9b8af0b14610855578063c1c6c74914610882578063cca5020b146108c6578063cec77ad5146108ef578063d0febe4c14610918578063e122c02814610922578063ecb70fb71461094b578063eeab57bf14610978578063f2fde38b146109a1578063f53bde25146109da578063f9d6de4814610a03578063f9df816a14610a58578063fa51ae8614610abd575b61020b610ae6565b005b341561021857600080fd5b610220611077565b6040518082815260200191505060405180910390f35b341561024157600080fd5b61026d600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061107d565b604051808215151515815260200191505060405180910390f35b341561029257600080fd5b61029a61109d565b6040518082815260200191505060405180910390f35b34156102bb57600080fd5b61031360048080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803515159060200190919050506110a3565b005b341561032057600080fd5b61034c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611141565b6040518082815260200191505060405180910390f35b341561036d57600080fd5b610375611159565b6040518082815260200191505060405180910390f35b341561039657600080fd5b61039e611168565b6040518082815260200191505060405180910390f35b34156103bf57600080fd5b6103c7611177565b6040518082815260200191505060405180910390f35b34156103e857600080fd5b6103f061117d565b6040518082815260200191505060405180910390f35b341561041157600080fd5b610419611183565b6040518082815260200191505060405180910390f35b341561043a57600080fd5b610442611189565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561048f57600080fd5b6104c6600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803515159060200190919050506111af565b005b34156104d357600080fd5b6104db6112d4565b6040518082815260200191505060405180910390f35b34156104fc57600080fd5b6105046112da565b6040518082815260200191505060405180910390f35b341561052557600080fd5b61052d6112e9565b6040518082815260200191505060405180910390f35b341561054e57600080fd5b6105566112ef565b6040518082815260200191505060405180910390f35b341561057757600080fd5b6105a3600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506112f5565b604051808215151515815260200191505060405180910390f35b34156105c857600080fd5b6105d0611315565b6040518082815260200191505060405180910390f35b34156105f157600080fd5b6105f9611324565b6040518082815260200191505060405180910390f35b341561061a57600080fd5b61063260048080351515906020019091905050611333565b005b341561063f57600080fd5b6106476113ab565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561069457600080fd5b61069c6113c3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106e957600080fd5b6106f16113e8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561073e57600080fd5b610746611400565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561079357600080fd5b61079b611418565b6040518082815260200191505060405180910390f35b34156107bc57600080fd5b6107c461141e565b6040518082815260200191505060405180910390f35b34156107e557600080fd5b6107ed611424565b6040518082815260200191505060405180910390f35b341561080e57600080fd5b61081661142c565b6040518082815260200191505060405180910390f35b341561083757600080fd5b61083f61143b565b6040518082815260200191505060405180910390f35b341561086057600080fd5b61086861144a565b604051808215151515815260200191505060405180910390f35b341561088d57600080fd5b6108c4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035151590602001909190505061145d565b005b34156108d157600080fd5b6108d9611582565b6040518082815260200191505060405180910390f35b34156108fa57600080fd5b610902611588565b6040518082815260200191505060405180910390f35b610920610ae6565b005b341561092d57600080fd5b610935611597565b6040518082815260200191505060405180910390f35b341561095657600080fd5b61095e61159d565b604051808215151515815260200191505060405180910390f35b341561098357600080fd5b61098b6115a9565b6040518082815260200191505060405180910390f35b34156109ac57600080fd5b6109d8600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506115b8565b005b34156109e557600080fd5b6109ed61170d565b6040518082815260200191505060405180910390f35b3415610a0e57600080fd5b610a16611713565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a6357600080fd5b610abb600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091908035151590602001909190505061172b565b005b3415610ac857600080fd5b610ad06117c9565b6040518082815260200191505060405180910390f35b6000806000600560009054906101000a900460ff16151515610b0757600080fd5b610b0f6117cf565b1515610b1a57600080fd5b339250349150600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610cba57610b87610cb2836118d690919063ffffffff16565b9050806006546a1ae22487c1042af08000000310151515610ba757600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a10d4d684836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610c7457600080fd5b6102c65a03f11515610c8557600080fd5b505050604051805190501515610c9a57600080fd5b610caf8160065461190990919063ffffffff16565b600681905550610f64565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e5457610d21610bb8836118d690919063ffffffff16565b9050806007546a6342fd08f00f63780000000310151515610d4157600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a10d4d684836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610e0e57600080fd5b6102c65a03f11515610e1f57600080fd5b505050604051805190501515610e3457600080fd5b610e498160075461190990919063ffffffff16565b600781905550610f63565b610e5e8383611927565b9050600081111515610e6f57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a10d4d684836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610f3c57600080fd5b6102c65a03f11515610f4d57600080fd5b505050604051805190501515610f6257600080fd5b5b5b610f7982600b5461190990919063ffffffff16565b600b81905550610fd182600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461190990919063ffffffff16565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167fcd60aa75dea3072fbc07ae6d7d856b5dc5f4eee88854f5b4abf7b680ef8bc50f8383604051808381526020018281526020019250505060405180910390a2611072611b36565b505050565b60085481565b600d6020528060005260406000206000915054906101000a900460ff1681565b61083481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561110057600080fd5b600090505b825181101561113c5761112f838281518110151561111f57fe5b90602001906020020151836111af565b8080600101915050611105565b505050565b600c6020528060005260406000206000915090505481565b6a129c8f71ad02e2a680000081565b6a115eec47f6cf7e3500000081565b600a5481565b60045481565b6107d081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561120a57600080fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fb972cf81d102e7e9916abf5276742ff50b046aac8d6af9b4fd93507e0e1dc5608282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a15050565b600b5481565b6a4f68ca6d8cd91c6000000081565b6108ca81565b60035481565b600e6020528060005260406000206000915054906101000a900460ff1681565b6a6342fd08f00f637800000081565b6a108b2a2c2802909400000081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561138e57600080fd5b80600560006101000a81548160ff02191690831515021790555050565b7390545665f7be2db1880eda948ea55ae6de2726f381565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b734db76c3f8d0169aba7ad5795da1253231a09a22c81565b732cde024b3dcf68081f0aa03f33e4631d7293544f81565b60065481565b60025481565b631c9c380081565b6a3b8e97d229a2d54800000081565b6a1ae22487c1042af080000081565b600560009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114b857600080fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f0ac8e5df6f33adebdb511fa106f31a02485aa1e6e4ceef8397a052f9d0783c478282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a15050565b60075481565b6a13da329b6336471800000081565b60095481565b60006004544211905090565b6a3b8e97d229a2d54800000081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561161357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561164f57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610bb881565b7360e95ce9a740cf66be5598b994ed97d6c143ade981565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561178857600080fd5b600090505b82518110156117c4576117b783828151811015156117a757fe5b906020019060200201518361145d565b808060010191505061178d565b505050565b610cb281565b6000806000806000806000341415945060025442101580156117f357506004544211155b9350600354421015801561180957506004544211155b9250600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118ac5750600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b91508180156118b85750835b90508480156118cc575080806118cb5750825b5b9550505050505090565b600080828402905060008414806118f757508284828115156118f457fe5b04145b15156118ff57fe5b8091505092915050565b600080828401905083811015151561191d57fe5b8091505092915050565b6000806000806000806000806008546a129c8f71ad02e2a680000003965061195a6108ca8a6118d690919063ffffffff16565b955085871015156119885761197a8660085461190990919063ffffffff16565b600881905550859750611b29565b6000871115611a01576119a66108ca88611c2c90919063ffffffff16565b890394506119bf610834866118d690919063ffffffff16565b93506119d68760085461190990919063ffffffff16565b6008819055506119f18460095461190990919063ffffffff16565b6009819055508387019750611b29565b6009546a115eec47f6cf7e35000000039250611a286108348a6118d690919063ffffffff16565b93508383101515611a5657611a488460095461190990919063ffffffff16565b600981905550839750611b29565b6000831115611acf57611a7461083484611c2c90919063ffffffff16565b89039450611a8d6107d0866118d690919063ffffffff16565b9150611aa48360095461190990919063ffffffff16565b600981905550611abf82600a5461190990919063ffffffff16565b600a819055508183019750611b29565b600a546a108b2a2c28029094000000039050611af66107d08a6118d690919063ffffffff16565b91508181101515611b2457611b1682600a5461190990919063ffffffff16565b600a81905550819750611b29565b600097505b5050505050505092915050565b73c6bc39a8038a9c1dfdfe73ce1df4e5094d30e6f473ffffffffffffffffffffffffffffffffffffffff166108fc611b8b6064611b7d6062346118d690919063ffffffff16565b611c2c90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501515611bb057600080fd5b73782872fb9459fc0dbdf8c0edb5fe3d5f214a666073ffffffffffffffffffffffffffffffffffffffff166108fc611c056064611bf76002346118d690919063ffffffff16565b611c2c90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501515611c2a57600080fd5b565b6000808284811515611c3a57fe5b04905080915050929150505600a165627a7a72305820ab5e36e59a1374c009414ae71ec9300eda4bb276d82f4c3f8ab12dc6f3b075b70029

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

000000000000000000000000000000000000000000000000000000005aafa640000000000000000000000000000000000000000000000000000000005ac0c9c0000000000000000000000000000000000000000000000000000000005ae70540

-----Decoded View---------------
Arg [0] : _presaleStartTime (uint256): 1521460800
Arg [1] : _publicStartTime (uint256): 1522584000
Arg [2] : _publicEndTime (uint256): 1525089600

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000000000005aafa640
Arg [1] : 000000000000000000000000000000000000000000000000000000005ac0c9c0
Arg [2] : 000000000000000000000000000000000000000000000000000000005ae70540


Swarm Source

bzzr://99d832302c6f27a2d3da4a190ed362c3b0594b3b3aa0c3c5cc3f43a5285eae56

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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