ERC-20
Source Code
Overview
Max Total Supply
26
Holders
15
Transfers
-
0 (0%)
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 0 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
KpopItem
Compiler Version
v0.4.20-nightly.2018.1.6+commit.2548228b
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2018-02-26
*/
pragma solidity ^0.4.18;
// https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/math/SafeMath.sol
/**
* @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) {
if (a == 0) {
return 0;
}
uint256 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 c;
}
/**
* @dev Substracts 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) {
uint256 c = a + b;
assert(c >= a);
return c;
}
}
// KpopItem is a ERC-721 token (https://github.com/ethereum/eips/issues/721)
// Each KpopItem has its connected KpopToken celebrity card
// Kpop.io is the official website
contract ERC721 {
function approve(address _to, uint _tokenId) public;
function balanceOf(address _owner) public view returns (uint balance);
function implementsERC721() public pure returns (bool);
function ownerOf(uint _tokenId) public view returns (address addr);
function takeOwnership(uint _tokenId) public;
function totalSupply() public view returns (uint total);
function transferFrom(address _from, address _to, uint _tokenId) public;
function transfer(address _to, uint _tokenId) public;
event Transfer(address indexed from, address indexed to, uint tokenId);
event Approval(address indexed owner, address indexed approved, uint tokenId);
}
contract KpopToken is ERC721 {
address public author;
address public coauthor;
string public constant NAME = "Kpopio";
string public constant SYMBOL = "KpopToken";
uint public GROWTH_BUMP = 0.1 ether;
uint public MIN_STARTING_PRICE = 0.002 ether;
uint public PRICE_INCREASE_SCALE = 120; // 120% of previous price
struct Celeb {
string name;
}
Celeb[] public celebs;
mapping(uint => address) public tokenIdToOwner;
mapping(uint => uint) public tokenIdToPrice; // in wei
mapping(address => uint) public userToNumCelebs;
mapping(uint => address) public tokenIdToApprovedRecipient;
event Transfer(address indexed from, address indexed to, uint tokenId);
event Approval(address indexed owner, address indexed approved, uint tokenId);
event CelebSold(uint tokenId, uint oldPrice, uint newPrice, string celebName, address prevOwner, address newOwner);
function KpopToken() public {
author = msg.sender;
coauthor = msg.sender;
}
function _transfer(address _from, address _to, uint _tokenId) private {
require(ownerOf(_tokenId) == _from);
require(!isNullAddress(_to));
require(balanceOf(_from) > 0);
uint prevBalances = balanceOf(_from) + balanceOf(_to);
tokenIdToOwner[_tokenId] = _to;
userToNumCelebs[_from]--;
userToNumCelebs[_to]++;
// Clear outstanding approvals
delete tokenIdToApprovedRecipient[_tokenId];
Transfer(_from, _to, _tokenId);
assert(balanceOf(_from) + balanceOf(_to) == prevBalances);
}
function buy(uint _tokenId) payable public {
address prevOwner = ownerOf(_tokenId);
uint currentPrice = tokenIdToPrice[_tokenId];
require(prevOwner != msg.sender);
require(!isNullAddress(msg.sender));
require(msg.value >= currentPrice);
// Take a cut off the payment
uint payment = uint(SafeMath.div(SafeMath.mul(currentPrice, 92), 100));
uint leftover = SafeMath.sub(msg.value, currentPrice);
uint newPrice;
_transfer(prevOwner, msg.sender, _tokenId);
if (currentPrice < GROWTH_BUMP) {
newPrice = SafeMath.mul(currentPrice, 2);
} else {
newPrice = SafeMath.div(SafeMath.mul(currentPrice, PRICE_INCREASE_SCALE), 100);
}
tokenIdToPrice[_tokenId] = newPrice;
if (prevOwner != address(this)) {
prevOwner.transfer(payment);
}
CelebSold(_tokenId, currentPrice, newPrice,
celebs[_tokenId].name, prevOwner, msg.sender);
msg.sender.transfer(leftover);
}
function balanceOf(address _owner) public view returns (uint balance) {
return userToNumCelebs[_owner];
}
function ownerOf(uint _tokenId) public view returns (address addr) {
return tokenIdToOwner[_tokenId];
}
function totalSupply() public view returns (uint total) {
return celebs.length;
}
function transfer(address _to, uint _tokenId) public {
_transfer(msg.sender, _to, _tokenId);
}
/** START FUNCTIONS FOR AUTHORS **/
function createCeleb(string _name, uint _price) public onlyAuthors {
require(_price >= MIN_STARTING_PRICE);
uint tokenId = celebs.push(Celeb(_name)) - 1;
tokenIdToOwner[tokenId] = author;
tokenIdToPrice[tokenId] = _price;
userToNumCelebs[author]++;
}
function withdraw(uint _amount, address _to) public onlyAuthors {
require(!isNullAddress(_to));
require(_amount <= this.balance);
_to.transfer(_amount);
}
function withdrawAll() public onlyAuthors {
require(author != 0x0);
require(coauthor != 0x0);
uint halfBalance = uint(SafeMath.div(this.balance, 2));
author.transfer(halfBalance);
coauthor.transfer(halfBalance);
}
function setCoAuthor(address _coauthor) public onlyAuthor {
require(!isNullAddress(_coauthor));
coauthor = _coauthor;
}
/** END FUNCTIONS FOR AUTHORS **/
function getCeleb(uint _tokenId) public view returns (
string name,
uint price,
address owner
) {
name = celebs[_tokenId].name;
price = tokenIdToPrice[_tokenId];
owner = tokenIdToOwner[_tokenId];
}
/** START FUNCTIONS RELATED TO EXTERNAL CONTRACT INTERACTIONS **/
function approve(address _to, uint _tokenId) public {
require(msg.sender == ownerOf(_tokenId));
tokenIdToApprovedRecipient[_tokenId] = _to;
Approval(msg.sender, _to, _tokenId);
}
function transferFrom(address _from, address _to, uint _tokenId) public {
require(ownerOf(_tokenId) == _from);
require(isApproved(_to, _tokenId));
require(!isNullAddress(_to));
_transfer(_from, _to, _tokenId);
}
function takeOwnership(uint _tokenId) public {
require(!isNullAddress(msg.sender));
require(isApproved(msg.sender, _tokenId));
address currentOwner = tokenIdToOwner[_tokenId];
_transfer(currentOwner, msg.sender, _tokenId);
}
/** END FUNCTIONS RELATED TO EXTERNAL CONTRACT INTERACTIONS **/
function implementsERC721() public pure returns (bool) {
return true;
}
/** MODIFIERS **/
modifier onlyAuthor() {
require(msg.sender == author);
_;
}
modifier onlyAuthors() {
require(msg.sender == author || msg.sender == coauthor);
_;
}
/** FUNCTIONS THAT WONT BE USED FREQUENTLY **/
function setMinStartingPrice(uint _price) public onlyAuthors {
MIN_STARTING_PRICE = _price;
}
function setGrowthBump(uint _bump) public onlyAuthors {
GROWTH_BUMP = _bump;
}
function setPriceIncreaseScale(uint _scale) public onlyAuthors {
PRICE_INCREASE_SCALE = _scale;
}
/** PRIVATE FUNCTIONS **/
function isApproved(address _to, uint _tokenId) private view returns (bool) {
return tokenIdToApprovedRecipient[_tokenId] == _to;
}
function isNullAddress(address _addr) private pure returns (bool) {
return _addr == 0x0;
}
}
contract KpopItem is ERC721 {
address public author;
address public coauthor;
address public manufacturer;
string public constant NAME = "KpopItem";
string public constant SYMBOL = "KpopItem";
uint public GROWTH_BUMP = 0.1 ether;
uint public MIN_STARTING_PRICE = 0.002 ether;
uint public PRICE_INCREASE_SCALE = 120; // 120% of previous price
uint public DIVIDEND = 3;
address public KPOPIO_CONTRACT_ADDRESS = 0xB2eE4ACf44b12f85885F23494A739357575a1760;
struct Item {
string name;
uint[6] traits;
}
Item[] public items;
mapping(uint => address) public tokenIdToOwner;
mapping(uint => uint) public tokenIdToCelebId; // celeb from KpopIO
mapping(uint => uint) public tokenIdToPrice; // in wei
mapping(address => uint) public userToNumItems;
mapping(uint => address) public tokenIdToApprovedRecipient;
event Transfer(address indexed from, address indexed to, uint tokenId);
event Approval(address indexed owner, address indexed approved, uint tokenId);
event ItemSold(uint tokenId, uint oldPrice, uint newPrice, string celebName, address prevOwner, address newOwner);
function KpopItem() public {
author = msg.sender;
coauthor = msg.sender;
}
function _transfer(address _from, address _to, uint _tokenId) private {
require(ownerOf(_tokenId) == _from);
require(!isNullAddress(_to));
require(balanceOf(_from) > 0);
uint prevBalances = balanceOf(_from) + balanceOf(_to);
tokenIdToOwner[_tokenId] = _to;
userToNumItems[_from]--;
userToNumItems[_to]++;
delete tokenIdToApprovedRecipient[_tokenId];
Transfer(_from, _to, _tokenId);
assert(balanceOf(_from) + balanceOf(_to) == prevBalances);
}
function buy(uint _tokenId) payable public {
address prevOwner = ownerOf(_tokenId);
uint currentPrice = tokenIdToPrice[_tokenId];
require(prevOwner != msg.sender);
require(!isNullAddress(msg.sender));
require(msg.value >= currentPrice);
// Set dividend
uint dividend = uint(SafeMath.div(SafeMath.mul(currentPrice, DIVIDEND), 100));
// Take a cut
uint payment = uint(SafeMath.div(SafeMath.mul(currentPrice, 90), 100));
uint leftover = SafeMath.sub(msg.value, currentPrice);
uint newPrice;
_transfer(prevOwner, msg.sender, _tokenId);
if (currentPrice < GROWTH_BUMP) {
newPrice = SafeMath.mul(currentPrice, 2);
} else {
newPrice = SafeMath.div(SafeMath.mul(currentPrice, PRICE_INCREASE_SCALE), 100);
}
tokenIdToPrice[_tokenId] = newPrice;
// Pay the prev owner of the item
if (prevOwner != address(this)) {
prevOwner.transfer(payment);
}
// Pay dividend to the current owner of the celeb that's connected to the item
uint celebId = celebOf(_tokenId);
KpopToken KPOPIO = KpopToken(KPOPIO_CONTRACT_ADDRESS);
address celebOwner = KPOPIO.ownerOf(celebId);
if (celebOwner != address(this) && !isNullAddress(celebOwner)) {
celebOwner.transfer(dividend);
}
ItemSold(_tokenId, currentPrice, newPrice,
items[_tokenId].name, prevOwner, msg.sender);
msg.sender.transfer(leftover);
}
function balanceOf(address _owner) public view returns (uint balance) {
return userToNumItems[_owner];
}
function ownerOf(uint _tokenId) public view returns (address addr) {
return tokenIdToOwner[_tokenId];
}
function celebOf(uint _tokenId) public view returns (uint celebId) {
return tokenIdToCelebId[_tokenId];
}
function totalSupply() public view returns (uint total) {
return items.length;
}
function transfer(address _to, uint _tokenId) public {
_transfer(msg.sender, _to, _tokenId);
}
/** START FUNCTIONS FOR AUTHORS **/
function createItem(string _name, uint _price, uint _celebId, uint[6] _traits) public onlyManufacturer {
require(_price >= MIN_STARTING_PRICE);
uint tokenId = items.push(Item({name: _name, traits:_traits})) - 1;
tokenIdToOwner[tokenId] = author;
tokenIdToPrice[tokenId] = _price;
tokenIdToCelebId[tokenId] = _celebId;
userToNumItems[author]++;
}
function withdraw(uint _amount, address _to) public onlyAuthors {
require(!isNullAddress(_to));
require(_amount <= this.balance);
_to.transfer(_amount);
}
function withdrawAll() public onlyAuthors {
require(author != 0x0);
require(coauthor != 0x0);
uint halfBalance = uint(SafeMath.div(this.balance, 2));
author.transfer(halfBalance);
coauthor.transfer(halfBalance);
}
function setCoAuthor(address _coauthor) public onlyAuthor {
require(!isNullAddress(_coauthor));
coauthor = _coauthor;
}
function setManufacturer(address _manufacturer) public onlyAuthors {
require(!isNullAddress(_manufacturer));
coauthor = _manufacturer;
}
/** END FUNCTIONS FOR AUTHORS **/
function getItem(uint _tokenId) public view returns (
string name,
uint price,
uint[6] traits,
address owner,
uint celebId
) {
name = items[_tokenId].name;
price = tokenIdToPrice[_tokenId];
traits = items[_tokenId].traits;
owner = tokenIdToOwner[_tokenId];
celebId = celebOf(_tokenId);
}
/** START FUNCTIONS RELATED TO EXTERNAL CONTRACT INTERACTIONS **/
function approve(address _to, uint _tokenId) public {
require(msg.sender == ownerOf(_tokenId));
tokenIdToApprovedRecipient[_tokenId] = _to;
Approval(msg.sender, _to, _tokenId);
}
function transferFrom(address _from, address _to, uint _tokenId) public {
require(ownerOf(_tokenId) == _from);
require(isApproved(_to, _tokenId));
require(!isNullAddress(_to));
_transfer(_from, _to, _tokenId);
}
function takeOwnership(uint _tokenId) public {
require(!isNullAddress(msg.sender));
require(isApproved(msg.sender, _tokenId));
address currentOwner = tokenIdToOwner[_tokenId];
_transfer(currentOwner, msg.sender, _tokenId);
}
/** END FUNCTIONS RELATED TO EXTERNAL CONTRACT INTERACTIONS **/
function implementsERC721() public pure returns (bool) {
return true;
}
/** MODIFIERS **/
modifier onlyAuthor() {
require(msg.sender == author);
_;
}
modifier onlyAuthors() {
require(msg.sender == author || msg.sender == coauthor);
_;
}
modifier onlyManufacturer() {
require(msg.sender == author || msg.sender == coauthor || msg.sender == manufacturer);
_;
}
/** FUNCTIONS THAT WONT BE USED FREQUENTLY **/
function setMinStartingPrice(uint _price) public onlyAuthors {
MIN_STARTING_PRICE = _price;
}
function setGrowthBump(uint _bump) public onlyAuthors {
GROWTH_BUMP = _bump;
}
function setDividend(uint _dividend) public onlyAuthors {
DIVIDEND = _dividend;
}
function setPriceIncreaseScale(uint _scale) public onlyAuthors {
PRICE_INCREASE_SCALE = _scale;
}
function setKpopioContractAddress(address _address) public onlyAuthors {
KPOPIO_CONTRACT_ADDRESS = _address;
}
/** PRIVATE FUNCTIONS **/
function isApproved(address _to, uint _tokenId) private view returns (bool) {
return tokenIdToApprovedRecipient[_tokenId] == _to;
}
function isNullAddress(address _addr) private pure returns (bool) {
return _addr == 0x0;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_to","type":"address"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_bump","type":"uint256"}],"name":"setGrowthBump","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"implementsERC721","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"total","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PRICE_INCREASE_SCALE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"userToNumItems","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"setKpopioContractAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"coauthor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getItem","outputs":[{"name":"name","type":"string"},{"name":"price","type":"uint256"},{"name":"traits","type":"uint256[6]"},{"name":"owner","type":"address"},{"name":"celebId","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_coauthor","type":"address"}],"name":"setCoAuthor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"KPOPIO_CONTRACT_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"addr","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"celebOf","outputs":[{"name":"celebId","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tokenIdToOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_price","type":"uint256"}],"name":"setMinStartingPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"manufacturer","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MIN_STARTING_PRICE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tokenIdToCelebId","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"NAME","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"author","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_scale","type":"uint256"}],"name":"setPriceIncreaseScale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"takeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tokenIdToApprovedRecipient","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"items","outputs":[{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_manufacturer","type":"address"}],"name":"setManufacturer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"GROWTH_BUMP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"buy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_dividend","type":"uint256"}],"name":"setDividend","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_price","type":"uint256"},{"name":"_celebId","type":"uint256"},{"name":"_traits","type":"uint256[6]"}],"name":"createItem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tokenIdToPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SYMBOL","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DIVIDEND","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"approved","type":"address"},{"indexed":false,"name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"oldPrice","type":"uint256"},{"indexed":false,"name":"newPrice","type":"uint256"},{"indexed":false,"name":"celebName","type":"string"},{"indexed":false,"name":"prevOwner","type":"address"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"ItemSold","type":"event"}]Contract Creation Code
606060405267016345785d8a000060035566071afd498d00006004556078600555600360065573b2ee4acf44b12f85885f23494a739357575a1760600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550341561008557600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061287a806101156000396000f3006060604052600436106101cc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168062f714ce146101d1578063095ea7b3146102135780630d963235146102555780631051db341461027857806318160ddd146102a55780631bd8b041146102ce57806323b872dd146102f757806329b1f023146103585780632a263513146103a55780632bddc31c146103de5780633129e7731461043357806343d1498b1461053f5780634bdd6a8e146105785780636352211e146105cd5780636d06bf0d146106305780636e9e48ef146106675780636fba7544146106ca57806370a08231146106ed578063747542821461073a5780637c67fb9f1461078f578063853828b6146107b85780639881b200146107cd578063a3f4df7e14610804578063a6c3e6b914610892578063a9059cbb146108e7578063aad99ef114610929578063b2e6ceeb1461094c578063b60e6bc01461096f578063bfb231d2146109d2578063c11dde0d14610a8b578063c43ae98314610ac4578063d96a094a14610aed578063e091f45314610b05578063e258a0f014610b28578063f4812eb914610bc3578063f76f8d7814610bfa578063fc3fc16814610c88575b600080fd5b34156101dc57600080fd5b610211600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610cb1565b005b341561021e57600080fd5b610253600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610de3565b005b341561026057600080fd5b6102766004808035906020019091905050610ee0565b005b341561028357600080fd5b61028b610f9d565b604051808215151515815260200191505060405180910390f35b34156102b057600080fd5b6102b8610fa6565b6040518082815260200191505060405180910390f35b34156102d957600080fd5b6102e1610fb3565b6040518082815260200191505060405180910390f35b341561030257600080fd5b610356600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610fb9565b005b341561036357600080fd5b61038f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611035565b6040518082815260200191505060405180910390f35b34156103b057600080fd5b6103dc600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061104d565b005b34156103e957600080fd5b6103f1611144565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561043e57600080fd5b610454600480803590602001909190505061116a565b604051808060200186815260200185600660200280838360005b8381101561048957808201518184015260208101905061046e565b505050509050018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825287818151815260200191508051906020019080838360005b838110156105005780820151818401526020810190506104e5565b50505050905090810190601f16801561052d5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b341561054a57600080fd5b610576600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506112f8565b005b341561058357600080fd5b61058b6113ac565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105d857600080fd5b6105ee60048080359060200190919050506113d2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561063b57600080fd5b610651600480803590602001909190505061140f565b6040518082815260200191505060405180910390f35b341561067257600080fd5b610688600480803590602001909190505061142c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106d557600080fd5b6106eb600480803590602001909190505061145f565b005b34156106f857600080fd5b610724600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061151c565b6040518082815260200191505060405180910390f35b341561074557600080fd5b61074d611565565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561079a57600080fd5b6107a261158b565b6040518082815260200191505060405180910390f35b34156107c357600080fd5b6107cb611591565b005b34156107d857600080fd5b6107ee60048080359060200190919050506117bf565b6040518082815260200191505060405180910390f35b341561080f57600080fd5b6108176117d7565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561085757808201518184015260208101905061083c565b50505050905090810190601f1680156108845780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561089d57600080fd5b6108a5611810565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156108f257600080fd5b610927600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611835565b005b341561093457600080fd5b61094a6004808035906020019091905050611844565b005b341561095757600080fd5b61096d6004808035906020019091905050611901565b005b341561097a57600080fd5b6109906004808035906020019091905050611972565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156109dd57600080fd5b6109f360048080359060200190919050506119a5565b6040518080602001828103825283818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015610a7c5780601f10610a5157610100808354040283529160200191610a7c565b820191906000526020600020905b815481529060010190602001808311610a5f57829003601f168201915b50509250505060405180910390f35b3415610a9657600080fd5b610ac2600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506119d1565b005b3415610acf57600080fd5b610ad7611add565b6040518082815260200191505060405180910390f35b610b036004808035906020019091905050611ae3565b005b3415610b1057600080fd5b610b266004808035906020019091905050611f6a565b005b3415610b3357600080fd5b610bc1600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091908035906020019091908035906020019091908060c001906006806020026040519081016040528092919082600660200280828437820191505050505091905050612027565b005b3415610bce57600080fd5b610be460048080359060200190919050506122d9565b6040518082815260200191505060405180910390f35b3415610c0557600080fd5b610c0d6122f1565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c4d578082015181840152602081019050610c32565b50505050905090810190601f168015610c7a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610c9357600080fd5b610c9b61232a565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610d595750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610d6457600080fd5b610d6d81612330565b151515610d7957600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16318211151515610d9f57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515610ddf57600080fd5b5050565b610dec816113d2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e2557600080fd5b81600d600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610f885750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610f9357600080fd5b8060038190555050565b60006001905090565b6000600880549050905090565b60055481565b8273ffffffffffffffffffffffffffffffffffffffff16610fd9826113d2565b73ffffffffffffffffffffffffffffffffffffffff16141515610ffb57600080fd5b6110058282612352565b151561101057600080fd5b61101982612330565b15151561102557600080fd5b6110308383836123be565b505050565b600c6020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806110f55750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561110057600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611172612661565b600061117c612675565b60008060088681548110151561118e57fe5b90600052602060002090600702016000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112335780601f1061120857610100808354040283529160200191611233565b820191906000526020600020905b81548152906001019060200180831161121657829003601f168201915b50505050509450600b600087815260200190815260200160002054935060088681548110151561125f57fe5b90600052602060002090600702016001016006806020026040519081016040528092919082600680156112a7576020028201915b815481526020019060010190808311611293575b505050505092506009600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691506112ed8661140f565b905091939590929450565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561135357600080fd5b61135c81612330565b15151561136857600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600a6000838152602001908152602001600020549050919050565b60096020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806115075750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561151257600080fd5b8060048190555050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061163b5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561164657600080fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561168d57600080fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156116d557600080fd5b6116f73073ffffffffffffffffffffffffffffffffffffffff163160026125f2565b90506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561175a57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156117bc57600080fd5b50565b600a6020528060005260406000206000915090505481565b6040805190810160405280600881526020017f4b706f704974656d00000000000000000000000000000000000000000000000081525081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6118403383836123be565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806118ec5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156118f757600080fd5b8060058190555050565b600061190c33612330565b15151561191857600080fd5b6119223383612352565b151561192d57600080fd5b6009600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061196e8133846123be565b5050565b600d6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6008818154811015156119b457fe5b906000526020600020906007020160009150905080600001905081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611a795750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611a8457600080fd5b611a8d81612330565b151515611a9957600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60035481565b6000806000806000806000806000611afa8a6113d2565b9850600b60008b81526020019081526020016000205497503373ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614151515611b4d57600080fd5b611b5633612330565b151515611b6257600080fd5b873410151515611b7157600080fd5b611b87611b808960065461260d565b60646125f2565b9650611b9e611b9789605a61260d565b60646125f2565b9550611baa3489612648565b9450611bb789338c6123be565b600354881015611bd357611bcc88600261260d565b9350611bec565b611be9611be28960055461260d565b60646125f2565b93505b83600b60008c8152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16141515611c7a578873ffffffffffffffffffffffffffffffffffffffff166108fc879081150290604051600060405180830381858888f193505050501515611c7957600080fd5b5b611c838a61140f565b9250600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508173ffffffffffffffffffffffffffffffffffffffff16636352211e846000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515611d2157600080fd5b6102c65a03f11515611d3257600080fd5b5050506040518051905090503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015611d805750611d7e81612330565b155b15611dc6578073ffffffffffffffffffffffffffffffffffffffff166108fc889081150290604051600060405180830381858888f193505050501515611dc557600080fd5b5b7f23a9360ab6e1a14ec2c4c4bc5a381ee7f6e7024b8b4db4692c15d338bcb179598a898660088e815481101515611df957fe5b90600052602060002090600702016000018d3360405180878152602001868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015611f0b5780601f10611ee057610100808354040283529160200191611f0b565b820191906000526020600020905b815481529060010190602001808311611eee57829003601f168201915b505097505050505050505060405180910390a13373ffffffffffffffffffffffffffffffffffffffff166108fc869081150290604051600060405180830381858888f193505050501515611f5e57600080fd5b50505050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806120125750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561201d57600080fd5b8060068190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806120d15750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806121295750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561213457600080fd5b600454841015151561214557600080fd5b60016008805480600101828161215b919061269d565b9160005260206000209060070201600060408051908101604052808a815260200187815250909190915060008201518160000190805190602001906121a19291906126cf565b506020820151816001019060066121b992919061274f565b5050500390506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600b60008381526020019081526020016000208190555082600a600083815260200190815260200160002081905550600c60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060010191905055505050505050565b600b6020528060005260406000206000915090505481565b6040805190810160405280600881526020017f4b706f704974656d00000000000000000000000000000000000000000000000081525081565b60065481565b6000808273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60008273ffffffffffffffffffffffffffffffffffffffff16600d600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b60008373ffffffffffffffffffffffffffffffffffffffff166123e0836113d2565b73ffffffffffffffffffffffffffffffffffffffff1614151561240257600080fd5b61240b83612330565b15151561241757600080fd5b60006124228561151c565b11151561242e57600080fd5b6124378361151c565b6124408561151c565b019050826009600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550600d600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690558273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3806125d98461151c565b6125e28661151c565b011415156125ec57fe5b50505050565b600080828481151561260057fe5b0490508091505092915050565b60008060008414156126225760009150612641565b828402905082848281151561263357fe5b0414151561263d57fe5b8091505b5092915050565b600082821115151561265657fe5b818303905092915050565b602060405190810160405280600081525090565b60c0604051908101604052806006905b60008152602001906001900390816126855790505090565b8154818355818115116126ca576007028160070283600052602060002091820191016126c9919061278f565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061271057805160ff191683800117855561273e565b8280016001018555821561273e579182015b8281111561273d578251825591602001919060010190612722565b5b50905061274b91906127ce565b5090565b826006810192821561277e579160200282015b8281111561277d578251825591602001919060010190612762565b5b50905061278b91906127ce565b5090565b6127cb91905b808211156127c757600080820160006127ae91906127f3565b6001820160006127be919061283b565b50600701612795565b5090565b90565b6127f091905b808211156127ec5760008160009055506001016127d4565b5090565b90565b50805460018160011615610100020316600290046000825580601f106128195750612838565b601f01602090049060005260206000209081019061283791906127ce565b5b50565b50806006019061284b91906127ce565b505600a165627a7a72305820334851bcb10c1c409e31f5d9c1d7cedc6bb869112b6f3860c2c30d4e03daded00029
Deployed Bytecode
0x6060604052600436106101cc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168062f714ce146101d1578063095ea7b3146102135780630d963235146102555780631051db341461027857806318160ddd146102a55780631bd8b041146102ce57806323b872dd146102f757806329b1f023146103585780632a263513146103a55780632bddc31c146103de5780633129e7731461043357806343d1498b1461053f5780634bdd6a8e146105785780636352211e146105cd5780636d06bf0d146106305780636e9e48ef146106675780636fba7544146106ca57806370a08231146106ed578063747542821461073a5780637c67fb9f1461078f578063853828b6146107b85780639881b200146107cd578063a3f4df7e14610804578063a6c3e6b914610892578063a9059cbb146108e7578063aad99ef114610929578063b2e6ceeb1461094c578063b60e6bc01461096f578063bfb231d2146109d2578063c11dde0d14610a8b578063c43ae98314610ac4578063d96a094a14610aed578063e091f45314610b05578063e258a0f014610b28578063f4812eb914610bc3578063f76f8d7814610bfa578063fc3fc16814610c88575b600080fd5b34156101dc57600080fd5b610211600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610cb1565b005b341561021e57600080fd5b610253600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610de3565b005b341561026057600080fd5b6102766004808035906020019091905050610ee0565b005b341561028357600080fd5b61028b610f9d565b604051808215151515815260200191505060405180910390f35b34156102b057600080fd5b6102b8610fa6565b6040518082815260200191505060405180910390f35b34156102d957600080fd5b6102e1610fb3565b6040518082815260200191505060405180910390f35b341561030257600080fd5b610356600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610fb9565b005b341561036357600080fd5b61038f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611035565b6040518082815260200191505060405180910390f35b34156103b057600080fd5b6103dc600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061104d565b005b34156103e957600080fd5b6103f1611144565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561043e57600080fd5b610454600480803590602001909190505061116a565b604051808060200186815260200185600660200280838360005b8381101561048957808201518184015260208101905061046e565b505050509050018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825287818151815260200191508051906020019080838360005b838110156105005780820151818401526020810190506104e5565b50505050905090810190601f16801561052d5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b341561054a57600080fd5b610576600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506112f8565b005b341561058357600080fd5b61058b6113ac565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105d857600080fd5b6105ee60048080359060200190919050506113d2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561063b57600080fd5b610651600480803590602001909190505061140f565b6040518082815260200191505060405180910390f35b341561067257600080fd5b610688600480803590602001909190505061142c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106d557600080fd5b6106eb600480803590602001909190505061145f565b005b34156106f857600080fd5b610724600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061151c565b6040518082815260200191505060405180910390f35b341561074557600080fd5b61074d611565565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561079a57600080fd5b6107a261158b565b6040518082815260200191505060405180910390f35b34156107c357600080fd5b6107cb611591565b005b34156107d857600080fd5b6107ee60048080359060200190919050506117bf565b6040518082815260200191505060405180910390f35b341561080f57600080fd5b6108176117d7565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561085757808201518184015260208101905061083c565b50505050905090810190601f1680156108845780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561089d57600080fd5b6108a5611810565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156108f257600080fd5b610927600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611835565b005b341561093457600080fd5b61094a6004808035906020019091905050611844565b005b341561095757600080fd5b61096d6004808035906020019091905050611901565b005b341561097a57600080fd5b6109906004808035906020019091905050611972565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156109dd57600080fd5b6109f360048080359060200190919050506119a5565b6040518080602001828103825283818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015610a7c5780601f10610a5157610100808354040283529160200191610a7c565b820191906000526020600020905b815481529060010190602001808311610a5f57829003601f168201915b50509250505060405180910390f35b3415610a9657600080fd5b610ac2600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506119d1565b005b3415610acf57600080fd5b610ad7611add565b6040518082815260200191505060405180910390f35b610b036004808035906020019091905050611ae3565b005b3415610b1057600080fd5b610b266004808035906020019091905050611f6a565b005b3415610b3357600080fd5b610bc1600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091908035906020019091908035906020019091908060c001906006806020026040519081016040528092919082600660200280828437820191505050505091905050612027565b005b3415610bce57600080fd5b610be460048080359060200190919050506122d9565b6040518082815260200191505060405180910390f35b3415610c0557600080fd5b610c0d6122f1565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c4d578082015181840152602081019050610c32565b50505050905090810190601f168015610c7a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610c9357600080fd5b610c9b61232a565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610d595750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610d6457600080fd5b610d6d81612330565b151515610d7957600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16318211151515610d9f57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515610ddf57600080fd5b5050565b610dec816113d2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e2557600080fd5b81600d600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610f885750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610f9357600080fd5b8060038190555050565b60006001905090565b6000600880549050905090565b60055481565b8273ffffffffffffffffffffffffffffffffffffffff16610fd9826113d2565b73ffffffffffffffffffffffffffffffffffffffff16141515610ffb57600080fd5b6110058282612352565b151561101057600080fd5b61101982612330565b15151561102557600080fd5b6110308383836123be565b505050565b600c6020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806110f55750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561110057600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611172612661565b600061117c612675565b60008060088681548110151561118e57fe5b90600052602060002090600702016000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112335780601f1061120857610100808354040283529160200191611233565b820191906000526020600020905b81548152906001019060200180831161121657829003601f168201915b50505050509450600b600087815260200190815260200160002054935060088681548110151561125f57fe5b90600052602060002090600702016001016006806020026040519081016040528092919082600680156112a7576020028201915b815481526020019060010190808311611293575b505050505092506009600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691506112ed8661140f565b905091939590929450565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561135357600080fd5b61135c81612330565b15151561136857600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600a6000838152602001908152602001600020549050919050565b60096020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806115075750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561151257600080fd5b8060048190555050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061163b5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561164657600080fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561168d57600080fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156116d557600080fd5b6116f73073ffffffffffffffffffffffffffffffffffffffff163160026125f2565b90506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561175a57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156117bc57600080fd5b50565b600a6020528060005260406000206000915090505481565b6040805190810160405280600881526020017f4b706f704974656d00000000000000000000000000000000000000000000000081525081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6118403383836123be565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806118ec5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156118f757600080fd5b8060058190555050565b600061190c33612330565b15151561191857600080fd5b6119223383612352565b151561192d57600080fd5b6009600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061196e8133846123be565b5050565b600d6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6008818154811015156119b457fe5b906000526020600020906007020160009150905080600001905081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611a795750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611a8457600080fd5b611a8d81612330565b151515611a9957600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60035481565b6000806000806000806000806000611afa8a6113d2565b9850600b60008b81526020019081526020016000205497503373ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614151515611b4d57600080fd5b611b5633612330565b151515611b6257600080fd5b873410151515611b7157600080fd5b611b87611b808960065461260d565b60646125f2565b9650611b9e611b9789605a61260d565b60646125f2565b9550611baa3489612648565b9450611bb789338c6123be565b600354881015611bd357611bcc88600261260d565b9350611bec565b611be9611be28960055461260d565b60646125f2565b93505b83600b60008c8152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16141515611c7a578873ffffffffffffffffffffffffffffffffffffffff166108fc879081150290604051600060405180830381858888f193505050501515611c7957600080fd5b5b611c838a61140f565b9250600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508173ffffffffffffffffffffffffffffffffffffffff16636352211e846000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515611d2157600080fd5b6102c65a03f11515611d3257600080fd5b5050506040518051905090503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015611d805750611d7e81612330565b155b15611dc6578073ffffffffffffffffffffffffffffffffffffffff166108fc889081150290604051600060405180830381858888f193505050501515611dc557600080fd5b5b7f23a9360ab6e1a14ec2c4c4bc5a381ee7f6e7024b8b4db4692c15d338bcb179598a898660088e815481101515611df957fe5b90600052602060002090600702016000018d3360405180878152602001868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015611f0b5780601f10611ee057610100808354040283529160200191611f0b565b820191906000526020600020905b815481529060010190602001808311611eee57829003601f168201915b505097505050505050505060405180910390a13373ffffffffffffffffffffffffffffffffffffffff166108fc869081150290604051600060405180830381858888f193505050501515611f5e57600080fd5b50505050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806120125750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561201d57600080fd5b8060068190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806120d15750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806121295750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561213457600080fd5b600454841015151561214557600080fd5b60016008805480600101828161215b919061269d565b9160005260206000209060070201600060408051908101604052808a815260200187815250909190915060008201518160000190805190602001906121a19291906126cf565b506020820151816001019060066121b992919061274f565b5050500390506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600b60008381526020019081526020016000208190555082600a600083815260200190815260200160002081905550600c60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060010191905055505050505050565b600b6020528060005260406000206000915090505481565b6040805190810160405280600881526020017f4b706f704974656d00000000000000000000000000000000000000000000000081525081565b60065481565b6000808273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60008273ffffffffffffffffffffffffffffffffffffffff16600d600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b60008373ffffffffffffffffffffffffffffffffffffffff166123e0836113d2565b73ffffffffffffffffffffffffffffffffffffffff1614151561240257600080fd5b61240b83612330565b15151561241757600080fd5b60006124228561151c565b11151561242e57600080fd5b6124378361151c565b6124408561151c565b019050826009600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550600d600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690558273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3806125d98461151c565b6125e28661151c565b011415156125ec57fe5b50505050565b600080828481151561260057fe5b0490508091505092915050565b60008060008414156126225760009150612641565b828402905082848281151561263357fe5b0414151561263d57fe5b8091505b5092915050565b600082821115151561265657fe5b818303905092915050565b602060405190810160405280600081525090565b60c0604051908101604052806006905b60008152602001906001900390816126855790505090565b8154818355818115116126ca576007028160070283600052602060002091820191016126c9919061278f565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061271057805160ff191683800117855561273e565b8280016001018555821561273e579182015b8281111561273d578251825591602001919060010190612722565b5b50905061274b91906127ce565b5090565b826006810192821561277e579160200282015b8281111561277d578251825591602001919060010190612762565b5b50905061278b91906127ce565b5090565b6127cb91905b808211156127c757600080820160006127ae91906127f3565b6001820160006127be919061283b565b50600701612795565b5090565b90565b6127f091905b808211156127ec5760008160009055506001016127d4565b5090565b90565b50805460018160011615610100020316600290046000825580601f106128195750612838565b601f01602090049060005260206000209081019061283791906127ce565b5b50565b50806006019061284b91906127ce565b505600a165627a7a72305820334851bcb10c1c409e31f5d9c1d7cedc6bb869112b6f3860c2c30d4e03daded00029
Swarm Source
bzzr://334851bcb10c1c409e31f5d9c1d7cedc6bb869112b6f3860c2c30d4e03daded0
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.
Add Token to MetaMask (Web3)