More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 1,291 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Approval For... | 20019803 | 118 days ago | IN | 0 ETH | 0.00078922 | ||||
Set Approval For... | 19852614 | 141 days ago | IN | 0 ETH | 0.00009071 | ||||
Set Approval For... | 19852439 | 141 days ago | IN | 0 ETH | 0.00010694 | ||||
Set Approval For... | 19825057 | 145 days ago | IN | 0 ETH | 0.00024382 | ||||
Approve | 19824563 | 145 days ago | IN | 0 ETH | 0.00011592 | ||||
Approve | 19824548 | 145 days ago | IN | 0 ETH | 0.00011699 | ||||
Set Approval For... | 19824448 | 145 days ago | IN | 0 ETH | 0.00010489 | ||||
Set Approval For... | 19824440 | 145 days ago | IN | 0 ETH | 0.00010407 | ||||
Set Approval For... | 19808487 | 147 days ago | IN | 0 ETH | 0.00019869 | ||||
Set Approval For... | 19539937 | 185 days ago | IN | 0 ETH | 0.00130413 | ||||
Set Approval For... | 19484220 | 193 days ago | IN | 0 ETH | 0.00179566 | ||||
Set Approval For... | 19355318 | 211 days ago | IN | 0 ETH | 0.0023006 | ||||
Set Approval For... | 19175579 | 236 days ago | IN | 0 ETH | 0.000678 | ||||
Set Approval For... | 19077654 | 250 days ago | IN | 0 ETH | 0.00079663 | ||||
Set Approval For... | 19038191 | 255 days ago | IN | 0 ETH | 0.00086596 | ||||
Set Approval For... | 18913515 | 273 days ago | IN | 0 ETH | 0.00063637 | ||||
Set Approval For... | 18850100 | 282 days ago | IN | 0 ETH | 0.00097609 | ||||
Safe Transfer Fr... | 18603617 | 316 days ago | IN | 0 ETH | 0.00330739 | ||||
Set Approval For... | 18041851 | 395 days ago | IN | 0 ETH | 0.00059587 | ||||
Set Approval For... | 18041824 | 395 days ago | IN | 0 ETH | 0.00058884 | ||||
Set Approval For... | 18034704 | 396 days ago | IN | 0 ETH | 0.0008375 | ||||
Set Approval For... | 17909504 | 413 days ago | IN | 0 ETH | 0.00058516 | ||||
Set Approval For... | 17880577 | 418 days ago | IN | 0 ETH | 0.00069889 | ||||
Safe Transfer Fr... | 17880215 | 418 days ago | IN | 0 ETH | 0.0036847 | ||||
Set Approval For... | 17650830 | 450 days ago | IN | 0 ETH | 0.00073034 |
Advanced mode: Intended for advanced users or developers and will display all Internal Transactions including zero value transfers. Name tag integration is not available in advanced view.
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | ||||
---|---|---|---|---|---|---|---|
19924786 | 131 days ago | 0 ETH | |||||
19924786 | 131 days ago | 0 ETH | |||||
19591853 | 178 days ago | 0 ETH | |||||
18947318 | 268 days ago | 0 ETH | |||||
18947318 | 268 days ago | 0 ETH | |||||
18836923 | 284 days ago | 0 ETH | |||||
18758843 | 295 days ago | 0 ETH | |||||
18628333 | 313 days ago | 0 ETH | |||||
18628333 | 313 days ago | 0 ETH | |||||
18628333 | 313 days ago | 0 ETH | |||||
18628333 | 313 days ago | 0 ETH | |||||
18628333 | 313 days ago | 0 ETH | |||||
18628333 | 313 days ago | 0 ETH | |||||
18628333 | 313 days ago | 0 ETH | |||||
18628333 | 313 days ago | 0 ETH | |||||
18628333 | 313 days ago | 0 ETH | |||||
18628333 | 313 days ago | 0 ETH | |||||
18498895 | 331 days ago | 0 ETH | |||||
18421915 | 342 days ago | 0 ETH | |||||
18421908 | 342 days ago | 0 ETH | |||||
18041900 | 395 days ago | 0 ETH | |||||
18034706 | 396 days ago | 0 ETH | |||||
18034706 | 396 days ago | 0 ETH | |||||
18034706 | 396 days ago | 0 ETH | |||||
18034706 | 396 days ago | 0 ETH |
Loading...
Loading
Contract Name:
DragonStorage
Compiler Version
v0.4.25+commit.59dbf8f1
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-11-28 */ pragma solidity 0.4.25; library SafeMath256 { 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; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } function pow(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) return 0; if (b == 0) return 1; uint256 c = a ** b; assert(c / (a ** (b - 1)) == a); return c; } } contract Ownable { address public owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); function _validateAddress(address _addr) internal pure { require(_addr != address(0), "invalid address"); } constructor() public { owner = msg.sender; } modifier onlyOwner() { require(msg.sender == owner, "not a contract owner"); _; } function transferOwnership(address newOwner) public onlyOwner { _validateAddress(newOwner); emit OwnershipTransferred(owner, newOwner); owner = newOwner; } } contract Controllable is Ownable { mapping(address => bool) controllers; modifier onlyController { require(_isController(msg.sender), "no controller rights"); _; } function _isController(address _controller) internal view returns (bool) { return controllers[_controller]; } function _setControllers(address[] _controllers) internal { for (uint256 i = 0; i < _controllers.length; i++) { _validateAddress(_controllers[i]); controllers[_controllers[i]] = true; } } } contract Upgradable is Controllable { address[] internalDependencies; address[] externalDependencies; function getInternalDependencies() public view returns(address[]) { return internalDependencies; } function getExternalDependencies() public view returns(address[]) { return externalDependencies; } function setInternalDependencies(address[] _newDependencies) public onlyOwner { for (uint256 i = 0; i < _newDependencies.length; i++) { _validateAddress(_newDependencies[i]); } internalDependencies = _newDependencies; } function setExternalDependencies(address[] _newDependencies) public onlyOwner { externalDependencies = _newDependencies; _setControllers(_newDependencies); } } contract ERC721Basic { event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); function balanceOf(address _owner) public view returns (uint256 _balance); function ownerOf(uint256 _tokenId) public view returns (address _owner); function exists(uint256 _tokenId) public view returns (bool _exists); function approve(address _to, uint256 _tokenId) public; function getApproved(uint256 _tokenId) public view returns (address _operator); function setApprovalForAll(address _operator, bool _approved) public; function isApprovedForAll(address _owner, address _operator) public view returns (bool); function transferFrom(address _from, address _to, uint256 _tokenId) public; function safeTransferFrom(address _from, address _to, uint256 _tokenId) public; function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes _data) public; function supportsInterface(bytes4 _interfaceID) external pure returns (bool); } contract ERC721Enumerable is ERC721Basic { function totalSupply() public view returns (uint256); function tokenOfOwnerByIndex(address _owner, uint256 _index) public view returns (uint256 _tokenId); function tokenByIndex(uint256 _index) public view returns (uint256); } contract ERC721Metadata is ERC721Basic { function name() public view returns (string _name); function symbol() public view returns (string _symbol); function tokenURI(uint256 _tokenId) public view returns (string); } contract ERC721 is ERC721Basic, ERC721Enumerable, ERC721Metadata {} contract ERC721Receiver { function onERC721Received( address _operator, address _from, uint256 _tokenId, bytes _data ) public returns(bytes4); } contract ERC721BasicToken is ERC721Basic, Upgradable { using SafeMath256 for uint256; // Equals to `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))` // which can be also obtained as `IERC721Receiver(0).onERC721Received.selector` bytes4 private constant _ERC721_RECEIVED = 0x150b7a02; // Mapping from token ID to owner mapping (uint256 => address) internal tokenOwner; // Mapping from token ID to approved address mapping (uint256 => address) internal tokenApprovals; // Mapping from owner to number of owned token mapping (address => uint256) internal ownedTokensCount; // Mapping from owner to operator approvals mapping (address => mapping (address => bool)) internal operatorApprovals; function _checkRights(bool _has) internal pure { require(_has, "no rights to manage"); } function _validateAddress(address _addr) internal pure { require(_addr != address(0), "invalid address"); } function _checkOwner(uint256 _tokenId, address _owner) internal view { require(ownerOf(_tokenId) == _owner, "not an owner"); } function _checkThatUserHasTokens(bool _has) internal pure { require(_has, "user has no tokens"); } function balanceOf(address _owner) public view returns (uint256) { _validateAddress(_owner); return ownedTokensCount[_owner]; } function ownerOf(uint256 _tokenId) public view returns (address) { address owner = tokenOwner[_tokenId]; _validateAddress(owner); return owner; } function exists(uint256 _tokenId) public view returns (bool) { address owner = tokenOwner[_tokenId]; return owner != address(0); } function _approve(address _from, address _to, uint256 _tokenId) internal { address owner = ownerOf(_tokenId); require(_to != owner, "can't be approved to owner"); _checkRights(_from == owner || isApprovedForAll(owner, _from)); if (getApproved(_tokenId) != address(0) || _to != address(0)) { tokenApprovals[_tokenId] = _to; emit Approval(owner, _to, _tokenId); } } function approve(address _to, uint256 _tokenId) public { _approve(msg.sender, _to, _tokenId); } function remoteApprove(address _to, uint256 _tokenId) external onlyController { _approve(tx.origin, _to, _tokenId); } function getApproved(uint256 _tokenId) public view returns (address) { require(exists(_tokenId), "token doesn't exist"); return tokenApprovals[_tokenId]; } function setApprovalForAll(address _to, bool _approved) public { require(_to != msg.sender, "wrong sender"); operatorApprovals[msg.sender][_to] = _approved; emit ApprovalForAll(msg.sender, _to, _approved); } function isApprovedForAll(address _owner, address _operator) public view returns (bool) { return operatorApprovals[_owner][_operator]; } function transferFrom(address _from, address _to, uint256 _tokenId) public { _checkRights(isApprovedOrOwner(msg.sender, _tokenId)); _validateAddress(_from); _validateAddress(_to); clearApproval(_from, _tokenId); removeTokenFrom(_from, _tokenId); addTokenTo(_to, _tokenId); emit Transfer(_from, _to, _tokenId); } function safeTransferFrom( address _from, address _to, uint256 _tokenId ) public { safeTransferFrom(_from, _to, _tokenId, ""); } function safeTransferFrom( address _from, address _to, uint256 _tokenId, bytes _data ) public { transferFrom(_from, _to, _tokenId); require(checkAndCallSafeTransfer(_from, _to, _tokenId, _data), "can't make safe transfer"); } function isApprovedOrOwner(address _spender, uint256 _tokenId) public view returns (bool) { address owner = ownerOf(_tokenId); return _spender == owner || getApproved(_tokenId) == _spender || isApprovedForAll(owner, _spender); } function _mint(address _to, uint256 _tokenId) internal { _validateAddress(_to); addTokenTo(_to, _tokenId); emit Transfer(address(0), _to, _tokenId); } function _burn(address _owner, uint256 _tokenId) internal { clearApproval(_owner, _tokenId); removeTokenFrom(_owner, _tokenId); emit Transfer(_owner, address(0), _tokenId); } function clearApproval(address _owner, uint256 _tokenId) internal { _checkOwner(_tokenId, _owner); if (tokenApprovals[_tokenId] != address(0)) { tokenApprovals[_tokenId] = address(0); emit Approval(_owner, address(0), _tokenId); } } function addTokenTo(address _to, uint256 _tokenId) internal { require(tokenOwner[_tokenId] == address(0), "token already has an owner"); tokenOwner[_tokenId] = _to; ownedTokensCount[_to] = ownedTokensCount[_to].add(1); } function removeTokenFrom(address _from, uint256 _tokenId) internal { _checkOwner(_tokenId, _from); _checkThatUserHasTokens(ownedTokensCount[_from] > 0); ownedTokensCount[_from] = ownedTokensCount[_from].sub(1); tokenOwner[_tokenId] = address(0); } function _isContract(address addr) internal view returns (bool) { uint256 size; assembly { size := extcodesize(addr) } return size > 0; } function checkAndCallSafeTransfer( address _from, address _to, uint256 _tokenId, bytes _data ) internal returns (bool) { if (!_isContract(_to)) { return true; } bytes4 retval = ERC721Receiver(_to).onERC721Received(msg.sender, _from, _tokenId, _data); return (retval == _ERC721_RECEIVED); } } contract ERC721Token is ERC721, ERC721BasicToken { bytes4 internal constant INTERFACE_SIGNATURE_ERC165 = 0x01ffc9a7; bytes4 internal constant INTERFACE_SIGNATURE_ERC721 = 0x80ac58cd; bytes4 internal constant INTERFACE_SIGNATURE_ERC721TokenReceiver = 0xf0b9e5ba; bytes4 internal constant INTERFACE_SIGNATURE_ERC721Metadata = 0x5b5e139f; bytes4 internal constant INTERFACE_SIGNATURE_ERC721Enumerable = 0x780e9d63; string internal name_; string internal symbol_; // Mapping from owner to list of owned token IDs mapping (address => uint256[]) internal ownedTokens; // Mapping from token ID to index of the owner tokens list mapping(uint256 => uint256) internal ownedTokensIndex; // Array with all token ids, used for enumeration uint256[] internal allTokens; // Mapping from token id to position in the allTokens array mapping(uint256 => uint256) internal allTokensIndex; // Optional mapping for token URIs mapping(uint256 => string) internal tokenURIs; // The contract owner can change the base URL, in case it becomes necessary. It is needed for Metadata. string public url; constructor(string _name, string _symbol) public { name_ = _name; symbol_ = _symbol; } function name() public view returns (string) { return name_; } function symbol() public view returns (string) { return symbol_; } function _validateIndex(bool _isValid) internal pure { require(_isValid, "wrong index"); } function tokenOfOwnerByIndex(address _owner, uint256 _index) public view returns (uint256) { _validateIndex(_index < balanceOf(_owner)); return ownedTokens[_owner][_index]; } function tokensOfOwner(address _owner) external view returns (uint256[]) { return ownedTokens[_owner]; } function getAllTokens() external view returns (uint256[]) { return allTokens; } function totalSupply() public view returns (uint256) { return allTokens.length; } function tokenByIndex(uint256 _index) public view returns (uint256) { _validateIndex(_index < totalSupply()); return allTokens[_index]; } function addTokenTo(address _to, uint256 _tokenId) internal { super.addTokenTo(_to, _tokenId); uint256 length = ownedTokens[_to].length; ownedTokens[_to].push(_tokenId); ownedTokensIndex[_tokenId] = length; } function removeTokenFrom(address _from, uint256 _tokenId) internal { _checkThatUserHasTokens(ownedTokens[_from].length > 0); super.removeTokenFrom(_from, _tokenId); uint256 tokenIndex = ownedTokensIndex[_tokenId]; uint256 lastTokenIndex = ownedTokens[_from].length.sub(1); uint256 lastToken = ownedTokens[_from][lastTokenIndex]; ownedTokens[_from][tokenIndex] = lastToken; ownedTokens[_from][lastTokenIndex] = 0; ownedTokens[_from].length--; ownedTokensIndex[_tokenId] = 0; ownedTokensIndex[lastToken] = tokenIndex; } function _mint(address _to, uint256 _tokenId) internal { super._mint(_to, _tokenId); allTokensIndex[_tokenId] = allTokens.length; allTokens.push(_tokenId); } function _burn(address _owner, uint256 _tokenId) internal { require(allTokens.length > 0, "no tokens"); super._burn(_owner, _tokenId); uint256 tokenIndex = allTokensIndex[_tokenId]; uint256 lastTokenIndex = allTokens.length.sub(1); uint256 lastToken = allTokens[lastTokenIndex]; allTokens[tokenIndex] = lastToken; allTokens[lastTokenIndex] = 0; allTokens.length--; allTokensIndex[_tokenId] = 0; allTokensIndex[lastToken] = tokenIndex; } function supportsInterface(bytes4 _interfaceID) external pure returns (bool) { return ( _interfaceID == INTERFACE_SIGNATURE_ERC165 || _interfaceID == INTERFACE_SIGNATURE_ERC721 || _interfaceID == INTERFACE_SIGNATURE_ERC721TokenReceiver || _interfaceID == INTERFACE_SIGNATURE_ERC721Metadata || _interfaceID == INTERFACE_SIGNATURE_ERC721Enumerable ); } function tokenURI(uint256 _tokenId) public view returns (string) { require(exists(_tokenId), "token doesn't exist"); return string(abi.encodePacked(url, _uint2str(_tokenId))); } function setUrl(string _url) external onlyOwner { url = _url; } function _uint2str(uint _i) internal pure returns (string){ if (i == 0) return "0"; uint i = _i; uint j = _i; uint length; while (j != 0){ length++; j /= 10; } bytes memory bstr = new bytes(length); uint k = length - 1; while (i != 0){ bstr[k--] = byte(48 + i % 10); i /= 10; } return string(bstr); } } contract DragonModel { // ** multiplying is necessary for more accurate calculations // health and mana are multiplied by 100 struct HealthAndMana { uint256 timestamp; // timestamp of last update uint32 remainingHealth; // remaining at last update uint32 remainingMana; // remaining at last update uint32 maxHealth; uint32 maxMana; } struct Level { uint8 level; // current level of dragon uint8 experience; // exp at current level uint16 dnaPoints; // DNA points } struct Tactics { uint8 melee; // ranged/melee tactics in percentages uint8 attack; // defense/attack tactics in percentages } struct Battles { uint16 wins; uint16 defeats; } // multilpied by 100 struct Skills { uint32 attack; uint32 defense; uint32 stamina; uint32 speed; uint32 intelligence; } // types: // 0 - water // 1 - fire // 2 - air // 3 - earth // 4 - magic struct Dragon { uint16 generation; uint256[4] genome; // composed genome uint256[2] parents; uint8[11] types; // array of weights of dragon's types uint256 birth; // timestamp } } contract DragonStorage is DragonModel, ERC721Token { Dragon[] public dragons; // existing names mapping (bytes32 => bool) public existingNames; mapping (uint256 => bytes32) public names; mapping (uint256 => HealthAndMana) public healthAndMana; mapping (uint256 => Tactics) public tactics; mapping (uint256 => Battles) public battles; mapping (uint256 => Skills) public skills; mapping (uint256 => Level) public levels; mapping (uint256 => uint32) public coolness; // Dragon Skillfulness Index in the WP // id -> type of skill (dragon type) mapping (uint256 => uint8) public specialAttacks; mapping (uint256 => uint8) public specialDefenses; // classes: // 0 - no skill // 1 - attack boost // 2 - defense boost // 3 - stamina boost // 4 - speed boost // 5 - intelligence boost // 6 - healing // 7 - mana recharge // id -> class mapping (uint256 => uint8) public specialPeacefulSkills; // classes: // 1 - attack // 2 - defense // 3 - stamina // 4 - speed // 5 - intelligence // // id -> class -> effect mapping (uint256 => mapping (uint8 => uint32)) public buffs; constructor(string _name, string _symbol) public ERC721Token(_name, _symbol) { dragons.length = 1; // to avoid some issues with 0 } // GETTERS function length() external view returns (uint256) { return dragons.length; } function getGenome(uint256 _id) external view returns (uint256[4]) { return dragons[_id].genome; } function getParents(uint256 _id) external view returns (uint256[2]) { return dragons[_id].parents; } function getDragonTypes(uint256 _id) external view returns (uint8[11]) { return dragons[_id].types; } // SETTERS function push( address _sender, uint16 _generation, uint256[4] _genome, uint256[2] _parents, uint8[11] _types ) public onlyController returns (uint256 id) { id = dragons.push(Dragon({ generation: _generation, genome: _genome, parents: _parents, types: _types, birth: now })).sub(1); _mint(_sender, id); } function setName( uint256 _id, bytes32 _name, bytes32 _lowercase ) external onlyController { names[_id] = _name; existingNames[_lowercase] = true; } function setTactics(uint256 _id, uint8 _melee, uint8 _attack) external onlyController { tactics[_id].melee = _melee; tactics[_id].attack = _attack; } function setWins(uint256 _id, uint16 _value) external onlyController { battles[_id].wins = _value; } function setDefeats(uint256 _id, uint16 _value) external onlyController { battles[_id].defeats = _value; } function setMaxHealthAndMana( uint256 _id, uint32 _maxHealth, uint32 _maxMana ) external onlyController { healthAndMana[_id].maxHealth = _maxHealth; healthAndMana[_id].maxMana = _maxMana; } function setRemainingHealthAndMana( uint256 _id, uint32 _remainingHealth, uint32 _remainingMana ) external onlyController { healthAndMana[_id].timestamp = now; healthAndMana[_id].remainingHealth = _remainingHealth; healthAndMana[_id].remainingMana = _remainingMana; } function resetHealthAndManaTimestamp(uint256 _id) external onlyController { healthAndMana[_id].timestamp = 0; } function setSkills( uint256 _id, uint32 _attack, uint32 _defense, uint32 _stamina, uint32 _speed, uint32 _intelligence ) external onlyController { skills[_id].attack = _attack; skills[_id].defense = _defense; skills[_id].stamina = _stamina; skills[_id].speed = _speed; skills[_id].intelligence = _intelligence; } function setLevel(uint256 _id, uint8 _level, uint8 _experience, uint16 _dnaPoints) external onlyController { levels[_id].level = _level; levels[_id].experience = _experience; levels[_id].dnaPoints = _dnaPoints; } function setCoolness(uint256 _id, uint32 _coolness) external onlyController { coolness[_id] = _coolness; } function setGenome(uint256 _id, uint256[4] _genome) external onlyController { dragons[_id].genome = _genome; } function setSpecialAttack( uint256 _id, uint8 _dragonType ) external onlyController { specialAttacks[_id] = _dragonType; } function setSpecialDefense( uint256 _id, uint8 _dragonType ) external onlyController { specialDefenses[_id] = _dragonType; } function setSpecialPeacefulSkill( uint256 _id, uint8 _class ) external onlyController { specialPeacefulSkills[_id] = _class; } function setBuff(uint256 _id, uint8 _class, uint32 _effect) external onlyController { buffs[_id][_class] = _effect; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"name":"_interfaceID","type":"bytes4"}],"name":"supportsInterface","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"},{"name":"_dragonType","type":"uint8"}],"name":"setSpecialAttack","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"}],"name":"resetHealthAndManaTimestamp","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"length","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"uint256"}],"name":"getParents","outputs":[{"name":"","type":"uint256[2]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_url","type":"string"}],"name":"setUrl","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"existingNames","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAllTokens","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"},{"name":"_genome","type":"uint256[4]"}],"name":"setGenome","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_spender","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"isApprovedOrOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"names","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"},{"name":"_coolness","type":"uint32"}],"name":"setCoolness","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"exists","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"skills","outputs":[{"name":"attack","type":"uint32"},{"name":"defense","type":"uint32"},{"name":"stamina","type":"uint32"},{"name":"speed","type":"uint32"},{"name":"intelligence","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"},{"name":"_class","type":"uint8"}],"name":"setSpecialPeacefulSkill","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"url","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"},{"name":"_dragonType","type":"uint8"}],"name":"setSpecialDefense","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"},{"name":"_melee","type":"uint8"},{"name":"_attack","type":"uint8"}],"name":"setTactics","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"specialAttacks","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"battles","outputs":[{"name":"wins","type":"uint16"},{"name":"defeats","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"specialPeacefulSkills","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"uint256"}],"name":"getGenome","outputs":[{"name":"","type":"uint256[4]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newDependencies","type":"address[]"}],"name":"setExternalDependencies","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"uint8"}],"name":"buffs","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"specialDefenses","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_sender","type":"address"},{"name":"_generation","type":"uint16"},{"name":"_genome","type":"uint256[4]"},{"name":"_parents","type":"uint256[2]"},{"name":"_types","type":"uint8[11]"}],"name":"push","outputs":[{"name":"id","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newDependencies","type":"address[]"}],"name":"setInternalDependencies","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"coolness","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"},{"name":"_value","type":"uint16"}],"name":"setDefeats","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"},{"name":"_attack","type":"uint32"},{"name":"_defense","type":"uint32"},{"name":"_stamina","type":"uint32"},{"name":"_speed","type":"uint32"},{"name":"_intelligence","type":"uint32"}],"name":"setSkills","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"tokensOfOwner","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"},{"name":"_remainingHealth","type":"uint32"},{"name":"_remainingMana","type":"uint32"}],"name":"setRemainingHealthAndMana","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tactics","outputs":[{"name":"melee","type":"uint8"},{"name":"attack","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"remoteApprove","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"},{"name":"_name","type":"bytes32"},{"name":"_lowercase","type":"bytes32"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"levels","outputs":[{"name":"level","type":"uint8"},{"name":"experience","type":"uint8"},{"name":"dnaPoints","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"},{"name":"_value","type":"uint16"}],"name":"setWins","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getInternalDependencies","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"},{"name":"_maxHealth","type":"uint32"},{"name":"_maxMana","type":"uint32"}],"name":"setMaxHealthAndMana","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"dragons","outputs":[{"name":"generation","type":"uint16"},{"name":"birth","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"uint256"}],"name":"getDragonTypes","outputs":[{"name":"","type":"uint8[11]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"healthAndMana","outputs":[{"name":"timestamp","type":"uint256"},{"name":"remainingHealth","type":"uint32"},{"name":"remainingMana","type":"uint32"},{"name":"maxHealth","type":"uint32"},{"name":"maxMana","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getExternalDependencies","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"},{"name":"_level","type":"uint8"},{"name":"_experience","type":"uint8"},{"name":"_dnaPoints","type":"uint16"}],"name":"setLevel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"},{"name":"_class","type":"uint8"},{"name":"_effect","type":"uint32"}],"name":"setBuff","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_name","type":"string"},{"name":"_symbol","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":true,"name":"_tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_approved","type":"address"},{"indexed":true,"name":"_tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_operator","type":"address"},{"indexed":false,"name":"_approved","type":"bool"}],"name":"ApprovalForAll","type":"event"}]
Contract Creation Code
60806040523480156200001157600080fd5b50604051620057253803806200572583398101806040528101908080518201929190602001805182019291905050508181336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600890805190602001906200009a929190620000d0565b508060099080519060200190620000b3929190620000d0565b5050506001601081620000c7919062000157565b5050506200025a565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200011357805160ff191683800117855562000144565b8280016001018555821562000144579182015b828111156200014357825182559160200191906001019062000126565b5b5090506200015391906200018c565b5090565b8154818355818111156200018757600902816009028360005260206000209182019101620001869190620001b4565b5b505050565b620001b191905b80821115620001ad57600081600090555060010162000193565b5090565b90565b6200022691905b808211156200022257600080820160006101000a81549061ffff0219169055600182016000620001ec919062000229565b600582016000620001fe919062000245565b60078201600062000210919062000253565b600882016000905550600901620001bb565b5090565b90565b5060008155600101600081556001016000815560010160009055565b506000815560010160009055565b5060009055565b6154bb806200026a6000396000f3006080604052600436106102e0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ffc9a7146102e557806306fdde0314610349578063081812fc146103d9578063087380ca146104465780630924da5c14610480578063095ea7b3146104ad57806318160ddd146104fa5780631f7b6d321461052557806323b872dd14610550578063242a0087146105bd578063252498a21461062657806327cdbf4a146106615780632a5c792a146106aa5780632f745c591461071657806342842e0e1461077757806342f5b7e0146107e4578063430c20811461081b5780634622ab03146108805780634968694a146108c95780634f558e79146109065780634f6ccce71461094b57806350d15fbe1461098c57806355c0820014610a255780635600f04f14610a5f578063585aa91e14610aef5780635ecef65f14610b295780635f80244814610b70578063606d2e9614610bb75780636202745f14610c0f5780636352211e14610c5657806365d6759a14610cc357806365fc125314610d2c57806367aea7d514610d9257806368d3d43314610dec5780636970861614610e3357806369c0ad9314610f265780636ecaa19514610f8c5780636ee3e89614610fd957806370a08231146110145780637208b8f71461106b5780638462151c146110e857806387115a9d146111805780638da5cb5b146111cd5780639462f02f1461122457806395d89b4114611278578063988b1d8614611308578063a028e63c14611355578063a22cb4651461139e578063b2596a67146113ed578063b4037bca14611450578063b75c4f801461148b578063b88d4fde146114f7578063c87b56dd146115aa578063d235f94714611650578063d2a59d691461169d578063deb27fc5146116ed578063e44ddaf514611756578063e6458f6e146117e3578063e985e9c51461184f578063f2fde38b146118ca578063f3ca062a1461190d578063f8ed0dfb14611962575b600080fd5b3480156102f157600080fd5b5061032f60048036038101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506119ac565b604051808215151515815260200191505060405180910390f35b34801561035557600080fd5b5061035e611bc5565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561039e578082015181840152602081019050610383565b50505050905090810190601f1680156103cb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103e557600080fd5b5061040460048036038101908080359060200190929190505050611c67565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561045257600080fd5b5061047e60048036038101908080359060200190929190803560ff169060200190929190505050611d21565b005b34801561048c57600080fd5b506104ab60048036038101908080359060200190929190505050611dce565b005b3480156104b957600080fd5b506104f8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e6a565b005b34801561050657600080fd5b5061050f611e79565b6040518082815260200191505060405180910390f35b34801561053157600080fd5b5061053a611e86565b6040518082815260200191505060405180910390f35b34801561055c57600080fd5b506105bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e93565b005b3480156105c957600080fd5b506105e860048036038101908080359060200190929190505050611f35565b6040518082600260200280838360005b838110156106135780820151818401526020810190506105f8565b5050505090500191505060405180910390f35b34801561063257600080fd5b5061065f600480360381019080803590602001908201803590602001919091929391929390505050611fa0565b005b34801561066d57600080fd5b50610690600480360381019080803560001916906020019092919050505061207a565b604051808215151515815260200191505060405180910390f35b3480156106b657600080fd5b506106bf61209a565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156107025780820151818401526020810190506106e7565b505050509050019250505060405180910390f35b34801561072257600080fd5b50610761600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506120f2565b6040518082815260200191505060405180910390f35b34801561078357600080fd5b506107e2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612166565b005b3480156107f057600080fd5b506108196004803603810190808035906020019092919080608001909192919290505050612187565b005b34801561082757600080fd5b50610866600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612238565b604051808215151515815260200191505060405180910390f35b34801561088c57600080fd5b506108ab600480360381019080803590602001909291905050506122cd565b60405180826000191660001916815260200191505060405180910390f35b3480156108d557600080fd5b5061090460048036038101908080359060200190929190803563ffffffff1690602001909291905050506122e5565b005b34801561091257600080fd5b5061093160048036038101908080359060200190929190505050612398565b604051808215151515815260200191505060405180910390f35b34801561095757600080fd5b506109766004803603810190808035906020019092919050505061240a565b6040518082815260200191505060405180910390f35b34801561099857600080fd5b506109b76004803603810190808035906020019092919050505061243f565b604051808663ffffffff1663ffffffff1681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018363ffffffff1663ffffffff1681526020018263ffffffff1663ffffffff1681526020019550505050505060405180910390f35b348015610a3157600080fd5b50610a5d60048036038101908080359060200190929190803560ff1690602001909291905050506124c5565b005b348015610a6b57600080fd5b50610a74612572565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015181840152602081019050610a99565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610afb57600080fd5b50610b2760048036038101908080359060200190929190803560ff169060200190929190505050612610565b005b348015610b3557600080fd5b50610b6e60048036038101908080359060200190929190803560ff169060200190929190803560ff1690602001909291905050506126bd565b005b348015610b7c57600080fd5b50610b9b6004803603810190808035906020019092919050505061279d565b604051808260ff1660ff16815260200191505060405180910390f35b348015610bc357600080fd5b50610be2600480360381019080803590602001909291905050506127bd565b604051808361ffff1661ffff1681526020018261ffff1661ffff1681526020019250505060405180910390f35b348015610c1b57600080fd5b50610c3a600480360381019080803590602001909291905050506127fd565b604051808260ff1660ff16815260200191505060405180910390f35b348015610c6257600080fd5b50610c816004803603810190808035906020019092919050505061281d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ccf57600080fd5b50610cee60048036038101908080359060200190929190505050612868565b6040518082600460200280838360005b83811015610d19578082015181840152602081019050610cfe565b5050505090500191505060405180910390f35b348015610d3857600080fd5b50610d90600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506128d3565b005b348015610d9e57600080fd5b50610dca60048036038101908080359060200190929190803560ff1690602001909291905050506129ba565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b348015610df857600080fd5b50610e17600480360381019080803590602001909291905050506129ec565b604051808260ff1660ff16815260200191505060405180910390f35b348015610e3f57600080fd5b50610f10600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803561ffff16906020019092919080608001906004806020026040519081016040528092919082600460200280828437820191505050505091929192908060400190600280602002604051908101604052809291908260026020028082843782019150505050509192919290806101600190600b806020026040519081016040528092919082600b6020028082843782019150505050509192919290505050612a0c565b6040518082815260200191505060405180910390f35b348015610f3257600080fd5b50610f8a60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050612b83565b005b348015610f9857600080fd5b50610fb760048036038101908080359060200190929190505050612c9f565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b348015610fe557600080fd5b5061101260048036038101908080359060200190929190803561ffff169060200190929190505050612cc2565b005b34801561102057600080fd5b50611055600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d74565b6040518082815260200191505060405180910390f35b34801561107757600080fd5b506110e660048036038101908080359060200190929190803563ffffffff169060200190929190803563ffffffff169060200190929190803563ffffffff169060200190929190803563ffffffff169060200190929190803563ffffffff169060200190929190505050612dc6565b005b3480156110f457600080fd5b50611129600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f54565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561116c578082015181840152602081019050611151565b505050509050019250505060405180910390f35b34801561118c57600080fd5b506111cb60048036038101908080359060200190929190803563ffffffff169060200190929190803563ffffffff169060200190929190505050612feb565b005b3480156111d957600080fd5b506111e26130f2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561123057600080fd5b5061124f60048036038101908080359060200190929190505050613117565b604051808360ff1660ff1681526020018260ff1660ff1681526020019250505060405180910390f35b34801561128457600080fd5b5061128d613155565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156112cd5780820151818401526020810190506112b2565b50505050905090810190601f1680156112fa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561131457600080fd5b50611353600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506131f7565b005b34801561136157600080fd5b5061139c6004803603810190808035906020019092919080356000191690602001909291908035600019169060200190929190505050613283565b005b3480156113aa57600080fd5b506113eb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050613355565b005b3480156113f957600080fd5b50611418600480360381019080803590602001909291905050506134fa565b604051808460ff1660ff1681526020018360ff1660ff1681526020018261ffff1661ffff168152602001935050505060405180910390f35b34801561145c57600080fd5b5061148960048036038101908080359060200190929190803561ffff16906020019092919050505061354c565b005b34801561149757600080fd5b506114a06135fe565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156114e35780820151818401526020810190506114c8565b505050509050019250505060405180910390f35b34801561150357600080fd5b506115a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061368c565b005b3480156115b657600080fd5b506115d56004803603810190808035906020019092919050505061371d565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156116155780820151818401526020810190506115fa565b50505050905090810190601f1680156116425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561165c57600080fd5b5061169b60048036038101908080359060200190929190803563ffffffff169060200190929190803563ffffffff169060200190929190505050613874565b005b3480156116a957600080fd5b506116c860048036038101908080359060200190929190505050613960565b604051808361ffff1661ffff1681526020018281526020019250505060405180910390f35b3480156116f957600080fd5b50611718600480360381019080803590602001909291905050506139a1565b6040518082600b60200280838360005b83811015611743578082015181840152602081019050611728565b5050505090500191505060405180910390f35b34801561176257600080fd5b5061178160048036038101908080359060200190929190505050613a32565b604051808681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018363ffffffff1663ffffffff1681526020018263ffffffff1663ffffffff1681526020019550505050505060405180910390f35b3480156117ef57600080fd5b506117f8613aa8565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561183b578082015181840152602081019050611820565b505050509050019250505060405180910390f35b34801561185b57600080fd5b506118b0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613b36565b604051808215151515815260200191505060405180910390f35b3480156118d657600080fd5b5061190b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613bca565b005b34801561191957600080fd5b5061196060048036038101908080359060200190929190803560ff169060200190929190803560ff169060200190929190803561ffff169060200190929190505050613d55565b005b34801561196e57600080fd5b506119aa60048036038101908080359060200190929190803560ff169060200190929190803563ffffffff169060200190929190505050613e67565b005b60006301ffc9a77c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611a7d57506380ac58cd7c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611ae8575063f0b9e5ba7c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611b535750635b5e139f7c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611bbe575063780e9d637c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b606060088054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c5d5780601f10611c3257610100808354040283529160200191611c5d565b820191906000526020600020905b815481529060010190602001808311611c4057829003601f168201915b5050505050905090565b6000611c7282612398565b1515611ce6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f746f6b656e20646f65736e27742065786973740000000000000000000000000081525060200191505060405180910390fd5b6005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b611d2a33613f32565b1515611d9e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b806019600084815260200190815260200160002060006101000a81548160ff021916908360ff1602179055505050565b611dd733613f32565b1515611e4b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b6000601360008381526020019081526020016000206000018190555050565b611e75338383613f88565b5050565b6000600c80549050905090565b6000601080549050905090565b611ea5611ea03383612238565b6141ab565b611eae83614223565b611eb782614223565b611ec183826142cb565b611ecb83826143f2565b611ed58282614658565b808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b611f3d6150fe565b601082815481101515611f4c57fe5b9060005260206000209060090201600501600280602002604051908101604052809291908260028015611f94576020028201915b815481526020019060010190808311611f80575b50505050509050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612064576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f74206120636f6e7472616374206f776e657200000000000000000000000081525060200191505060405180910390fd5b8181600f9190612075929190615120565b505050565b60116020528060005260406000206000915054906101000a900460ff1681565b6060600c8054806020026020016040519081016040528092919081815260200182805480156120e857602002820191906000526020600020905b8154815260200190600101908083116120d4575b5050505050905090565b600061210761210084612d74565b831061472f565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561215357fe5b9060005260206000200154905092915050565b612182838383602060405190810160405280600081525061368c565b505050565b61219033613f32565b1515612204576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b8060108381548110151561221457fe5b90600052602060002090600902016001019060046122339291906151a0565b505050565b6000806122448361281d565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806122b357508373ffffffffffffffffffffffffffffffffffffffff1661229b84611c67565b73ffffffffffffffffffffffffffffffffffffffff16145b806122c457506122c38185613b36565b5b91505092915050565b60126020528060005260406000206000915090505481565b6122ee33613f32565b1515612362576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b806018600084815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505050565b6000806004600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415915050919050565b600061241e612417611e79565b831061472f565b600c8281548110151561242d57fe5b90600052602060002001549050919050565b60166020528060005260406000206000915090508060000160009054906101000a900463ffffffff16908060000160049054906101000a900463ffffffff16908060000160089054906101000a900463ffffffff169080600001600c9054906101000a900463ffffffff16908060000160109054906101000a900463ffffffff16905085565b6124ce33613f32565b1515612542576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b80601b600084815260200190815260200160002060006101000a81548160ff021916908360ff1602179055505050565b600f8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156126085780601f106125dd57610100808354040283529160200191612608565b820191906000526020600020905b8154815290600101906020018083116125eb57829003601f168201915b505050505081565b61261933613f32565b151561268d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b80601a600084815260200190815260200160002060006101000a81548160ff021916908360ff1602179055505050565b6126c633613f32565b151561273a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b816014600085815260200190815260200160002060000160006101000a81548160ff021916908360ff160217905550806014600085815260200190815260200160002060000160016101000a81548160ff021916908360ff160217905550505050565b60196020528060005260406000206000915054906101000a900460ff1681565b60156020528060005260406000206000915090508060000160009054906101000a900461ffff16908060000160029054906101000a900461ffff16905082565b601b6020528060005260406000206000915054906101000a900460ff1681565b6000806004600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061285f81614223565b80915050919050565b6128706151e0565b60108281548110151561287f57fe5b90600052602060002090600902016001016004806020026040519081016040528092919082600480156128c7576020028201915b8154815260200190600101908083116128b3575b50505050509050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612997576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f74206120636f6e7472616374206f776e657200000000000000000000000081525060200191505060405180910390fd5b80600390805190602001906129ad929190615203565b506129b7816147a7565b50565b601c6020528160005260406000206020528060005260406000206000915091509054906101000a900463ffffffff1681565b601a6020528060005260406000206000915054906101000a900460ff1681565b6000612a1733613f32565b1515612a8b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b612b6e6001601060a0604051908101604052808961ffff168152602001888152602001878152602001868152602001428152509080600181540180825580915050906001820390600052602060002090600902016000909192909190915060008201518160000160006101000a81548161ffff021916908361ffff160217905550602082015181600101906004612b2392919061528d565b50604082015181600501906002612b3b9291906152cd565b5060608201518160070190600b612b5392919061530d565b5060808201518160080155505061485590919063ffffffff16565b9050612b7a868261486e565b95945050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c49576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f74206120636f6e7472616374206f776e657200000000000000000000000081525060200191505060405180910390fd5b600090505b8151811015612c8457612c778282815181101515612c6857fe5b90602001906020020151614223565b8080600101915050612c4e565b8160029080519060200190612c9a929190615203565b505050565b60186020528060005260406000206000915054906101000a900463ffffffff1681565b612ccb33613f32565b1515612d3f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b806015600084815260200190815260200160002060000160026101000a81548161ffff021916908361ffff1602179055505050565b6000612d7f82614223565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b612dcf33613f32565b1515612e43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b846016600088815260200190815260200160002060000160006101000a81548163ffffffff021916908363ffffffff160217905550836016600088815260200190815260200160002060000160046101000a81548163ffffffff021916908363ffffffff160217905550826016600088815260200190815260200160002060000160086101000a81548163ffffffff021916908363ffffffff1602179055508160166000888152602001908152602001600020600001600c6101000a81548163ffffffff021916908363ffffffff160217905550806016600088815260200190815260200160002060000160106101000a81548163ffffffff021916908363ffffffff160217905550505050505050565b6060600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015612fdf57602002820191906000526020600020905b815481526020019060010190808311612fcb575b50505050509050919050565b612ff433613f32565b1515613068576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b426013600085815260200190815260200160002060000181905550816013600085815260200190815260200160002060010160006101000a81548163ffffffff021916908363ffffffff160217905550806013600085815260200190815260200160002060010160046101000a81548163ffffffff021916908363ffffffff160217905550505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60146020528060005260406000206000915090508060000160009054906101000a900460ff16908060000160019054906101000a900460ff16905082565b606060098054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131ed5780601f106131c2576101008083540402835291602001916131ed565b820191906000526020600020905b8154815290600101906020018083116131d057829003601f168201915b5050505050905090565b61320033613f32565b1515613274576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b61327f328383613f88565b5050565b61328c33613f32565b1515613300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b81601260008581526020019081526020016000208160001916905550600160116000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156133f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f77726f6e672073656e646572000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b60176020528060005260406000206000915090508060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900461ffff16905083565b61355533613f32565b15156135c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b806015600084815260200190815260200160002060000160006101000a81548161ffff021916908361ffff1602179055505050565b6060600280548060200260200160405190810160405280929190818152602001828054801561368257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311613638575b5050505050905090565b613697848484611e93565b6136a3848484846148c5565b1515613717576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f63616e2774206d616b652073616665207472616e73666572000000000000000081525060200191505060405180910390fd5b50505050565b606061372882612398565b151561379c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f746f6b656e20646f65736e27742065786973740000000000000000000000000081525060200191505060405180910390fd5b600f6137a783614ad1565b60405160200180838054600181600116156101000203166002900480156138055780601f106137e3576101008083540402835291820191613805565b820191906000526020600020905b8154815290600101906020018083116137f1575b505082805190602001908083835b6020831015156138385780518252602082019150602081019050602083039250613813565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529050919050565b61387d33613f32565b15156138f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b816013600085815260200190815260200160002060010160086101000a81548163ffffffff021916908363ffffffff1602179055508060136000858152602001908152602001600020600101600c6101000a81548163ffffffff021916908363ffffffff160217905550505050565b60108181548110151561396f57fe5b90600052602060002090600902016000915090508060000160009054906101000a900461ffff16908060080154905082565b6139a96153a7565b6010828154811015156139b857fe5b9060005260206000209060090201600701600b806020026040519081016040528092919082600b8015613a26576020028201916000905b82829054906101000a900460ff1660ff16815260200190600101906020826000010492830192600103820291508084116139ef5790505b50505050509050919050565b60136020528060005260406000206000915090508060000154908060010160009054906101000a900463ffffffff16908060010160049054906101000a900463ffffffff16908060010160089054906101000a900463ffffffff169080600101600c9054906101000a900463ffffffff16905085565b60606003805480602002602001604051908101604052809291908181526020018280548015613b2c57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311613ae2575b5050505050905090565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613c8e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f74206120636f6e7472616374206f776e657200000000000000000000000081525060200191505060405180910390fd5b613c9781614223565b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b613d5e33613f32565b1515613dd2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b826017600086815260200190815260200160002060000160006101000a81548160ff021916908360ff160217905550816017600086815260200190815260200160002060000160016101000a81548160ff021916908360ff160217905550806017600086815260200190815260200160002060000160026101000a81548161ffff021916908361ffff16021790555050505050565b613e7033613f32565b1515613ee4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b80601c600085815260200190815260200160002060008460ff1660ff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff160217905550505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000613f938261281d565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515614039576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f63616e277420626520617070726f76656420746f206f776e657200000000000081525060200191505060405180910390fd5b6140818173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061407c575061407b8286613b36565b5b6141ab565b600073ffffffffffffffffffffffffffffffffffffffff166140a283611c67565b73ffffffffffffffffffffffffffffffffffffffff161415806140f25750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156141a557826005600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b50505050565b801515614220576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f6e6f2072696768747320746f206d616e6167650000000000000000000000000081525060200191505060405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156142c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f696e76616c69642061646472657373000000000000000000000000000000000081525060200191505060405180910390fd5b50565b6142d58183614c2e565b600073ffffffffffffffffffffffffffffffffffffffff166005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156143ee5760006005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b5050565b60008060006144456000600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011614cdd565b61444f8585614d55565b600b60008581526020019081526020016000205492506144bb6001600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061485590919063ffffffff16565b9150600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561450957fe5b9060005260206000200154905080600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110151561456357fe5b90600052602060002001819055506000600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811015156145bf57fe5b9060005260206000200181905550600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548091906001900361461f91906153cb565b506000600b60008681526020019081526020016000208190555082600b6000838152602001908152602001600020819055505050505050565b60006146648383614e97565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082908060018154018082558091505090600182039060005260206000200160009091929091909150555080600b600084815260200190815260200160002081905550505050565b8015156147a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f77726f6e6720696e64657800000000000000000000000000000000000000000081525060200191505060405180910390fd5b50565b60008090505b8151811015614851576147d682828151811015156147c757fe5b90602001906020020151614223565b600180600084848151811015156147e957fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506147ad565b5050565b600082821115151561486357fe5b818303905092915050565b614878828261505a565b600c80549050600d600083815260200190815260200160002081905550600c8190806001815401808255809150509060018203906000526020600020016000909192909190915055505050565b6000806148d1856150cd565b15156148e05760019150614ac8565b8473ffffffffffffffffffffffffffffffffffffffff1663150b7a02338887876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156149d55780820151818401526020810190506149ba565b50505050905090810190601f168015614a025780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015614a2457600080fd5b505af1158015614a38573d6000803e3d6000fd5b505050506040513d6020811015614a4e57600080fd5b8101908080519060200190929190505050905063150b7a027c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505b50949350505050565b606060008060006060600080851415614b21576040805190810160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509550614c24565b8694508693505b600084141515614b4e578280600101935050600a84811515614b4657fe5b049350614b28565b826040519080825280601f01601f191660200182016040528015614b815781602001602082028038833980820191505090505b5091506001830390505b600085141515614c2057600a85811515614ba157fe5b066030017f010000000000000000000000000000000000000000000000000000000000000002828280600190039350815181101515614bdc57fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85811515614c1857fe5b049450614b8b565b8195505b5050505050919050565b8073ffffffffffffffffffffffffffffffffffffffff16614c4e8361281d565b73ffffffffffffffffffffffffffffffffffffffff16141515614cd9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f6e6f7420616e206f776e6572000000000000000000000000000000000000000081525060200191505060405180910390fd5b5050565b801515614d52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f7573657220686173206e6f20746f6b656e73000000000000000000000000000081525060200191505060405180910390fd5b50565b614d5f8183614c2e565b614daa6000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411614cdd565b614dfd6001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461485590919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600073ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515614f6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f746f6b656e20616c72656164792068617320616e206f776e657200000000000081525060200191505060405180910390fd5b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506150136001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546150e090919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b61506382614223565b61506d8282614658565b808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b60008082840190508381101515156150f457fe5b8091505092915050565b6040805190810160405280600290602082028038833980820191505090505090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061516157803560ff191683800117855561518f565b8280016001018555821561518f579182015b8281111561518e578235825591602001919060010190615173565b5b50905061519c91906153f7565b5090565b82600481019282156151cf579160200282015b828111156151ce5782358255916020019190600101906151b3565b5b5090506151dc91906153f7565b5090565b608060405190810160405280600490602082028038833980820191505090505090565b82805482825590600052602060002090810192821561527c579160200282015b8281111561527b5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190615223565b5b509050615289919061541c565b5090565b82600481019282156152bc579160200282015b828111156152bb5782518255916020019190600101906152a0565b5b5090506152c991906153f7565b5090565b82600281019282156152fc579160200282015b828111156152fb5782518255916020019190600101906152e0565b5b50905061530991906153f7565b5090565b82600b601f016020900481019282156153965791602002820160005b8382111561536757835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302615329565b80156153945782816101000a81549060ff0219169055600101602081600001049283019260010302615367565b505b5090506153a3919061545f565b5090565b61016060405190810160405280600b90602082028038833980820191505090505090565b8154818355818111156153f2578183600052602060002091820191016153f191906153f7565b5b505050565b61541991905b808211156154155760008160009055506001016153fd565b5090565b90565b61545c91905b8082111561545857600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101615422565b5090565b90565b61548c91905b8082111561548857600081816101000a81549060ff021916905550600101615465565b5090565b905600a165627a7a723058200778a3e24f0852ca6a819823ee5affea1e7bdb9a45c0dc185210dafa190e79840029000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000012447261676f6e657265756d20447261676f6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006445241474f4e0000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106102e0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ffc9a7146102e557806306fdde0314610349578063081812fc146103d9578063087380ca146104465780630924da5c14610480578063095ea7b3146104ad57806318160ddd146104fa5780631f7b6d321461052557806323b872dd14610550578063242a0087146105bd578063252498a21461062657806327cdbf4a146106615780632a5c792a146106aa5780632f745c591461071657806342842e0e1461077757806342f5b7e0146107e4578063430c20811461081b5780634622ab03146108805780634968694a146108c95780634f558e79146109065780634f6ccce71461094b57806350d15fbe1461098c57806355c0820014610a255780635600f04f14610a5f578063585aa91e14610aef5780635ecef65f14610b295780635f80244814610b70578063606d2e9614610bb75780636202745f14610c0f5780636352211e14610c5657806365d6759a14610cc357806365fc125314610d2c57806367aea7d514610d9257806368d3d43314610dec5780636970861614610e3357806369c0ad9314610f265780636ecaa19514610f8c5780636ee3e89614610fd957806370a08231146110145780637208b8f71461106b5780638462151c146110e857806387115a9d146111805780638da5cb5b146111cd5780639462f02f1461122457806395d89b4114611278578063988b1d8614611308578063a028e63c14611355578063a22cb4651461139e578063b2596a67146113ed578063b4037bca14611450578063b75c4f801461148b578063b88d4fde146114f7578063c87b56dd146115aa578063d235f94714611650578063d2a59d691461169d578063deb27fc5146116ed578063e44ddaf514611756578063e6458f6e146117e3578063e985e9c51461184f578063f2fde38b146118ca578063f3ca062a1461190d578063f8ed0dfb14611962575b600080fd5b3480156102f157600080fd5b5061032f60048036038101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506119ac565b604051808215151515815260200191505060405180910390f35b34801561035557600080fd5b5061035e611bc5565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561039e578082015181840152602081019050610383565b50505050905090810190601f1680156103cb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103e557600080fd5b5061040460048036038101908080359060200190929190505050611c67565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561045257600080fd5b5061047e60048036038101908080359060200190929190803560ff169060200190929190505050611d21565b005b34801561048c57600080fd5b506104ab60048036038101908080359060200190929190505050611dce565b005b3480156104b957600080fd5b506104f8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e6a565b005b34801561050657600080fd5b5061050f611e79565b6040518082815260200191505060405180910390f35b34801561053157600080fd5b5061053a611e86565b6040518082815260200191505060405180910390f35b34801561055c57600080fd5b506105bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e93565b005b3480156105c957600080fd5b506105e860048036038101908080359060200190929190505050611f35565b6040518082600260200280838360005b838110156106135780820151818401526020810190506105f8565b5050505090500191505060405180910390f35b34801561063257600080fd5b5061065f600480360381019080803590602001908201803590602001919091929391929390505050611fa0565b005b34801561066d57600080fd5b50610690600480360381019080803560001916906020019092919050505061207a565b604051808215151515815260200191505060405180910390f35b3480156106b657600080fd5b506106bf61209a565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156107025780820151818401526020810190506106e7565b505050509050019250505060405180910390f35b34801561072257600080fd5b50610761600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506120f2565b6040518082815260200191505060405180910390f35b34801561078357600080fd5b506107e2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612166565b005b3480156107f057600080fd5b506108196004803603810190808035906020019092919080608001909192919290505050612187565b005b34801561082757600080fd5b50610866600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612238565b604051808215151515815260200191505060405180910390f35b34801561088c57600080fd5b506108ab600480360381019080803590602001909291905050506122cd565b60405180826000191660001916815260200191505060405180910390f35b3480156108d557600080fd5b5061090460048036038101908080359060200190929190803563ffffffff1690602001909291905050506122e5565b005b34801561091257600080fd5b5061093160048036038101908080359060200190929190505050612398565b604051808215151515815260200191505060405180910390f35b34801561095757600080fd5b506109766004803603810190808035906020019092919050505061240a565b6040518082815260200191505060405180910390f35b34801561099857600080fd5b506109b76004803603810190808035906020019092919050505061243f565b604051808663ffffffff1663ffffffff1681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018363ffffffff1663ffffffff1681526020018263ffffffff1663ffffffff1681526020019550505050505060405180910390f35b348015610a3157600080fd5b50610a5d60048036038101908080359060200190929190803560ff1690602001909291905050506124c5565b005b348015610a6b57600080fd5b50610a74612572565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015181840152602081019050610a99565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610afb57600080fd5b50610b2760048036038101908080359060200190929190803560ff169060200190929190505050612610565b005b348015610b3557600080fd5b50610b6e60048036038101908080359060200190929190803560ff169060200190929190803560ff1690602001909291905050506126bd565b005b348015610b7c57600080fd5b50610b9b6004803603810190808035906020019092919050505061279d565b604051808260ff1660ff16815260200191505060405180910390f35b348015610bc357600080fd5b50610be2600480360381019080803590602001909291905050506127bd565b604051808361ffff1661ffff1681526020018261ffff1661ffff1681526020019250505060405180910390f35b348015610c1b57600080fd5b50610c3a600480360381019080803590602001909291905050506127fd565b604051808260ff1660ff16815260200191505060405180910390f35b348015610c6257600080fd5b50610c816004803603810190808035906020019092919050505061281d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ccf57600080fd5b50610cee60048036038101908080359060200190929190505050612868565b6040518082600460200280838360005b83811015610d19578082015181840152602081019050610cfe565b5050505090500191505060405180910390f35b348015610d3857600080fd5b50610d90600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506128d3565b005b348015610d9e57600080fd5b50610dca60048036038101908080359060200190929190803560ff1690602001909291905050506129ba565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b348015610df857600080fd5b50610e17600480360381019080803590602001909291905050506129ec565b604051808260ff1660ff16815260200191505060405180910390f35b348015610e3f57600080fd5b50610f10600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803561ffff16906020019092919080608001906004806020026040519081016040528092919082600460200280828437820191505050505091929192908060400190600280602002604051908101604052809291908260026020028082843782019150505050509192919290806101600190600b806020026040519081016040528092919082600b6020028082843782019150505050509192919290505050612a0c565b6040518082815260200191505060405180910390f35b348015610f3257600080fd5b50610f8a60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050612b83565b005b348015610f9857600080fd5b50610fb760048036038101908080359060200190929190505050612c9f565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b348015610fe557600080fd5b5061101260048036038101908080359060200190929190803561ffff169060200190929190505050612cc2565b005b34801561102057600080fd5b50611055600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d74565b6040518082815260200191505060405180910390f35b34801561107757600080fd5b506110e660048036038101908080359060200190929190803563ffffffff169060200190929190803563ffffffff169060200190929190803563ffffffff169060200190929190803563ffffffff169060200190929190803563ffffffff169060200190929190505050612dc6565b005b3480156110f457600080fd5b50611129600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f54565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561116c578082015181840152602081019050611151565b505050509050019250505060405180910390f35b34801561118c57600080fd5b506111cb60048036038101908080359060200190929190803563ffffffff169060200190929190803563ffffffff169060200190929190505050612feb565b005b3480156111d957600080fd5b506111e26130f2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561123057600080fd5b5061124f60048036038101908080359060200190929190505050613117565b604051808360ff1660ff1681526020018260ff1660ff1681526020019250505060405180910390f35b34801561128457600080fd5b5061128d613155565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156112cd5780820151818401526020810190506112b2565b50505050905090810190601f1680156112fa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561131457600080fd5b50611353600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506131f7565b005b34801561136157600080fd5b5061139c6004803603810190808035906020019092919080356000191690602001909291908035600019169060200190929190505050613283565b005b3480156113aa57600080fd5b506113eb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050613355565b005b3480156113f957600080fd5b50611418600480360381019080803590602001909291905050506134fa565b604051808460ff1660ff1681526020018360ff1660ff1681526020018261ffff1661ffff168152602001935050505060405180910390f35b34801561145c57600080fd5b5061148960048036038101908080359060200190929190803561ffff16906020019092919050505061354c565b005b34801561149757600080fd5b506114a06135fe565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156114e35780820151818401526020810190506114c8565b505050509050019250505060405180910390f35b34801561150357600080fd5b506115a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061368c565b005b3480156115b657600080fd5b506115d56004803603810190808035906020019092919050505061371d565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156116155780820151818401526020810190506115fa565b50505050905090810190601f1680156116425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561165c57600080fd5b5061169b60048036038101908080359060200190929190803563ffffffff169060200190929190803563ffffffff169060200190929190505050613874565b005b3480156116a957600080fd5b506116c860048036038101908080359060200190929190505050613960565b604051808361ffff1661ffff1681526020018281526020019250505060405180910390f35b3480156116f957600080fd5b50611718600480360381019080803590602001909291905050506139a1565b6040518082600b60200280838360005b83811015611743578082015181840152602081019050611728565b5050505090500191505060405180910390f35b34801561176257600080fd5b5061178160048036038101908080359060200190929190505050613a32565b604051808681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018363ffffffff1663ffffffff1681526020018263ffffffff1663ffffffff1681526020019550505050505060405180910390f35b3480156117ef57600080fd5b506117f8613aa8565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561183b578082015181840152602081019050611820565b505050509050019250505060405180910390f35b34801561185b57600080fd5b506118b0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613b36565b604051808215151515815260200191505060405180910390f35b3480156118d657600080fd5b5061190b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613bca565b005b34801561191957600080fd5b5061196060048036038101908080359060200190929190803560ff169060200190929190803560ff169060200190929190803561ffff169060200190929190505050613d55565b005b34801561196e57600080fd5b506119aa60048036038101908080359060200190929190803560ff169060200190929190803563ffffffff169060200190929190505050613e67565b005b60006301ffc9a77c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611a7d57506380ac58cd7c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611ae8575063f0b9e5ba7c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611b535750635b5e139f7c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611bbe575063780e9d637c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b606060088054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c5d5780601f10611c3257610100808354040283529160200191611c5d565b820191906000526020600020905b815481529060010190602001808311611c4057829003601f168201915b5050505050905090565b6000611c7282612398565b1515611ce6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f746f6b656e20646f65736e27742065786973740000000000000000000000000081525060200191505060405180910390fd5b6005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b611d2a33613f32565b1515611d9e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b806019600084815260200190815260200160002060006101000a81548160ff021916908360ff1602179055505050565b611dd733613f32565b1515611e4b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b6000601360008381526020019081526020016000206000018190555050565b611e75338383613f88565b5050565b6000600c80549050905090565b6000601080549050905090565b611ea5611ea03383612238565b6141ab565b611eae83614223565b611eb782614223565b611ec183826142cb565b611ecb83826143f2565b611ed58282614658565b808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b611f3d6150fe565b601082815481101515611f4c57fe5b9060005260206000209060090201600501600280602002604051908101604052809291908260028015611f94576020028201915b815481526020019060010190808311611f80575b50505050509050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612064576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f74206120636f6e7472616374206f776e657200000000000000000000000081525060200191505060405180910390fd5b8181600f9190612075929190615120565b505050565b60116020528060005260406000206000915054906101000a900460ff1681565b6060600c8054806020026020016040519081016040528092919081815260200182805480156120e857602002820191906000526020600020905b8154815260200190600101908083116120d4575b5050505050905090565b600061210761210084612d74565b831061472f565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561215357fe5b9060005260206000200154905092915050565b612182838383602060405190810160405280600081525061368c565b505050565b61219033613f32565b1515612204576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b8060108381548110151561221457fe5b90600052602060002090600902016001019060046122339291906151a0565b505050565b6000806122448361281d565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806122b357508373ffffffffffffffffffffffffffffffffffffffff1661229b84611c67565b73ffffffffffffffffffffffffffffffffffffffff16145b806122c457506122c38185613b36565b5b91505092915050565b60126020528060005260406000206000915090505481565b6122ee33613f32565b1515612362576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b806018600084815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505050565b6000806004600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415915050919050565b600061241e612417611e79565b831061472f565b600c8281548110151561242d57fe5b90600052602060002001549050919050565b60166020528060005260406000206000915090508060000160009054906101000a900463ffffffff16908060000160049054906101000a900463ffffffff16908060000160089054906101000a900463ffffffff169080600001600c9054906101000a900463ffffffff16908060000160109054906101000a900463ffffffff16905085565b6124ce33613f32565b1515612542576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b80601b600084815260200190815260200160002060006101000a81548160ff021916908360ff1602179055505050565b600f8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156126085780601f106125dd57610100808354040283529160200191612608565b820191906000526020600020905b8154815290600101906020018083116125eb57829003601f168201915b505050505081565b61261933613f32565b151561268d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b80601a600084815260200190815260200160002060006101000a81548160ff021916908360ff1602179055505050565b6126c633613f32565b151561273a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b816014600085815260200190815260200160002060000160006101000a81548160ff021916908360ff160217905550806014600085815260200190815260200160002060000160016101000a81548160ff021916908360ff160217905550505050565b60196020528060005260406000206000915054906101000a900460ff1681565b60156020528060005260406000206000915090508060000160009054906101000a900461ffff16908060000160029054906101000a900461ffff16905082565b601b6020528060005260406000206000915054906101000a900460ff1681565b6000806004600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061285f81614223565b80915050919050565b6128706151e0565b60108281548110151561287f57fe5b90600052602060002090600902016001016004806020026040519081016040528092919082600480156128c7576020028201915b8154815260200190600101908083116128b3575b50505050509050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612997576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f74206120636f6e7472616374206f776e657200000000000000000000000081525060200191505060405180910390fd5b80600390805190602001906129ad929190615203565b506129b7816147a7565b50565b601c6020528160005260406000206020528060005260406000206000915091509054906101000a900463ffffffff1681565b601a6020528060005260406000206000915054906101000a900460ff1681565b6000612a1733613f32565b1515612a8b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b612b6e6001601060a0604051908101604052808961ffff168152602001888152602001878152602001868152602001428152509080600181540180825580915050906001820390600052602060002090600902016000909192909190915060008201518160000160006101000a81548161ffff021916908361ffff160217905550602082015181600101906004612b2392919061528d565b50604082015181600501906002612b3b9291906152cd565b5060608201518160070190600b612b5392919061530d565b5060808201518160080155505061485590919063ffffffff16565b9050612b7a868261486e565b95945050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c49576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f74206120636f6e7472616374206f776e657200000000000000000000000081525060200191505060405180910390fd5b600090505b8151811015612c8457612c778282815181101515612c6857fe5b90602001906020020151614223565b8080600101915050612c4e565b8160029080519060200190612c9a929190615203565b505050565b60186020528060005260406000206000915054906101000a900463ffffffff1681565b612ccb33613f32565b1515612d3f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b806015600084815260200190815260200160002060000160026101000a81548161ffff021916908361ffff1602179055505050565b6000612d7f82614223565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b612dcf33613f32565b1515612e43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b846016600088815260200190815260200160002060000160006101000a81548163ffffffff021916908363ffffffff160217905550836016600088815260200190815260200160002060000160046101000a81548163ffffffff021916908363ffffffff160217905550826016600088815260200190815260200160002060000160086101000a81548163ffffffff021916908363ffffffff1602179055508160166000888152602001908152602001600020600001600c6101000a81548163ffffffff021916908363ffffffff160217905550806016600088815260200190815260200160002060000160106101000a81548163ffffffff021916908363ffffffff160217905550505050505050565b6060600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015612fdf57602002820191906000526020600020905b815481526020019060010190808311612fcb575b50505050509050919050565b612ff433613f32565b1515613068576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b426013600085815260200190815260200160002060000181905550816013600085815260200190815260200160002060010160006101000a81548163ffffffff021916908363ffffffff160217905550806013600085815260200190815260200160002060010160046101000a81548163ffffffff021916908363ffffffff160217905550505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60146020528060005260406000206000915090508060000160009054906101000a900460ff16908060000160019054906101000a900460ff16905082565b606060098054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131ed5780601f106131c2576101008083540402835291602001916131ed565b820191906000526020600020905b8154815290600101906020018083116131d057829003601f168201915b5050505050905090565b61320033613f32565b1515613274576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b61327f328383613f88565b5050565b61328c33613f32565b1515613300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b81601260008581526020019081526020016000208160001916905550600160116000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156133f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f77726f6e672073656e646572000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b60176020528060005260406000206000915090508060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900461ffff16905083565b61355533613f32565b15156135c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b806015600084815260200190815260200160002060000160006101000a81548161ffff021916908361ffff1602179055505050565b6060600280548060200260200160405190810160405280929190818152602001828054801561368257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311613638575b5050505050905090565b613697848484611e93565b6136a3848484846148c5565b1515613717576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f63616e2774206d616b652073616665207472616e73666572000000000000000081525060200191505060405180910390fd5b50505050565b606061372882612398565b151561379c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f746f6b656e20646f65736e27742065786973740000000000000000000000000081525060200191505060405180910390fd5b600f6137a783614ad1565b60405160200180838054600181600116156101000203166002900480156138055780601f106137e3576101008083540402835291820191613805565b820191906000526020600020905b8154815290600101906020018083116137f1575b505082805190602001908083835b6020831015156138385780518252602082019150602081019050602083039250613813565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529050919050565b61387d33613f32565b15156138f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b816013600085815260200190815260200160002060010160086101000a81548163ffffffff021916908363ffffffff1602179055508060136000858152602001908152602001600020600101600c6101000a81548163ffffffff021916908363ffffffff160217905550505050565b60108181548110151561396f57fe5b90600052602060002090600902016000915090508060000160009054906101000a900461ffff16908060080154905082565b6139a96153a7565b6010828154811015156139b857fe5b9060005260206000209060090201600701600b806020026040519081016040528092919082600b8015613a26576020028201916000905b82829054906101000a900460ff1660ff16815260200190600101906020826000010492830192600103820291508084116139ef5790505b50505050509050919050565b60136020528060005260406000206000915090508060000154908060010160009054906101000a900463ffffffff16908060010160049054906101000a900463ffffffff16908060010160089054906101000a900463ffffffff169080600101600c9054906101000a900463ffffffff16905085565b60606003805480602002602001604051908101604052809291908181526020018280548015613b2c57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311613ae2575b5050505050905090565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613c8e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f74206120636f6e7472616374206f776e657200000000000000000000000081525060200191505060405180910390fd5b613c9781614223565b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b613d5e33613f32565b1515613dd2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b826017600086815260200190815260200160002060000160006101000a81548160ff021916908360ff160217905550816017600086815260200190815260200160002060000160016101000a81548160ff021916908360ff160217905550806017600086815260200190815260200160002060000160026101000a81548161ffff021916908361ffff16021790555050505050565b613e7033613f32565b1515613ee4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f20636f6e74726f6c6c65722072696768747300000000000000000000000081525060200191505060405180910390fd5b80601c600085815260200190815260200160002060008460ff1660ff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff160217905550505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000613f938261281d565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515614039576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f63616e277420626520617070726f76656420746f206f776e657200000000000081525060200191505060405180910390fd5b6140818173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061407c575061407b8286613b36565b5b6141ab565b600073ffffffffffffffffffffffffffffffffffffffff166140a283611c67565b73ffffffffffffffffffffffffffffffffffffffff161415806140f25750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156141a557826005600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b50505050565b801515614220576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f6e6f2072696768747320746f206d616e6167650000000000000000000000000081525060200191505060405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156142c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f696e76616c69642061646472657373000000000000000000000000000000000081525060200191505060405180910390fd5b50565b6142d58183614c2e565b600073ffffffffffffffffffffffffffffffffffffffff166005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156143ee5760006005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b5050565b60008060006144456000600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011614cdd565b61444f8585614d55565b600b60008581526020019081526020016000205492506144bb6001600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061485590919063ffffffff16565b9150600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561450957fe5b9060005260206000200154905080600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110151561456357fe5b90600052602060002001819055506000600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811015156145bf57fe5b9060005260206000200181905550600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548091906001900361461f91906153cb565b506000600b60008681526020019081526020016000208190555082600b6000838152602001908152602001600020819055505050505050565b60006146648383614e97565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082908060018154018082558091505090600182039060005260206000200160009091929091909150555080600b600084815260200190815260200160002081905550505050565b8015156147a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f77726f6e6720696e64657800000000000000000000000000000000000000000081525060200191505060405180910390fd5b50565b60008090505b8151811015614851576147d682828151811015156147c757fe5b90602001906020020151614223565b600180600084848151811015156147e957fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506147ad565b5050565b600082821115151561486357fe5b818303905092915050565b614878828261505a565b600c80549050600d600083815260200190815260200160002081905550600c8190806001815401808255809150509060018203906000526020600020016000909192909190915055505050565b6000806148d1856150cd565b15156148e05760019150614ac8565b8473ffffffffffffffffffffffffffffffffffffffff1663150b7a02338887876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156149d55780820151818401526020810190506149ba565b50505050905090810190601f168015614a025780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015614a2457600080fd5b505af1158015614a38573d6000803e3d6000fd5b505050506040513d6020811015614a4e57600080fd5b8101908080519060200190929190505050905063150b7a027c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505b50949350505050565b606060008060006060600080851415614b21576040805190810160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509550614c24565b8694508693505b600084141515614b4e578280600101935050600a84811515614b4657fe5b049350614b28565b826040519080825280601f01601f191660200182016040528015614b815781602001602082028038833980820191505090505b5091506001830390505b600085141515614c2057600a85811515614ba157fe5b066030017f010000000000000000000000000000000000000000000000000000000000000002828280600190039350815181101515614bdc57fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85811515614c1857fe5b049450614b8b565b8195505b5050505050919050565b8073ffffffffffffffffffffffffffffffffffffffff16614c4e8361281d565b73ffffffffffffffffffffffffffffffffffffffff16141515614cd9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f6e6f7420616e206f776e6572000000000000000000000000000000000000000081525060200191505060405180910390fd5b5050565b801515614d52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f7573657220686173206e6f20746f6b656e73000000000000000000000000000081525060200191505060405180910390fd5b50565b614d5f8183614c2e565b614daa6000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411614cdd565b614dfd6001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461485590919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600073ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515614f6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f746f6b656e20616c72656164792068617320616e206f776e657200000000000081525060200191505060405180910390fd5b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506150136001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546150e090919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b61506382614223565b61506d8282614658565b808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b60008082840190508381101515156150f457fe5b8091505092915050565b6040805190810160405280600290602082028038833980820191505090505090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061516157803560ff191683800117855561518f565b8280016001018555821561518f579182015b8281111561518e578235825591602001919060010190615173565b5b50905061519c91906153f7565b5090565b82600481019282156151cf579160200282015b828111156151ce5782358255916020019190600101906151b3565b5b5090506151dc91906153f7565b5090565b608060405190810160405280600490602082028038833980820191505090505090565b82805482825590600052602060002090810192821561527c579160200282015b8281111561527b5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190615223565b5b509050615289919061541c565b5090565b82600481019282156152bc579160200282015b828111156152bb5782518255916020019190600101906152a0565b5b5090506152c991906153f7565b5090565b82600281019282156152fc579160200282015b828111156152fb5782518255916020019190600101906152e0565b5b50905061530991906153f7565b5090565b82600b601f016020900481019282156153965791602002820160005b8382111561536757835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302615329565b80156153945782816101000a81549060ff0219169055600101602081600001049283019260010302615367565b505b5090506153a3919061545f565b5090565b61016060405190810160405280600b90602082028038833980820191505090505090565b8154818355818111156153f2578183600052602060002091820191016153f191906153f7565b5b505050565b61541991905b808211156154155760008160009055506001016153fd565b5090565b90565b61545c91905b8082111561545857600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101615422565b5090565b90565b61548c91905b8082111561548857600081816101000a81549060ff021916905550600101615465565b5090565b905600a165627a7a723058200778a3e24f0852ca6a819823ee5affea1e7bdb9a45c0dc185210dafa190e79840029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000012447261676f6e657265756d20447261676f6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006445241474f4e0000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _name (string): Dragonereum Dragon
Arg [1] : _symbol (string): DRAGON
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 447261676f6e657265756d20447261676f6e0000000000000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [5] : 445241474f4e0000000000000000000000000000000000000000000000000000
Swarm Source
bzzr://0778a3e24f0852ca6a819823ee5affea1e7bdb9a45c0dc185210dafa190e7984
Loading...
Loading
Loading...
Loading
OVERVIEW
Dragonereum is a cryptocollectible game with PvP battles, advanced breeding, in-game trading, rewards and achievements.Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ 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.