ERC-20
Overview
Max Total Supply
46
Holders
11
Market
Onchain Market Cap
$0.00
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+commit.3155dd80
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-03-08 */ // KpopItem is a ERC-721 item (https://github.com/ethereum/eips/issues/721) // Each KpopItem has its connected KpopToken itemrity card // Kpop.io is the official website pragma solidity ^0.4.18; /** * @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; } } contract ERC721 { function approve(address _to, uint _itemId) public; function balanceOf(address _owner) public view returns (uint balance); function implementsERC721() public pure returns (bool); function ownerOf(uint _itemId) public view returns (address addr); function takeOwnership(uint _itemId) public; function totalSupply() public view returns (uint total); function transferFrom(address _from, address _to, uint _itemId) public; function transfer(address _to, uint _itemId) public; event Transfer(address indexed from, address indexed to, uint itemId); event Approval(address indexed owner, address indexed approved, uint itemId); } contract KpopCeleb is ERC721 { function ownerOf(uint _celebId) public view returns (address addr); } 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.4 ether; uint public MIN_STARTING_PRICE = 0.001 ether; uint public PRICE_INCREASE_SCALE = 120; // 120% of previous price uint public DIVIDEND = 3; address public KPOP_CELEB_CONTRACT_ADDRESS = 0x0; address public KPOP_ARENA_CONTRACT_ADDRESS = 0x0; struct Item { string name; } Item[] public items; mapping(uint => address) public itemIdToOwner; mapping(uint => uint) public itemIdToPrice; mapping(address => uint) public userToNumItems; mapping(uint => address) public itemIdToApprovedRecipient; mapping(uint => uint[6]) public itemIdToTraitValues; mapping(uint => uint) public itemIdToCelebId; event Transfer(address indexed from, address indexed to, uint itemId); event Approval(address indexed owner, address indexed approved, uint itemId); event ItemSold(uint itemId, uint oldPrice, uint newPrice, string itemName, address prevOwner, address newOwner); event TransferToWinner(uint itemId, uint oldPrice, uint newPrice, string itemName, address prevOwner, address newOwner); function KpopItem() public { author = msg.sender; coauthor = msg.sender; } function _transfer(address _from, address _to, uint _itemId) private { require(ownerOf(_itemId) == _from); require(!isNullAddress(_to)); require(balanceOf(_from) > 0); uint prevBalances = balanceOf(_from) + balanceOf(_to); itemIdToOwner[_itemId] = _to; userToNumItems[_from]--; userToNumItems[_to]++; delete itemIdToApprovedRecipient[_itemId]; Transfer(_from, _to, _itemId); assert(balanceOf(_from) + balanceOf(_to) == prevBalances); } function buy(uint _itemId) payable public { address prevOwner = ownerOf(_itemId); uint currentPrice = itemIdToPrice[_itemId]; 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, _itemId); if (currentPrice < GROWTH_BUMP) { newPrice = SafeMath.mul(currentPrice, 2); } else { newPrice = SafeMath.div(SafeMath.mul(currentPrice, PRICE_INCREASE_SCALE), 100); } itemIdToPrice[_itemId] = 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(_itemId); KpopCeleb KPOP_CELEB = KpopCeleb(KPOP_CELEB_CONTRACT_ADDRESS); address celebOwner = KPOP_CELEB.ownerOf(celebId); if (celebOwner != address(this) && !isNullAddress(celebOwner)) { celebOwner.transfer(dividend); } ItemSold(_itemId, currentPrice, newPrice, items[_itemId].name, prevOwner, msg.sender); msg.sender.transfer(leftover); } function balanceOf(address _owner) public view returns (uint balance) { return userToNumItems[_owner]; } function ownerOf(uint _itemId) public view returns (address addr) { return itemIdToOwner[_itemId]; } function celebOf(uint _itemId) public view returns (uint celebId) { return itemIdToCelebId[_itemId]; } function totalSupply() public view returns (uint total) { return items.length; } function transfer(address _to, uint _itemId) public { _transfer(msg.sender, _to, _itemId); } /** START FUNCTIONS FOR AUTHORS **/ function createItem(string _name, uint _price, uint _celebId, address _owner, uint[6] _traitValues) public onlyManufacturer { require(_price >= MIN_STARTING_PRICE); address owner = _owner == 0x0 ? author : _owner; uint itemId = items.push(Item(_name)) - 1; itemIdToOwner[itemId] = owner; itemIdToPrice[itemId] = _price; itemIdToCelebId[itemId] = _celebId; itemIdToTraitValues[itemId] = _traitValues; // TODO: fetch celeb traits later userToNumItems[owner]++; } function updateItem(uint _itemId, string _name, uint[6] _traitValues) public onlyAuthors { require(_itemId >= 0 && _itemId < totalSupply()); items[_itemId].name = _name; itemIdToTraitValues[_itemId] = _traitValues; } 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)); manufacturer = _manufacturer; } /** END FUNCTIONS FOR AUTHORS **/ function getItem(uint _itemId) public view returns ( string name, uint price, address owner, uint[6] traitValues, uint celebId ) { name = items[_itemId].name; price = itemIdToPrice[_itemId]; owner = itemIdToOwner[_itemId]; traitValues = itemIdToTraitValues[_itemId]; celebId = celebOf(_itemId); } /** START FUNCTIONS RELATED TO EXTERNAL CONTRACT INTERACTIONS **/ function approve(address _to, uint _itemId) public { require(msg.sender == ownerOf(_itemId)); itemIdToApprovedRecipient[_itemId] = _to; Approval(msg.sender, _to, _itemId); } function transferFrom(address _from, address _to, uint _itemId) public { require(ownerOf(_itemId) == _from); require(isApproved(_to, _itemId)); require(!isNullAddress(_to)); _transfer(_from, _to, _itemId); } function takeOwnership(uint _itemId) public { require(!isNullAddress(msg.sender)); require(isApproved(msg.sender, _itemId)); address currentOwner = itemIdToOwner[_itemId]; _transfer(currentOwner, msg.sender, _itemId); } function transferToWinner(address _winner, address _loser, uint _itemId) public onlyArena { require(!isNullAddress(_winner)); require(!isNullAddress(_loser)); require(ownerOf(_itemId) == _loser); // Reset item price uint oldPrice = itemIdToPrice[_itemId]; uint newPrice = MIN_STARTING_PRICE; itemIdToPrice[_itemId] = newPrice; _transfer(_loser, _winner, _itemId); TransferToWinner(_itemId, oldPrice, newPrice, items[_itemId].name, _loser, _winner); } /** 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); _; } modifier onlyArena() { require(msg.sender == KPOP_ARENA_CONTRACT_ADDRESS); _; } /** 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 setKpopCelebContractAddress(address _address) public onlyAuthors { KPOP_CELEB_CONTRACT_ADDRESS = _address; } function setKpopArenaContractAddress(address _address) public onlyAuthors { KPOP_ARENA_CONTRACT_ADDRESS = _address; } /** PRIVATE FUNCTIONS **/ function isApproved(address _to, uint _itemId) private view returns (bool) { return itemIdToApprovedRecipient[_itemId] == _to; } function isNullAddress(address _addr) private pure returns (bool) { return _addr == 0x0; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":"_itemId","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":"_itemId","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":true,"inputs":[],"name":"coauthor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_itemId","type":"uint256"}],"name":"getItem","outputs":[{"name":"name","type":"string"},{"name":"price","type":"uint256"},{"name":"owner","type":"address"},{"name":"traitValues","type":"uint256[6]"},{"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":false,"inputs":[{"name":"_itemId","type":"uint256"},{"name":"_name","type":"string"},{"name":"_traitValues","type":"uint256[6]"}],"name":"updateItem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_price","type":"uint256"},{"name":"_celebId","type":"uint256"},{"name":"_owner","type":"address"},{"name":"_traitValues","type":"uint256[6]"}],"name":"createItem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_itemId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"addr","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"setKpopCelebContractAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"itemIdToApprovedRecipient","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_itemId","type":"uint256"}],"name":"celebOf","outputs":[{"name":"celebId","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KPOP_CELEB_CONTRACT_ADDRESS","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":"","type":"uint256"}],"name":"itemIdToOwner","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":"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":"_itemId","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":"_itemId","type":"uint256"}],"name":"takeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"itemIdToCelebId","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"name":"itemIdToTraitValues","outputs":[{"name":"","type":"uint256"}],"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":true,"inputs":[{"name":"","type":"uint256"}],"name":"itemIdToPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_winner","type":"address"},{"name":"_loser","type":"address"},{"name":"_itemId","type":"uint256"}],"name":"transferToWinner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"setKpopArenaContractAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_itemId","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":true,"inputs":[],"name":"SYMBOL","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KPOP_ARENA_CONTRACT_ADDRESS","outputs":[{"name":"","type":"address"}],"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":"itemId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"approved","type":"address"},{"indexed":false,"name":"itemId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"itemId","type":"uint256"},{"indexed":false,"name":"oldPrice","type":"uint256"},{"indexed":false,"name":"newPrice","type":"uint256"},{"indexed":false,"name":"itemName","type":"string"},{"indexed":false,"name":"prevOwner","type":"address"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"ItemSold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"itemId","type":"uint256"},{"indexed":false,"name":"oldPrice","type":"uint256"},{"indexed":false,"name":"newPrice","type":"uint256"},{"indexed":false,"name":"itemName","type":"string"},{"indexed":false,"name":"prevOwner","type":"address"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"TransferToWinner","type":"event"}]
Contract Creation Code
606060405267058d15e17628000060035566038d7ea4c68000600455607860055560036006556000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034156100b457600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612fb7806101446000396000f300606060405260043610610203576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168062f714ce14610208578063095ea7b31461024a5780630d9632351461028c5780631051db34146102af57806318160ddd146102dc5780631bd8b0411461030557806323b872dd1461032e57806329b1f0231461038f5780632bddc31c146103dc5780633129e7731461043157806343d1498b1461053d57806355e40d981461057657806356fadf8e146106085780636352211e146106c25780636571797d14610725578063676bc74f1461075e5780636d06bf0d146107c15780636fad0a4d146107f85780636fba75441461084d57806370a082311461087057806374754282146108bd57806375ff86f2146109125780637c67fb9f14610975578063853828b61461099e578063a3f4df7e146109b3578063a6c3e6b914610a41578063a9059cbb14610a96578063aad99ef114610ad8578063b2e6ceeb14610afb578063b413c5b014610b1e578063bb5661e314610b55578063bfb231d214610b95578063c11dde0d14610c4e578063c43ae98314610c87578063c453a80114610cb0578063d25dc05614610ce7578063d8dfba9314610d48578063d96a094a14610d81578063e091f45314610d99578063f76f8d7814610dbc578063fa4de09414610e4a578063fc3fc16814610e9f575b600080fd5b341561021357600080fd5b610248600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ec8565b005b341561025557600080fd5b61028a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610ffa565b005b341561029757600080fd5b6102ad60048080359060200190919050506110f7565b005b34156102ba57600080fd5b6102c26111b4565b604051808215151515815260200191505060405180910390f35b34156102e757600080fd5b6102ef6111bd565b6040518082815260200191505060405180910390f35b341561031057600080fd5b6103186111ca565b6040518082815260200191505060405180910390f35b341561033957600080fd5b61038d600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506111d0565b005b341561039a57600080fd5b6103c6600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061124c565b6040518082815260200191505060405180910390f35b34156103e757600080fd5b6103ef611264565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561043c57600080fd5b610452600480803590602001909190505061128a565b60405180806020018681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184600660200280838360005b838110156104b957808201518184015260208101905061049e565b50505050905001838152602001828103825287818151815260200191508051906020019080838360005b838110156104fe5780820151818401526020810190506104e3565b50505050905090810190601f16801561052b5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b341561054857600080fd5b610574600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611408565b005b341561058157600080fd5b610606600480803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091908060c0019060068060200260405190810160405280929190826006602002808284378201915050505050919050506114bc565b005b341561061357600080fd5b6106c0600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001909190803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908060c0019060068060200260405190810160405280929190826006602002808284378201915050505050919050506115eb565b005b34156106cd57600080fd5b6106e360048080359060200190919050506118aa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561073057600080fd5b61075c600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506118e7565b005b341561076957600080fd5b61077f60048080359060200190919050506119de565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156107cc57600080fd5b6107e26004808035906020019091905050611a11565b6040518082815260200191505060405180910390f35b341561080357600080fd5b61080b611a2e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561085857600080fd5b61086e6004808035906020019091905050611a54565b005b341561087b57600080fd5b6108a7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611b11565b6040518082815260200191505060405180910390f35b34156108c857600080fd5b6108d0611b5a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561091d57600080fd5b6109336004808035906020019091905050611b80565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561098057600080fd5b610988611bb3565b6040518082815260200191505060405180910390f35b34156109a957600080fd5b6109b1611bb9565b005b34156109be57600080fd5b6109c6611de7565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a065780820151818401526020810190506109eb565b50505050905090810190601f168015610a335780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610a4c57600080fd5b610a54611e20565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610aa157600080fd5b610ad6600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611e45565b005b3415610ae357600080fd5b610af96004808035906020019091905050611e54565b005b3415610b0657600080fd5b610b1c6004808035906020019091905050611f11565b005b3415610b2957600080fd5b610b3f6004808035906020019091905050611f82565b6040518082815260200191505060405180910390f35b3415610b6057600080fd5b610b7f6004808035906020019091908035906020019091905050611f9a565b6040518082815260200191505060405180910390f35b3415610ba057600080fd5b610bb66004808035906020019091905050611fc1565b6040518080602001828103825283818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015610c3f5780601f10610c1457610100808354040283529160200191610c3f565b820191906000526020600020905b815481529060010190602001808311610c2257829003601f168201915b50509250505060405180910390f35b3415610c5957600080fd5b610c85600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611fea565b005b3415610c9257600080fd5b610c9a6120f6565b6040518082815260200191505060405180910390f35b3415610cbb57600080fd5b610cd160048080359060200190919050506120fc565b6040518082815260200191505060405180910390f35b3415610cf257600080fd5b610d46600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612114565b005b3415610d5357600080fd5b610d7f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612379565b005b610d976004808035906020019091905050612470565b005b3415610da457600080fd5b610dba60048080359060200190919050506128f4565b005b3415610dc757600080fd5b610dcf6129b1565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e0f578082015181840152602081019050610df4565b50505050905090810190601f168015610e3c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610e5557600080fd5b610e5d6129ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610eaa57600080fd5b610eb2612a10565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610f705750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610f7b57600080fd5b610f8481612a16565b151515610f9057600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16318211151515610fb657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515610ff657600080fd5b5050565b611003816118aa565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561103c57600080fd5b81600d600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061119f5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156111aa57600080fd5b8060038190555050565b60006001905090565b6000600980549050905090565b60055481565b8273ffffffffffffffffffffffffffffffffffffffff166111f0826118aa565b73ffffffffffffffffffffffffffffffffffffffff1614151561121257600080fd5b61121c8282612a38565b151561122757600080fd5b61123082612a16565b15151561123c57600080fd5b611247838383612aa4565b505050565b600c6020528060005260406000206000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611292612d47565b60008061129d612d5b565b60006009868154811015156112ae57fe5b90600052602060002090016000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113505780601f1061132557610100808354040283529160200191611350565b820191906000526020600020905b81548152906001019060200180831161133357829003601f168201915b50505050509450600b6000878152602001908152602001600020549350600a600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250600e60008781526020019081526020016000206006806020026040519081016040528092919082600680156113ed576020028201915b8154815260200190600101908083116113d9575b505050505091506113fd86611a11565b905091939590929450565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561146357600080fd5b61146c81612a16565b15151561147857600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806115645750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561156f57600080fd5b6000831015801561158657506115836111bd565b83105b151561159157600080fd5b816009848154811015156115a157fe5b906000526020600020900160000190805190602001906115c2929190612d83565b5080600e60008581526020019081526020016000209060066115e5929190612e03565b50505050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806116965750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806116ee5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156116f957600080fd5b600454861015151561170a57600080fd5b60008473ffffffffffffffffffffffffffffffffffffffff161461172e5783611751565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b91506001600980548060010182816117699190612e43565b916000526020600020900160006020604051908101604052808c815250909190915060008201518160000190805190602001906117a7929190612e6f565b50505003905081600a600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600b60008381526020019081526020016000208190555084600f60008381526020019081526020016000208190555082600e6000838152602001908152602001600020906006611851929190612e03565b50600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050555050505050505050565b6000600a600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061198f5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561199a57600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600f6000838152602001908152602001600020549050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611afc5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611b0757600080fd5b8060048190555050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611c635750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611c6e57600080fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611cb557600080fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611cfd57600080fd5b611d1f3073ffffffffffffffffffffffffffffffffffffffff16316002612cd8565b90506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515611d8257600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515611de457600080fd5b50565b6040805190810160405280600881526020017f4b706f704974656d00000000000000000000000000000000000000000000000081525081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e50338383612aa4565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611efc5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611f0757600080fd5b8060058190555050565b6000611f1c33612a16565b151515611f2857600080fd5b611f323383612a38565b1515611f3d57600080fd5b600a600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611f7e813384612aa4565b5050565b600f6020528060005260406000206000915090505481565b600e60205281600052604060002081600681101515611fb557fe5b01600091509150505481565b600981815481101515611fd057fe5b906000526020600020900160009150905080600001905081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806120925750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561209d57600080fd5b6120a681612a16565b1515156120b257600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60035481565b600b6020528060005260406000206000915090505481565b600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561217357600080fd5b61217c85612a16565b15151561218857600080fd5b61219184612a16565b15151561219d57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166121bd846118aa565b73ffffffffffffffffffffffffffffffffffffffff161415156121df57600080fd5b600b6000848152602001908152602001600020549150600454905080600b60008581526020019081526020016000208190555061221d848685612aa4565b7f6ec190b945f368aacc027dd20705085b08524cbc9cbca6f8f8b1eb85c9d3ff1c83838360098781548110151561225057fe5b9060005260206000209001600001888a60405180878152602001868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182810382528581815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561235f5780601f106123345761010080835404028352916020019161235f565b820191906000526020600020905b81548152906001019060200180831161234257829003601f168201915b505097505050505050505060405180910390a15050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806124215750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561242c57600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008060008060008060006124878a6118aa565b9850600b60008b81526020019081526020016000205497503373ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16141515156124da57600080fd5b6124e333612a16565b1515156124ef57600080fd5b8734101515156124fe57600080fd5b61251461250d89600654612cf3565b6064612cd8565b965061252b61252489605a612cf3565b6064612cd8565b95506125373489612d2e565b945061254489338c612aa4565b60035488101561256057612559886002612cf3565b9350612579565b61257661256f89600554612cf3565b6064612cd8565b93505b83600b60008c8152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16141515612607578873ffffffffffffffffffffffffffffffffffffffff166108fc879081150290604051600060405180830381858888f19350505050151561260657600080fd5b5b6126108a611a11565b9250600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508173ffffffffffffffffffffffffffffffffffffffff16636352211e846000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15156126ae57600080fd5b6102c65a03f115156126bf57600080fd5b5050506040518051905090503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561270d575061270b81612a16565b155b15612753578073ffffffffffffffffffffffffffffffffffffffff166108fc889081150290604051600060405180830381858888f19350505050151561275257600080fd5b5b7f23a9360ab6e1a14ec2c4c4bc5a381ee7f6e7024b8b4db4692c15d338bcb179598a898660098e81548110151561278657fe5b90600052602060002090016000018d3360405180878152602001868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281038252858181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156128955780601f1061286a57610100808354040283529160200191612895565b820191906000526020600020905b81548152906001019060200180831161287857829003601f168201915b505097505050505050505060405180910390a13373ffffffffffffffffffffffffffffffffffffffff166108fc869081150290604051600060405180830381858888f1935050505015156128e857600080fd5b50505050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061299c5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156129a757600080fd5b8060068190555050565b6040805190810160405280600881526020017f4b706f704974656d00000000000000000000000000000000000000000000000081525081565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b6000808273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60008273ffffffffffffffffffffffffffffffffffffffff16600d600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b60008373ffffffffffffffffffffffffffffffffffffffff16612ac6836118aa565b73ffffffffffffffffffffffffffffffffffffffff16141515612ae857600080fd5b612af183612a16565b151515612afd57600080fd5b6000612b0885611b11565b111515612b1457600080fd5b612b1d83611b11565b612b2685611b11565b01905082600a600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550600d600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690558273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a380612cbf84611b11565b612cc886611b11565b01141515612cd257fe5b50505050565b6000808284811515612ce657fe5b0490508091505092915050565b6000806000841415612d085760009150612d27565b8284029050828482811515612d1957fe5b04141515612d2357fe5b8091505b5092915050565b6000828211151515612d3c57fe5b818303905092915050565b602060405190810160405280600081525090565b60c0604051908101604052806006905b6000815260200190600190039081612d6b5790505090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612dc457805160ff1916838001178555612df2565b82800160010185558215612df2579182015b82811115612df1578251825591602001919060010190612dd6565b5b509050612dff9190612eef565b5090565b8260068101928215612e32579160200282015b82811115612e31578251825591602001919060010190612e16565b5b509050612e3f9190612eef565b5090565b815481835581811511612e6a57818360005260206000209182019101612e699190612f14565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612eb057805160ff1916838001178555612ede565b82800160010185558215612ede579182015b82811115612edd578251825591602001919060010190612ec2565b5b509050612eeb9190612eef565b5090565b612f1191905b80821115612f0d576000816000905550600101612ef5565b5090565b90565b612f4091905b80821115612f3c5760008082016000612f339190612f43565b50600101612f1a565b5090565b90565b50805460018160011615610100020316600290046000825580601f10612f695750612f88565b601f016020900490600052602060002090810190612f879190612eef565b5b505600a165627a7a72305820d9af4b217ae3b7293f290fd48613320fd2a7d909473085d70b035e30d0d905130029
Deployed Bytecode
0x606060405260043610610203576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168062f714ce14610208578063095ea7b31461024a5780630d9632351461028c5780631051db34146102af57806318160ddd146102dc5780631bd8b0411461030557806323b872dd1461032e57806329b1f0231461038f5780632bddc31c146103dc5780633129e7731461043157806343d1498b1461053d57806355e40d981461057657806356fadf8e146106085780636352211e146106c25780636571797d14610725578063676bc74f1461075e5780636d06bf0d146107c15780636fad0a4d146107f85780636fba75441461084d57806370a082311461087057806374754282146108bd57806375ff86f2146109125780637c67fb9f14610975578063853828b61461099e578063a3f4df7e146109b3578063a6c3e6b914610a41578063a9059cbb14610a96578063aad99ef114610ad8578063b2e6ceeb14610afb578063b413c5b014610b1e578063bb5661e314610b55578063bfb231d214610b95578063c11dde0d14610c4e578063c43ae98314610c87578063c453a80114610cb0578063d25dc05614610ce7578063d8dfba9314610d48578063d96a094a14610d81578063e091f45314610d99578063f76f8d7814610dbc578063fa4de09414610e4a578063fc3fc16814610e9f575b600080fd5b341561021357600080fd5b610248600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ec8565b005b341561025557600080fd5b61028a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610ffa565b005b341561029757600080fd5b6102ad60048080359060200190919050506110f7565b005b34156102ba57600080fd5b6102c26111b4565b604051808215151515815260200191505060405180910390f35b34156102e757600080fd5b6102ef6111bd565b6040518082815260200191505060405180910390f35b341561031057600080fd5b6103186111ca565b6040518082815260200191505060405180910390f35b341561033957600080fd5b61038d600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506111d0565b005b341561039a57600080fd5b6103c6600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061124c565b6040518082815260200191505060405180910390f35b34156103e757600080fd5b6103ef611264565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561043c57600080fd5b610452600480803590602001909190505061128a565b60405180806020018681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184600660200280838360005b838110156104b957808201518184015260208101905061049e565b50505050905001838152602001828103825287818151815260200191508051906020019080838360005b838110156104fe5780820151818401526020810190506104e3565b50505050905090810190601f16801561052b5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b341561054857600080fd5b610574600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611408565b005b341561058157600080fd5b610606600480803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091908060c0019060068060200260405190810160405280929190826006602002808284378201915050505050919050506114bc565b005b341561061357600080fd5b6106c0600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001909190803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908060c0019060068060200260405190810160405280929190826006602002808284378201915050505050919050506115eb565b005b34156106cd57600080fd5b6106e360048080359060200190919050506118aa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561073057600080fd5b61075c600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506118e7565b005b341561076957600080fd5b61077f60048080359060200190919050506119de565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156107cc57600080fd5b6107e26004808035906020019091905050611a11565b6040518082815260200191505060405180910390f35b341561080357600080fd5b61080b611a2e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561085857600080fd5b61086e6004808035906020019091905050611a54565b005b341561087b57600080fd5b6108a7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611b11565b6040518082815260200191505060405180910390f35b34156108c857600080fd5b6108d0611b5a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561091d57600080fd5b6109336004808035906020019091905050611b80565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561098057600080fd5b610988611bb3565b6040518082815260200191505060405180910390f35b34156109a957600080fd5b6109b1611bb9565b005b34156109be57600080fd5b6109c6611de7565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a065780820151818401526020810190506109eb565b50505050905090810190601f168015610a335780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610a4c57600080fd5b610a54611e20565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610aa157600080fd5b610ad6600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611e45565b005b3415610ae357600080fd5b610af96004808035906020019091905050611e54565b005b3415610b0657600080fd5b610b1c6004808035906020019091905050611f11565b005b3415610b2957600080fd5b610b3f6004808035906020019091905050611f82565b6040518082815260200191505060405180910390f35b3415610b6057600080fd5b610b7f6004808035906020019091908035906020019091905050611f9a565b6040518082815260200191505060405180910390f35b3415610ba057600080fd5b610bb66004808035906020019091905050611fc1565b6040518080602001828103825283818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015610c3f5780601f10610c1457610100808354040283529160200191610c3f565b820191906000526020600020905b815481529060010190602001808311610c2257829003601f168201915b50509250505060405180910390f35b3415610c5957600080fd5b610c85600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611fea565b005b3415610c9257600080fd5b610c9a6120f6565b6040518082815260200191505060405180910390f35b3415610cbb57600080fd5b610cd160048080359060200190919050506120fc565b6040518082815260200191505060405180910390f35b3415610cf257600080fd5b610d46600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612114565b005b3415610d5357600080fd5b610d7f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612379565b005b610d976004808035906020019091905050612470565b005b3415610da457600080fd5b610dba60048080359060200190919050506128f4565b005b3415610dc757600080fd5b610dcf6129b1565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e0f578082015181840152602081019050610df4565b50505050905090810190601f168015610e3c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610e5557600080fd5b610e5d6129ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610eaa57600080fd5b610eb2612a10565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610f705750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610f7b57600080fd5b610f8481612a16565b151515610f9057600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16318211151515610fb657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515610ff657600080fd5b5050565b611003816118aa565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561103c57600080fd5b81600d600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061119f5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156111aa57600080fd5b8060038190555050565b60006001905090565b6000600980549050905090565b60055481565b8273ffffffffffffffffffffffffffffffffffffffff166111f0826118aa565b73ffffffffffffffffffffffffffffffffffffffff1614151561121257600080fd5b61121c8282612a38565b151561122757600080fd5b61123082612a16565b15151561123c57600080fd5b611247838383612aa4565b505050565b600c6020528060005260406000206000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611292612d47565b60008061129d612d5b565b60006009868154811015156112ae57fe5b90600052602060002090016000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113505780601f1061132557610100808354040283529160200191611350565b820191906000526020600020905b81548152906001019060200180831161133357829003601f168201915b50505050509450600b6000878152602001908152602001600020549350600a600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250600e60008781526020019081526020016000206006806020026040519081016040528092919082600680156113ed576020028201915b8154815260200190600101908083116113d9575b505050505091506113fd86611a11565b905091939590929450565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561146357600080fd5b61146c81612a16565b15151561147857600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806115645750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561156f57600080fd5b6000831015801561158657506115836111bd565b83105b151561159157600080fd5b816009848154811015156115a157fe5b906000526020600020900160000190805190602001906115c2929190612d83565b5080600e60008581526020019081526020016000209060066115e5929190612e03565b50505050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806116965750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806116ee5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156116f957600080fd5b600454861015151561170a57600080fd5b60008473ffffffffffffffffffffffffffffffffffffffff161461172e5783611751565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b91506001600980548060010182816117699190612e43565b916000526020600020900160006020604051908101604052808c815250909190915060008201518160000190805190602001906117a7929190612e6f565b50505003905081600a600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600b60008381526020019081526020016000208190555084600f60008381526020019081526020016000208190555082600e6000838152602001908152602001600020906006611851929190612e03565b50600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050555050505050505050565b6000600a600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061198f5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561199a57600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600f6000838152602001908152602001600020549050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611afc5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611b0757600080fd5b8060048190555050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611c635750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611c6e57600080fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611cb557600080fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611cfd57600080fd5b611d1f3073ffffffffffffffffffffffffffffffffffffffff16316002612cd8565b90506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515611d8257600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515611de457600080fd5b50565b6040805190810160405280600881526020017f4b706f704974656d00000000000000000000000000000000000000000000000081525081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e50338383612aa4565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611efc5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611f0757600080fd5b8060058190555050565b6000611f1c33612a16565b151515611f2857600080fd5b611f323383612a38565b1515611f3d57600080fd5b600a600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611f7e813384612aa4565b5050565b600f6020528060005260406000206000915090505481565b600e60205281600052604060002081600681101515611fb557fe5b01600091509150505481565b600981815481101515611fd057fe5b906000526020600020900160009150905080600001905081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806120925750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561209d57600080fd5b6120a681612a16565b1515156120b257600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60035481565b600b6020528060005260406000206000915090505481565b600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561217357600080fd5b61217c85612a16565b15151561218857600080fd5b61219184612a16565b15151561219d57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166121bd846118aa565b73ffffffffffffffffffffffffffffffffffffffff161415156121df57600080fd5b600b6000848152602001908152602001600020549150600454905080600b60008581526020019081526020016000208190555061221d848685612aa4565b7f6ec190b945f368aacc027dd20705085b08524cbc9cbca6f8f8b1eb85c9d3ff1c83838360098781548110151561225057fe5b9060005260206000209001600001888a60405180878152602001868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182810382528581815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561235f5780601f106123345761010080835404028352916020019161235f565b820191906000526020600020905b81548152906001019060200180831161234257829003601f168201915b505097505050505050505060405180910390a15050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806124215750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561242c57600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008060008060008060006124878a6118aa565b9850600b60008b81526020019081526020016000205497503373ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16141515156124da57600080fd5b6124e333612a16565b1515156124ef57600080fd5b8734101515156124fe57600080fd5b61251461250d89600654612cf3565b6064612cd8565b965061252b61252489605a612cf3565b6064612cd8565b95506125373489612d2e565b945061254489338c612aa4565b60035488101561256057612559886002612cf3565b9350612579565b61257661256f89600554612cf3565b6064612cd8565b93505b83600b60008c8152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16141515612607578873ffffffffffffffffffffffffffffffffffffffff166108fc879081150290604051600060405180830381858888f19350505050151561260657600080fd5b5b6126108a611a11565b9250600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508173ffffffffffffffffffffffffffffffffffffffff16636352211e846000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15156126ae57600080fd5b6102c65a03f115156126bf57600080fd5b5050506040518051905090503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561270d575061270b81612a16565b155b15612753578073ffffffffffffffffffffffffffffffffffffffff166108fc889081150290604051600060405180830381858888f19350505050151561275257600080fd5b5b7f23a9360ab6e1a14ec2c4c4bc5a381ee7f6e7024b8b4db4692c15d338bcb179598a898660098e81548110151561278657fe5b90600052602060002090016000018d3360405180878152602001868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281038252858181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156128955780601f1061286a57610100808354040283529160200191612895565b820191906000526020600020905b81548152906001019060200180831161287857829003601f168201915b505097505050505050505060405180910390a13373ffffffffffffffffffffffffffffffffffffffff166108fc869081150290604051600060405180830381858888f1935050505015156128e857600080fd5b50505050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061299c5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156129a757600080fd5b8060068190555050565b6040805190810160405280600881526020017f4b706f704974656d00000000000000000000000000000000000000000000000081525081565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b6000808273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60008273ffffffffffffffffffffffffffffffffffffffff16600d600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b60008373ffffffffffffffffffffffffffffffffffffffff16612ac6836118aa565b73ffffffffffffffffffffffffffffffffffffffff16141515612ae857600080fd5b612af183612a16565b151515612afd57600080fd5b6000612b0885611b11565b111515612b1457600080fd5b612b1d83611b11565b612b2685611b11565b01905082600a600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550600d600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690558273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a380612cbf84611b11565b612cc886611b11565b01141515612cd257fe5b50505050565b6000808284811515612ce657fe5b0490508091505092915050565b6000806000841415612d085760009150612d27565b8284029050828482811515612d1957fe5b04141515612d2357fe5b8091505b5092915050565b6000828211151515612d3c57fe5b818303905092915050565b602060405190810160405280600081525090565b60c0604051908101604052806006905b6000815260200190600190039081612d6b5790505090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612dc457805160ff1916838001178555612df2565b82800160010185558215612df2579182015b82811115612df1578251825591602001919060010190612dd6565b5b509050612dff9190612eef565b5090565b8260068101928215612e32579160200282015b82811115612e31578251825591602001919060010190612e16565b5b509050612e3f9190612eef565b5090565b815481835581811511612e6a57818360005260206000209182019101612e699190612f14565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612eb057805160ff1916838001178555612ede565b82800160010185558215612ede579182015b82811115612edd578251825591602001919060010190612ec2565b5b509050612eeb9190612eef565b5090565b612f1191905b80821115612f0d576000816000905550600101612ef5565b5090565b90565b612f4091905b80821115612f3c5760008082016000612f339190612f43565b50600101612f1a565b5090565b90565b50805460018160011615610100020316600290046000825580601f10612f695750612f88565b601f016020900490600052602060002090810190612f879190612eef565b5b505600a165627a7a72305820d9af4b217ae3b7293f290fd48613320fd2a7d909473085d70b035e30d0d905130029
Swarm Source
bzzr://d9af4b217ae3b7293f290fd48613320fd2a7d909473085d70b035e30d0d90513
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.