Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
0 RKC
Holders
1,158
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
8,181,649.60261021989869056 RKCValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
RKCToken
Compiler Version
v0.4.13+commit.fb4cb1a
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2017-07-11 */ // Royal Kingdom Coin Token // www.royalkingdomcoin.com // // RKC token is a virtual token, governed by ERC20-compatible Ethereum Smart Contract and secured by Ethereum Blockchain // The official website is https://www.royalkingdomcoin.com/ // // The uints are all in wei and atto tokens (*10^-18) // The contract code itself, as usual, is at the end, after all the connected libraries pragma solidity ^0.4.11; /** * Math operations with safety checks */ library SafeMath { function mul(uint a, uint b) internal returns (uint) { uint c = a * b; assert(a == 0 || c / a == b); return c; } function div(uint a, uint b) internal returns (uint) { assert(b > 0); uint c = a / b; assert(a == b * c + a % b); return c; } function sub(uint a, uint b) internal returns (uint) { assert(b <= a); return a - b; } function add(uint a, uint b) internal returns (uint) { uint c = a + b; assert(c >= a); 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; } function assert(bool assertion) internal { if (!assertion) { throw; } } } /* * ERC20Basic * Simpler version of ERC20 interface * see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20Basic { uint public totalSupply; function balanceOf(address who) constant returns (uint); function transfer(address to, uint value); event Transfer(address indexed from, address indexed to, uint value); } /* * Basic token * Basic version of StandardToken, with no allowances */ contract BasicToken is ERC20Basic { using SafeMath for uint; mapping(address => uint) balances; /* * Fix for the ERC20 short address attack */ modifier onlyPayloadSize(uint size) { if(msg.data.length < size + 4) { throw; } _; } function transfer(address _to, uint _value) onlyPayloadSize(2 * 32) { balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); Transfer(msg.sender, _to, _value); } function balanceOf(address _owner) constant returns (uint balance) { return balances[_owner]; } } /* * ERC20 interface * see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 is ERC20Basic { function allowance(address owner, address spender) constant returns (uint); function transferFrom(address from, address to, uint value); function approve(address spender, uint value); event Approval(address indexed owner, address indexed spender, uint value); } /** * Standard ERC20 token * * https://github.com/ethereum/EIPs/issues/20 * Based on code by FirstBlood: * https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol */ contract StandardToken is BasicToken, ERC20 { mapping (address => mapping (address => uint)) allowed; function transferFrom(address _from, address _to, uint _value) { var _allowance = allowed[_from][msg.sender]; // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met // if (_value > _allowance) throw; balances[_to] = balances[_to].add(_value); balances[_from] = balances[_from].sub(_value); allowed[_from][msg.sender] = _allowance.sub(_value); Transfer(_from, _to, _value); } function approve(address _spender, uint _value) { allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); } function allowance(address _owner, address _spender) constant returns (uint remaining) { return allowed[_owner][_spender]; } } /* * Ownable * * Base contract with an owner. * Provides onlyOwner modifier, which prevents function from running if it is called by anyone other than the owner. */ contract Ownable { address public owner; function Ownable() { owner = msg.sender; } modifier onlyOwner() { if (msg.sender != owner) { throw; } _; } function transferOwnership(address newOwner) onlyOwner { if (newOwner != address(0)) { owner = newOwner; } } } contract RKCToken is StandardToken, Ownable { using SafeMath for uint; //-------------- Info for ERC20 explorers -----------------// string public name = "Royal Kingdom Coin"; string public symbol = "RKC"; uint public decimals = 18; //--------------------- Constants ------------------------// bool public constant TEST_MODE = false; uint public constant atto = 1000000000000000000; uint public constant INITIAL_SUPPLY = 15000000 * atto; // 15 mln RKC. Impossible to mint more than this address public teamWallet = 0xb79F963f200f85D0e3dD60C82ABB8F80b5869CB9; // Made up ICO address (designating the token pool reserved for ICO, no one has access to it) address public ico_address = 0x1c01C01C01C01c01C01c01c01c01C01c01c01c01; uint public constant ICO_START_TIME = 1499810400; //---------------------- Variables -------------------------// uint public current_supply = 0; // Holding the number of all the coins in existence uint public ico_starting_supply = 0; // How many atto tokens *were* available for sale at the beginning of the ICO uint public current_price_atto_tokens_per_wei = 0; // Holding current price (determined by the algorithm in buy()) //------------- Flags describing ICO stages --------------// bool public preSoldSharesDistributed = false; // Prevents accidental re-distribution of shares bool public isICOOpened = false; bool public isICOClosed = false; // 3 stages: // Contract has just been deployed and initialized. isICOOpened == false, isICOClosed == false // ICO has started, now anybody can buy(). isICOOpened == true, isICOClosed == false // ICO has finished, now the team can receive the ether. isICOOpened == false, isICOClosed == true //--------------------- Premiums -------------------------// uint[] public premiumPacks; mapping(address => uint) premiumPacksPaid; //---------------------- Events ---------------------------// event ICOOpened(); event ICOClosed(); event PriceChanged(uint old_price, uint new_price); event SupplyChanged(uint supply, uint old_supply); event RKCAcquired(address account, uint amount_in_wei, uint amount_in_rkc); // *************************************************************************** // Constructor function RKCToken() { // Some percentage of the tokens is already reserved by early employees and investors // Here we're initializing their balances distributePreSoldShares(); // Starting price current_price_atto_tokens_per_wei = calculateCurrentPrice(1); // Some other initializations premiumPacks.length = 0; } // Sending ether directly to the contract invokes buy() and assigns tokens to the sender function () payable { buy(); } // *************************************************************************** // Buy token by sending ether here // // Price is being determined by the algorithm in recalculatePrice() // You can also send the ether directly to the contract address function buy() payable { if (msg.value == 0) throw; // no tokens for you // Only works in the ICO stage, after that the token is going to be traded on the exchanges if (!isICOOpened) throw; if (isICOClosed) throw; // Deciding how many tokens can be bought with the ether received uint tokens = getAttoTokensAmountPerWeiInternal(msg.value); // Don't allow to buy more than 1% per transaction (secures from huge investors swalling the whole thing in 1 second) uint allowedInOneTransaction = current_supply / 100; if (tokens > allowedInOneTransaction) throw; // Just in case if (tokens > balances[ico_address]) throw; // Transfer from the ICO pool balances[ico_address] = balances[ico_address].sub(tokens); // if not enough, will throw balances[msg.sender] = balances[msg.sender].add(tokens); // Kick the price changing algo uint old_price = current_price_atto_tokens_per_wei; current_price_atto_tokens_per_wei = calculateCurrentPrice(getAttoTokensBoughtInICO()); if (current_price_atto_tokens_per_wei == 0) current_price_atto_tokens_per_wei = 1; // in case it is too small that it gets rounded to zero if (current_price_atto_tokens_per_wei > old_price) current_price_atto_tokens_per_wei = old_price; // in case some weird overflow happens // Broadcasting price change event if (old_price != current_price_atto_tokens_per_wei) PriceChanged(old_price, current_price_atto_tokens_per_wei); // Broadcasting the buying event RKCAcquired(msg.sender, msg.value, tokens); } // Formula for the dynamic price change algorithm function calculateCurrentPrice(uint attoTokensBought) constant returns (uint result) { // see http://www.wolframalpha.com/input/?i=f(x)+%3D+395500000+%2F+(x+%2B+150000)+-+136 return (395500000 / ((attoTokensBought / atto) + 150000)).sub(136); // mixing safe and usual math here because the division will throw on inconsistency } // *************************************************************************** // Functions for the contract owner function openICO() onlyOwner { if (isICOOpened) throw; if (isICOClosed) throw; isICOOpened = true; ICOOpened(); } function closeICO() onlyOwner { if (isICOClosed) throw; if (!isICOOpened) throw; isICOOpened = false; isICOClosed = true; // Redistribute ICO Tokens that were not bought as the first premiums premiumPacks.length = 1; premiumPacks[0] = balances[ico_address]; balances[ico_address] = 0; ICOClosed(); } function pullEtherFromContract() onlyOwner { // Only when ICO is closed if (!isICOClosed) throw; if (!teamWallet.send(this.balance)) { throw; } } // *************************************************************************** // Some percentage of the tokens is already reserved by early employees and investors // Here we're initializing their balances function distributePreSoldShares() onlyOwner { // Making it impossible to call this function twice if (preSoldSharesDistributed) throw; preSoldSharesDistributed = true; // Values are in atto tokens balances[0x7A3c869603E28b0242c129440c9dD97F8A5bEe80] = 7508811 * atto; balances[0x24a541dEAe0Fc87C990A208DE28a293fb2A982d9] = 4025712 * atto; balances[0xEcF843458e76052E6363fFb78C7535Cd87AA3AB2] = 300275 * atto; balances[0x947963ED2da750a0712AE0BF96E08C798813F277] = 150000 * atto; balances[0x82Bc8452Ab76fBA446e16b57C080F5258F557734] = 150000 * atto; balances[0x0959Ed48d55e580BB58df6E5ee01BAa787d80848] = 90000 * atto; balances[0x530A8016fB5B3d7A0F92910b4814e383835Bd51E] = 75000 * atto; balances[0xC3e934D3ADE0Ab9F61F824a9a824462c790e47B0] = 202 * atto; current_supply = (7508811 + 4025712 + 300275 + 150000 + 150000 + 90000 + 75000 + 202) * atto; // Sending the rest to ICO pool balances[ico_address] = INITIAL_SUPPLY.sub(current_supply); // Initializing the supply variables ico_starting_supply = balances[ico_address]; current_supply = INITIAL_SUPPLY; SupplyChanged(0, current_supply); } // *************************************************************************** // Some useful getters (although you can just query the public variables) function getCurrentPriceAttoTokensPerWei() constant returns (uint result) { return current_price_atto_tokens_per_wei; } function getAttoTokensAmountPerWeiInternal(uint value) payable returns (uint result) { return value * current_price_atto_tokens_per_wei; } function getAttoTokensAmountPerWei(uint value) constant returns (uint result) { return value * current_price_atto_tokens_per_wei; } function getSupply() constant returns (uint result) { return current_supply; } function getAttoTokensLeftForICO() constant returns (uint result) { return balances[ico_address]; } function getAttoTokensBoughtInICO() constant returns (uint result) { return ico_starting_supply - getAttoTokensLeftForICO(); } function getBalance(address addr) constant returns (uint balance) { return balances[addr]; } function getPremiumPack(uint index) constant returns (uint premium) { return premiumPacks[index]; } function getPremiumCount() constant returns (uint length) { return premiumPacks.length; } function getBalancePremiumsPaid(address account) constant returns (uint result) { return premiumPacksPaid[account]; } // *************************************************************************** // Premiums function sendPremiumPack(uint amount) onlyOwner allowedPayments(msg.sender, amount) { premiumPacks.length += 1; premiumPacks[premiumPacks.length-1] = amount; balances[msg.sender] = balances[msg.sender].sub(amount); // will throw and revert the whole thing if doesn't have this amount } function updatePremiums(address account) private { if (premiumPacks.length > premiumPacksPaid[account]) { uint startPackIndex = premiumPacksPaid[account]; uint finishPackIndex = premiumPacks.length - 1; for(uint i = startPackIndex; i <= finishPackIndex; i++) { if (current_supply != 0) { // just in case uint owing = balances[account] * premiumPacks[i] / current_supply; balances[account] = balances[account].add(owing); } } premiumPacksPaid[account] = premiumPacks.length; } } // *************************************************************************** // Overriding payment functions to take control over the logic modifier allowedPayments(address payer, uint value) { // Don't allow to transfer coins until the ICO ends if (isICOOpened) throw; if (!isICOClosed) throw; // Limit the quick dump possibility uint diff = 0; uint allowed = 0; if (balances[payer] > current_supply / 100) { // for balances > 1% of total supply if (block.timestamp > ICO_START_TIME) { diff = block.timestamp - ICO_START_TIME; } else { diff = ICO_START_TIME - block.timestamp; } allowed = (current_supply / 20) * (diff / (60 * 60 * 24 * 30)); // 5% unlocked every month if (value > allowed) throw; } _; } function transferFrom(address _from, address _to, uint _value) allowedPayments(_from, _value) { updatePremiums(_from); updatePremiums(_to); super.transferFrom(_from, _to, _value); } function transfer(address _to, uint _value) onlyPayloadSize(2 * 32) allowedPayments(msg.sender, _value) { updatePremiums(msg.sender); updatePremiums(_to); super.transfer(_to, _value); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"ico_address","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"ICO_START_TIME","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"atto","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"isICOOpened","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"current_price_atto_tokens_per_wei","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"closeICO","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"teamWallet","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getPremiumCount","outputs":[{"name":"length","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"preSoldSharesDistributed","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"current_supply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getSupply","outputs":[{"name":"result","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"getAttoTokensAmountPerWeiInternal","outputs":[{"name":"result","type":"uint256"}],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"sendPremiumPack","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"getBalancePremiumsPaid","outputs":[{"name":"result","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getPremiumPack","outputs":[{"name":"premium","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"TEST_MODE","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"buy","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"attoTokensBought","type":"uint256"}],"name":"calculateCurrentPrice","outputs":[{"name":"result","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"openICO","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"pullEtherFromContract","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"value","type":"uint256"}],"name":"getAttoTokensAmountPerWei","outputs":[{"name":"result","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getCurrentPriceAttoTokensPerWei","outputs":[{"name":"result","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"isICOClosed","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getAttoTokensBoughtInICO","outputs":[{"name":"result","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getAttoTokensLeftForICO","outputs":[{"name":"result","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"ico_starting_supply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"premiumPacks","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"distributePreSoldShares","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getBalance","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[],"name":"ICOOpened","type":"event"},{"anonymous":false,"inputs":[],"name":"ICOClosed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"old_price","type":"uint256"},{"indexed":false,"name":"new_price","type":"uint256"}],"name":"PriceChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"supply","type":"uint256"},{"indexed":false,"name":"old_supply","type":"uint256"}],"name":"SupplyChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"},{"indexed":false,"name":"amount_in_wei","type":"uint256"},{"indexed":false,"name":"amount_in_rkc","type":"uint256"}],"name":"RKCAcquired","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
606060405260408051908101604052601281527f526f79616c204b696e67646f6d20436f696e0000000000000000000000000000602082015260049080516200004d9291602001906200045f565b5060408051908101604052600381527f524b43000000000000000000000000000000000000000000000000000000000060208201526005908051620000979291602001906200045f565b50601260065560078054600160a060020a031990811673b79f963f200f85d0e3dd60c82abb8f80b5869cb91790915560088054909116731c01c01c01c01c01c01c01c01c01c01c01c01c0117905560006009819055600a819055600b55600c805462ffffff1916905534156200010c57600080fd5b5b5b60038054600160a060020a03191633600160a060020a03161790555b620001426401000000006200136e6200017682021704565b6200015c60016401000000006200113d620003df82021704565b600b5560006200016e600d82620004e5565b505b62000536565b60035433600160a060020a039081169116146200019257600080fd5b600c5460ff1615620001a357600080fd5b600c805460ff191660019081179091556020526a06360d75bf3a48764c00007f131373111e2eedc15fb303affb2bbae7ee29c4dd90c9a1d1a3cad68a4b940037556a03547a48e94fb2cfc000007fe9d21bc637986a772ea41ecf6ce0fd6095a4f82e78652710e3b8e6c58bb1627f55693f95f0bbe6ddb3ec00007f9dcc144c43b788967b997fe02c362eabb5ae5890ed806e2237d32d5dcd0fc50755691fc3842bd1f071c000007f335b2f96aaac85586e022de483b169ce07fe13b4baed8352bf4b101fe1e544d98190557f90d93c94078fbab9e66df1135ddce8dbcca027ec004337d1e0a90fc587c681095569130ee8e71790444000007f767ed4b0ad4eae3b2686dc98ad42f0becadfb15e03be4c4e88c7134f0e8b4f9f55690fe1c215e8f838e000007f0ac515c7b2d9ca1f6b2dca6b8396c0b2ed77616e3fa0f1e006a3e989af38baf85573c3e934d3ade0ab9f61f824a9a824462c790e47b0600052680af35029c214e800007f260615d68afb9c70d931e9a35de2526983e4efbac6553509064f500d229181b0556a0a2ca056093f046f800000600981905562000365906a0c685fa11e01ec6f00000090640100000000620015ea6200042582021704565b60088054600160a060020a0390811660009081526001602052604080822094909455915416815281812054600a556a0c685fa11e01ec6f00000060098190557fed89e864eaa767d73408242ff6a09be53504bda6578087e3cc94dc198390488c925191825260208201526040908101905180910390a15b5b565b60006200041d6088670de0b6b3a7640000845b04620249f001631792d9e08115156200040757fe5b0490640100000000620015ea6200042582021704565b90505b919050565b60006200044383831115640100000000620019166200044e82021704565b508082035b92915050565b8015156200045b57600080fd5b5b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004a257805160ff1916838001178555620004d2565b82800160010185558215620004d2579182015b82811115620004d2578251825591602001919060010190620004b5565b5b50620004e192915062000512565b5090565b8154818355818115116200050c576000838152602090206200050c91810190830162000512565b5b505050565b6200053391905b80821115620004e1576000815560010162000519565b5090565b90565b61199d80620005466000396000f300606060405236156101f65763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610207578063095ea7b31461029257806318160ddd146102b6578063182499fe146102db5780631b4cd2de1461030a57806323b872dd1461032f57806324b94ac6146103595780632cc92b2b1461037e5780632ff2e9dc146103a5578063313ce567146103ca57806337a30d3b146103ef5780635423864514610414578063599270441461042957806367d5fae114610458578063680add7b1461047d5780636aea5f1b146104a45780636c9c2faf146104c957806370a08231146104ee57806372f52a3e1461051f5780638ba677fa1461053c5780638da5cb5b1461055457806394f0080c1461058357806395d89b41146105b45780639ec272b41461063f578063a4009e2314610667578063a6f2ae3a1461068e578063a9059cbb14610698578063ad74f9bc146106bc578063b587dc57146106e4578063b6761717146106f9578063ba49e21f1461070e578063c84ca86714610736578063c97ab7ca1461075b578063c99380c914610782578063dd62ed3e146107a7578063ed45e578146107de578063ef4a0c6114610803578063f2fde38b14610828578063f464e64e14610849578063f6f17bba14610871578063f8b2cb4f146104ee575b6102055b6102026108b7565b5b565b005b341561021257600080fd5b61021a610a94565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102575780820151818401525b60200161023e565b50505050905090810190601f1680156102845780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561029d57600080fd5b610205600160a060020a0360043516602435610b32565b005b34156102c157600080fd5b6102c9610b97565b60405190815260200160405180910390f35b34156102e657600080fd5b6102ee610b9d565b604051600160a060020a03909116815260200160405180910390f35b341561031557600080fd5b6102c9610bac565b60405190815260200160405180910390f35b341561033a57600080fd5b610205600160a060020a0360043581169060243516604435610bb4565b005b341561036457600080fd5b6102c9610c8e565b60405190815260200160405180910390f35b341561038957600080fd5b610391610c9a565b604051901515815260200160405180910390f35b34156103b057600080fd5b6102c9610ca8565b60405190815260200160405180910390f35b34156103d557600080fd5b6102c9610cb7565b60405190815260200160405180910390f35b34156103fa57600080fd5b6102c9610cbd565b60405190815260200160405180910390f35b341561041f57600080fd5b610205610cc3565b005b341561043457600080fd5b6102ee610db2565b604051600160a060020a03909116815260200160405180910390f35b341561046357600080fd5b6102c9610dc1565b60405190815260200160405180910390f35b341561048857600080fd5b610391610dc8565b604051901515815260200160405180910390f35b34156104af57600080fd5b6102c9610dd1565b60405190815260200160405180910390f35b34156104d457600080fd5b6102c9610dd7565b60405190815260200160405180910390f35b34156104f957600080fd5b6102c9600160a060020a0360043516610dde565b60405190815260200160405180910390f35b6102c9600435610dfd565b60405190815260200160405180910390f35b341561054757600080fd5b610205600435610e08565b005b341561055f57600080fd5b6102ee610f59565b604051600160a060020a03909116815260200160405180910390f35b341561058e57600080fd5b6102c9600160a060020a0360043516610f68565b60405190815260200160405180910390f35b34156105bf57600080fd5b61021a610f87565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102575780820151818401525b60200161023e565b50505050905090810190601f1680156102845780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561064a57600080fd5b6102c9600435611025565b60405190815260200160405180910390f35b341561067257600080fd5b61039161104e565b604051901515815260200160405180910390f35b6102056108b7565b005b34156106a357600080fd5b610205600160a060020a0360043516602435611053565b005b34156106c757600080fd5b6102c960043561113d565b60405190815260200160405180910390f35b34156106ef57600080fd5b610205611178565b005b341561070457600080fd5b6102056111fd565b005b341561051f57600080fd5b6102c9600435610dfd565b60405190815260200160405180910390f35b341561074157600080fd5b6102c9611277565b60405190815260200160405180910390f35b341561076657600080fd5b61039161127e565b604051901515815260200160405180910390f35b341561078d57600080fd5b6102c961128d565b60405190815260200160405180910390f35b34156107b257600080fd5b6102c9600160a060020a03600435811690602435166112a1565b60405190815260200160405180910390f35b34156107e957600080fd5b6102c96112ce565b60405190815260200160405180910390f35b341561080e57600080fd5b6102c96112ed565b60405190815260200160405180910390f35b341561083357600080fd5b610205600160a060020a03600435166112f3565b005b341561085457600080fd5b6102c960043561134b565b60405190815260200160405180910390f35b341561087c57600080fd5b61020561136e565b005b34156104f957600080fd5b6102c9600160a060020a0360043516610dde565b60405190815260200160405180910390f35b600080803415156108c757600080fd5b600c54610100900460ff1615156108dd57600080fd5b600c5462010000900460ff16156108f357600080fd5b6108fc34610dfd565b6009549093506064905b0491508183111561091657600080fd5b600854600160a060020a031660009081526001602052604090205483111561093d57600080fd5b600854600160a060020a0316600090815260016020526040902054610968908463ffffffff6115ea16565b600854600160a060020a039081166000908152600160205260408082209390935533909116815220546109a1908463ffffffff61160316565b600160a060020a03331660009081526001602052604090205550600b546109ce6109c961128d565b61113d565b600b81905515156109df576001600b555b80600b5411156109ef57600b8190555b600b548114610a35577f8aa4fa52648a6d15edce8a179c792c86f3719d0cc3c572cf90f91948f0f2cb6881600b5460405191825260208201526040908101905180910390a15b7f81f1fa93288598099616e7c4d6397cd187aa1fcb03c520b8106dc9084d0a69d63334856040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a15b505050565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b2a5780601f10610aff57610100808354040283529160200191610b2a565b820191906000526020600020905b815481529060010190602001808311610b0d57829003601f168201915b505050505081565b600160a060020a03338116600081815260026020908152604080832094871680845294909152908190208490557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259084905190815260200160405180910390a35b5050565b60005481565b600854600160a060020a031681565b6359654a6081565b8281600080600c60019054906101000a900460ff1615610bd357600080fd5b600c5462010000900460ff161515610bea57600080fd5b505060095460009081906064905b600160a060020a038616600090815260016020526040902054919004901115610c65576359654a60421115610c35576359654a6042039150610c3f565b426359654a600391505b62278d00825b046014600954811515610c5457fe5b0402905080831115610c6557600080fd5b5b610c6f8761161f565b610c788661161f565b610c8387878761173d565b5b5b50505050505050565b670de0b6b3a764000081565b600c54610100900460ff1681565b6a0c685fa11e01ec6f00000081565b60065481565b600b5481565b60035433600160a060020a03908116911614610cde57600080fd5b600c5462010000900460ff1615610cf457600080fd5b600c54610100900460ff161515610d0a57600080fd5b600c805462ffff001916620100001790556001610d28600d82611926565b50600854600160a060020a0316600090815260016020526040812054600d8054919290918110610d5457fe5b906000526020600020900160005b5055600854600160a060020a0316600090815260016020526040808220919091557f6274c3e3ca2e096d0f959bbf291d960a8dc9f1a6ba856fcea564a14957c57590905160405180910390a15b5b565b600754600160a060020a031681565b600d545b90565b600c5460ff1681565b60095481565b6009545b90565b600160a060020a0381166000908152600160205260409020545b919050565b600b5481025b919050565b60035433600160a060020a03908116911614610e2357600080fd5b3381600080600c60019054906101000a900460ff1615610e4257600080fd5b600c5462010000900460ff161515610e5957600080fd5b505060095460009081906064905b600160a060020a038616600090815260016020526040902054919004901115610ed4576359654a60421115610ea4576359654a6042039150610eae565b426359654a600391505b62278d00825b046014600954811515610ec357fe5b0402905080831115610ed457600080fd5b5b600d805460010190610ee79082611926565b50600d80548691906000198101908110610efd57fe5b906000526020600020900160005b5055600160a060020a033316600090815260016020526040902054610f36908663ffffffff6115ea16565b600160a060020a0333166000908152600160205260409020555b5b505050505b50565b600354600160a060020a031681565b600160a060020a0381166000908152600e60205260409020545b919050565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b2a5780601f10610aff57610100808354040283529160200191610b2a565b820191906000526020600020905b815481529060010190602001808311610b0d57829003601f168201915b505050505081565b6000600d8281548110151561103657fe5b906000526020600020900160005b505490505b919050565b600081565b6040604436101561106357600080fd5b3382600080600c60019054906101000a900460ff161561108257600080fd5b600c5462010000900460ff16151561109957600080fd5b505060095460009081906064905b600160a060020a038616600090815260016020526040902054919004901115611114576359654a604211156110e4576359654a60420391506110ee565b426359654a600391505b62278d00825b04601460095481151561110357fe5b040290508083111561111457600080fd5b5b61111e3361161f565b6111278761161f565b610c838787611849565b5b5b505050505b505050565b60006111706088670de0b6b3a7640000845b04620249f001631792d9e081151561116357fe5b049063ffffffff6115ea16565b90505b919050565b60035433600160a060020a0390811691161461119357600080fd5b600c54610100900460ff16156111a857600080fd5b600c5462010000900460ff16156111be57600080fd5b600c805461ff0019166101001790557f173e40d07c811a18c48d8909de69668f0650168f0296922007f8a479b7a0a08760405160405180910390a15b5b565b60035433600160a060020a0390811691161461121857600080fd5b600c5462010000900460ff16151561122f57600080fd5b600754600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561020257600080fd5b5b5b565b600b5481025b919050565b600b545b90565b600c5462010000900460ff1681565b60006112976112ce565b600a540390505b90565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b600854600160a060020a03166000908152600160205260409020545b90565b600a5481565b60035433600160a060020a0390811691161461130e57600080fd5b600160a060020a03811615610f56576003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b600d80548290811061135957fe5b906000526020600020900160005b5054905081565b60035433600160a060020a0390811691161461138957600080fd5b600c5460ff161561139957600080fd5b600c805460ff191660019081179091556020526a06360d75bf3a48764c00007f131373111e2eedc15fb303affb2bbae7ee29c4dd90c9a1d1a3cad68a4b940037556a03547a48e94fb2cfc000007fe9d21bc637986a772ea41ecf6ce0fd6095a4f82e78652710e3b8e6c58bb1627f55693f95f0bbe6ddb3ec00007f9dcc144c43b788967b997fe02c362eabb5ae5890ed806e2237d32d5dcd0fc50755691fc3842bd1f071c000007f335b2f96aaac85586e022de483b169ce07fe13b4baed8352bf4b101fe1e544d98190557f90d93c94078fbab9e66df1135ddce8dbcca027ec004337d1e0a90fc587c681095569130ee8e71790444000007f767ed4b0ad4eae3b2686dc98ad42f0becadfb15e03be4c4e88c7134f0e8b4f9f55690fe1c215e8f838e000007f0ac515c7b2d9ca1f6b2dca6b8396c0b2ed77616e3fa0f1e006a3e989af38baf85573c3e934d3ade0ab9f61f824a9a824462c790e47b0600052680af35029c214e800007f260615d68afb9c70d931e9a35de2526983e4efbac6553509064f500d229181b0556a0a2ca056093f046f8000006009819055611551906a0c685fa11e01ec6f0000009063ffffffff6115ea16565b60088054600160a060020a0390811660009081526001602052604080822094909455915416815281812054600a556a0c685fa11e01ec6f00000060098190557fed89e864eaa767d73408242ff6a09be53504bda6578087e3cc94dc198390488c925191825260208201526040908101905180910390a15b5b565b600160a060020a0381166000908152600160205260409020545b919050565b60006115f883831115611916565b508082035b92915050565b600082820161161484821015611916565b8091505b5092915050565b600160a060020a0381166000908152600e6020526040812054600d54829182918291901115610f5057600160a060020a0385166000908152600e6020526040902054600d549094506000190192508391505b828211611718576009541561170c57600954600d80548490811061169157fe5b906000526020600020900160005b5054600160a060020a038716600090815260016020526040902054028115156116c457fe5b600160a060020a03871660009081526001602052604090205491900491506116f2908263ffffffff61160316565b600160a060020a0386166000908152600160205260409020555b5b600190910190611671565b600d54600160a060020a0386166000908152600e60205260409020555b5b5050505050565b600160a060020a038084166000908152600260209081526040808320338516845282528083205493861683526001909152902054611781908363ffffffff61160316565b600160a060020a0380851660009081526001602052604080822093909355908616815220546117b6908363ffffffff6115ea16565b600160a060020a0385166000908152600160205260409020556117df818363ffffffff6115ea16565b600160a060020a03808616600081815260026020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35b50505050565b6040604436101561185957600080fd5b600160a060020a033316600090815260016020526040902054611882908363ffffffff6115ea16565b600160a060020a0333811660009081526001602052604080822093909355908516815220546118b7908363ffffffff61160316565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35b5b505050565b801515610f5657600080fd5b5b50565b815481835581811511610a8f57600083815260209020610a8f918101908301611950565b5b505050565b610dc591905b8082111561196a5760008155600101611956565b5090565b905600a165627a7a723058201903faf596718d0283e874dd664c283ad78e72ef1398fc0fa4fe33376495c6d10029
Deployed Bytecode
0x606060405236156101f65763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610207578063095ea7b31461029257806318160ddd146102b6578063182499fe146102db5780631b4cd2de1461030a57806323b872dd1461032f57806324b94ac6146103595780632cc92b2b1461037e5780632ff2e9dc146103a5578063313ce567146103ca57806337a30d3b146103ef5780635423864514610414578063599270441461042957806367d5fae114610458578063680add7b1461047d5780636aea5f1b146104a45780636c9c2faf146104c957806370a08231146104ee57806372f52a3e1461051f5780638ba677fa1461053c5780638da5cb5b1461055457806394f0080c1461058357806395d89b41146105b45780639ec272b41461063f578063a4009e2314610667578063a6f2ae3a1461068e578063a9059cbb14610698578063ad74f9bc146106bc578063b587dc57146106e4578063b6761717146106f9578063ba49e21f1461070e578063c84ca86714610736578063c97ab7ca1461075b578063c99380c914610782578063dd62ed3e146107a7578063ed45e578146107de578063ef4a0c6114610803578063f2fde38b14610828578063f464e64e14610849578063f6f17bba14610871578063f8b2cb4f146104ee575b6102055b6102026108b7565b5b565b005b341561021257600080fd5b61021a610a94565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102575780820151818401525b60200161023e565b50505050905090810190601f1680156102845780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561029d57600080fd5b610205600160a060020a0360043516602435610b32565b005b34156102c157600080fd5b6102c9610b97565b60405190815260200160405180910390f35b34156102e657600080fd5b6102ee610b9d565b604051600160a060020a03909116815260200160405180910390f35b341561031557600080fd5b6102c9610bac565b60405190815260200160405180910390f35b341561033a57600080fd5b610205600160a060020a0360043581169060243516604435610bb4565b005b341561036457600080fd5b6102c9610c8e565b60405190815260200160405180910390f35b341561038957600080fd5b610391610c9a565b604051901515815260200160405180910390f35b34156103b057600080fd5b6102c9610ca8565b60405190815260200160405180910390f35b34156103d557600080fd5b6102c9610cb7565b60405190815260200160405180910390f35b34156103fa57600080fd5b6102c9610cbd565b60405190815260200160405180910390f35b341561041f57600080fd5b610205610cc3565b005b341561043457600080fd5b6102ee610db2565b604051600160a060020a03909116815260200160405180910390f35b341561046357600080fd5b6102c9610dc1565b60405190815260200160405180910390f35b341561048857600080fd5b610391610dc8565b604051901515815260200160405180910390f35b34156104af57600080fd5b6102c9610dd1565b60405190815260200160405180910390f35b34156104d457600080fd5b6102c9610dd7565b60405190815260200160405180910390f35b34156104f957600080fd5b6102c9600160a060020a0360043516610dde565b60405190815260200160405180910390f35b6102c9600435610dfd565b60405190815260200160405180910390f35b341561054757600080fd5b610205600435610e08565b005b341561055f57600080fd5b6102ee610f59565b604051600160a060020a03909116815260200160405180910390f35b341561058e57600080fd5b6102c9600160a060020a0360043516610f68565b60405190815260200160405180910390f35b34156105bf57600080fd5b61021a610f87565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102575780820151818401525b60200161023e565b50505050905090810190601f1680156102845780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561064a57600080fd5b6102c9600435611025565b60405190815260200160405180910390f35b341561067257600080fd5b61039161104e565b604051901515815260200160405180910390f35b6102056108b7565b005b34156106a357600080fd5b610205600160a060020a0360043516602435611053565b005b34156106c757600080fd5b6102c960043561113d565b60405190815260200160405180910390f35b34156106ef57600080fd5b610205611178565b005b341561070457600080fd5b6102056111fd565b005b341561051f57600080fd5b6102c9600435610dfd565b60405190815260200160405180910390f35b341561074157600080fd5b6102c9611277565b60405190815260200160405180910390f35b341561076657600080fd5b61039161127e565b604051901515815260200160405180910390f35b341561078d57600080fd5b6102c961128d565b60405190815260200160405180910390f35b34156107b257600080fd5b6102c9600160a060020a03600435811690602435166112a1565b60405190815260200160405180910390f35b34156107e957600080fd5b6102c96112ce565b60405190815260200160405180910390f35b341561080e57600080fd5b6102c96112ed565b60405190815260200160405180910390f35b341561083357600080fd5b610205600160a060020a03600435166112f3565b005b341561085457600080fd5b6102c960043561134b565b60405190815260200160405180910390f35b341561087c57600080fd5b61020561136e565b005b34156104f957600080fd5b6102c9600160a060020a0360043516610dde565b60405190815260200160405180910390f35b600080803415156108c757600080fd5b600c54610100900460ff1615156108dd57600080fd5b600c5462010000900460ff16156108f357600080fd5b6108fc34610dfd565b6009549093506064905b0491508183111561091657600080fd5b600854600160a060020a031660009081526001602052604090205483111561093d57600080fd5b600854600160a060020a0316600090815260016020526040902054610968908463ffffffff6115ea16565b600854600160a060020a039081166000908152600160205260408082209390935533909116815220546109a1908463ffffffff61160316565b600160a060020a03331660009081526001602052604090205550600b546109ce6109c961128d565b61113d565b600b81905515156109df576001600b555b80600b5411156109ef57600b8190555b600b548114610a35577f8aa4fa52648a6d15edce8a179c792c86f3719d0cc3c572cf90f91948f0f2cb6881600b5460405191825260208201526040908101905180910390a15b7f81f1fa93288598099616e7c4d6397cd187aa1fcb03c520b8106dc9084d0a69d63334856040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a15b505050565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b2a5780601f10610aff57610100808354040283529160200191610b2a565b820191906000526020600020905b815481529060010190602001808311610b0d57829003601f168201915b505050505081565b600160a060020a03338116600081815260026020908152604080832094871680845294909152908190208490557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259084905190815260200160405180910390a35b5050565b60005481565b600854600160a060020a031681565b6359654a6081565b8281600080600c60019054906101000a900460ff1615610bd357600080fd5b600c5462010000900460ff161515610bea57600080fd5b505060095460009081906064905b600160a060020a038616600090815260016020526040902054919004901115610c65576359654a60421115610c35576359654a6042039150610c3f565b426359654a600391505b62278d00825b046014600954811515610c5457fe5b0402905080831115610c6557600080fd5b5b610c6f8761161f565b610c788661161f565b610c8387878761173d565b5b5b50505050505050565b670de0b6b3a764000081565b600c54610100900460ff1681565b6a0c685fa11e01ec6f00000081565b60065481565b600b5481565b60035433600160a060020a03908116911614610cde57600080fd5b600c5462010000900460ff1615610cf457600080fd5b600c54610100900460ff161515610d0a57600080fd5b600c805462ffff001916620100001790556001610d28600d82611926565b50600854600160a060020a0316600090815260016020526040812054600d8054919290918110610d5457fe5b906000526020600020900160005b5055600854600160a060020a0316600090815260016020526040808220919091557f6274c3e3ca2e096d0f959bbf291d960a8dc9f1a6ba856fcea564a14957c57590905160405180910390a15b5b565b600754600160a060020a031681565b600d545b90565b600c5460ff1681565b60095481565b6009545b90565b600160a060020a0381166000908152600160205260409020545b919050565b600b5481025b919050565b60035433600160a060020a03908116911614610e2357600080fd5b3381600080600c60019054906101000a900460ff1615610e4257600080fd5b600c5462010000900460ff161515610e5957600080fd5b505060095460009081906064905b600160a060020a038616600090815260016020526040902054919004901115610ed4576359654a60421115610ea4576359654a6042039150610eae565b426359654a600391505b62278d00825b046014600954811515610ec357fe5b0402905080831115610ed457600080fd5b5b600d805460010190610ee79082611926565b50600d80548691906000198101908110610efd57fe5b906000526020600020900160005b5055600160a060020a033316600090815260016020526040902054610f36908663ffffffff6115ea16565b600160a060020a0333166000908152600160205260409020555b5b505050505b50565b600354600160a060020a031681565b600160a060020a0381166000908152600e60205260409020545b919050565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b2a5780601f10610aff57610100808354040283529160200191610b2a565b820191906000526020600020905b815481529060010190602001808311610b0d57829003601f168201915b505050505081565b6000600d8281548110151561103657fe5b906000526020600020900160005b505490505b919050565b600081565b6040604436101561106357600080fd5b3382600080600c60019054906101000a900460ff161561108257600080fd5b600c5462010000900460ff16151561109957600080fd5b505060095460009081906064905b600160a060020a038616600090815260016020526040902054919004901115611114576359654a604211156110e4576359654a60420391506110ee565b426359654a600391505b62278d00825b04601460095481151561110357fe5b040290508083111561111457600080fd5b5b61111e3361161f565b6111278761161f565b610c838787611849565b5b5b505050505b505050565b60006111706088670de0b6b3a7640000845b04620249f001631792d9e081151561116357fe5b049063ffffffff6115ea16565b90505b919050565b60035433600160a060020a0390811691161461119357600080fd5b600c54610100900460ff16156111a857600080fd5b600c5462010000900460ff16156111be57600080fd5b600c805461ff0019166101001790557f173e40d07c811a18c48d8909de69668f0650168f0296922007f8a479b7a0a08760405160405180910390a15b5b565b60035433600160a060020a0390811691161461121857600080fd5b600c5462010000900460ff16151561122f57600080fd5b600754600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561020257600080fd5b5b5b565b600b5481025b919050565b600b545b90565b600c5462010000900460ff1681565b60006112976112ce565b600a540390505b90565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b600854600160a060020a03166000908152600160205260409020545b90565b600a5481565b60035433600160a060020a0390811691161461130e57600080fd5b600160a060020a03811615610f56576003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b600d80548290811061135957fe5b906000526020600020900160005b5054905081565b60035433600160a060020a0390811691161461138957600080fd5b600c5460ff161561139957600080fd5b600c805460ff191660019081179091556020526a06360d75bf3a48764c00007f131373111e2eedc15fb303affb2bbae7ee29c4dd90c9a1d1a3cad68a4b940037556a03547a48e94fb2cfc000007fe9d21bc637986a772ea41ecf6ce0fd6095a4f82e78652710e3b8e6c58bb1627f55693f95f0bbe6ddb3ec00007f9dcc144c43b788967b997fe02c362eabb5ae5890ed806e2237d32d5dcd0fc50755691fc3842bd1f071c000007f335b2f96aaac85586e022de483b169ce07fe13b4baed8352bf4b101fe1e544d98190557f90d93c94078fbab9e66df1135ddce8dbcca027ec004337d1e0a90fc587c681095569130ee8e71790444000007f767ed4b0ad4eae3b2686dc98ad42f0becadfb15e03be4c4e88c7134f0e8b4f9f55690fe1c215e8f838e000007f0ac515c7b2d9ca1f6b2dca6b8396c0b2ed77616e3fa0f1e006a3e989af38baf85573c3e934d3ade0ab9f61f824a9a824462c790e47b0600052680af35029c214e800007f260615d68afb9c70d931e9a35de2526983e4efbac6553509064f500d229181b0556a0a2ca056093f046f8000006009819055611551906a0c685fa11e01ec6f0000009063ffffffff6115ea16565b60088054600160a060020a0390811660009081526001602052604080822094909455915416815281812054600a556a0c685fa11e01ec6f00000060098190557fed89e864eaa767d73408242ff6a09be53504bda6578087e3cc94dc198390488c925191825260208201526040908101905180910390a15b5b565b600160a060020a0381166000908152600160205260409020545b919050565b60006115f883831115611916565b508082035b92915050565b600082820161161484821015611916565b8091505b5092915050565b600160a060020a0381166000908152600e6020526040812054600d54829182918291901115610f5057600160a060020a0385166000908152600e6020526040902054600d549094506000190192508391505b828211611718576009541561170c57600954600d80548490811061169157fe5b906000526020600020900160005b5054600160a060020a038716600090815260016020526040902054028115156116c457fe5b600160a060020a03871660009081526001602052604090205491900491506116f2908263ffffffff61160316565b600160a060020a0386166000908152600160205260409020555b5b600190910190611671565b600d54600160a060020a0386166000908152600e60205260409020555b5b5050505050565b600160a060020a038084166000908152600260209081526040808320338516845282528083205493861683526001909152902054611781908363ffffffff61160316565b600160a060020a0380851660009081526001602052604080822093909355908616815220546117b6908363ffffffff6115ea16565b600160a060020a0385166000908152600160205260409020556117df818363ffffffff6115ea16565b600160a060020a03808616600081815260026020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35b50505050565b6040604436101561185957600080fd5b600160a060020a033316600090815260016020526040902054611882908363ffffffff6115ea16565b600160a060020a0333811660009081526001602052604080822093909355908516815220546118b7908363ffffffff61160316565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35b5b505050565b801515610f5657600080fd5b5b50565b815481835581811511610a8f57600083815260209020610a8f918101908301611950565b5b505050565b610dc591905b8082111561196a5760008155600101611956565b5090565b905600a165627a7a723058201903faf596718d0283e874dd664c283ad78e72ef1398fc0fa4fe33376495c6d10029
Swarm Source
bzzr://1903faf596718d0283e874dd664c283ad78e72ef1398fc0fa4fe33376495c6d1
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.