ERC-20
Gambling
Overview
Max Total Supply
150,000,000 GIM
Holders
940 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 8 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Gimli
Compiler Version
v0.4.16+commit.d7661dd9
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2017-09-16 */ pragma solidity ^0.4.11; contract ERC20Basic { uint256 public totalSupply; function balanceOf(address who) constant returns (uint256); function transfer(address to, uint256 value) returns (bool success); event Transfer(address indexed from, address indexed to, uint256 value); } contract ERC20 is ERC20Basic { function allowance(address owner, address spender) constant returns (uint256); function transferFrom(address from, address to, uint256 value) returns (bool success); function approve(address spender, uint256 value) returns (bool success); event Approval(address indexed owner, address indexed spender, uint256 value); } contract SafeMath { function safeMul(uint a, uint b) internal returns (uint) { uint c = a * b; assert(a == 0 || c / a == b); return c; } function safeDiv(uint a, uint b) internal returns (uint) { assert(b > 0); uint c = a / b; assert(a == b * c + a % b); return c; } function safeSub(uint a, uint b) internal returns (uint) { assert(b <= a); return a - b; } function safeAdd(uint a, uint b) internal returns (uint) { uint c = a + b; assert(c>=a && c>=b); return c; } function max64(uint64 a, uint64 b) internal constant returns (uint64) { return a >= b ? a : b; } function min64(uint64 a, uint64 b) internal constant returns (uint64) { return a < b ? a : b; } function max256(uint256 a, uint256 b) internal constant returns (uint256) { return a >= b ? a : b; } function min256(uint256 a, uint256 b) internal constant returns (uint256) { return a < b ? a : b; } } contract Ownable { address public owner; address public newOwner; event OwnershipTransferred(address indexed _from, address indexed _to); modifier onlyOwner() { require(msg.sender == owner); _; } function Ownable() { owner = msg.sender; } /// @notice Transfer ownership from `owner` to `newOwner` /// @param _newOwner The new contract owner function transferOwnership(address _newOwner) onlyOwner { if (_newOwner != address(0)) { newOwner = _newOwner; } } /// @notice accept ownership of the contract function acceptOwnership() { require(msg.sender == newOwner); OwnershipTransferred(owner, newOwner); owner = newOwner; } } contract Administrable is Ownable { event AdminstratorAdded(address adminAddress); event AdminstratorRemoved(address adminAddress); mapping (address => bool) public administrators; modifier onlyAdministrator() { require(administrators[msg.sender] || owner == msg.sender); // owner is an admin by default _; } /// @notice Add an administrator /// @param _adminAddress The new administrator address function addAdministrators(address _adminAddress) onlyOwner { administrators[_adminAddress] = true; AdminstratorAdded(_adminAddress); } /// @notice Remove an administrator /// @param _adminAddress The administrator address to remove function removeAdministrators(address _adminAddress) onlyOwner { delete administrators[_adminAddress]; AdminstratorRemoved(_adminAddress); } } /// @title Gimli Token Contract. contract GimliToken is ERC20, SafeMath, Ownable { /************************* **** Global variables **** *************************/ uint8 public constant decimals = 8; string public constant name = "Gimli Token"; string public constant symbol = "GIM"; string public constant version = 'v1'; /// total amount of tokens uint256 public constant UNIT = 10**uint256(decimals); uint256 constant MILLION_GML = 10**6 * UNIT; // can't use `safeMul` with constant /// Should include CROWDSALE_AMOUNT and VESTING_X_AMOUNT uint256 public constant TOTAL_SUPPLY = 150 * MILLION_GML; // can't use `safeMul` with constant; /// balances indexed by address mapping (address => uint256) balances; /// allowances indexed by owner and spender mapping (address => mapping (address => uint256)) allowed; bool public transferable = false; /********************* **** Transactions **** *********************/ /// @notice send `_value` token to `_to` from `msg.sender` /// @param _to The address of the recipient /// @param _value The amount of token to be transferred /// @return Whether the transfer was successful or not function transfer(address _to, uint256 _value) returns (bool success) { require(transferable); require(balances[msg.sender] >= _value && _value >=0); balances[msg.sender] = safeSub(balances[msg.sender], _value); balances[_to] = safeAdd(balances[_to], _value); Transfer(msg.sender, _to, _value); return true; } /// @notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from` /// @param _from The address of the sender /// @param _to The address of the recipient /// @param _value The amount of token to be transferred /// @return Whether the transfer was successful or not function transferFrom(address _from, address _to, uint256 _value) returns (bool success) { require(transferable); require(balances[_from] >= _value && allowed[_from][msg.sender] >= _value && _value >= 0); balances[_from] = safeSub(balances[_from], _value); balances[_to] = safeAdd(balances[_to], _value); allowed[_from][msg.sender] = safeSub(allowed[_from][msg.sender], _value); Transfer(_from, _to, _value); return true; } /// @notice `msg.sender` approves `_spender` to spend `_value` tokens /// @param _spender The address of the account able to transfer the tokens /// @param _value The amount of tokens to be approved for transfer /// @return Whether the approval was successful or not function approve(address _spender, uint256 _value) returns (bool success) { // To change the approve amount you first have to reduce the addresses` // allowance to zero by calling `approve(_spender, 0)` if it is not // already 0 to mitigate the race condition described here: // https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 require((_value == 0) || (allowed[msg.sender][_spender] == 0)); allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); return true; } /**************** **** Getters **** ****************/ /// @notice Get balance of an address /// @param _owner The address from which the balance will be retrieved /// @return The balance function balanceOf(address _owner) constant returns (uint256 balance) { return balances[_owner]; } /// @notice Get tokens allowed to spent by `_spender` /// @param _owner The address of the account owning tokens /// @param _spender The address of the account able to transfer the tokens /// @return Amount of remaining tokens allowed to spent function allowance(address _owner, address _spender) constant returns (uint256 remaining) { return allowed[_owner][_spender]; } } /// @title Gimli Crowdsale Contract. contract GimliCrowdsale is SafeMath, GimliToken { address public constant MULTISIG_WALLET_ADDRESS = 0xc79ab28c5c03f1e7fbef056167364e6782f9ff4f; address public constant LOCKED_ADDRESS = 0xABcdEFABcdEFabcdEfAbCdefabcdeFABcDEFabCD; // crowdsale uint256 public constant CROWDSALE_AMOUNT = 80 * MILLION_GML; // Should not include vested amount uint256 public constant START_DATE = 1505736000; // (epoch timestamp) uint256 public constant END_DATE = 1508500800; // TODO (epoch timestamp) uint256 public constant CROWDSALE_PRICE = 700; // 700 GML / ETH uint256 public constant VESTING_1_AMOUNT = 10 * MILLION_GML; // GIM reserve fund uint256 public constant VESTING_1_DATE = 1537272000; // TODO (epoch timestamp) uint256 public constant VESTING_2_AMOUNT = 30 * MILLION_GML; // Team uint256 public constant VESTING_2_DATE = 1568808000; // TODO (epoch timestamp) bool public vesting1Withdrawn = false; bool public vesting2Withdrawn = false; bool public crowdsaleCanceled = false; uint256 public soldAmount; // GIM uint256 public paidAmount; // ETH /// @notice `msg.sender` invest `msg.value` function() payable { require(!crowdsaleCanceled); require(msg.value > 0); // check date require(block.timestamp >= START_DATE && block.timestamp <= END_DATE); // calculate and check quantity uint256 quantity = safeDiv(safeMul(msg.value, CROWDSALE_PRICE), 10**(18-uint256(decimals))); require(safeSub(balances[this], quantity) >= 0); require(MULTISIG_WALLET_ADDRESS.send(msg.value)); // update balances balances[this] = safeSub(balances[this], quantity); balances[msg.sender] = safeAdd(balances[msg.sender], quantity); soldAmount = safeAdd(soldAmount, quantity); paidAmount = safeAdd(paidAmount, msg.value); Transfer(this, msg.sender, quantity); } /// @notice returns non-sold tokens to owner function closeCrowdsale() onlyOwner { // check if closable require(block.timestamp > END_DATE || crowdsaleCanceled || balances[this] == 0); // enable token transfer transferable = true; // update balances if (balances[this] > 0) { uint256 amount = balances[this]; balances[MULTISIG_WALLET_ADDRESS] = safeAdd(balances[MULTISIG_WALLET_ADDRESS], amount); balances[this] = 0; Transfer(this, MULTISIG_WALLET_ADDRESS, amount); } } /// @notice Terminate the crowdsale before END_DATE function cancelCrowdsale() onlyOwner { crowdsaleCanceled = true; } /// @notice Pre-allocate tokens to advisor or partner /// @param _to The pre-allocation destination /// @param _value The amount of token to be allocated /// @param _price ETH paid for these tokens function preAllocate(address _to, uint256 _value, uint256 _price) onlyOwner { require(block.timestamp < START_DATE); balances[this] = safeSub(balances[this], _value); balances[_to] = safeAdd(balances[_to], _value); soldAmount = safeAdd(soldAmount, _value); paidAmount = safeAdd(paidAmount, _price); Transfer(this, _to, _value); } /// @notice Send vested amount to _destination /// @param _destination The address of the recipient /// @return Whether the release was successful or not function releaseVesting(address _destination) onlyOwner returns (bool success) { if (block.timestamp > VESTING_1_DATE && vesting1Withdrawn == false) { balances[LOCKED_ADDRESS] = safeSub(balances[LOCKED_ADDRESS], VESTING_1_AMOUNT); balances[_destination] = safeAdd(balances[_destination], VESTING_1_AMOUNT); vesting1Withdrawn = true; Transfer(LOCKED_ADDRESS, _destination, VESTING_1_AMOUNT); return true; } if (block.timestamp > VESTING_2_DATE && vesting2Withdrawn == false) { balances[LOCKED_ADDRESS] = safeSub(balances[LOCKED_ADDRESS], VESTING_2_AMOUNT); balances[_destination] = safeAdd(balances[_destination], VESTING_2_AMOUNT); vesting2Withdrawn = true; Transfer(LOCKED_ADDRESS, _destination, VESTING_2_AMOUNT); return true; } return false; } /// @notice transfer out any accidentally sent ERC20 tokens /// @param tokenAddress Address of the ERC20 contract /// @param amount The amount of token to be transfered function transferOtherERC20Token(address tokenAddress, uint256 amount) onlyOwner returns (bool success) { // can't be used for GIM token require(tokenAddress != address(this) || transferable); return ERC20(tokenAddress).transfer(owner, amount); } } /// @title Main Gimli contract. contract Gimli is GimliCrowdsale, Administrable { address public streamerContract; uint256 public streamerContractMaxAmount; event StreamerContractChanged(address newContractAddress, uint256 newMaxAmount); /// @notice Gimli Contract constructor. `msg.sender` is the owner. function Gimli() { // Give the multisig wallet initial tokens balances[MULTISIG_WALLET_ADDRESS] = safeAdd(balances[MULTISIG_WALLET_ADDRESS], TOTAL_SUPPLY - CROWDSALE_AMOUNT - VESTING_1_AMOUNT - VESTING_2_AMOUNT); // Give the contract crowdsale amount balances[this] = CROWDSALE_AMOUNT; // Locked address balances[LOCKED_ADDRESS] = VESTING_1_AMOUNT + VESTING_2_AMOUNT; // For ERC20 compatibility totalSupply = TOTAL_SUPPLY; } /// @notice authorize an address to transfer GIM on behalf an user /// @param _contractAddress Address of GimliStreamer contract /// @param _maxAmount The maximum amount that can be transfered by the contract function setStreamerContract( address _contractAddress, uint256 _maxAmount) onlyAdministrator { // To change the maximum amount you first have to reduce it to 0` require(_maxAmount == 0 || streamerContractMaxAmount == 0); streamerContract = _contractAddress; streamerContractMaxAmount = _maxAmount; StreamerContractChanged(streamerContract, streamerContractMaxAmount); } /// @notice Called by a Gimli contract to transfer GIM /// @param _from The address of the sender /// @param _to The address of the recipient /// @param _amount The amount of token to be transferred /// @return Whether the transfer was successful or not function transferGIM(address _from, address _to, uint256 _amount) returns (bool success) { require(msg.sender == streamerContract); require(tx.origin == _from); require(_amount <= streamerContractMaxAmount); if (balances[_from] < _amount || _amount <= 0) return false; balances[_from] = safeSub(balances[_from], _amount); balances[_to] = safeAdd(balances[_to], _amount); Transfer(_from, _to, _amount); return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":"paidAmount","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":true,"inputs":[],"name":"VESTING_1_DATE","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":"VESTING_2_AMOUNT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MULTISIG_WALLET_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"START_DATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_adminAddress","type":"address"}],"name":"removeAdministrators","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"END_DATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"LOCKED_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"streamerContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_contractAddress","type":"address"},{"name":"_maxAmount","type":"uint256"}],"name":"setStreamerContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"VESTING_1_AMOUNT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vesting2Withdrawn","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vesting1Withdrawn","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"administrators","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","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":"TOTAL_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"transferable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_adminAddress","type":"address"}],"name":"addAdministrators","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"closeCrowdsale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"UNIT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CROWDSALE_PRICE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferGIM","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"amount","type":"uint256"}],"name":"transferOtherERC20Token","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"VESTING_2_DATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_price","type":"uint256"}],"name":"preAllocate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_destination","type":"address"}],"name":"releaseVesting","outputs":[{"name":"success","type":"bool"}],"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":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","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":"streamerContractMaxAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"crowdsaleCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"cancelCrowdsale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CROWDSALE_AMOUNT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"soldAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newContractAddress","type":"address"},{"indexed":false,"name":"newMaxAmount","type":"uint256"}],"name":"StreamerContractChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"adminAddress","type":"address"}],"name":"AdminstratorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"adminAddress","type":"address"}],"name":"AdminstratorRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"OwnershipTransferred","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"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]
Contract Creation Code
60606040526005805463ffffffff1916905534156200001d57600080fd5b5b5b60018054600160a060020a03191633600160a060020a03161790555b73c79ab28c5c03f1e7fbef056167364e6782f9ff4f600052600360205260008051602062001cde833981519152546200008a90660aa87bee53800064010000000062000c5b6200010f82021704565b600360205260008051602062001cde8339815191525530600160a060020a0316600090815260408120661c6bf526340000905573abcdefabcdefabcdefabcdefabcdefabcdefabcd8152660e35fa931a00007fcbc8b230df322dcd07a5b8f4b5704f64963787c7c8a2e28a55f089d48223b00a5566354a6ba7a1800090555b62000139565b6000828201838110801590620001255750828110155b15156200012e57fe5b8091505b5092915050565b611b9580620001496000396000f300606060405236156102175763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146103aa578063095ea7b31461043557806312fa769f1461046b57806318160ddd1461049057806322b930f7146104b557806323b872dd146104da5780632e84bed814610516578063313ce5671461053b5780633603b0b014610564578063372c6533146105935780633dde3918146105b8578063545599ff146105d957806354fd4d50146105fe57806355532953146106895780635588b929146106b85780635fd7793a146106e75780636d0769661461070b57806370a0823114610730578063717fecea1461076157806375ad31a01461078857806376be1585146107af57806379ba5097146107e25780638da5cb5b146107f7578063902d55a51461082657806392ff0d311461084b57806393cd22b81461087257806395d89b4114610893578063983c0a011461091e5780639d8e217714610933578063a86416e214610958578063a9059cbb1461097d578063aa994ab8146109b3578063baaf2d4f146109ef578063cb5fe36e14610a25578063d033e6ee14610a4a578063d486d12914610a71578063d4ee1d9014610aa4578063dd62ed3e14610ad3578063f2fde38b14610b0a578063f597d09714610b2b578063f75640b314610b50578063f7af21c914610b77578063f997732914610b8c578063fa1a5f5914610bb1575b5b6005546000906301000000900460ff161561023257600080fd5b6000341161023f57600080fd5b6359bfb540421015801561025757506359e9e5404211155b151561026257600080fd5b61027c610271346102bc610bd6565b6402540be400610c05565b600160a060020a033016600090815260036020526040812054919250906102a39083610c44565b10156102ae57600080fd5b73c79ab28c5c03f1e7fbef056167364e6782f9ff4f3480156108fc0290604051600060405180830381858888f1935050505015156102eb57600080fd5b600160a060020a03301660009081526003602052604090205461030e9082610c44565b600160a060020a0330811660009081526003602052604080822093909355339091168152205461033e9082610c5b565b600160a060020a0333166000908152600360205260409020556006546103649082610c5b565b6006556007546103749034610c5b565b600755600160a060020a03338116903016600080516020611b4a8339815191528360405190815260200160405180910390a35b50005b34156103b557600080fd5b6103bd610c83565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156103fa5780820151818401525b6020016103e1565b50505050905090810190601f1680156104275780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561044057600080fd5b610457600160a060020a0360043516602435610cba565b604051901515815260200160405180910390f35b341561047657600080fd5b61047e610d61565b60405190815260200160405180910390f35b341561049b57600080fd5b61047e610d67565b60405190815260200160405180910390f35b34156104c057600080fd5b61047e610d6d565b60405190815260200160405180910390f35b34156104e557600080fd5b610457600160a060020a0360043581169060243516604435610d75565b604051901515815260200160405180910390f35b341561052157600080fd5b61047e610ee1565b60405190815260200160405180910390f35b341561054657600080fd5b61054e610eec565b60405160ff909116815260200160405180910390f35b341561056f57600080fd5b610577610ef1565b604051600160a060020a03909116815260200160405180910390f35b341561059e57600080fd5b61047e610f09565b60405190815260200160405180910390f35b34156105c357600080fd5b6105d7600160a060020a0360043516610f11565b005b34156105e457600080fd5b61047e610f90565b60405190815260200160405180910390f35b341561060957600080fd5b6103bd610f98565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156103fa5780820151818401525b6020016103e1565b50505050905090810190601f1680156104275780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561069457600080fd5b610577610fcf565b604051600160a060020a03909116815260200160405180910390f35b34156106c357600080fd5b610577610fe7565b604051600160a060020a03909116815260200160405180910390f35b34156106f257600080fd5b6105d7600160a060020a0360043516602435610ff6565b005b341561071657600080fd5b61047e6110cc565b60405190815260200160405180910390f35b341561073b57600080fd5b61047e600160a060020a03600435166110d7565b60405190815260200160405180910390f35b341561076c57600080fd5b6104576110f6565b604051901515815260200160405180910390f35b341561079357600080fd5b610457611105565b604051901515815260200160405180910390f35b34156107ba57600080fd5b610457600160a060020a0360043516611113565b604051901515815260200160405180910390f35b34156107ed57600080fd5b6105d7611128565b005b341561080257600080fd5b6105776111b4565b604051600160a060020a03909116815260200160405180910390f35b341561083157600080fd5b61047e6111c3565b60405190815260200160405180910390f35b341561085657600080fd5b6104576111ce565b604051901515815260200160405180910390f35b341561087d57600080fd5b6105d7600160a060020a03600435166111d7565b005b341561089e57600080fd5b6103bd611259565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156103fa5780820151818401525b6020016103e1565b50505050905090810190601f1680156104275780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561092957600080fd5b6105d7611290565b005b341561093e57600080fd5b61047e6113fc565b60405190815260200160405180910390f35b341561096357600080fd5b61047e611404565b60405190815260200160405180910390f35b341561098857600080fd5b610457600160a060020a036004351660243561140a565b604051901515815260200160405180910390f35b34156109be57600080fd5b610457600160a060020a03600435811690602435166044356114f5565b604051901515815260200160405180910390f35b34156109fa57600080fd5b610457600160a060020a0360043516602435611619565b604051901515815260200160405180910390f35b3415610a3057600080fd5b61047e611705565b60405190815260200160405180910390f35b3415610a5557600080fd5b6105d7600160a060020a036004351660243560443561170d565b005b3415610a7c57600080fd5b610457600160a060020a03600435166117f9565b604051901515815260200160405180910390f35b3415610aaf57600080fd5b610577611a3c565b604051600160a060020a03909116815260200160405180910390f35b3415610ade57600080fd5b61047e600160a060020a0360043581169060243516611a4b565b60405190815260200160405180910390f35b3415610b1557600080fd5b6105d7600160a060020a0360043516611a78565b005b3415610b3657600080fd5b61047e611ad0565b60405190815260200160405180910390f35b3415610b5b57600080fd5b610457611ad6565b604051901515815260200160405180910390f35b3415610b8257600080fd5b6105d7611ae6565b005b3415610b9757600080fd5b61047e611b18565b60405190815260200160405180910390f35b3415610bbc57600080fd5b61047e611b23565b60405190815260200160405180910390f35b6000828202831580610bf25750828482811515610bef57fe5b04145b1515610bfa57fe5b8091505b5092915050565b600080808311610c1157fe5b8284811515610c1c57fe5b0490508284811515610c2a57fe5b068184020184141515610bfa57fe5b8091505b5092915050565b600082821115610c5057fe5b508082035b92915050565b6000828201838110801590610bf25750828110155b1515610bfa57fe5b8091505b5092915050565b60408051908101604052600b81527f47696d6c6920546f6b656e000000000000000000000000000000000000000000602082015281565b6000811580610cec5750600160a060020a03338116600090815260046020908152604080832093871683529290522054155b1515610cf757600080fd5b600160a060020a03338116600081815260046020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b60075481565b60005481565b635ba0e8c081565b60055460009060ff161515610d8957600080fd5b600160a060020a038416600090815260036020526040902054829010801590610dd95750600160a060020a0380851660009081526004602090815260408083203390941683529290522054829010155b8015610de6575060008210155b1515610df157600080fd5b600160a060020a038416600090815260036020526040902054610e149083610c44565b600160a060020a038086166000908152600360205260408082209390935590851681522054610e439083610c5b565b600160a060020a03808516600090815260036020908152604080832094909455878316825260048152838220339093168252919091522054610e859083610c44565b600160a060020a0380861660008181526004602090815260408083203386168452909152908190209390935590851691600080516020611b4a8339815191529085905190815260200160405180910390a35060015b9392505050565b660aa87bee53800081565b600881565b73c79ab28c5c03f1e7fbef056167364e6782f9ff4f81565b6359bfb54081565b60015433600160a060020a03908116911614610f2c57600080fd5b600160a060020a03811660009081526008602052604090819020805460ff191690557f229460e7e71cb0f5fd51f3ef9f4a1c8aec5a2039ca102291844e55e7b6e20a2190829051600160a060020a03909116815260200160405180910390a15b5b50565b6359e9e54081565b60408051908101604052600281527f7631000000000000000000000000000000000000000000000000000000000000602082015281565b73abcdefabcdefabcdefabcdefabcdefabcdefabcd81565b600954600160a060020a031681565b600160a060020a03331660009081526008602052604090205460ff168061102b575060015433600160a060020a039081169116145b151561103657600080fd5b8015806110435750600a54155b151561104e57600080fd5b6009805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038481169190911791829055600a8390557f2f9a8bf238210d8404eee51d85f87c589e9cebd6bf8b5aaaaf925415b2eb13a4911682604051600160a060020a03909216825260208201526040908101905180910390a15b5b5050565b66038d7ea4c6800081565b600160a060020a0381166000908152600360205260409020545b919050565b60055462010000900460ff1681565b600554610100900460ff1681565b60086020526000908152604090205460ff1681565b60025433600160a060020a0390811691161461114357600080fd5b600254600154600160a060020a0391821691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36002546001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b565b600154600160a060020a031681565b66354a6ba7a1800081565b60055460ff1681565b60015433600160a060020a039081169116146111f257600080fd5b600160a060020a03811660009081526008602052604090819020805460ff191660011790557f8bcad96a272856281cdab9315e972c6c9c48a2f3cb957fec38c355b0c3afb2c190829051600160a060020a03909116815260200160405180910390a15b5b50565b60408051908101604052600381527f47494d0000000000000000000000000000000000000000000000000000000000602082015281565b60015460009033600160a060020a039081169116146112ae57600080fd5b6359e9e5404211806112c957506005546301000000900460ff165b806112ea5750600160a060020a033016600090815260036020526040902054155b15156112f557600080fd5b6005805460ff19166001179055600160a060020a0330166000908152600360205260408120541115610f8c5750600160a060020a03301660009081526003602052604081205473c79ab28c5c03f1e7fbef056167364e6782f9ff4f9091527f40ddf0127676746c4caa6d5ec80a9b34ffa96652f32d85bf7fafce1e71ac293c5461137f9082610c5b565b60036020527f40ddf0127676746c4caa6d5ec80a9b34ffa96652f32d85bf7fafce1e71ac293c5530600160a060020a0316600081815260408082209190915573c79ab28c5c03f1e7fbef056167364e6782f9ff4f9190600080516020611b4a8339815191529084905190815260200160405180910390a35b5b5b50565b6305f5e10081565b6102bc81565b60055460009060ff16151561141e57600080fd5b600160a060020a033316600090815260036020526040902054829010801590611448575060008210155b151561145357600080fd5b600160a060020a0333166000908152600360205260409020546114769083610c44565b600160a060020a0333811660009081526003602052604080822093909355908516815220546114a59083610c5b565b600160a060020a038085166000818152600360205260409081902093909355913390911690600080516020611b4a8339815191529085905190815260200160405180910390a35060015b92915050565b60095460009033600160a060020a0390811691161461151357600080fd5b83600160a060020a031632600160a060020a031614151561153357600080fd5b600a5482111561154257600080fd5b600160a060020a0384166000908152600360205260409020548290108061156a575060008211155b1561157757506000610eda565b600160a060020a03841660009081526003602052604090205461159a9083610c44565b600160a060020a0380861660009081526003602052604080822093909355908516815220546115c99083610c5b565b600160a060020a0380851660008181526003602052604090819020939093559190861690600080516020611b4a8339815191529085905190815260200160405180910390a35060015b9392505050565b60015460009033600160a060020a0390811691161461163757600080fd5b30600160a060020a031683600160a060020a031614158061165a575060055460ff165b151561166557600080fd5b600154600160a060020a038085169163a9059cbb9116846000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156116e157600080fd5b6102c65a03f115156116f257600080fd5b50505060405180519150505b5b92915050565b635d821c4081565b60015433600160a060020a0390811691161461172857600080fd5b6359bfb540421061173857600080fd5b600160a060020a03301660009081526003602052604090205461175b9083610c44565b600160a060020a03308116600090815260036020526040808220939093559085168152205461178a9083610c5b565b600160a060020a0384166000908152600360205260409020556006546117b09083610c5b565b6006556007546117c09082610c5b565b600755600160a060020a03808416903016600080516020611b4a8339815191528460405190815260200160405180910390a35b5b505050565b60015460009033600160a060020a0390811691161461181757600080fd5b635ba0e8c0421180156118325750600554610100900460ff16155b156119235773abcdefabcdefabcdefabcdefabcdefabcdefabcd6000526003602052600080516020611b2a833981519152546118759066038d7ea4c68000610c44565b6003602052600080516020611b2a83398151915255600160a060020a038216600090815260409020546118af9066038d7ea4c68000610c5b565b600160a060020a03831660008181526003602052604090819020929092556005805461ff0019166101001790559073abcdefabcdefabcdefabcdefabcdefabcdefabcd90600080516020611b4a8339815191529066038d7ea4c68000905190815260200160405180910390a35060016110f1565b635d821c404211801561193f575060055462010000900460ff16155b15611a325773abcdefabcdefabcdefabcdefabcdefabcdefabcd6000526003602052600080516020611b2a8339815191525461198290660aa87bee538000610c44565b6003602052600080516020611b2a83398151915255600160a060020a038216600090815260409020546119bc90660aa87bee538000610c5b565b600160a060020a03831660008181526003602052604090819020929092556005805462ff00001916620100001790559073abcdefabcdefabcdefabcdefabcdefabcdefabcd90600080516020611b4a83398151915290660aa87bee538000905190815260200160405180910390a35060016110f1565b5060005b5b919050565b600254600160a060020a031681565b600160a060020a038083166000908152600460209081526040808320938516835292905220545b92915050565b60015433600160a060020a03908116911614611a9357600080fd5b600160a060020a03811615610f8c576002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b600a5481565b6005546301000000900460ff1681565b60015433600160a060020a03908116911614611b0157600080fd5b6005805463ff000000191663010000001790555b5b565b661c6bf52634000081565b600654815600cbc8b230df322dcd07a5b8f4b5704f64963787c7c8a2e28a55f089d48223b00addf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058206c0286be97ba73afde87c149c234469f0690bbd95c5cee7480c1cac790bfb08a002940ddf0127676746c4caa6d5ec80a9b34ffa96652f32d85bf7fafce1e71ac293c
Deployed Bytecode
0x606060405236156102175763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146103aa578063095ea7b31461043557806312fa769f1461046b57806318160ddd1461049057806322b930f7146104b557806323b872dd146104da5780632e84bed814610516578063313ce5671461053b5780633603b0b014610564578063372c6533146105935780633dde3918146105b8578063545599ff146105d957806354fd4d50146105fe57806355532953146106895780635588b929146106b85780635fd7793a146106e75780636d0769661461070b57806370a0823114610730578063717fecea1461076157806375ad31a01461078857806376be1585146107af57806379ba5097146107e25780638da5cb5b146107f7578063902d55a51461082657806392ff0d311461084b57806393cd22b81461087257806395d89b4114610893578063983c0a011461091e5780639d8e217714610933578063a86416e214610958578063a9059cbb1461097d578063aa994ab8146109b3578063baaf2d4f146109ef578063cb5fe36e14610a25578063d033e6ee14610a4a578063d486d12914610a71578063d4ee1d9014610aa4578063dd62ed3e14610ad3578063f2fde38b14610b0a578063f597d09714610b2b578063f75640b314610b50578063f7af21c914610b77578063f997732914610b8c578063fa1a5f5914610bb1575b5b6005546000906301000000900460ff161561023257600080fd5b6000341161023f57600080fd5b6359bfb540421015801561025757506359e9e5404211155b151561026257600080fd5b61027c610271346102bc610bd6565b6402540be400610c05565b600160a060020a033016600090815260036020526040812054919250906102a39083610c44565b10156102ae57600080fd5b73c79ab28c5c03f1e7fbef056167364e6782f9ff4f3480156108fc0290604051600060405180830381858888f1935050505015156102eb57600080fd5b600160a060020a03301660009081526003602052604090205461030e9082610c44565b600160a060020a0330811660009081526003602052604080822093909355339091168152205461033e9082610c5b565b600160a060020a0333166000908152600360205260409020556006546103649082610c5b565b6006556007546103749034610c5b565b600755600160a060020a03338116903016600080516020611b4a8339815191528360405190815260200160405180910390a35b50005b34156103b557600080fd5b6103bd610c83565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156103fa5780820151818401525b6020016103e1565b50505050905090810190601f1680156104275780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561044057600080fd5b610457600160a060020a0360043516602435610cba565b604051901515815260200160405180910390f35b341561047657600080fd5b61047e610d61565b60405190815260200160405180910390f35b341561049b57600080fd5b61047e610d67565b60405190815260200160405180910390f35b34156104c057600080fd5b61047e610d6d565b60405190815260200160405180910390f35b34156104e557600080fd5b610457600160a060020a0360043581169060243516604435610d75565b604051901515815260200160405180910390f35b341561052157600080fd5b61047e610ee1565b60405190815260200160405180910390f35b341561054657600080fd5b61054e610eec565b60405160ff909116815260200160405180910390f35b341561056f57600080fd5b610577610ef1565b604051600160a060020a03909116815260200160405180910390f35b341561059e57600080fd5b61047e610f09565b60405190815260200160405180910390f35b34156105c357600080fd5b6105d7600160a060020a0360043516610f11565b005b34156105e457600080fd5b61047e610f90565b60405190815260200160405180910390f35b341561060957600080fd5b6103bd610f98565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156103fa5780820151818401525b6020016103e1565b50505050905090810190601f1680156104275780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561069457600080fd5b610577610fcf565b604051600160a060020a03909116815260200160405180910390f35b34156106c357600080fd5b610577610fe7565b604051600160a060020a03909116815260200160405180910390f35b34156106f257600080fd5b6105d7600160a060020a0360043516602435610ff6565b005b341561071657600080fd5b61047e6110cc565b60405190815260200160405180910390f35b341561073b57600080fd5b61047e600160a060020a03600435166110d7565b60405190815260200160405180910390f35b341561076c57600080fd5b6104576110f6565b604051901515815260200160405180910390f35b341561079357600080fd5b610457611105565b604051901515815260200160405180910390f35b34156107ba57600080fd5b610457600160a060020a0360043516611113565b604051901515815260200160405180910390f35b34156107ed57600080fd5b6105d7611128565b005b341561080257600080fd5b6105776111b4565b604051600160a060020a03909116815260200160405180910390f35b341561083157600080fd5b61047e6111c3565b60405190815260200160405180910390f35b341561085657600080fd5b6104576111ce565b604051901515815260200160405180910390f35b341561087d57600080fd5b6105d7600160a060020a03600435166111d7565b005b341561089e57600080fd5b6103bd611259565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156103fa5780820151818401525b6020016103e1565b50505050905090810190601f1680156104275780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561092957600080fd5b6105d7611290565b005b341561093e57600080fd5b61047e6113fc565b60405190815260200160405180910390f35b341561096357600080fd5b61047e611404565b60405190815260200160405180910390f35b341561098857600080fd5b610457600160a060020a036004351660243561140a565b604051901515815260200160405180910390f35b34156109be57600080fd5b610457600160a060020a03600435811690602435166044356114f5565b604051901515815260200160405180910390f35b34156109fa57600080fd5b610457600160a060020a0360043516602435611619565b604051901515815260200160405180910390f35b3415610a3057600080fd5b61047e611705565b60405190815260200160405180910390f35b3415610a5557600080fd5b6105d7600160a060020a036004351660243560443561170d565b005b3415610a7c57600080fd5b610457600160a060020a03600435166117f9565b604051901515815260200160405180910390f35b3415610aaf57600080fd5b610577611a3c565b604051600160a060020a03909116815260200160405180910390f35b3415610ade57600080fd5b61047e600160a060020a0360043581169060243516611a4b565b60405190815260200160405180910390f35b3415610b1557600080fd5b6105d7600160a060020a0360043516611a78565b005b3415610b3657600080fd5b61047e611ad0565b60405190815260200160405180910390f35b3415610b5b57600080fd5b610457611ad6565b604051901515815260200160405180910390f35b3415610b8257600080fd5b6105d7611ae6565b005b3415610b9757600080fd5b61047e611b18565b60405190815260200160405180910390f35b3415610bbc57600080fd5b61047e611b23565b60405190815260200160405180910390f35b6000828202831580610bf25750828482811515610bef57fe5b04145b1515610bfa57fe5b8091505b5092915050565b600080808311610c1157fe5b8284811515610c1c57fe5b0490508284811515610c2a57fe5b068184020184141515610bfa57fe5b8091505b5092915050565b600082821115610c5057fe5b508082035b92915050565b6000828201838110801590610bf25750828110155b1515610bfa57fe5b8091505b5092915050565b60408051908101604052600b81527f47696d6c6920546f6b656e000000000000000000000000000000000000000000602082015281565b6000811580610cec5750600160a060020a03338116600090815260046020908152604080832093871683529290522054155b1515610cf757600080fd5b600160a060020a03338116600081815260046020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b60075481565b60005481565b635ba0e8c081565b60055460009060ff161515610d8957600080fd5b600160a060020a038416600090815260036020526040902054829010801590610dd95750600160a060020a0380851660009081526004602090815260408083203390941683529290522054829010155b8015610de6575060008210155b1515610df157600080fd5b600160a060020a038416600090815260036020526040902054610e149083610c44565b600160a060020a038086166000908152600360205260408082209390935590851681522054610e439083610c5b565b600160a060020a03808516600090815260036020908152604080832094909455878316825260048152838220339093168252919091522054610e859083610c44565b600160a060020a0380861660008181526004602090815260408083203386168452909152908190209390935590851691600080516020611b4a8339815191529085905190815260200160405180910390a35060015b9392505050565b660aa87bee53800081565b600881565b73c79ab28c5c03f1e7fbef056167364e6782f9ff4f81565b6359bfb54081565b60015433600160a060020a03908116911614610f2c57600080fd5b600160a060020a03811660009081526008602052604090819020805460ff191690557f229460e7e71cb0f5fd51f3ef9f4a1c8aec5a2039ca102291844e55e7b6e20a2190829051600160a060020a03909116815260200160405180910390a15b5b50565b6359e9e54081565b60408051908101604052600281527f7631000000000000000000000000000000000000000000000000000000000000602082015281565b73abcdefabcdefabcdefabcdefabcdefabcdefabcd81565b600954600160a060020a031681565b600160a060020a03331660009081526008602052604090205460ff168061102b575060015433600160a060020a039081169116145b151561103657600080fd5b8015806110435750600a54155b151561104e57600080fd5b6009805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038481169190911791829055600a8390557f2f9a8bf238210d8404eee51d85f87c589e9cebd6bf8b5aaaaf925415b2eb13a4911682604051600160a060020a03909216825260208201526040908101905180910390a15b5b5050565b66038d7ea4c6800081565b600160a060020a0381166000908152600360205260409020545b919050565b60055462010000900460ff1681565b600554610100900460ff1681565b60086020526000908152604090205460ff1681565b60025433600160a060020a0390811691161461114357600080fd5b600254600154600160a060020a0391821691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36002546001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b565b600154600160a060020a031681565b66354a6ba7a1800081565b60055460ff1681565b60015433600160a060020a039081169116146111f257600080fd5b600160a060020a03811660009081526008602052604090819020805460ff191660011790557f8bcad96a272856281cdab9315e972c6c9c48a2f3cb957fec38c355b0c3afb2c190829051600160a060020a03909116815260200160405180910390a15b5b50565b60408051908101604052600381527f47494d0000000000000000000000000000000000000000000000000000000000602082015281565b60015460009033600160a060020a039081169116146112ae57600080fd5b6359e9e5404211806112c957506005546301000000900460ff165b806112ea5750600160a060020a033016600090815260036020526040902054155b15156112f557600080fd5b6005805460ff19166001179055600160a060020a0330166000908152600360205260408120541115610f8c5750600160a060020a03301660009081526003602052604081205473c79ab28c5c03f1e7fbef056167364e6782f9ff4f9091527f40ddf0127676746c4caa6d5ec80a9b34ffa96652f32d85bf7fafce1e71ac293c5461137f9082610c5b565b60036020527f40ddf0127676746c4caa6d5ec80a9b34ffa96652f32d85bf7fafce1e71ac293c5530600160a060020a0316600081815260408082209190915573c79ab28c5c03f1e7fbef056167364e6782f9ff4f9190600080516020611b4a8339815191529084905190815260200160405180910390a35b5b5b50565b6305f5e10081565b6102bc81565b60055460009060ff16151561141e57600080fd5b600160a060020a033316600090815260036020526040902054829010801590611448575060008210155b151561145357600080fd5b600160a060020a0333166000908152600360205260409020546114769083610c44565b600160a060020a0333811660009081526003602052604080822093909355908516815220546114a59083610c5b565b600160a060020a038085166000818152600360205260409081902093909355913390911690600080516020611b4a8339815191529085905190815260200160405180910390a35060015b92915050565b60095460009033600160a060020a0390811691161461151357600080fd5b83600160a060020a031632600160a060020a031614151561153357600080fd5b600a5482111561154257600080fd5b600160a060020a0384166000908152600360205260409020548290108061156a575060008211155b1561157757506000610eda565b600160a060020a03841660009081526003602052604090205461159a9083610c44565b600160a060020a0380861660009081526003602052604080822093909355908516815220546115c99083610c5b565b600160a060020a0380851660008181526003602052604090819020939093559190861690600080516020611b4a8339815191529085905190815260200160405180910390a35060015b9392505050565b60015460009033600160a060020a0390811691161461163757600080fd5b30600160a060020a031683600160a060020a031614158061165a575060055460ff165b151561166557600080fd5b600154600160a060020a038085169163a9059cbb9116846000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156116e157600080fd5b6102c65a03f115156116f257600080fd5b50505060405180519150505b5b92915050565b635d821c4081565b60015433600160a060020a0390811691161461172857600080fd5b6359bfb540421061173857600080fd5b600160a060020a03301660009081526003602052604090205461175b9083610c44565b600160a060020a03308116600090815260036020526040808220939093559085168152205461178a9083610c5b565b600160a060020a0384166000908152600360205260409020556006546117b09083610c5b565b6006556007546117c09082610c5b565b600755600160a060020a03808416903016600080516020611b4a8339815191528460405190815260200160405180910390a35b5b505050565b60015460009033600160a060020a0390811691161461181757600080fd5b635ba0e8c0421180156118325750600554610100900460ff16155b156119235773abcdefabcdefabcdefabcdefabcdefabcdefabcd6000526003602052600080516020611b2a833981519152546118759066038d7ea4c68000610c44565b6003602052600080516020611b2a83398151915255600160a060020a038216600090815260409020546118af9066038d7ea4c68000610c5b565b600160a060020a03831660008181526003602052604090819020929092556005805461ff0019166101001790559073abcdefabcdefabcdefabcdefabcdefabcdefabcd90600080516020611b4a8339815191529066038d7ea4c68000905190815260200160405180910390a35060016110f1565b635d821c404211801561193f575060055462010000900460ff16155b15611a325773abcdefabcdefabcdefabcdefabcdefabcdefabcd6000526003602052600080516020611b2a8339815191525461198290660aa87bee538000610c44565b6003602052600080516020611b2a83398151915255600160a060020a038216600090815260409020546119bc90660aa87bee538000610c5b565b600160a060020a03831660008181526003602052604090819020929092556005805462ff00001916620100001790559073abcdefabcdefabcdefabcdefabcdefabcdefabcd90600080516020611b4a83398151915290660aa87bee538000905190815260200160405180910390a35060016110f1565b5060005b5b919050565b600254600160a060020a031681565b600160a060020a038083166000908152600460209081526040808320938516835292905220545b92915050565b60015433600160a060020a03908116911614611a9357600080fd5b600160a060020a03811615610f8c576002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b600a5481565b6005546301000000900460ff1681565b60015433600160a060020a03908116911614611b0157600080fd5b6005805463ff000000191663010000001790555b5b565b661c6bf52634000081565b600654815600cbc8b230df322dcd07a5b8f4b5704f64963787c7c8a2e28a55f089d48223b00addf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058206c0286be97ba73afde87c149c234469f0690bbd95c5cee7480c1cac790bfb08a0029
Swarm Source
bzzr://6c0286be97ba73afde87c149c234469f0690bbd95c5cee7480c1cac790bfb08a
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.