Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 492 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Mine Card | 14182400 | 1480 days ago | IN | 0.001 ETH | 0.04193159 | ||||
| Mine Card | 14182376 | 1480 days ago | IN | 0.001 ETH | 0.03203623 | ||||
| Mine Card | 14182348 | 1480 days ago | IN | 0.001 ETH | 0.03519219 | ||||
| Process Sell Ord... | 13260765 | 1624 days ago | IN | 0.005 ETH | 0.00787062 | ||||
| Process Sell Ord... | 13260712 | 1624 days ago | IN | 0.05 ETH | 0.00967278 | ||||
| Mine Card | 13239004 | 1627 days ago | IN | 0.001 ETH | 0.03814497 | ||||
| Mine Card | 13238999 | 1627 days ago | IN | 0.001 ETH | 0.05469878 | ||||
| Mine Card | 13238988 | 1627 days ago | IN | 0.001 ETH | 0.02826556 | ||||
| Mine Card | 13238973 | 1627 days ago | IN | 0.001 ETH | 0.02641982 | ||||
| Mine Card | 13237369 | 1627 days ago | IN | 0.001 ETH | 0.08910562 | ||||
| Mine Card | 13237365 | 1627 days ago | IN | 0.001 ETH | 0.0359389 | ||||
| Mine Card | 13237335 | 1627 days ago | IN | 0.001 ETH | 0.0576 | ||||
| Mine Card | 13237324 | 1627 days ago | IN | 0.001 ETH | 0.03675146 | ||||
| Process Sell Ord... | 13236746 | 1627 days ago | IN | 0.004 ETH | 0.00522383 | ||||
| Process Sell Ord... | 13236690 | 1628 days ago | IN | 0.015 ETH | 0.00738691 | ||||
| Process Sell Ord... | 13236537 | 1628 days ago | IN | 0.025 ETH | 0.00552262 | ||||
| Mine Card | 13236471 | 1628 days ago | IN | 0.001 ETH | 0.02525195 | ||||
| Mine Card | 13236443 | 1628 days ago | IN | 0.001 ETH | 0.03056626 | ||||
| Mine Card | 13236436 | 1628 days ago | IN | 0.001 ETH | 0.01227334 | ||||
| Mine Card | 13236041 | 1628 days ago | IN | 0.001 ETH | 0.00928876 | ||||
| Mine Card | 13236036 | 1628 days ago | IN | 0.001 ETH | 0.01839586 | ||||
| Process Sell Ord... | 13235044 | 1628 days ago | IN | 0.02 ETH | 0.0071217 | ||||
| Process Sell Ord... | 13235040 | 1628 days ago | IN | 0.01 ETH | 0.00653679 | ||||
| Process Sell Ord... | 13235036 | 1628 days ago | IN | 0.01 ETH | 0.00563392 | ||||
| Process Sell Ord... | 13235019 | 1628 days ago | IN | 0.02 ETH | 0.00177148 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| - | 14182400 | 1480 days ago | 0.001 ETH | ||||
| - | 14182376 | 1480 days ago | 0.001 ETH | ||||
| - | 14182348 | 1480 days ago | 0.001 ETH | ||||
| - | 13260765 | 1624 days ago | 0.005 ETH | ||||
| - | 13260712 | 1624 days ago | 0.05 ETH | ||||
| - | 13239004 | 1627 days ago | 0.001 ETH | ||||
| - | 13238988 | 1627 days ago | 0.001 ETH | ||||
| - | 13238973 | 1627 days ago | 0.001 ETH | ||||
| - | 13237369 | 1627 days ago | 0.001 ETH | ||||
| - | 13237365 | 1627 days ago | 0.001 ETH | ||||
| - | 13236746 | 1627 days ago | 0.004 ETH | ||||
| - | 13236690 | 1628 days ago | 0.015 ETH | ||||
| - | 13236537 | 1628 days ago | 0.025 ETH | ||||
| - | 13236443 | 1628 days ago | 0.001 ETH | ||||
| - | 13236041 | 1628 days ago | 0.001 ETH | ||||
| - | 13235044 | 1628 days ago | 0.02 ETH | ||||
| - | 13235040 | 1628 days ago | 0.01 ETH | ||||
| - | 13235036 | 1628 days ago | 0.01 ETH | ||||
| - | 13235016 | 1628 days ago | 0.02 ETH | ||||
| - | 13234898 | 1628 days ago | 0.008 ETH | ||||
| - | 13234846 | 1628 days ago | 0.02 ETH | ||||
| - | 13234832 | 1628 days ago | 0.02 ETH | ||||
| - | 13234784 | 1628 days ago | 0.008 ETH | ||||
| Transfer | 6099749 | 2764 days ago | 0.001 ETH | ||||
| Transfer | 6090653 | 2766 days ago | 0.001 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
HumanityCard
Compiler Version
v0.4.21+commit.dfe3193c
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2018-03-16
*/
pragma solidity ^0.4.2;
contract ERC721 {
function isERC721() public pure returns (bool b);
function implementsERC721() public pure returns (bool b);
function name() public pure returns (string name);
function symbol() public pure returns (string symbol);
function totalSupply() public view returns (uint256 totalSupply);
function balanceOf(address _owner) public view returns (uint256 balance);
function ownerOf(uint256 _tokenId) public view returns (address owner);
function approve(address _to, uint256 _tokenId) public;
function takeOwnership(uint256 _tokenId) public;
function transferFrom(address _from, address _to, uint256 _tokenId) public;
function transfer(address _to, uint256 _tokenId) public;
function tokenOfOwnerByIndex(address _owner, uint256 _index) constant returns (uint tokenId);
function tokenMetadata(uint256 _tokenId) constant returns (string infoUrl);
event Transfer(address indexed _from, address indexed _to, uint256 _tokenId);
event Approval(address indexed _owner, address indexed _approved, uint256 _tokenId);
}
contract HumanityCard is ERC721 {
///////////////////////////////////////////////////////////////
/// Modifiers
modifier onlyOwner {
require(msg.sender == owner);
_;
}
event Mined(address indexed owner, uint16 human);
///////////////////////////////////////////////////////////////
/// Structures
struct Human {
string name;
uint8 max;
uint mined;
}
struct Card {
uint16 human;
address owner;
uint indexUser;
}
struct SellOrder {
address seller;
uint card;
uint price;
}
///////////////////////////////////////////////////////////////
/// Constants
string constant NAME = "HumanityCards";
string constant SYMBOL = "HCX";
///////////////////////////////////////////////////////////////
/// Attributes
address owner;
uint cardPrice;
uint humanNumber;
Human[] humanArray;
uint cardNumber;
uint cardMined;
Card[] cardArray;
mapping (address => uint256) cardCount;
mapping (uint256 => address) approveMap;
SellOrder[] sellOrderList;
// Index of the card for the user
mapping (address => mapping (uint => uint)) indexCard;
///////////////////////////////////////////////////////////////
/// Constructor
function HumanityCard() public {
owner = msg.sender;
cardPrice = 1 finney;
humanNumber = 0;
cardNumber = 0;
cardMined = 0;
}
///////////////////////////////////////////////////////////////
/// Admin functions
function addHuman(string name, uint8 max) public onlyOwner {
Human memory newHuman = Human(name, max, 0);
humanArray.push(newHuman);
humanNumber += 1;
cardNumber += max;
}
// Used only if ether price increase (decrease the price card)
function changeCardPrice(uint newPrice) public onlyOwner {
cardPrice = newPrice;
}
///////////////////////////////////////////////////////////////
/// Implementation ERC721
function isERC721() public pure returns (bool b) {
return true;
}
function implementsERC721() public pure returns (bool b) {
return true;
}
function name() public pure returns (string _name) {
return NAME;
}
function symbol() public pure returns (string _symbol) {
return SYMBOL;
}
function totalSupply() public view returns (uint256 _totalSupply) {
return cardMined;
}
function balanceOf(address _owner) public view returns (uint256 balance) {
return cardCount[_owner];
}
function ownerOf(uint256 _tokenId) public view returns (address _owner) {
require(_tokenId < cardMined);
Card c = cardArray[_tokenId];
return c.owner;
}
function approve(address _to, uint256 _tokenId) public {
require(msg.sender == ownerOf(_tokenId));
require(msg.sender != _to);
approveMap[_tokenId] = _to;
Approval(msg.sender, _to, _tokenId);
}
function transferFrom(address _from, address _to, uint256 _tokenId) public {
require(_tokenId < cardMined);
require(_from == ownerOf(_tokenId));
require(_from != _to);
require(approveMap[_tokenId] == _to);
cardCount[_from] -= 1;
// Change the indexCard of _from
indexCard[_from][cardArray[_tokenId].indexUser] = indexCard[_from][cardCount[_from]];
cardArray[indexCard[_from][cardCount[_from]]].indexUser = cardArray[_tokenId].indexUser;
// This card is the last one for the new owner
cardArray[_tokenId].indexUser = cardCount[_to];
indexCard[_to][cardCount[_to]] = _tokenId;
cardArray[_tokenId].owner = _to;
cardCount[_to] += 1;
Transfer(_from, _to, _tokenId);
}
function takeOwnership(uint256 _tokenId) public {
require(_tokenId < cardMined);
address oldOwner = ownerOf(_tokenId);
address newOwner = msg.sender;
require(newOwner != oldOwner);
require(approveMap[_tokenId] == msg.sender);
cardCount[oldOwner] -= 1;
// Change the indexCard of _from
indexCard[oldOwner][cardArray[_tokenId].indexUser] = indexCard[oldOwner][cardCount[oldOwner]];
cardArray[indexCard[oldOwner][cardCount[oldOwner]]].indexUser = cardArray[_tokenId].indexUser;
// This card is the last one for the new owner
cardArray[_tokenId].indexUser = cardCount[newOwner];
indexCard[newOwner][cardCount[newOwner]] = _tokenId;
cardArray[_tokenId].owner = newOwner;
cardCount[newOwner] += 1;
Transfer(oldOwner, newOwner, _tokenId);
}
function transfer(address _to, uint256 _tokenId) public {
require(_tokenId < cardMined);
address oldOwner = msg.sender;
address newOwner = _to;
require(oldOwner == ownerOf(_tokenId));
require(oldOwner != newOwner);
require(newOwner != address(0));
cardCount[oldOwner] -= 1;
// Change the indexCard of _from
indexCard[oldOwner][cardArray[_tokenId].indexUser] = indexCard[oldOwner][cardCount[oldOwner]];
cardArray[indexCard[oldOwner][cardCount[oldOwner]]].indexUser = cardArray[_tokenId].indexUser;
// This card is the last one for the new owner
cardArray[_tokenId].indexUser = cardCount[newOwner];
indexCard[newOwner][cardCount[newOwner]] = _tokenId;
cardArray[_tokenId].owner = newOwner;
cardCount[newOwner] += 1;
Transfer(oldOwner, newOwner, _tokenId);
}
function tokenOfOwnerByIndex(address _owner, uint256 _index) constant returns (uint tokenId) {
require(_index < cardCount[_owner]);
return indexCard[_owner][_index];
}
// For this case the only metadata is the name of the human
function tokenMetadata(uint256 _tokenId) constant returns (string infoUrl) {
require(_tokenId < cardMined);
uint16 humanId = cardArray[_tokenId].human;
return humanArray[humanId].name;
}
///////////////////////////////////////////////////////////////
/// HumanityCard functions
// Mine a new card
function mineCard() public payable returns(bool success) {
require(msg.value == cardPrice);
require(cardMined < cardNumber);
int remaining = (int)(cardNumber - cardMined);
// Choosing the card
int numero = int(keccak256(block.timestamp))%remaining;
if(numero < 0) {
numero *= -1;
}
uint16 chosenOne = 0;
while (numero >= 0) {
numero -= (int)(humanArray[chosenOne].max-humanArray[chosenOne].mined);
if (numero >= 0) {
chosenOne += 1;
}
}
// Adding the card to the user
address newOwner = msg.sender;
Card memory newCard = Card(chosenOne, newOwner, cardCount[newOwner]);
cardArray.push(newCard);
// This card is the last one
indexCard[newOwner][cardCount[newOwner]] = cardMined;
cardCount[newOwner] += 1;
// Updating cards informations
cardMined += 1;
humanArray[chosenOne].mined += 1;
// Sending the fund to the owner
if(!owner.send(cardPrice)) {
revert();
}
Mined(newOwner, chosenOne);
return true;
}
// Sale functions
function createSellOrder(uint256 _tokenId, uint price) public {
require(_tokenId < cardMined);
require(msg.sender == ownerOf(_tokenId));
SellOrder memory newOrder = SellOrder(msg.sender, _tokenId, price);
sellOrderList.push(newOrder);
cardArray[_tokenId].owner = address(0);
cardCount[msg.sender] -= 1;
// Change the indexCard of sender
indexCard[msg.sender][cardArray[_tokenId].indexUser] = indexCard[msg.sender][cardCount[msg.sender]];
cardArray[indexCard[msg.sender][cardCount[msg.sender]]].indexUser = cardArray[_tokenId].indexUser;
}
function processSellOrder(uint id, uint256 _tokenId) payable public {
require(id < sellOrderList.length);
SellOrder memory order = sellOrderList[id];
require(order.card == _tokenId);
require(msg.value == order.price);
require(msg.sender != order.seller);
// Sending fund to the seller
if(!order.seller.send(msg.value)) {
revert();
}
// Adding card to the buyer
cardArray[_tokenId].owner = msg.sender;
// This card is the last one for the new owner
cardArray[_tokenId].indexUser = cardCount[msg.sender];
indexCard[msg.sender][cardCount[msg.sender]] = _tokenId;
cardCount[msg.sender] += 1;
// Update list
sellOrderList[id] = sellOrderList[sellOrderList.length-1];
delete sellOrderList[sellOrderList.length-1];
sellOrderList.length--;
}
function cancelSellOrder(uint id, uint256 _tokenId) public {
require(id < sellOrderList.length);
SellOrder memory order = sellOrderList[id];
require(order.seller == msg.sender);
require(order.card == _tokenId);
// Give back card to seller
cardArray[_tokenId].owner = msg.sender;
// This card is the last one for the new owner
cardArray[_tokenId].indexUser = cardCount[msg.sender];
indexCard[msg.sender][cardCount[msg.sender]] = _tokenId;
cardCount[msg.sender] += 1;
// Update list
sellOrderList[id] = sellOrderList[sellOrderList.length-1];
delete sellOrderList[sellOrderList.length-1];
sellOrderList.length--;
}
function getSellOrder(uint id) public view returns(address seller, uint card, uint price) {
require(id < sellOrderList.length);
SellOrder memory ret = sellOrderList[id];
return(ret.seller, ret.card, ret.price);
}
function getNbSellOrder() public view returns(uint nb) {
return sellOrderList.length;
}
// Get functions
function getOwner() public view returns(address ret) {
return owner;
}
function getCardPrice() public view returns(uint ret) {
return cardPrice;
}
function getHumanNumber() public view returns(uint ret) {
return humanNumber;
}
function getHumanInfo(uint i) public view returns(string name, uint8 max, uint mined) {
require(i < humanNumber);
Human memory h = humanArray[i];
return (h.name, h.max, h.mined);
}
function getCardNumber() public view returns(uint ret) {
return cardNumber;
}
function getCardInfo(uint256 _tokenId) public view returns(uint16 human, address owner) {
require(_tokenId < cardMined);
Card memory c = cardArray[_tokenId];
return (c.human, c.owner);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"getCardNumber","outputs":[{"name":"ret","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"_name","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"implementsERC721","outputs":[{"name":"b","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"getNbSellOrder","outputs":[{"name":"nb","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"_totalSupply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"i","type":"uint256"}],"name":"getHumanInfo","outputs":[{"name":"name","type":"string"},{"name":"max","type":"uint8"},{"name":"mined","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"price","type":"uint256"}],"name":"createSellOrder","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"_owner","type":"address"},{"name":"_index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"name":"tokenId","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newPrice","type":"uint256"}],"name":"changeCardPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"id","type":"uint256"}],"name":"getSellOrder","outputs":[{"name":"seller","type":"address"},{"name":"card","type":"uint256"},{"name":"price","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"_owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"tokenMetadata","outputs":[{"name":"infoUrl","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getOwner","outputs":[{"name":"ret","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"_symbol","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getCardInfo","outputs":[{"name":"human","type":"uint16"},{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"id","type":"uint256"},{"name":"_tokenId","type":"uint256"}],"name":"processSellOrder","outputs":[],"payable":true,"stateMutability":"payable","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":"_tokenId","type":"uint256"}],"name":"takeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isERC721","outputs":[{"name":"b","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"getCardPrice","outputs":[{"name":"ret","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getHumanNumber","outputs":[{"name":"ret","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"max","type":"uint8"}],"name":"addHuman","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"id","type":"uint256"},{"name":"_tokenId","type":"uint256"}],"name":"cancelSellOrder","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"mineCard","outputs":[{"name":"success","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"human","type":"uint16"}],"name":"Mined","type":"event"},{"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"}]Contract Creation Code
6060604052341561000f57600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555066038d7ea4c6800060018190555060006002819055506000600481905550600060058190555061350d806100846000396000f30060606040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305dc27081461016457806306fdde031461018d578063095ea7b31461021b5780631051db341461025d5780631390b2471461028a57806318160ddd146102b35780631dd7cf6d146102dc5780631df681021461038c57806323b872dd146103b85780632f745c591461041957806330efac4e1461046f578063390ce0d3146104925780636352211e146105035780636914db601461056657806370a0823114610602578063893d20e81461064f57806395d89b41146106a4578063970129be14610732578063a70beb13146107a4578063a9059cbb146107c5578063b2e6ceeb14610807578063d2afa8c11461082a578063d79d63be14610857578063d8c3527314610880578063e242fbbb146108a9578063e51dfd9014610912578063ed1ece041461093e575b600080fd5b341561016f57600080fd5b610177610960565b6040518082815260200191505060405180910390f35b341561019857600080fd5b6101a061096a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e05780820151818401526020810190506101c5565b50505050905090810190601f16801561020d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561022657600080fd5b61025b600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506109ad565b005b341561026857600080fd5b610270610ae5565b604051808215151515815260200191505060405180910390f35b341561029557600080fd5b61029d610aee565b6040518082815260200191505060405180910390f35b34156102be57600080fd5b6102c6610afb565b6040518082815260200191505060405180910390f35b34156102e757600080fd5b6102fd6004808035906020019091905050610b05565b60405180806020018460ff1660ff168152602001838152602001828103825285818151815260200191508051906020019080838360005b8381101561034f578082015181840152602081019050610334565b50505050905090810190601f16801561037c5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561039757600080fd5b6103b66004808035906020019091908035906020019091905050610c3c565b005b34156103c357600080fd5b610417600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610fdd565b005b341561042457600080fd5b610459600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061150c565b6040518082815260200191505060405180910390f35b341561047a57600080fd5b61049060048080359060200190919050506115b4565b005b341561049d57600080fd5b6104b36004808035906020019091905050611619565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390f35b341561050e57600080fd5b61052460048080359060200190919050506116eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561057157600080fd5b610587600480803590602001909190505061174a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105c75780820151818401526020810190506105ac565b50505050905090810190601f1680156105f45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561060d57600080fd5b610639600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061185a565b6040518082815260200191505060405180910390f35b341561065a57600080fd5b6106626118a3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106af57600080fd5b6106b76118cc565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106f75780820151818401526020810190506106dc565b50505050905090810190601f1680156107245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561073d57600080fd5b610753600480803590602001909190505061190f565b604051808361ffff1661ffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b6107c360048080359060200190919080359060200190919050506119e9565b005b34156107d057600080fd5b610805600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611e1f565b005b341561081257600080fd5b6108286004808035906020019091905050612327565b005b341561083557600080fd5b61083d612825565b604051808215151515815260200191505060405180910390f35b341561086257600080fd5b61086a61282e565b6040518082815260200191505060405180910390f35b341561088b57600080fd5b610893612838565b6040518082815260200191505060405180910390f35b34156108b457600080fd5b610910600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803560ff16906020019091905050612842565b005b341561091d57600080fd5b61093c6004808035906020019091908035906020019091905050612965565b005b610946612d44565b604051808215151515815260200191505060405180910390f35b6000600454905090565b610972613161565b6040805190810160405280600d81526020017f48756d616e697479436172647300000000000000000000000000000000000000815250905090565b6109b6816116eb565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109ef57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610a2a57600080fd5b816008600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b60006001905090565b6000600980549050905090565b6000600554905090565b610b0d613161565b600080610b18613175565b60025485101515610b2857600080fd5b600385815481101515610b3757fe5b906000526020600020906003020160606040519081016040529081600082018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bea5780601f10610bbf57610100808354040283529160200191610bea565b820191906000526020600020905b815481529060010190602001808311610bcd57829003601f168201915b505050505081526020016001820160009054906101000a900460ff1660ff1660ff1681526020016002820154815250509050806000015181602001518260400151829250935093509350509193909250565b610c446131a0565b60055483101515610c5457600080fd5b610c5d836116eb565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c9657600080fd5b6060604051908101604052803373ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815250905060098054806001018281610cde91906131d8565b9160005260206000209060030201600083909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201555050506000600684815481101515610d6357fe5b906000526020600020906002020160000160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002054600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600686815481101515610ee057fe5b906000526020600020906002020160010154815260200190815260200160002081905550600683815481101515610f1357fe5b9060005260206000209060020201600101546006600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002054815481101515610fc357fe5b906000526020600020906002020160010181905550505050565b60055481101515610fed57600080fd5b610ff6816116eb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151561102f57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561106a57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff166008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156110d757600080fd5b6001600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002054600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060068481548110151561120557fe5b90600052602060002090600202016001015481526020019081526020016000208190555060068181548110151561123857fe5b9060005260206000209060020201600101546006600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020548154811015156112e857fe5b906000526020600020906002020160010181905550600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460068281548110151561134c57fe5b90600052602060002090600202016001018190555080600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020819055508160068281548110151561140557fe5b906000526020600020906002020160000160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548210151561155b57600080fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561160f57600080fd5b8060018190555050565b60008060006116266131a0565b6009805490508510151561163957600080fd5b60098581548110151561164857fe5b9060005260206000209060030201606060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015481526020016002820154815250509050806000015181602001518260400151935093509350509193909250565b600080600554831015156116fe57600080fd5b60068381548110151561170d57fe5b906000526020600020906002020190508060000160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b611752613161565b60006005548310151561176457600080fd5b60068381548110151561177357fe5b906000526020600020906002020160000160009054906101000a900461ffff16905060038161ffff168154811015156117a857fe5b90600052602060002090600302016000018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561184d5780601f106118225761010080835404028352916020019161184d565b820191906000526020600020905b81548152906001019060200180831161183057829003601f168201915b5050505050915050919050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6118d4613161565b6040805190810160405280600381526020017f4843580000000000000000000000000000000000000000000000000000000000815250905090565b60008061191a61320a565b6005548410151561192a57600080fd5b60068481548110151561193957fe5b9060005260206000209060020201606060405190810160405290816000820160009054906101000a900461ffff1661ffff1661ffff1681526020016000820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815250509050806000015181602001519250925050915091565b6119f16131a0565b60098054905083101515611a0457600080fd5b600983815481101515611a1357fe5b9060005260206000209060030201606060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015481526020016002820154815250509050818160200151141515611aab57600080fd5b806040015134141515611abd57600080fd5b806000015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515611afc57600080fd5b806000015173ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501515611b4057600080fd5b33600683815481101515611b5057fe5b906000526020600020906002020160000160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600683815481101515611bee57fe5b90600052602060002090600202016001018190555081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020819055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506009600160098054905003815481101515611cfc57fe5b9060005260206000209060030201600984815481101515611d1957fe5b90600052602060002090600302016000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018201548160010155600282015481600201559050506009600160098054905003815481101515611dbc57fe5b9060005260206000209060030201600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160009055600282016000905550506009805480919060019003611e199190613246565b50505050565b60008060055483101515611e3257600080fd5b339150839050611e41836116eb565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515611e7a57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611eb557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611ef157600080fd5b6001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002054600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060068681548110151561201f57fe5b90600052602060002090600202016001015481526020019081526020016000208190555060068381548110151561205257fe5b9060005260206000209060020201600101546006600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481526020019081526020016000205481548110151561210257fe5b906000526020600020906002020160010181905550600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460068481548110151561216657fe5b90600052602060002090600202016001018190555082600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020819055508060068481548110151561221f57fe5b906000526020600020906002020160000160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a350505050565b6000806005548310151561233a57600080fd5b612343836116eb565b91503390508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561238357600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166008600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156123f057600080fd5b6001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002054600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060068681548110151561251e57fe5b90600052602060002090600202016001015481526020019081526020016000208190555060068381548110151561255157fe5b9060005260206000209060020201600101546006600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481526020019081526020016000205481548110151561260157fe5b906000526020600020906002020160010181905550600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460068481548110151561266557fe5b90600052602060002090600202016001018190555082600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020819055508060068481548110151561271e57fe5b906000526020600020906002020160000160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050565b60006001905090565b6000600154905090565b6000600254905090565b61284a613175565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156128a557600080fd5b6060604051908101604052808481526020018360ff16815260200160008152509050600380548060010182816128db9190613278565b91600052602060002090600302016000839091909150600082015181600001908051906020019061290d9291906132aa565b5060208201518160010160006101000a81548160ff021916908360ff1602179055506040820151816002015550505060016002600082825401925050819055508160ff16600460008282540192505081905550505050565b61296d6131a0565b6009805490508310151561298057600080fd5b60098381548110151561298f57fe5b9060005260206000209060030201606060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815260200160028201548152505090503373ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16141515612a5357600080fd5b818160200151141515612a6557600080fd5b33600683815481101515612a7557fe5b906000526020600020906002020160000160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600683815481101515612b1357fe5b90600052602060002090600202016001018190555081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020819055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506009600160098054905003815481101515612c2157fe5b9060005260206000209060030201600984815481101515612c3e57fe5b90600052602060002090600302016000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018201548160010155600282015481600201559050506009600160098054905003815481101515612ce157fe5b9060005260206000209060030201600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160009055600282016000905550506009805480919060019003612d3e9190613246565b50505050565b6000806000806000612d5461320a565b60015434141515612d6457600080fd5b600454600554101515612d7657600080fd5b600554600454039450844260405180828152602001915050604051809103902060019004811515612da357fe5b0793506000841215612dd5577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff840293505b600092505b600084121515612e595760038361ffff16815481101515612df757fe5b90600052602060002090600302016002015460038461ffff16815481101515612e1c57fe5b906000526020600020906003020160010160009054906101000a900460ff1660ff160384039350600084121515612e54576001830192505b612dda565b3391506060604051908101604052808461ffff1681526020018373ffffffffffffffffffffffffffffffffffffffff168152602001600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815250905060068054806001018281612ee7919061332a565b9160005260206000209060020201600083909190915060008201518160000160006101000a81548161ffff021916908361ffff16021790555060208201518160000160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010155505050600554600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020819055506001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506001600560008282540192505081905550600160038461ffff1681548110151561307e57fe5b9060005260206000209060030201600201600082825401925050819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6001549081150290604051600060405180830381858888f1935050505015156130ff57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff167f7c1f9d0ff99ce7cdfc538e6a57e0da25cad20c3b30440894e5205eebe3d1f89484604051808261ffff1661ffff16815260200191505060405180910390a260019550505050505090565b602060405190810160405280600081525090565b60606040519081016040528061318961335c565b8152602001600060ff168152602001600081525090565b606060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b815481835581811511613205576003028160030283600052602060002091820191016132049190613370565b5b505050565b606060405190810160405280600061ffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b815481835581811511613273576003028160030283600052602060002091820191016132729190613370565b5b505050565b8154818355818115116132a5576003028160030283600052602060002091820191016132a491906133c6565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106132eb57805160ff1916838001178555613319565b82800160010185558215613319579182015b828111156133185782518255916020019190600101906132fd565b5b5090506133269190613411565b5090565b815481835581811511613357576002028160020283600052602060002091820191016133569190613436565b5b505050565b602060405190810160405280600081525090565b6133c391905b808211156133bf57600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160009055600282016000905550600301613376565b5090565b90565b61340e91905b8082111561340a57600080820160006133e59190613499565b6001820160006101000a81549060ff02191690556002820160009055506003016133cc565b5090565b90565b61343391905b8082111561342f576000816000905550600101613417565b5090565b90565b61349691905b8082111561349257600080820160006101000a81549061ffff02191690556000820160026101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018201600090555060020161343c565b5090565b90565b50805460018160011615610100020316600290046000825580601f106134bf57506134de565b601f0160209004906000526020600020908101906134dd9190613411565b5b505600a165627a7a7230582089cff650b2bb9596cc313d6ecedab44f6cabe6815415461f44cde1209b7469580029
Deployed Bytecode
0x60606040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305dc27081461016457806306fdde031461018d578063095ea7b31461021b5780631051db341461025d5780631390b2471461028a57806318160ddd146102b35780631dd7cf6d146102dc5780631df681021461038c57806323b872dd146103b85780632f745c591461041957806330efac4e1461046f578063390ce0d3146104925780636352211e146105035780636914db601461056657806370a0823114610602578063893d20e81461064f57806395d89b41146106a4578063970129be14610732578063a70beb13146107a4578063a9059cbb146107c5578063b2e6ceeb14610807578063d2afa8c11461082a578063d79d63be14610857578063d8c3527314610880578063e242fbbb146108a9578063e51dfd9014610912578063ed1ece041461093e575b600080fd5b341561016f57600080fd5b610177610960565b6040518082815260200191505060405180910390f35b341561019857600080fd5b6101a061096a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e05780820151818401526020810190506101c5565b50505050905090810190601f16801561020d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561022657600080fd5b61025b600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506109ad565b005b341561026857600080fd5b610270610ae5565b604051808215151515815260200191505060405180910390f35b341561029557600080fd5b61029d610aee565b6040518082815260200191505060405180910390f35b34156102be57600080fd5b6102c6610afb565b6040518082815260200191505060405180910390f35b34156102e757600080fd5b6102fd6004808035906020019091905050610b05565b60405180806020018460ff1660ff168152602001838152602001828103825285818151815260200191508051906020019080838360005b8381101561034f578082015181840152602081019050610334565b50505050905090810190601f16801561037c5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561039757600080fd5b6103b66004808035906020019091908035906020019091905050610c3c565b005b34156103c357600080fd5b610417600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610fdd565b005b341561042457600080fd5b610459600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061150c565b6040518082815260200191505060405180910390f35b341561047a57600080fd5b61049060048080359060200190919050506115b4565b005b341561049d57600080fd5b6104b36004808035906020019091905050611619565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390f35b341561050e57600080fd5b61052460048080359060200190919050506116eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561057157600080fd5b610587600480803590602001909190505061174a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105c75780820151818401526020810190506105ac565b50505050905090810190601f1680156105f45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561060d57600080fd5b610639600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061185a565b6040518082815260200191505060405180910390f35b341561065a57600080fd5b6106626118a3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106af57600080fd5b6106b76118cc565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106f75780820151818401526020810190506106dc565b50505050905090810190601f1680156107245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561073d57600080fd5b610753600480803590602001909190505061190f565b604051808361ffff1661ffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b6107c360048080359060200190919080359060200190919050506119e9565b005b34156107d057600080fd5b610805600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611e1f565b005b341561081257600080fd5b6108286004808035906020019091905050612327565b005b341561083557600080fd5b61083d612825565b604051808215151515815260200191505060405180910390f35b341561086257600080fd5b61086a61282e565b6040518082815260200191505060405180910390f35b341561088b57600080fd5b610893612838565b6040518082815260200191505060405180910390f35b34156108b457600080fd5b610910600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803560ff16906020019091905050612842565b005b341561091d57600080fd5b61093c6004808035906020019091908035906020019091905050612965565b005b610946612d44565b604051808215151515815260200191505060405180910390f35b6000600454905090565b610972613161565b6040805190810160405280600d81526020017f48756d616e697479436172647300000000000000000000000000000000000000815250905090565b6109b6816116eb565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109ef57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610a2a57600080fd5b816008600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b60006001905090565b6000600980549050905090565b6000600554905090565b610b0d613161565b600080610b18613175565b60025485101515610b2857600080fd5b600385815481101515610b3757fe5b906000526020600020906003020160606040519081016040529081600082018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bea5780601f10610bbf57610100808354040283529160200191610bea565b820191906000526020600020905b815481529060010190602001808311610bcd57829003601f168201915b505050505081526020016001820160009054906101000a900460ff1660ff1660ff1681526020016002820154815250509050806000015181602001518260400151829250935093509350509193909250565b610c446131a0565b60055483101515610c5457600080fd5b610c5d836116eb565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c9657600080fd5b6060604051908101604052803373ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815250905060098054806001018281610cde91906131d8565b9160005260206000209060030201600083909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201555050506000600684815481101515610d6357fe5b906000526020600020906002020160000160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002054600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600686815481101515610ee057fe5b906000526020600020906002020160010154815260200190815260200160002081905550600683815481101515610f1357fe5b9060005260206000209060020201600101546006600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002054815481101515610fc357fe5b906000526020600020906002020160010181905550505050565b60055481101515610fed57600080fd5b610ff6816116eb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151561102f57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561106a57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff166008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156110d757600080fd5b6001600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002054600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060068481548110151561120557fe5b90600052602060002090600202016001015481526020019081526020016000208190555060068181548110151561123857fe5b9060005260206000209060020201600101546006600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020548154811015156112e857fe5b906000526020600020906002020160010181905550600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460068281548110151561134c57fe5b90600052602060002090600202016001018190555080600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020819055508160068281548110151561140557fe5b906000526020600020906002020160000160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548210151561155b57600080fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561160f57600080fd5b8060018190555050565b60008060006116266131a0565b6009805490508510151561163957600080fd5b60098581548110151561164857fe5b9060005260206000209060030201606060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015481526020016002820154815250509050806000015181602001518260400151935093509350509193909250565b600080600554831015156116fe57600080fd5b60068381548110151561170d57fe5b906000526020600020906002020190508060000160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b611752613161565b60006005548310151561176457600080fd5b60068381548110151561177357fe5b906000526020600020906002020160000160009054906101000a900461ffff16905060038161ffff168154811015156117a857fe5b90600052602060002090600302016000018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561184d5780601f106118225761010080835404028352916020019161184d565b820191906000526020600020905b81548152906001019060200180831161183057829003601f168201915b5050505050915050919050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6118d4613161565b6040805190810160405280600381526020017f4843580000000000000000000000000000000000000000000000000000000000815250905090565b60008061191a61320a565b6005548410151561192a57600080fd5b60068481548110151561193957fe5b9060005260206000209060020201606060405190810160405290816000820160009054906101000a900461ffff1661ffff1661ffff1681526020016000820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815250509050806000015181602001519250925050915091565b6119f16131a0565b60098054905083101515611a0457600080fd5b600983815481101515611a1357fe5b9060005260206000209060030201606060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015481526020016002820154815250509050818160200151141515611aab57600080fd5b806040015134141515611abd57600080fd5b806000015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515611afc57600080fd5b806000015173ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501515611b4057600080fd5b33600683815481101515611b5057fe5b906000526020600020906002020160000160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600683815481101515611bee57fe5b90600052602060002090600202016001018190555081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020819055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506009600160098054905003815481101515611cfc57fe5b9060005260206000209060030201600984815481101515611d1957fe5b90600052602060002090600302016000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018201548160010155600282015481600201559050506009600160098054905003815481101515611dbc57fe5b9060005260206000209060030201600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160009055600282016000905550506009805480919060019003611e199190613246565b50505050565b60008060055483101515611e3257600080fd5b339150839050611e41836116eb565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515611e7a57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611eb557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611ef157600080fd5b6001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002054600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060068681548110151561201f57fe5b90600052602060002090600202016001015481526020019081526020016000208190555060068381548110151561205257fe5b9060005260206000209060020201600101546006600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481526020019081526020016000205481548110151561210257fe5b906000526020600020906002020160010181905550600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460068481548110151561216657fe5b90600052602060002090600202016001018190555082600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020819055508060068481548110151561221f57fe5b906000526020600020906002020160000160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a350505050565b6000806005548310151561233a57600080fd5b612343836116eb565b91503390508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561238357600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166008600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156123f057600080fd5b6001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002054600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060068681548110151561251e57fe5b90600052602060002090600202016001015481526020019081526020016000208190555060068381548110151561255157fe5b9060005260206000209060020201600101546006600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481526020019081526020016000205481548110151561260157fe5b906000526020600020906002020160010181905550600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460068481548110151561266557fe5b90600052602060002090600202016001018190555082600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020819055508060068481548110151561271e57fe5b906000526020600020906002020160000160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050565b60006001905090565b6000600154905090565b6000600254905090565b61284a613175565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156128a557600080fd5b6060604051908101604052808481526020018360ff16815260200160008152509050600380548060010182816128db9190613278565b91600052602060002090600302016000839091909150600082015181600001908051906020019061290d9291906132aa565b5060208201518160010160006101000a81548160ff021916908360ff1602179055506040820151816002015550505060016002600082825401925050819055508160ff16600460008282540192505081905550505050565b61296d6131a0565b6009805490508310151561298057600080fd5b60098381548110151561298f57fe5b9060005260206000209060030201606060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815260200160028201548152505090503373ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16141515612a5357600080fd5b818160200151141515612a6557600080fd5b33600683815481101515612a7557fe5b906000526020600020906002020160000160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600683815481101515612b1357fe5b90600052602060002090600202016001018190555081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020819055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506009600160098054905003815481101515612c2157fe5b9060005260206000209060030201600984815481101515612c3e57fe5b90600052602060002090600302016000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018201548160010155600282015481600201559050506009600160098054905003815481101515612ce157fe5b9060005260206000209060030201600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160009055600282016000905550506009805480919060019003612d3e9190613246565b50505050565b6000806000806000612d5461320a565b60015434141515612d6457600080fd5b600454600554101515612d7657600080fd5b600554600454039450844260405180828152602001915050604051809103902060019004811515612da357fe5b0793506000841215612dd5577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff840293505b600092505b600084121515612e595760038361ffff16815481101515612df757fe5b90600052602060002090600302016002015460038461ffff16815481101515612e1c57fe5b906000526020600020906003020160010160009054906101000a900460ff1660ff160384039350600084121515612e54576001830192505b612dda565b3391506060604051908101604052808461ffff1681526020018373ffffffffffffffffffffffffffffffffffffffff168152602001600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815250905060068054806001018281612ee7919061332a565b9160005260206000209060020201600083909190915060008201518160000160006101000a81548161ffff021916908361ffff16021790555060208201518160000160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010155505050600554600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020819055506001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506001600560008282540192505081905550600160038461ffff1681548110151561307e57fe5b9060005260206000209060030201600201600082825401925050819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6001549081150290604051600060405180830381858888f1935050505015156130ff57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff167f7c1f9d0ff99ce7cdfc538e6a57e0da25cad20c3b30440894e5205eebe3d1f89484604051808261ffff1661ffff16815260200191505060405180910390a260019550505050505090565b602060405190810160405280600081525090565b60606040519081016040528061318961335c565b8152602001600060ff168152602001600081525090565b606060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b815481835581811511613205576003028160030283600052602060002091820191016132049190613370565b5b505050565b606060405190810160405280600061ffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b815481835581811511613273576003028160030283600052602060002091820191016132729190613370565b5b505050565b8154818355818115116132a5576003028160030283600052602060002091820191016132a491906133c6565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106132eb57805160ff1916838001178555613319565b82800160010185558215613319579182015b828111156133185782518255916020019190600101906132fd565b5b5090506133269190613411565b5090565b815481835581811511613357576002028160020283600052602060002091820191016133569190613436565b5b505050565b602060405190810160405280600081525090565b6133c391905b808211156133bf57600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160009055600282016000905550600301613376565b5090565b90565b61340e91905b8082111561340a57600080820160006133e59190613499565b6001820160006101000a81549060ff02191690556002820160009055506003016133cc565b5090565b90565b61343391905b8082111561342f576000816000905550600101613417565b5090565b90565b61349691905b8082111561349257600080820160006101000a81549061ffff02191690556000820160026101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018201600090555060020161343c565b5090565b90565b50805460018160011615610100020316600290046000825580601f106134bf57506134de565b601f0160209004906000526020600020908101906134dd9190613411565b5b505600a165627a7a7230582089cff650b2bb9596cc313d6ecedab44f6cabe6815415461f44cde1209b7469580029
Swarm Source
bzzr://89cff650b2bb9596cc313d6ecedab44f6cabe6815415461f44cde1209b746958
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.