ERC-20
Overview
Max Total Supply
10,001,000 DNK
Holders
31
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
36,701.664799999999999999 DNKValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
DunkPayToken
Compiler Version
v0.4.23+commit.124ca40d
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-04-26 */ pragma solidity ^0.4.16; /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256 c) { if (a == 0) { return 0; } c = a * b; assert(c / a == b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 // uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return a / b; } /** * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256 c) { c = a + b; assert(c >= a); return c; } } contract Ownable { address public owner; function Ownable() public { owner = msg.sender; } modifier onlyOwner { require(msg.sender == owner); _; } function transferOwnership(address newOwner) onlyOwner public { owner = newOwner; } } contract Pausable is Ownable { event Pause(); event Unpause(); bool public paused = false; /** * @dev Modifier to make a function callable only when the contract is not paused. */ modifier whenNotPaused() { require(!paused); _; } /** * @dev Modifier to make a function callable only when the contract is paused. */ modifier whenPaused() { require(paused); _; } /** * @dev called by the owner to pause, triggers stopped state */ function pause() onlyOwner whenNotPaused public { paused = true; emit Pause(); } /** * @dev called by the owner to unpause, returns to normal state */ function unpause() onlyOwner whenPaused public { paused = false; emit Unpause(); } } interface tokenRecipient { function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData) external; } contract TokenERC20 is Pausable{ using SafeMath for uint256; // Public variables of the token string public name; string public symbol; uint8 public decimals = 18; // 18 decimals is the strongly suggested default, avoid changing it uint256 public totalSupply; uint256 totalSupplyForDivision; // This creates an array with all balances mapping (address => uint256) public balanceOf; mapping (address => mapping (address => uint256)) public allowance; // This generates a public event on the blockchain that will notify clients event Transfer(address indexed from, address indexed to, uint256 value); // This notifies clients about the amount burnt event Burn(address indexed from, uint256 value); /** * Constrctor function * * Initializes contract with initial supply tokens to the creator of the contract */ function TokenERC20( uint256 initialSupply, string tokenName, string tokenSymbol ) public { totalSupply = initialSupply * 10 ** uint256(decimals); // Update total supply with the decimal amount balanceOf[msg.sender] = totalSupply; // Give the creator all initial tokens name = tokenName; // Set the name for display purposes symbol = tokenSymbol; } /** * Internal transfer, only can be called by this contract */ function _transfer(address _from, address _to, uint _value) internal whenNotPaused{ // Prevent transfer to 0x0 address. Use burn() instead require(_to != 0x0); // Check if the sender has enough require(balanceOf[_from] >= _value); // Check for overflows require(balanceOf[_to].add(_value) > balanceOf[_to]); // Save this for an assertion in the future uint previousBalances = balanceOf[_from].add(balanceOf[_to]); // Subtract from the sender balanceOf[_from] = balanceOf[_from].sub(_value); // Add the same to the recipient balanceOf[_to] = balanceOf[_to].add(_value); emit Transfer(_from, _to, _value); // Asserts are used to use static analysis to find bugs in your code. They should never fail assert(balanceOf[_from].add(balanceOf[_to]) == previousBalances); } /** * Transfer tokens * * Send `_value` tokens to `_to` from your account * * @param _to The address of the recipient * @param _value the amount to send */ function transfer(address _to, uint256 _value) public whenNotPaused { _transfer(msg.sender, _to, _value); } /** * Transfer tokens from other address * * Send `_value` tokens to `_to` in behalf of `_from` * * @param _from The address of the sender * @param _to The address of the recipient * @param _value the amount to send */ function transferFrom(address _from, address _to, uint256 _value) public whenNotPaused returns (bool success) { require(_value <= allowance[_from][msg.sender]); // Check allowance allowance[_from][msg.sender] = allowance[_from][msg.sender].sub(_value); _transfer(_from, _to, _value); return true; } /** * Set allowance for other address * * Allows `_spender` to spend no more than `_value` tokens in your behalf * * @param _spender The address authorized to spend * @param _value the max amount they can spend */ function approve(address _spender, uint256 _value) public whenNotPaused returns (bool success) { allowance[msg.sender][_spender] = _value; return true; } /** * Set allowance for other address and notify * * Allows `_spender` to spend no more than `_value` tokens in your behalf, and then ping the contract about it * * @param _spender The address authorized to spend * @param _value the max amount they can spend * @param _extraData some extra information to send to the approved contract */ function approveAndCall(address _spender, uint256 _value, bytes _extraData) whenNotPaused public returns (bool success) { tokenRecipient spender = tokenRecipient(_spender); if (approve(_spender, _value)) { spender.receiveApproval(msg.sender, _value, this, _extraData); return true; } } /** * Destroy tokens * * Remove `_value` tokens from the system irreversibly * * @param _value the amount of money to burn */ function burn(uint256 _value) public whenPaused returns (bool success) { require(balanceOf[msg.sender] >= _value); // Check if the sender has enough balanceOf[msg.sender] = balanceOf[msg.sender].sub(_value); // Subtract from the sender totalSupply = totalSupply.sub(_value); // Updates totalSupply totalSupplyForDivision = totalSupply; // Update totalSupply emit Burn(msg.sender, _value); return true; } /** * Destroy tokens from other account * * Remove `_value` tokens from the system irreversibly on behalf of `_from`. * * @param _from the address of the sender * @param _value the amount of money to burn */ function burnFrom(address _from, uint256 _value) public whenPaused returns (bool success) { require(balanceOf[_from] >= _value); // Check if the targeted balance is enough require(_value <= allowance[_from][msg.sender]); // Check allowance balanceOf[_from] = balanceOf[_from].sub(_value); // Subtract from the targeted balance allowance[_from][msg.sender] = allowance[_from][msg.sender].sub(_value); // Subtract from the sender's allowance totalSupply = totalSupply.sub(_value); // Update totalSupply totalSupplyForDivision = totalSupply; // Update totalSupply emit Burn(_from, _value); return true; } } /******************************************/ /* ADVANCED TOKEN STARTS HERE */ /******************************************/ contract DunkPayToken is TokenERC20 { uint256 public sellPrice; uint256 public buyPrice; uint256 public buySupply; uint256 public totalEth; uint256 minimumAmountForPos; mapping (address => bool) public frozenAccount; /* This generates a public event on the blockchain that will notify clients */ event FrozenFunds(address target, bool frozen); /* Initializes contract with initial supply tokens to the creator of the contract */ function DunkPayToken() TokenERC20(totalSupply, name, symbol) public { buyPrice = 1000; sellPrice = 1000; name = "DunkPay"; symbol = "DNK"; totalSupply = buyPrice * 10000 * 10 ** uint256(decimals); minimumAmountForPos = buyPrice * 1 * 10 ** uint256(decimals); balanceOf[msg.sender] = buyPrice * 5100 * 10 ** uint256(decimals); balanceOf[this] = totalSupply - balanceOf[msg.sender]; buySupply = balanceOf[this]; allowance[this][msg.sender] = buySupply; totalSupplyForDivision = totalSupply;// Set the symbol for display purposes totalEth = address(this).balance; } function percent(uint256 numerator, uint256 denominator , uint precision) returns(uint256 quotient) { if(numerator <= 0) { return 0; } // caution, check safe-to-multiply here uint256 _numerator = numerator.mul(10 ** uint256(precision+1)); // with rounding of last digit uint256 _quotient = ((_numerator.div(denominator)).sub(5)).div(10); return _quotient; } function getZero(uint256 number) returns(uint num_len) { uint i = 1; uint _num_len = 0; while( number > i ) { i *= 10; _num_len++; } return _num_len; } /* Internal transfer, only can be called by this contract */ function _transfer(address _from, address _to, uint _value) internal { require (_to != 0x0); // Prevent transfer to 0x0 address. Use burn() instead require (balanceOf[_from] >= _value); // Check if the sender has enough require (balanceOf[_to] + _value > balanceOf[_to]); // Check for overflows require(!frozenAccount[_from]); // Check if sender is frozen require(!frozenAccount[_to]); // Check if recipient is frozen balanceOf[_from] -= _value; // Subtract from the sender balanceOf[_to] += _value; // Add the same to the recipient emit Transfer(_from, _to, _value); } /// @notice Create `mintedAmount` tokens and send it to `target` /// @param target Address to receive the tokens /// @param mintedAmount the amount of tokens it will receive function mintToken(address target, uint256 mintedAmount) onlyOwner public { balanceOf[target] += mintedAmount; totalSupply += mintedAmount; emit Transfer(0, this, mintedAmount); emit Transfer(this, target, mintedAmount); } function AddSupply(uint256 mintedAmount) onlyOwner public { buySupply += mintedAmount; allowance[this][msg.sender] += mintedAmount; mintToken(address(this), mintedAmount); } /// @notice `freeze? Prevent | Allow` `target` from sending & receiving tokens /// @param target Address to be frozen /// @param freeze either to freeze it or not function freezeAccount(address target, bool freeze) onlyOwner public { frozenAccount[target] = freeze; emit FrozenFunds(target, freeze); } /// @notice Allow users to buy tokens for `newBuyPrice` eth and sell tokens for `newSellPrice` eth /// @param newSellPrice Price the users can sell to the contract /// @param newBuyPrice Price users can buy from the contract function setPrices(uint256 newSellPrice, uint256 newBuyPrice) onlyOwner public { sellPrice = newSellPrice; buyPrice = newBuyPrice; } function transfer(address _to, uint256 _value) public whenNotPaused { if(_to == address(this)){ sell(_value); }else{ _transfer(msg.sender, _to, _value); } } function () payable public { buy(); } /// @notice Buy tokens from contract by sending ether function buy() payable whenNotPaused public { uint256 dnkForBuy = msg.value; uint zeros = getZero(totalSupply); uint256 interest = (dnkForBuy.div(2)).mul(percent(balanceOf[this], totalSupply , zeros)); interest = interest.div(10 ** uint256(zeros)); dnkForBuy = dnkForBuy.add(interest); require(dnkForBuy > 0); _transfer(this, msg.sender, dnkForBuy.mul(buyPrice)); // makes the transfers totalEth = totalEth.add(msg.value); } /// @notice Sell `amount` tokens to contract /// @param amount amount of tokens to be sold function sell(uint256 amount) whenNotPaused public { uint256 ethForSell = amount; uint zeros = getZero(totalSupply); uint256 interest = (ethForSell.div(2)).mul(percent(balanceOf[this], totalSupply , zeros)); interest = interest.div(10 ** uint256(zeros)); ethForSell = ethForSell.div(2) + interest; ethForSell = ethForSell.sub(ethForSell.div(100)); // minus 1% for refund fee. ethForSell = ethForSell.div(sellPrice); require(ethForSell > 0); uint256 minimumAmount = address(this).balance; require(minimumAmount >= ethForSell); // checks if the contract has enough ether to buy _transfer(msg.sender, this, amount); // makes the transfers msg.sender.transfer(ethForSell); // sends ether to the seller. It's important to do this last to avoid recursion attacks totalEth = totalEth.sub(ethForSell); } /// @notice withDraw `amount` ETH to contract /// @param amount amount of ETH to be sent function withdraw(uint256 amount) onlyOwner public { uint256 minimumAmount = address(this).balance; require(minimumAmount >= amount); // checks if the contract has enough ether to buy msg.sender.transfer(amount); // sends ether to the seller. It's important to do this last to avoid recursion attacks totalEth = totalEth.sub(amount); } function pos(address[] _holders, uint256 mintedAmount) onlyOwner whenPaused public { for (uint i = 0; i < _holders.length; i++) { uint zeros = getZero(totalSupplyForDivision); uint256 holderBalance = balanceOf[_holders[i]]; if(holderBalance>minimumAmountForPos) { uint256 amount = percent(holderBalance,totalSupplyForDivision,zeros).mul(mintedAmount); amount = amount.div(10 ** uint256(zeros)); if(amount > 0){ mintToken(_holders[i], amount); } } } totalSupplyForDivision = totalSupply; } function bankrupt(address[] _holders) onlyOwner whenPaused public { uint256 restBalance = balanceOf[this]; totalSupplyForDivision = totalSupply.sub(restBalance); totalEth = address(this).balance; for (uint i = 0; i < _holders.length; i++) { uint zeros = getZero(totalSupplyForDivision); uint256 amount = percent(balanceOf[_holders[i]],totalSupplyForDivision , zeros).mul(totalEth); amount = amount.div(10 ** uint256(zeros)); if(amount > 0){ uint256 minimumAmount = address(this).balance; require(minimumAmount >= amount); // checks if the contract has enough ether to buy uint256 holderBalance = balanceOf[_holders[i]]; balanceOf[_holders[i]] = balanceOf[_holders[i]].sub(holderBalance); // Subtract from the targeted balance totalSupply = totalSupply.sub(holderBalance); _holders[i].transfer(amount); // sends ether to the seller. It's important to do this last to } } totalSupplyForDivision = totalSupply; totalEth = address(this).balance; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"numerator","type":"uint256"},{"name":"denominator","type":"uint256"},{"name":"precision","type":"uint256"}],"name":"percent","outputs":[{"name":"quotient","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSellPrice","type":"uint256"},{"name":"newBuyPrice","type":"uint256"}],"name":"setPrices","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"mintedAmount","type":"uint256"}],"name":"AddSupply","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalEth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_holders","type":"address[]"}],"name":"bankrupt","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"mintedAmount","type":"uint256"}],"name":"mintToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"}],"name":"burnFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"number","type":"uint256"}],"name":"getZero","outputs":[{"name":"num_len","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"buy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"frozenAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"buySupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"freeze","type":"bool"}],"name":"freezeAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_holders","type":"address[]"},{"name":"mintedAmount","type":"uint256"}],"name":"pos","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"target","type":"address"},{"indexed":false,"name":"frozen","type":"bool"}],"name":"FrozenFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"}]
Contract Creation Code
608060405260008060146101000a81548160ff0219169083151502179055506012600360006101000a81548160ff021916908360ff1602179055503480156200004757600080fd5b5060045460018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620000e55780601f10620000b957610100808354040283529160200191620000e5565b820191906000526020600020905b815481529060010190602001808311620000c757829003601f168201915b505050505060028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620001845780601f10620001585761010080835404028352916020019162000184565b820191906000526020600020905b8154815290600101906020018083116200016657829003601f168201915b5050505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900460ff1660ff16600a0a8302600481905550600454600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600190805190602001906200024592919062000535565b5080600290805190602001906200025e92919062000535565b505050506103e86009819055506103e86008819055506040805190810160405280600781526020017f44756e6b5061790000000000000000000000000000000000000000000000000081525060019080519060200190620002c192919062000535565b506040805190810160405280600381526020017f444e4b0000000000000000000000000000000000000000000000000000000000815250600290805190602001906200030f92919062000535565b50600360009054906101000a900460ff1660ff16600a0a6127106009540202600481905550600360009054906101000a900460ff1660ff16600a0a60016009540202600c81905550600360009054906101000a900460ff1660ff16600a0a6113ec6009540202600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460045403600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600a81905550600a54600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506004546005819055503073ffffffffffffffffffffffffffffffffffffffff1631600b81905550620005e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200057857805160ff1916838001178555620005a9565b82800160010185558215620005a9579182015b82811115620005a85782518255916020019190600101906200058b565b5b509050620005b89190620005bc565b5090565b620005e191905b80821115620005dd576000816000905550600101620005c3565b5090565b90565b61298880620005f46000396000f3006080604052600436106101a0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680622c1a9e146101aa57806305fefda7146101ff57806306fdde0314610236578063095ea7b3146102c657806318160ddd1461032b5780631f90ffc81461035657806323b872dd146103835780632e1a7d4d14610408578063313ce567146104355780633c3c9c23146104665780633f4ba83a1461049157806342966c68146104a85780634b750334146104ed578063577131ac146105185780635c975abb1461057e57806370a08231146105ad57806379c650681461060457806379cc6790146106515780637c82eff7146106b65780638456cb59146106f75780638620410b1461070e5780638da5cb5b1461073957806395d89b4114610790578063a6f2ae3a14610820578063a9059cbb1461082a578063b414d4b614610877578063b51dfa9d146108d2578063cae9ca51146108fd578063dd62ed3e146109a8578063e4849b3214610a1f578063e724529c14610a4c578063e992f6cd14610a9b578063f2fde38b14610b0b575b6101a8610b4e565b005b3480156101b657600080fd5b506101e9600480360381019080803590602001909291908035906020019092919080359060200190929190505050610c6c565b6040518082815260200191505060405180910390f35b34801561020b57600080fd5b506102346004803603810190808035906020019092919080359060200190929190505050610ce6565b005b34801561024257600080fd5b5061024b610d53565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561028b578082015181840152602081019050610270565b50505050905090810190601f1680156102b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102d257600080fd5b50610311600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610df1565b604051808215151515815260200191505060405180910390f35b34801561033757600080fd5b50610340610e99565b6040518082815260200191505060405180910390f35b34801561036257600080fd5b5061038160048036038101908080359060200190929190505050610e9f565b005b34801561038f57600080fd5b506103ee600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fa1565b604051808215151515815260200191505060405180910390f35b34801561041457600080fd5b506104336004803603810190808035906020019092919050505061116e565b005b34801561044157600080fd5b5061044a61125a565b604051808260ff1660ff16815260200191505060405180910390f35b34801561047257600080fd5b5061047b61126d565b6040518082815260200191505060405180910390f35b34801561049d57600080fd5b506104a6611273565b005b3480156104b457600080fd5b506104d360048036038101908080359060200190929190505050611331565b604051808215151515815260200191505060405180910390f35b3480156104f957600080fd5b506105026114ab565b6040518082815260200191505060405180910390f35b34801561052457600080fd5b5061057c600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506114b1565b005b34801561058a57600080fd5b5061059361185c565b604051808215151515815260200191505060405180910390f35b3480156105b957600080fd5b506105ee600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061186f565b6040518082815260200191505060405180910390f35b34801561061057600080fd5b5061064f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611887565b005b34801561065d57600080fd5b5061069c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506119f8565b604051808215151515815260200191505060405180910390f35b3480156106c257600080fd5b506106e160048036038101908080359060200190929190505050611d0d565b6040518082815260200191505060405180910390f35b34801561070357600080fd5b5061070c611d40565b005b34801561071a57600080fd5b50610723611e00565b6040518082815260200191505060405180910390f35b34801561074557600080fd5b5061074e611e06565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561079c57600080fd5b506107a5611e2b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107e55780820151818401526020810190506107ca565b50505050905090810190601f1680156108125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610828610b4e565b005b34801561083657600080fd5b50610875600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ec9565b005b34801561088357600080fd5b506108b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f37565b604051808215151515815260200191505060405180910390f35b3480156108de57600080fd5b506108e7611f57565b6040518082815260200191505060405180910390f35b34801561090957600080fd5b5061098e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611f5d565b604051808215151515815260200191505060405180910390f35b3480156109b457600080fd5b50610a09600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120fc565b6040518082815260200191505060405180910390f35b348015610a2b57600080fd5b50610a4a60048036038101908080359060200190929190505050612121565b005b348015610a5857600080fd5b50610a99600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506122e1565b005b348015610aa757600080fd5b50610b096004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050612406565b005b348015610b1757600080fd5b50610b4c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612583565b005b60008060008060149054906101000a900460ff16151515610b6e57600080fd5b349250610b7c600454611d0d565b9150610bef610bcd600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460045485610c6c565b610be160028661262190919063ffffffff16565b61263790919063ffffffff16565b9050610c0782600a0a8261262190919063ffffffff16565b9050610c1c818461266f90919063ffffffff16565b9250600083111515610c2d57600080fd5b610c4c3033610c476009548761263790919063ffffffff16565b61268b565b610c6134600b5461266f90919063ffffffff16565b600b81905550505050565b60008060008086111515610c835760009250610cdd565b610c9c60018501600a0a8761263790919063ffffffff16565b9150610cd7600a610cc96005610cbb898761262190919063ffffffff16565b61294390919063ffffffff16565b61262190919063ffffffff16565b90508092505b50509392505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d4157600080fd5b81600881905550806009819055505050565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610de95780601f10610dbe57610100808354040283529160200191610de9565b820191906000526020600020905b815481529060010190602001808311610dcc57829003601f168201915b505050505081565b60008060149054906101000a900460ff16151515610e0e57600080fd5b81600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b60045481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610efa57600080fd5b80600a6000828254019250508190555080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550610f9e3082611887565b50565b60008060149054906101000a900460ff16151515610fbe57600080fd5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561104957600080fd5b6110d882600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294390919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061116384848461268b565b600190509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111cb57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff163190508181101515156111f457600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015801561123a573d6000803e3d6000fd5b5061125082600b5461294390919063ffffffff16565b600b819055505050565b600360009054906101000a900460ff1681565b600b5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112ce57600080fd5b600060149054906101000a900460ff1615156112e957600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60008060149054906101000a900460ff16151561134d57600080fd5b81600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561139b57600080fd5b6113ed82600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294390919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114458260045461294390919063ffffffff16565b6004819055506004546005819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a260019050919050565b60085481565b6000806000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561151557600080fd5b600060149054906101000a900460ff16151561153057600080fd5b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205495506115878660045461294390919063ffffffff16565b6005819055503073ffffffffffffffffffffffffffffffffffffffff1631600b81905550600094505b865185101561182c576115c4600554611d0d565b935061163d600b5461162f600660008b8a8151811015156115e157fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460055488610c6c565b61263790919063ffffffff16565b925061165584600a0a8461262190919063ffffffff16565b9250600083111561181f573073ffffffffffffffffffffffffffffffffffffffff1631915082821015151561168957600080fd5b60066000888781518110151561169b57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905061174b81600660008a898151811015156116f857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294390919063ffffffff16565b60066000898881518110151561175d57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117ba8160045461294390919063ffffffff16565b60048190555086858151811015156117ce57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f1935050505015801561181d573d6000803e3d6000fd5b505b84806001019550506115b0565b6004546005819055503073ffffffffffffffffffffffffffffffffffffffff1631600b8190555050505050505050565b600060149054906101000a900460ff1681565b60066020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118e257600080fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550806004600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a38173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008060149054906101000a900460ff161515611a1457600080fd5b81600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611a6257600080fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611aed57600080fd5b611b3f82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294390919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c1182600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294390919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ca68260045461294390919063ffffffff16565b6004819055506004546005819055508273ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a26001905092915050565b600080600060019150600090505b81841115611d3657600a820291508080600101915050611d1b565b8092505050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d9b57600080fd5b600060149054906101000a900460ff16151515611db757600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b60095481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ec15780601f10611e9657610100808354040283529160200191611ec1565b820191906000526020600020905b815481529060010190602001808311611ea457829003601f168201915b505050505081565b600060149054906101000a900460ff16151515611ee557600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f2757611f2281612121565b611f33565b611f3233838361268b565b5b5050565b600d6020528060005260406000206000915054906101000a900460ff1681565b600a5481565b600080600060149054906101000a900460ff16151515611f7c57600080fd5b849050611f898585610df1565b156120f3578073ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338630876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612083578082015181840152602081019050612068565b50505050905090810190601f1680156120b05780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156120d257600080fd5b505af11580156120e6573d6000803e3d6000fd5b50505050600191506120f4565b5b509392505050565b6007602052816000526040600020602052806000526040600020600091509150505481565b600080600080600060149054906101000a900460ff1615151561214357600080fd5b849350612151600454611d0d565b92506121c46121a2600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460045486610c6c565b6121b660028761262190919063ffffffff16565b61263790919063ffffffff16565b91506121dc83600a0a8361262190919063ffffffff16565b9150816121f360028661262190919063ffffffff16565b01935061221c61220d60648661262190919063ffffffff16565b8561294390919063ffffffff16565b93506122336008548561262190919063ffffffff16565b935060008411151561224457600080fd5b3073ffffffffffffffffffffffffffffffffffffffff1631905083811015151561226d57600080fd5b61227833308761268b565b3373ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f193505050501580156122be573d6000803e3d6000fd5b506122d484600b5461294390919063ffffffff16565b600b819055505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561233c57600080fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a58282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a15050565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561246757600080fd5b600060149054906101000a900460ff16151561248257600080fd5b600093505b85518410156125725761249b600554611d0d565b92506006600087868151811015156124af57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150600c548211156125655761251f856125118460055487610c6c565b61263790919063ffffffff16565b905061253783600a0a8261262190919063ffffffff16565b9050600081111561256457612563868581518110151561255357fe5b9060200190602002015182611887565b5b5b8380600101945050612487565b600454600581905550505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156125de57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000818381151561262e57fe5b04905092915050565b60008083141561264a5760009050612669565b818302905081838281151561265b57fe5b0414151561266557fe5b8090505b92915050565b6000818301905082811015151561268257fe5b80905092915050565b60008273ffffffffffffffffffffffffffffffffffffffff16141515156126b157600080fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156126ff57600080fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540111151561278d57600080fd5b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156127e657600080fd5b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561283f57600080fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600082821115151561295157fe5b8183039050929150505600a165627a7a723058203bf815a0f8f556950cc2b622cc7a7c729604858f430830eaf8d59516dbf96fa40029
Deployed Bytecode
0x6080604052600436106101a0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680622c1a9e146101aa57806305fefda7146101ff57806306fdde0314610236578063095ea7b3146102c657806318160ddd1461032b5780631f90ffc81461035657806323b872dd146103835780632e1a7d4d14610408578063313ce567146104355780633c3c9c23146104665780633f4ba83a1461049157806342966c68146104a85780634b750334146104ed578063577131ac146105185780635c975abb1461057e57806370a08231146105ad57806379c650681461060457806379cc6790146106515780637c82eff7146106b65780638456cb59146106f75780638620410b1461070e5780638da5cb5b1461073957806395d89b4114610790578063a6f2ae3a14610820578063a9059cbb1461082a578063b414d4b614610877578063b51dfa9d146108d2578063cae9ca51146108fd578063dd62ed3e146109a8578063e4849b3214610a1f578063e724529c14610a4c578063e992f6cd14610a9b578063f2fde38b14610b0b575b6101a8610b4e565b005b3480156101b657600080fd5b506101e9600480360381019080803590602001909291908035906020019092919080359060200190929190505050610c6c565b6040518082815260200191505060405180910390f35b34801561020b57600080fd5b506102346004803603810190808035906020019092919080359060200190929190505050610ce6565b005b34801561024257600080fd5b5061024b610d53565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561028b578082015181840152602081019050610270565b50505050905090810190601f1680156102b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102d257600080fd5b50610311600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610df1565b604051808215151515815260200191505060405180910390f35b34801561033757600080fd5b50610340610e99565b6040518082815260200191505060405180910390f35b34801561036257600080fd5b5061038160048036038101908080359060200190929190505050610e9f565b005b34801561038f57600080fd5b506103ee600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fa1565b604051808215151515815260200191505060405180910390f35b34801561041457600080fd5b506104336004803603810190808035906020019092919050505061116e565b005b34801561044157600080fd5b5061044a61125a565b604051808260ff1660ff16815260200191505060405180910390f35b34801561047257600080fd5b5061047b61126d565b6040518082815260200191505060405180910390f35b34801561049d57600080fd5b506104a6611273565b005b3480156104b457600080fd5b506104d360048036038101908080359060200190929190505050611331565b604051808215151515815260200191505060405180910390f35b3480156104f957600080fd5b506105026114ab565b6040518082815260200191505060405180910390f35b34801561052457600080fd5b5061057c600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506114b1565b005b34801561058a57600080fd5b5061059361185c565b604051808215151515815260200191505060405180910390f35b3480156105b957600080fd5b506105ee600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061186f565b6040518082815260200191505060405180910390f35b34801561061057600080fd5b5061064f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611887565b005b34801561065d57600080fd5b5061069c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506119f8565b604051808215151515815260200191505060405180910390f35b3480156106c257600080fd5b506106e160048036038101908080359060200190929190505050611d0d565b6040518082815260200191505060405180910390f35b34801561070357600080fd5b5061070c611d40565b005b34801561071a57600080fd5b50610723611e00565b6040518082815260200191505060405180910390f35b34801561074557600080fd5b5061074e611e06565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561079c57600080fd5b506107a5611e2b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107e55780820151818401526020810190506107ca565b50505050905090810190601f1680156108125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610828610b4e565b005b34801561083657600080fd5b50610875600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ec9565b005b34801561088357600080fd5b506108b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f37565b604051808215151515815260200191505060405180910390f35b3480156108de57600080fd5b506108e7611f57565b6040518082815260200191505060405180910390f35b34801561090957600080fd5b5061098e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611f5d565b604051808215151515815260200191505060405180910390f35b3480156109b457600080fd5b50610a09600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120fc565b6040518082815260200191505060405180910390f35b348015610a2b57600080fd5b50610a4a60048036038101908080359060200190929190505050612121565b005b348015610a5857600080fd5b50610a99600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506122e1565b005b348015610aa757600080fd5b50610b096004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050612406565b005b348015610b1757600080fd5b50610b4c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612583565b005b60008060008060149054906101000a900460ff16151515610b6e57600080fd5b349250610b7c600454611d0d565b9150610bef610bcd600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460045485610c6c565b610be160028661262190919063ffffffff16565b61263790919063ffffffff16565b9050610c0782600a0a8261262190919063ffffffff16565b9050610c1c818461266f90919063ffffffff16565b9250600083111515610c2d57600080fd5b610c4c3033610c476009548761263790919063ffffffff16565b61268b565b610c6134600b5461266f90919063ffffffff16565b600b81905550505050565b60008060008086111515610c835760009250610cdd565b610c9c60018501600a0a8761263790919063ffffffff16565b9150610cd7600a610cc96005610cbb898761262190919063ffffffff16565b61294390919063ffffffff16565b61262190919063ffffffff16565b90508092505b50509392505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d4157600080fd5b81600881905550806009819055505050565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610de95780601f10610dbe57610100808354040283529160200191610de9565b820191906000526020600020905b815481529060010190602001808311610dcc57829003601f168201915b505050505081565b60008060149054906101000a900460ff16151515610e0e57600080fd5b81600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b60045481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610efa57600080fd5b80600a6000828254019250508190555080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550610f9e3082611887565b50565b60008060149054906101000a900460ff16151515610fbe57600080fd5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561104957600080fd5b6110d882600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294390919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061116384848461268b565b600190509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111cb57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff163190508181101515156111f457600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015801561123a573d6000803e3d6000fd5b5061125082600b5461294390919063ffffffff16565b600b819055505050565b600360009054906101000a900460ff1681565b600b5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112ce57600080fd5b600060149054906101000a900460ff1615156112e957600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60008060149054906101000a900460ff16151561134d57600080fd5b81600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561139b57600080fd5b6113ed82600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294390919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114458260045461294390919063ffffffff16565b6004819055506004546005819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a260019050919050565b60085481565b6000806000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561151557600080fd5b600060149054906101000a900460ff16151561153057600080fd5b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205495506115878660045461294390919063ffffffff16565b6005819055503073ffffffffffffffffffffffffffffffffffffffff1631600b81905550600094505b865185101561182c576115c4600554611d0d565b935061163d600b5461162f600660008b8a8151811015156115e157fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460055488610c6c565b61263790919063ffffffff16565b925061165584600a0a8461262190919063ffffffff16565b9250600083111561181f573073ffffffffffffffffffffffffffffffffffffffff1631915082821015151561168957600080fd5b60066000888781518110151561169b57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905061174b81600660008a898151811015156116f857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294390919063ffffffff16565b60066000898881518110151561175d57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117ba8160045461294390919063ffffffff16565b60048190555086858151811015156117ce57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f1935050505015801561181d573d6000803e3d6000fd5b505b84806001019550506115b0565b6004546005819055503073ffffffffffffffffffffffffffffffffffffffff1631600b8190555050505050505050565b600060149054906101000a900460ff1681565b60066020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118e257600080fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550806004600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a38173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008060149054906101000a900460ff161515611a1457600080fd5b81600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611a6257600080fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611aed57600080fd5b611b3f82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294390919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c1182600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294390919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ca68260045461294390919063ffffffff16565b6004819055506004546005819055508273ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a26001905092915050565b600080600060019150600090505b81841115611d3657600a820291508080600101915050611d1b565b8092505050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d9b57600080fd5b600060149054906101000a900460ff16151515611db757600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b60095481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ec15780601f10611e9657610100808354040283529160200191611ec1565b820191906000526020600020905b815481529060010190602001808311611ea457829003601f168201915b505050505081565b600060149054906101000a900460ff16151515611ee557600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f2757611f2281612121565b611f33565b611f3233838361268b565b5b5050565b600d6020528060005260406000206000915054906101000a900460ff1681565b600a5481565b600080600060149054906101000a900460ff16151515611f7c57600080fd5b849050611f898585610df1565b156120f3578073ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338630876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612083578082015181840152602081019050612068565b50505050905090810190601f1680156120b05780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156120d257600080fd5b505af11580156120e6573d6000803e3d6000fd5b50505050600191506120f4565b5b509392505050565b6007602052816000526040600020602052806000526040600020600091509150505481565b600080600080600060149054906101000a900460ff1615151561214357600080fd5b849350612151600454611d0d565b92506121c46121a2600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460045486610c6c565b6121b660028761262190919063ffffffff16565b61263790919063ffffffff16565b91506121dc83600a0a8361262190919063ffffffff16565b9150816121f360028661262190919063ffffffff16565b01935061221c61220d60648661262190919063ffffffff16565b8561294390919063ffffffff16565b93506122336008548561262190919063ffffffff16565b935060008411151561224457600080fd5b3073ffffffffffffffffffffffffffffffffffffffff1631905083811015151561226d57600080fd5b61227833308761268b565b3373ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f193505050501580156122be573d6000803e3d6000fd5b506122d484600b5461294390919063ffffffff16565b600b819055505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561233c57600080fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a58282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a15050565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561246757600080fd5b600060149054906101000a900460ff16151561248257600080fd5b600093505b85518410156125725761249b600554611d0d565b92506006600087868151811015156124af57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150600c548211156125655761251f856125118460055487610c6c565b61263790919063ffffffff16565b905061253783600a0a8261262190919063ffffffff16565b9050600081111561256457612563868581518110151561255357fe5b9060200190602002015182611887565b5b5b8380600101945050612487565b600454600581905550505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156125de57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000818381151561262e57fe5b04905092915050565b60008083141561264a5760009050612669565b818302905081838281151561265b57fe5b0414151561266557fe5b8090505b92915050565b6000818301905082811015151561268257fe5b80905092915050565b60008273ffffffffffffffffffffffffffffffffffffffff16141515156126b157600080fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156126ff57600080fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540111151561278d57600080fd5b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156127e657600080fd5b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561283f57600080fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600082821115151561295157fe5b8183039050929150505600a165627a7a723058203bf815a0f8f556950cc2b622cc7a7c729604858f430830eaf8d59516dbf96fa40029
Swarm Source
bzzr://3bf815a0f8f556950cc2b622cc7a7c729604858f430830eaf8d59516dbf96fa4
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.