Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Mint | 15907264 | 838 days ago | IN | 0 ETH | 0.00086797 |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
ERC72E
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: CC-BY-ND-4.0 pragma solidity ^0.8.17; import "./IERC721E.sol"; import "./ModernTypes.sol"; contract protected { mapping (address => bool) is_auth; function authorized(address addy) public view returns(bool) { return is_auth[addy]; } function set_authorized(address addy, bool booly) public onlyAuth { is_auth[addy] = booly; } modifier onlyAuth() { require( is_auth[msg.sender] || msg.sender==owner, "not owner"); _; } address owner; modifier onlyOwner() { require(msg.sender==owner, "not owner"); _; } bool locked; modifier safe() { require(!locked, "reentrant"); locked = true; _; locked = false; } function change_owner(address new_owner) public onlyAuth { owner = new_owner; } receive() external payable {} fallback() external payable {} } contract ERC72E is IERC721E, protected { // Metadata string public name; string public symbol; uint public totalSupply; string baseURI; // Properties uint next_id; // ID to owner mapping(uint => address) public ownership; // Owner to ID /* owned[address] -> [1,2,3,4,5...] index[3] -> 2 owned[address][2] -> 3 */ mapping(address => uint[]) public owned; mapping(uint => uint) public index; // Tokenomics uint public price; mapping(address => mapping(uint => mapping(address => bool))) public allowed; mapping(address => mapping(address => bool)) allowedAll; mapping(uint => address) masterAllowed; // Metadata struct METADATA { string name; string description; string image; string external_url; mapping(string => string) attribute; string[] attribute_keys; } mapping(uint => METADATA) metadata; constructor(string memory name_, string memory symbol_, uint totalSupply_) { // Setting ownership owner = msg.sender; is_auth[owner] = true; // Setting metadata name = name_; symbol = symbol_; totalSupply = totalSupply_; } function setTokenMetadata(uint id, string memory _name, string memory _description, string memory _image, string memory _external_url, string[] memory _traits, string[] memory _values) public onlyAuth { require(id < totalSupply, "id out of bounds"); require(_traits.length == _values.length, "traits/values mismatch"); metadata[id].name = _name; metadata[id].description = _description; metadata[id].image = _image; metadata[id].external_url = _external_url; for (uint i=0; i<_traits.length; i++) { metadata[id].attribute[_traits[i]] = _values[i]; metadata[id].attribute_keys.push(_traits[i]); } } function getTokenMetadata(uint id) public view returns (string memory _metadata_) { // Ensure exists require(id < totalSupply, "id out of bounds"); require(bytes(metadata[id].name).length > 0, "no metadata"); // Start string memory _metadata = "{"; _metadata = string.concat(_metadata, '"name": "'); _metadata = string.concat(_metadata, metadata[id].name); _metadata = string.concat(_metadata, '", "description": "'); _metadata = string.concat(_metadata, metadata[id].description); _metadata = string.concat(_metadata, '", "image": "'); _metadata = string.concat(_metadata, metadata[id].image); _metadata = string.concat(_metadata, '", "external_url": "'); _metadata = string.concat(_metadata, metadata[id].external_url); _metadata = string.concat(_metadata, '", "attributes": ['); for (uint i = 0; i < metadata[id].attribute_keys.length; i++) { _metadata = string.concat(_metadata, '{"trait_type": "'); _metadata = string.concat(_metadata, metadata[id].attribute_keys[i]); _metadata = string.concat(_metadata, '", "value": "'); _metadata = string.concat(_metadata, metadata[id].attribute[metadata[id].attribute_keys[i]]); _metadata = string.concat(_metadata, '"}'); if (i < metadata[id].attribute_keys.length - 1) { _metadata = string.concat(_metadata, ','); } } _metadata = string.concat(_metadata, ']}'); return _metadata; } function mint(uint quantity) public safe payable returns (bool success) { // In bounds require(quantity > 0, "quantity must be > 0"); require((next_id + quantity) <= totalSupply, "quantity must be <= totalSupply"); require(msg.value >= price * quantity, "insufficient funds"); if(quantity == 1) { _setOwnership(next_id, msg.sender); return true; } else { for (uint i = 0; i < quantity; i++) { _setOwnership(next_id, msg.sender); } return true; } } function transfer(address to, uint id) public safe returns (bool) { if (!(ownership[id]== msg.sender)) { revert ("Not owner"); } // Give new ownership ownership[id] = to; owned[to].push(id); // Getting index of id from previous owner uint idIndex = index[id]; // Getting index and id of the last id in the previous owner list uint lastIndex = owned[msg.sender].length - 1; uint lastId = owned[msg.sender][lastIndex]; // Swapping the indexes owned[msg.sender][lastIndex] = id; owned[msg.sender][idIndex] = lastId; // Deleting last index to remove the ownership completely delete owned[msg.sender][lastIndex]; // Emitting event emit Transfer(msg.sender, to, id); return true; } function tokenURI(uint id) public view returns (string memory URI) { require(id < totalSupply, "id out of bounds"); return string(abi.encodePacked(baseURI, id)); } function setBaseURI(string memory uri) public returns (bool success) { baseURI = uri; return true; } // Internals function _setOwnership(uint id, address addy) internal { ownership[id] = addy; owned[addy].push(id); index[id] = owned[addy].length - 1; } // Admin function setPrice(uint price_) public onlyAuth { price = price_; } // ERC721 Compatibility // 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) { return owned[_owner].length; } function ownerOf(uint256 _tokenId) public view returns (address) { return ownership[_tokenId]; } function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes memory data) public payable { // REVIEW Bypassing it basically delete data; transferFrom(_from, _to, _tokenId); } function safeTransferFrom(address _from, address _to, uint256 _tokenId) public payable { // REVIEW Bypassing it basically transferFrom(_from, _to, _tokenId); } function transferFrom(address _from, address _to, uint256 _tokenId) public payable { // Check if the sender is the owner or the approved if (!(ownership[_tokenId]== msg.sender || allowed[_from][_tokenId][msg.sender] || allowedAll[_from][msg.sender])) { revert ("Not owner neither approved"); } // Delete approval delete allowed[_from][_tokenId][msg.sender]; // Give new ownership ownership[_tokenId] = _to; owned[_to].push(_tokenId); // Getting index of id from previous owner uint idIndex = index[_tokenId]; // Getting index and id of the last id in the previous owner list uint lastIndex = owned[_from].length - 1; uint lastId = owned[_from][lastIndex]; // Swapping the indexes owned[_from][lastIndex] = _tokenId; owned[_from][idIndex] = lastId; // Deleting last index to remove the ownership completely delete owned[_from][lastIndex]; // Emitting event emit Transfer(_from, _to, _tokenId); } function approve(address _approved, uint256 _tokenId) public payable { if (!(ownership[_tokenId]==msg.sender)) { revert("Not owned"); } masterAllowed[_tokenId] = _approved; // TODO Remember to reset this on transfers emit Approval(msg.sender, _approved, _tokenId); } function approveOwned(address _approved, uint256 _tokenId) public payable { if (!(ownership[_tokenId]==msg.sender)) { revert("Not owned"); } // Setting allowance allowed[msg.sender][_tokenId][_approved] = true; emit Approval(msg.sender, _approved, _tokenId); } function disapproveOwned(address _disapproved, uint256 _tokenId) public payable { if (!(ownership[_tokenId]==msg.sender)) { revert("Not owned"); } // Setting allowance allowed[msg.sender][_tokenId][_disapproved] = false; } function setApprovalForAll(address _operator, bool _approved) public { if (_approved) { allowedAll[msg.sender][_operator] = true; } else { allowedAll[msg.sender][_operator] = false; } emit ApprovalForAll(msg.sender, _operator, _approved); } function getApproved(uint256 _tokenId) public view returns (address) { return masterAllowed[_tokenId]; } function getApprovedOwned(uint256 _tokenId, address _owner, address _spender) public view returns (bool) { return allowed[_owner][_tokenId][_spender]; } function isApprovedForAll(address _owner, address _operator) public view returns (bool) { return allowedAll[_owner][_operator]; } }
// SPDX-License-Identifier: CC-BY-ND-4.0 pragma solidity ^0.8.17; /// @title ERC-721 Non-Fungible Token Standard interface IERC721 { 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) external view returns (uint256); function ownerOf(uint256 _tokenId) external view returns (address); function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes memory data) external payable; function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; function transferFrom(address _from, address _to, uint256 _tokenId) external payable; function approve(address _approved, uint256 _tokenId) external payable; function setApprovalForAll(address _operator, bool _approved) external; function getApproved(uint256 _tokenId) external view returns (address); function isApprovedForAll(address _owner, address _operator) external view returns (bool); } interface IERC721E is IERC721 { function setTokenMetadata(uint id, string memory _name, string memory _description, string memory _image, string memory _external_url, string[] memory _traits, string[] memory _values) external; function getTokenMetadata(uint id) external returns (string memory metadata); function mint(uint quantity) external payable returns (bool success); function transfer(address to, uint id) external returns (bool success); function tokenURI(uint id) external returns (string memory URI); function setBaseURI(string memory uri) external returns (bool success); function getApprovedOwned(uint256 _tokenId, address _owner, address _spender) external view returns (bool); function approveOwned(address _approved, uint256 _tokenId) external payable; function disapproveOwned(address _disapproved, uint256 _tokenId) external payable; }
// SPDX-License-Identifier: CC-BY-ND-4.0 pragma solidity ^0.8.15; contract ModernTypes { // Compare two strings function STRING_IS(string memory a, string memory b) public pure returns (bool equal) { return keccak256(abi.encodePacked(a)) == keccak256(abi.encodePacked(b)); } // ANCHOR Concatenate two strings function STRING_CONCAT(string memory a, string memory b) public pure returns (string memory _concat) { return string.concat(a, b); } // ANCHOR Concatenate a list of strings function STRING_JOIN(string[] memory all) public pure returns (string memory _joint) { string memory joint = ""; for (uint i = 0; i < all.length; i++) { joint = string.concat(joint, all[i]); } return joint; } // ANCHOR String A contains String B? function STRING_CONTAINS(string memory what, string memory where) public pure returns (bool found) { // Transforming the strings into byte arrays bytes memory whatBytes = bytes(what); bytes memory whereBytes = bytes(where); // Ensuring that the strings are comparable require(whereBytes.length >= whatBytes.length); // Parsing all the combinations for (uint256 i = 0; i <= whereBytes.length - whatBytes.length; i++) { bool flag = true; // Each cycle compare the bytes we are taking into consideration for (uint256 j = 0; j < whatBytes.length; j++) { if (whereBytes[i + j] != whatBytes[j]) { // This cycle does not contains what is needed flag = false; break; } } // Each cycle, check if has been found an occurrence if (flag) { return true; } } // If no occurrence has been found, return false return false; } // ANCHOR String to Address conversion function STRING_TO_ADDRESS(string memory _a) internal pure returns (address _parsedAddress) { bytes memory tmp = bytes(_a); uint160 iaddr = 0; uint160 b1; uint160 b2; for (uint256 i = 2; i < 2 + 2 * 20; i += 2) { iaddr *= 256; b1 = uint160(uint8(tmp[i])); b2 = uint160(uint8(tmp[i + 1])); if ((b1 >= 97) && (b1 <= 102)) { b1 -= 87; } else if ((b1 >= 65) && (b1 <= 70)) { b1 -= 55; } else if ((b1 >= 48) && (b1 <= 57)) { b1 -= 48; } if ((b2 >= 97) && (b2 <= 102)) { b2 -= 87; } else if ((b2 >= 65) && (b2 <= 70)) { b2 -= 55; } else if ((b2 >= 48) && (b2 <= 57)) { b2 -= 48; } iaddr += (b1 * 16 + b2); } return address(iaddr); } // ANCHOR Address to string conversion function ADDRESS_TO_STRING(address x) internal pure returns (string memory) { bytes memory s = new bytes(40); for (uint i = 0; i < 20; i++) { bytes1 b = bytes1(uint8(uint(uint160(x)) / (2**(8*(19 - i))))); bytes1 hi = bytes1(uint8(b) / 16); bytes1 lo = bytes1(uint8(b) - 16 * uint8(hi)); s[2*i] = char(hi); s[2*i+1] = char(lo); } return string(s); } // ANCHOR Address to Bytes32 function ADDRESS_TO_BYTES32(address a) public pure returns (bytes32 addr) { return bytes32(uint256(uint160(a)) << 96); } // ANCHOR Bytes32 to Address function BYTES_TO_ADDRESS(bytes32 data) public pure returns (address addr) { return address(uint160(uint256(data))); } // ANCHOR String to Uint function STRING_TO_UINT(string memory a) public pure returns (uint256 result) { bytes memory b = bytes(a); uint256 i; result = 0; for (i = 0; i < b.length; i++) { uint256 c = uint256(uint8(b[i])); if (c >= 48 && c <= 57) { result = result * 10 + (c - 48); } } } // ANCHOR Uint to string conversion function UINT_TO_STRING(uint _i) internal pure returns (string memory _uintAsString) { if (_i == 0) { return "0"; } uint j = _i; uint len; while (j != 0) { len++; j /= 10; } bytes memory bstr = new bytes(len); uint k = len; while (_i != 0) { k = k-1; uint8 temp = (48 + uint8(_i - _i / 10 * 10)); bytes1 b1 = bytes1(temp); bstr[k] = b1; _i /= 10; } return string(bstr); } // SECTION Helpers function char(bytes1 b) internal pure returns (bytes1 c) { if (uint8(b) < 10) return bytes1(uint8(b) + 0x30); else return bytes1(uint8(b) + 0x57); } // !SECTION }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint256","name":"totalSupply_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_operator","type":"address"},{"indexed":false,"internalType":"bool","name":"_approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":true,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"allowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_approved","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_approved","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"approveOwned","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"}],"name":"authorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"new_owner","type":"address"}],"name":"change_owner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_disapproved","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"disapproveOwned","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"getApprovedOwned","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"getTokenMetadata","outputs":[{"internalType":"string","name":"_metadata_","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"index","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"owned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"ownership","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"uri","type":"string"}],"name":"setBaseURI","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"price_","type":"uint256"}],"name":"setPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_description","type":"string"},{"internalType":"string","name":"_image","type":"string"},{"internalType":"string","name":"_external_url","type":"string"},{"internalType":"string[]","name":"_traits","type":"string[]"},{"internalType":"string[]","name":"_values","type":"string[]"}],"name":"setTokenMetadata","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_authorized","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"URI","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040516200253638038062002536833981016040819052620000349162000150565b600180546001600160a01b0319163390811782556000908152602081905260409020805460ff1916909117905560026200006f848262000252565b5060036200007e838262000252565b50600455506200031e9050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000b357600080fd5b81516001600160401b0380821115620000d057620000d06200008b565b604051601f8301601f19908116603f01168101908282118183101715620000fb57620000fb6200008b565b816040528381526020925086838588010111156200011857600080fd5b600091505b838210156200013c57858201830151818301840152908201906200011d565b600093810190920192909252949350505050565b6000806000606084860312156200016657600080fd5b83516001600160401b03808211156200017e57600080fd5b6200018c87838801620000a1565b94506020860151915080821115620001a357600080fd5b50620001b286828701620000a1565b925050604084015190509250925092565b600181811c90821680620001d857607f821691505b602082108103620001f957634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200024d57600081815260208120601f850160051c81016020861015620002285750805b601f850160051c820191505b81811015620002495782815560010162000234565b5050505b505050565b81516001600160401b038111156200026e576200026e6200008b565b62000286816200027f8454620001c3565b84620001ff565b602080601f831160018114620002be5760008415620002a55750858301515b600019600386901b1c1916600185901b17855562000249565b600085815260208120601f198616915b82811015620002ef57888601518255948401946001909101908401620002ce565b50858210156200030e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b612208806200032e6000396000f3fe6080604052600436106101b95760003560e01c80637b7c4519116100eb578063a0f45b691161008f578063b918161111610061578063b91816111461055e578063c87b56dd14610597578063e985e9c5146105b7578063ffa481f8146105d757005b8063a0f45b69146104d5578063a22cb4651461050b578063a9059cbb1461052b578063b88d4fde1461054b57005b806393892a0f116100c857806393892a0f1461044757806395d89b4114610497578063a035b1fe146104ac578063a0712d68146104c257005b80637b7c4519146103f45780637bb7e6641461040757806391b7f5ed1461042757005b80632bfe87421161015d578063603168011161012f57806360316801146103485780636352211e1461036857806365b5e52f1461039e57806370a08231146103be57005b80632bfe8742146102b8578063335932fc146102d857806342842e0e1461030557806355f804b31461031857005b80631194444211610196578063119444421461024e57806318160ddd1461026157806323b872dd14610285578063253c8bd41461029857005b806306fdde03146101c2578063081812fc146101ed578063095ea7b31461023b57005b366101c057005b005b3480156101ce57600080fd5b506101d7610618565b6040516101e491906117ff565b60405180910390f35b3480156101f957600080fd5b50610223610208366004611832565b6000908152600d60205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020016101e4565b6101c0610249366004611867565b6106a6565b6101c061025c366004611867565b61073e565b34801561026d57600080fd5b5061027760045481565b6040519081526020016101e4565b6101c0610293366004611891565b6107d7565b3480156102a457600080fd5b506101c06102b33660046118cd565b610a7a565b3480156102c457600080fd5b506101c06102d33660046118ef565b610ae0565b3480156102e457600080fd5b506102776102f3366004611832565b60096020526000908152604090205481565b6101c0610313366004611891565b610b4f565b34801561032457600080fd5b506103386103333660046119ea565b610b5f565b60405190151581526020016101e4565b34801561035457600080fd5b506101d7610363366004611832565b610b76565b34801561037457600080fd5b50610223610383366004611832565b6000908152600760205260409020546001600160a01b031690565b3480156103aa57600080fd5b506102776103b9366004611867565b610f47565b3480156103ca57600080fd5b506102776103d93660046118cd565b6001600160a01b031660009081526008602052604090205490565b6101c0610402366004611867565b610f78565b34801561041357600080fd5b506101c0610422366004611ac6565b610fe7565b34801561043357600080fd5b506101c0610442366004611832565b6111ef565b34801561045357600080fd5b50610338610462366004611bc6565b6001600160a01b039182166000908152600b602090815260408083209583529481528482209290931681529152205460ff1690565b3480156104a357600080fd5b506101d7611238565b3480156104b857600080fd5b50610277600a5481565b6103386104d0366004611832565b611245565b3480156104e157600080fd5b506102236104f0366004611832565b6007602052600090815260409020546001600160a01b031681565b34801561051757600080fd5b506101c06105263660046118ef565b6113f3565b34801561053757600080fd5b50610338610546366004611867565b61149e565b6101c0610559366004611c02565b6116dc565b34801561056a57600080fd5b506103386105793660046118cd565b6001600160a01b031660009081526020819052604090205460ff1690565b3480156105a357600080fd5b506101d76105b2366004611832565b6116f0565b3480156105c357600080fd5b506103386105d2366004611c7e565b61173d565b3480156105e357600080fd5b506103386105f2366004611cb1565b600b60209081526000938452604080852082529284528284209052825290205460ff1681565b6002805461062590611ce4565b80601f016020809104026020016040519081016040528092919081815260200182805461065190611ce4565b801561069e5780601f106106735761010080835404028352916020019161069e565b820191906000526020600020905b81548152906001019060200180831161068157829003601f168201915b505050505081565b6000818152600760205260409020546001600160a01b031633146106e55760405162461bcd60e51b81526004016106dc90611d1e565b60405180910390fd5b6000818152600d602052604080822080546001600160a01b0319166001600160a01b0386169081179091559051839233917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259190a45050565b6000818152600760205260409020546001600160a01b031633146107745760405162461bcd60e51b81526004016106dc90611d1e565b336000818152600b6020908152604080832085845282528083206001600160a01b0387168085529252808320805460ff1916600117905551849391927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a45050565b6000818152600760205260409020546001600160a01b031633148061082757506001600160a01b0383166000908152600b60209081526040808320848452825280832033845290915290205460ff165b8061085557506001600160a01b0383166000908152600c6020908152604080832033845290915290205460ff165b6108a15760405162461bcd60e51b815260206004820152601a60248201527f4e6f74206f776e6572206e65697468657220617070726f76656400000000000060448201526064016106dc565b6001600160a01b038381166000818152600b6020908152604080832086845282528083203384528252808320805460ff191690558583526007825280832080546001600160a01b03191695881695861790559382526008808252848320805460018181018355918552838520018790558684526009835285842054948452915292812054919290916109339190611d57565b6001600160a01b0386166000908152600860205260408120805492935090918390811061096257610962611d6a565b906000526020600020015490508360086000886001600160a01b03166001600160a01b0316815260200190815260200160002083815481106109a6576109a6611d6a565b90600052602060002001819055508060086000886001600160a01b03166001600160a01b0316815260200190815260200160002084815481106109eb576109eb611d6a565b60009182526020808320909101929092556001600160a01b0388168152600890915260409020805483908110610a2357610a23611d6a565b906000526020600020016000905583856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050505050565b3360009081526020819052604090205460ff1680610aa257506001546001600160a01b031633145b610abe5760405162461bcd60e51b81526004016106dc90611d80565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526020819052604090205460ff1680610b0857506001546001600160a01b031633145b610b245760405162461bcd60e51b81526004016106dc90611d80565b6001600160a01b03919091166000908152602081905260409020805460ff1916911515919091179055565b610b5a8383836107d7565b505050565b60006005610b6d8382611df1565b50600192915050565b60606004548210610b995760405162461bcd60e51b81526004016106dc90611eb1565b6000828152600e602052604081208054610bb290611ce4565b905011610bef5760405162461bcd60e51b815260206004820152600b60248201526a6e6f206d6574616461746160a81b60448201526064016106dc565b6000604051806040016040528060018152602001607b60f81b815250905080604051602001610c1e9190611edb565b60408051601f198184030181528282526000868152600e6020908152929020909350610c4c92849201611f7b565b604051602081830303815290604052905080604051602001610c6e9190611fa2565b60408051601f198184030181528282526000868152600e6020908152929020909350610ca292849260019092019101611f7b565b604051602081830303815290604052905080604051602001610cc49190611fd9565b60408051601f198184030181528282526000868152600e6020908152929020909350610cf892849260029092019101611f7b565b604051602081830303815290604052905080604051602001610d1a919061200a565b60408051601f198184030181528282526000868152600e6020908152929020909350610d4e92849260039092019101611f7b565b604051602081830303815290604052905080604051602001610d709190612042565b604051602081830303815290604052905060005b6000848152600e6020526040902060050154811015610f1e5781604051602001610dae9190612078565b60408051601f198184030181529181526000868152600e602052206005018054919350839183908110610de357610de3611d6a565b90600052602060002001604051602001610dfe929190611f7b565b604051602081830303815290604052915081604051602001610e2091906120ac565b60408051601f198184030181529181526000868152600e60205220600581018054929450849260049092019184908110610e5c57610e5c611d6a565b90600052602060002001604051610e7391906120dd565b9081526020016040518091039020604051602001610e92929190611f7b565b604051602081830303815290604052915081604051602001610eb491906120e9565b60408051601f198184030181529181526000868152600e6020522060050154909250610ee290600190611d57565b811015610f0c5781604051602001610efa919061210f565b60405160208183030381529060405291505b80610f1681612134565b915050610d84565b5080604051602001610f30919061214d565b60408051601f198184030181529190529392505050565b60086020528160005260406000208181548110610f6357600080fd5b90600052602060002001600091509150505481565b6000818152600760205260409020546001600160a01b03163314610fae5760405162461bcd60e51b81526004016106dc90611d1e565b336000908152600b602090815260408083209383529281528282206001600160a01b03949094168252929092529020805460ff19169055565b3360009081526020819052604090205460ff168061100f57506001546001600160a01b031633145b61102b5760405162461bcd60e51b81526004016106dc90611d80565b600454871061104c5760405162461bcd60e51b81526004016106dc90611eb1565b80518251146110965760405162461bcd60e51b81526020600482015260166024820152750e8e4c2d2e8e65eecc2d8eacae640dad2e6dac2e8c6d60531b60448201526064016106dc565b6000878152600e602052604090206110ae8782611df1565b506000878152600e602052604090206001016110ca8682611df1565b506000878152600e602052604090206002016110e68582611df1565b506000878152600e602052604090206003016111028482611df1565b5060005b82518110156111e55781818151811061112157611121611d6a565b6020026020010151600e60008a815260200190815260200160002060040184838151811061115157611151611d6a565b60200260200101516040516111669190612173565b908152602001604051809103902090816111809190611df1565b50600e60008981526020019081526020016000206005018382815181106111a9576111a9611d6a565b602090810291909101810151825460018101845560009384529190922001906111d29082611df1565b50806111dd81612134565b915050611106565b5050505050505050565b3360009081526020819052604090205460ff168061121757506001546001600160a01b031633145b6112335760405162461bcd60e51b81526004016106dc90611d80565b600a55565b6003805461062590611ce4565b600154600090600160a01b900460ff161561128e5760405162461bcd60e51b81526020600482015260096024820152681c99595b9d1c985b9d60ba1b60448201526064016106dc565b6001805460ff60a01b1916600160a01b179055816112e55760405162461bcd60e51b815260206004820152601460248201527307175616e74697479206d757374206265203e20360641b60448201526064016106dc565b600454826006546112f6919061218f565b11156113445760405162461bcd60e51b815260206004820152601f60248201527f7175616e74697479206d757374206265203c3d20746f74616c537570706c790060448201526064016106dc565b81600a5461135291906121a2565b3410156113965760405162461bcd60e51b8152602060048201526012602482015271696e73756666696369656e742066756e647360701b60448201526064016106dc565b816001036113b2576113aa6006543361176d565b5060016113e1565b60005b828110156113db576113c96006543361176d565b806113d381612134565b9150506113b5565b50600190505b6001805460ff60a01b19169055919050565b801561142c57336000908152600c602090815260408083206001600160a01b03861684529091529020805460ff19166001179055611458565b336000908152600c602090815260408083206001600160a01b03861684529091529020805460ff191690555b60405181151581526001600160a01b0383169033907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319060200160405180910390a35050565b600154600090600160a01b900460ff16156114e75760405162461bcd60e51b81526020600482015260096024820152681c99595b9d1c985b9d60ba1b60448201526064016106dc565b6001805460ff60a01b1916600160a01b1790556000828152600760205260409020546001600160a01b0316331461154c5760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b60448201526064016106dc565b600082815260076020908152604080832080546001600160a01b0319166001600160a01b0388169081179091558352600880835281842080546001818101835591865284862001879055868552600984528285205433865291909352908320549092916115b891611d57565b33600090815260086020526040812080549293509091839081106115de576115de611d6a565b906000526020600020015490508460086000336001600160a01b03166001600160a01b03168152602001908152602001600020838154811061162257611622611d6a565b600091825260208083209091019290925533815260089091526040902080548291908590811061165457611654611d6a565b600091825260208083209091019290925533815260089091526040902080548390811061168357611683611d6a565b6000918252602082200181905560405186916001600160a01b0389169133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a450506001805460ff60a01b19168155949350505050565b5060606116ea8484846107d7565b50505050565b606060045482106117135760405162461bcd60e51b81526004016106dc90611eb1565b6005826040516020016117279291906121b9565b6040516020818303038152906040529050919050565b6001600160a01b038083166000908152600c602090815260408083209385168352929052205460ff165b92915050565b600082815260076020908152604080832080546001600160a01b0319166001600160a01b0386169081179091558084526008835290832080546001818101835582865293852001869055925290546117c59190611d57565b6000928352600960205260409092209190915550565b60005b838110156117f65781810151838201526020016117de565b50506000910152565b602081526000825180602084015261181e8160408501602087016117db565b601f01601f19169190910160400192915050565b60006020828403121561184457600080fd5b5035919050565b80356001600160a01b038116811461186257600080fd5b919050565b6000806040838503121561187a57600080fd5b6118838361184b565b946020939093013593505050565b6000806000606084860312156118a657600080fd5b6118af8461184b565b92506118bd6020850161184b565b9150604084013590509250925092565b6000602082840312156118df57600080fd5b6118e88261184b565b9392505050565b6000806040838503121561190257600080fd5b61190b8361184b565b91506020830135801515811461192057600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561196a5761196a61192b565b604052919050565b600067ffffffffffffffff83111561198c5761198c61192b565b61199f601f8401601f1916602001611941565b90508281528383830111156119b357600080fd5b828260208301376000602084830101529392505050565b600082601f8301126119db57600080fd5b6118e883833560208501611972565b6000602082840312156119fc57600080fd5b813567ffffffffffffffff811115611a1357600080fd5b611a1f848285016119ca565b949350505050565b600082601f830112611a3857600080fd5b8135602067ffffffffffffffff80831115611a5557611a5561192b565b8260051b611a64838201611941565b9384528581018301938381019088861115611a7e57600080fd5b84880192505b85831015611aba57823584811115611a9c5760008081fd5b611aaa8a87838c01016119ca565b8352509184019190840190611a84565b98975050505050505050565b600080600080600080600060e0888a031215611ae157600080fd5b87359650602088013567ffffffffffffffff80821115611b0057600080fd5b611b0c8b838c016119ca565b975060408a0135915080821115611b2257600080fd5b611b2e8b838c016119ca565b965060608a0135915080821115611b4457600080fd5b611b508b838c016119ca565b955060808a0135915080821115611b6657600080fd5b611b728b838c016119ca565b945060a08a0135915080821115611b8857600080fd5b611b948b838c01611a27565b935060c08a0135915080821115611baa57600080fd5b50611bb78a828b01611a27565b91505092959891949750929550565b600080600060608486031215611bdb57600080fd5b83359250611beb6020850161184b565b9150611bf96040850161184b565b90509250925092565b60008060008060808587031215611c1857600080fd5b611c218561184b565b9350611c2f6020860161184b565b925060408501359150606085013567ffffffffffffffff811115611c5257600080fd5b8501601f81018713611c6357600080fd5b611c7287823560208401611972565b91505092959194509250565b60008060408385031215611c9157600080fd5b611c9a8361184b565b9150611ca86020840161184b565b90509250929050565b600080600060608486031215611cc657600080fd5b611ccf8461184b565b925060208401359150611bf96040850161184b565b600181811c90821680611cf857607f821691505b602082108103611d1857634e487b7160e01b600052602260045260246000fd5b50919050565b602080825260099082015268139bdd081bdddb995960ba1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561176757611767611d41565b634e487b7160e01b600052603260045260246000fd5b6020808252600990820152683737ba1037bbb732b960b91b604082015260600190565b601f821115610b5a57600081815260208120601f850160051c81016020861015611dca5750805b601f850160051c820191505b81811015611de957828155600101611dd6565b505050505050565b815167ffffffffffffffff811115611e0b57611e0b61192b565b611e1f81611e198454611ce4565b84611da3565b602080601f831160018114611e545760008415611e3c5750858301515b600019600386901b1c1916600185901b178555611de9565b600085815260208120601f198616915b82811015611e8357888601518255948401946001909101908401611e64565b5085821015611ea15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208082526010908201526f6964206f7574206f6620626f756e647360801b604082015260600190565b60008251611eed8184602087016117db565b68113730b6b2911d101160b91b920191825250600901919050565b60008154611f1581611ce4565b60018281168015611f2d5760018114611f4257611f71565b60ff1984168752821515830287019450611f71565b8560005260208060002060005b85811015611f685781548a820152908401908201611f4f565b50505082870194505b5050505092915050565b60008351611f8d8184602088016117db565b611f9981840185611f08565b95945050505050565b60008251611fb48184602087016117db565b72111610113232b9b1b934b83a34b7b7111d101160691b920191825250601301919050565b60008251611feb8184602087016117db565b6c1116101134b6b0b3b2911d101160991b920191825250600d01919050565b6000825161201c8184602087016117db565b731116101132bc3a32b93730b62fbab936111d101160611b920191825250601401919050565b600082516120548184602087016117db565b71222c202261747472696275746573223a205b60701b920191825250601201919050565b6000825161208a8184602087016117db565b6f3d913a3930b4ba2fba3cb832911d101160811b920191825250601001919050565b600082516120be8184602087016117db565b6c111610113b30b63ab2911d101160991b920191825250600d01919050565b60006118e88284611f08565b600082516120fb8184602087016117db565b61227d60f01b920191825250600201919050565b600082516121218184602087016117db565b600b60fa1b920191825250600101919050565b60006001820161214657612146611d41565b5060010190565b6000825161215f8184602087016117db565b615d7d60f01b920191825250600201919050565b600082516121858184602087016117db565b9190910192915050565b8082018082111561176757611767611d41565b808202811582820484141761176757611767611d41565b60006121c58285611f08565b928352505060200191905056fea2646970667358221220a4969d46b10a156bc02fba1095ce223bdd33e51eeadd0e28f20b87280e32f57a64736f6c63430008110033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000004546573740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055465657374000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106101b95760003560e01c80637b7c4519116100eb578063a0f45b691161008f578063b918161111610061578063b91816111461055e578063c87b56dd14610597578063e985e9c5146105b7578063ffa481f8146105d757005b8063a0f45b69146104d5578063a22cb4651461050b578063a9059cbb1461052b578063b88d4fde1461054b57005b806393892a0f116100c857806393892a0f1461044757806395d89b4114610497578063a035b1fe146104ac578063a0712d68146104c257005b80637b7c4519146103f45780637bb7e6641461040757806391b7f5ed1461042757005b80632bfe87421161015d578063603168011161012f57806360316801146103485780636352211e1461036857806365b5e52f1461039e57806370a08231146103be57005b80632bfe8742146102b8578063335932fc146102d857806342842e0e1461030557806355f804b31461031857005b80631194444211610196578063119444421461024e57806318160ddd1461026157806323b872dd14610285578063253c8bd41461029857005b806306fdde03146101c2578063081812fc146101ed578063095ea7b31461023b57005b366101c057005b005b3480156101ce57600080fd5b506101d7610618565b6040516101e491906117ff565b60405180910390f35b3480156101f957600080fd5b50610223610208366004611832565b6000908152600d60205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020016101e4565b6101c0610249366004611867565b6106a6565b6101c061025c366004611867565b61073e565b34801561026d57600080fd5b5061027760045481565b6040519081526020016101e4565b6101c0610293366004611891565b6107d7565b3480156102a457600080fd5b506101c06102b33660046118cd565b610a7a565b3480156102c457600080fd5b506101c06102d33660046118ef565b610ae0565b3480156102e457600080fd5b506102776102f3366004611832565b60096020526000908152604090205481565b6101c0610313366004611891565b610b4f565b34801561032457600080fd5b506103386103333660046119ea565b610b5f565b60405190151581526020016101e4565b34801561035457600080fd5b506101d7610363366004611832565b610b76565b34801561037457600080fd5b50610223610383366004611832565b6000908152600760205260409020546001600160a01b031690565b3480156103aa57600080fd5b506102776103b9366004611867565b610f47565b3480156103ca57600080fd5b506102776103d93660046118cd565b6001600160a01b031660009081526008602052604090205490565b6101c0610402366004611867565b610f78565b34801561041357600080fd5b506101c0610422366004611ac6565b610fe7565b34801561043357600080fd5b506101c0610442366004611832565b6111ef565b34801561045357600080fd5b50610338610462366004611bc6565b6001600160a01b039182166000908152600b602090815260408083209583529481528482209290931681529152205460ff1690565b3480156104a357600080fd5b506101d7611238565b3480156104b857600080fd5b50610277600a5481565b6103386104d0366004611832565b611245565b3480156104e157600080fd5b506102236104f0366004611832565b6007602052600090815260409020546001600160a01b031681565b34801561051757600080fd5b506101c06105263660046118ef565b6113f3565b34801561053757600080fd5b50610338610546366004611867565b61149e565b6101c0610559366004611c02565b6116dc565b34801561056a57600080fd5b506103386105793660046118cd565b6001600160a01b031660009081526020819052604090205460ff1690565b3480156105a357600080fd5b506101d76105b2366004611832565b6116f0565b3480156105c357600080fd5b506103386105d2366004611c7e565b61173d565b3480156105e357600080fd5b506103386105f2366004611cb1565b600b60209081526000938452604080852082529284528284209052825290205460ff1681565b6002805461062590611ce4565b80601f016020809104026020016040519081016040528092919081815260200182805461065190611ce4565b801561069e5780601f106106735761010080835404028352916020019161069e565b820191906000526020600020905b81548152906001019060200180831161068157829003601f168201915b505050505081565b6000818152600760205260409020546001600160a01b031633146106e55760405162461bcd60e51b81526004016106dc90611d1e565b60405180910390fd5b6000818152600d602052604080822080546001600160a01b0319166001600160a01b0386169081179091559051839233917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259190a45050565b6000818152600760205260409020546001600160a01b031633146107745760405162461bcd60e51b81526004016106dc90611d1e565b336000818152600b6020908152604080832085845282528083206001600160a01b0387168085529252808320805460ff1916600117905551849391927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a45050565b6000818152600760205260409020546001600160a01b031633148061082757506001600160a01b0383166000908152600b60209081526040808320848452825280832033845290915290205460ff165b8061085557506001600160a01b0383166000908152600c6020908152604080832033845290915290205460ff165b6108a15760405162461bcd60e51b815260206004820152601a60248201527f4e6f74206f776e6572206e65697468657220617070726f76656400000000000060448201526064016106dc565b6001600160a01b038381166000818152600b6020908152604080832086845282528083203384528252808320805460ff191690558583526007825280832080546001600160a01b03191695881695861790559382526008808252848320805460018181018355918552838520018790558684526009835285842054948452915292812054919290916109339190611d57565b6001600160a01b0386166000908152600860205260408120805492935090918390811061096257610962611d6a565b906000526020600020015490508360086000886001600160a01b03166001600160a01b0316815260200190815260200160002083815481106109a6576109a6611d6a565b90600052602060002001819055508060086000886001600160a01b03166001600160a01b0316815260200190815260200160002084815481106109eb576109eb611d6a565b60009182526020808320909101929092556001600160a01b0388168152600890915260409020805483908110610a2357610a23611d6a565b906000526020600020016000905583856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050505050565b3360009081526020819052604090205460ff1680610aa257506001546001600160a01b031633145b610abe5760405162461bcd60e51b81526004016106dc90611d80565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526020819052604090205460ff1680610b0857506001546001600160a01b031633145b610b245760405162461bcd60e51b81526004016106dc90611d80565b6001600160a01b03919091166000908152602081905260409020805460ff1916911515919091179055565b610b5a8383836107d7565b505050565b60006005610b6d8382611df1565b50600192915050565b60606004548210610b995760405162461bcd60e51b81526004016106dc90611eb1565b6000828152600e602052604081208054610bb290611ce4565b905011610bef5760405162461bcd60e51b815260206004820152600b60248201526a6e6f206d6574616461746160a81b60448201526064016106dc565b6000604051806040016040528060018152602001607b60f81b815250905080604051602001610c1e9190611edb565b60408051601f198184030181528282526000868152600e6020908152929020909350610c4c92849201611f7b565b604051602081830303815290604052905080604051602001610c6e9190611fa2565b60408051601f198184030181528282526000868152600e6020908152929020909350610ca292849260019092019101611f7b565b604051602081830303815290604052905080604051602001610cc49190611fd9565b60408051601f198184030181528282526000868152600e6020908152929020909350610cf892849260029092019101611f7b565b604051602081830303815290604052905080604051602001610d1a919061200a565b60408051601f198184030181528282526000868152600e6020908152929020909350610d4e92849260039092019101611f7b565b604051602081830303815290604052905080604051602001610d709190612042565b604051602081830303815290604052905060005b6000848152600e6020526040902060050154811015610f1e5781604051602001610dae9190612078565b60408051601f198184030181529181526000868152600e602052206005018054919350839183908110610de357610de3611d6a565b90600052602060002001604051602001610dfe929190611f7b565b604051602081830303815290604052915081604051602001610e2091906120ac565b60408051601f198184030181529181526000868152600e60205220600581018054929450849260049092019184908110610e5c57610e5c611d6a565b90600052602060002001604051610e7391906120dd565b9081526020016040518091039020604051602001610e92929190611f7b565b604051602081830303815290604052915081604051602001610eb491906120e9565b60408051601f198184030181529181526000868152600e6020522060050154909250610ee290600190611d57565b811015610f0c5781604051602001610efa919061210f565b60405160208183030381529060405291505b80610f1681612134565b915050610d84565b5080604051602001610f30919061214d565b60408051601f198184030181529190529392505050565b60086020528160005260406000208181548110610f6357600080fd5b90600052602060002001600091509150505481565b6000818152600760205260409020546001600160a01b03163314610fae5760405162461bcd60e51b81526004016106dc90611d1e565b336000908152600b602090815260408083209383529281528282206001600160a01b03949094168252929092529020805460ff19169055565b3360009081526020819052604090205460ff168061100f57506001546001600160a01b031633145b61102b5760405162461bcd60e51b81526004016106dc90611d80565b600454871061104c5760405162461bcd60e51b81526004016106dc90611eb1565b80518251146110965760405162461bcd60e51b81526020600482015260166024820152750e8e4c2d2e8e65eecc2d8eacae640dad2e6dac2e8c6d60531b60448201526064016106dc565b6000878152600e602052604090206110ae8782611df1565b506000878152600e602052604090206001016110ca8682611df1565b506000878152600e602052604090206002016110e68582611df1565b506000878152600e602052604090206003016111028482611df1565b5060005b82518110156111e55781818151811061112157611121611d6a565b6020026020010151600e60008a815260200190815260200160002060040184838151811061115157611151611d6a565b60200260200101516040516111669190612173565b908152602001604051809103902090816111809190611df1565b50600e60008981526020019081526020016000206005018382815181106111a9576111a9611d6a565b602090810291909101810151825460018101845560009384529190922001906111d29082611df1565b50806111dd81612134565b915050611106565b5050505050505050565b3360009081526020819052604090205460ff168061121757506001546001600160a01b031633145b6112335760405162461bcd60e51b81526004016106dc90611d80565b600a55565b6003805461062590611ce4565b600154600090600160a01b900460ff161561128e5760405162461bcd60e51b81526020600482015260096024820152681c99595b9d1c985b9d60ba1b60448201526064016106dc565b6001805460ff60a01b1916600160a01b179055816112e55760405162461bcd60e51b815260206004820152601460248201527307175616e74697479206d757374206265203e20360641b60448201526064016106dc565b600454826006546112f6919061218f565b11156113445760405162461bcd60e51b815260206004820152601f60248201527f7175616e74697479206d757374206265203c3d20746f74616c537570706c790060448201526064016106dc565b81600a5461135291906121a2565b3410156113965760405162461bcd60e51b8152602060048201526012602482015271696e73756666696369656e742066756e647360701b60448201526064016106dc565b816001036113b2576113aa6006543361176d565b5060016113e1565b60005b828110156113db576113c96006543361176d565b806113d381612134565b9150506113b5565b50600190505b6001805460ff60a01b19169055919050565b801561142c57336000908152600c602090815260408083206001600160a01b03861684529091529020805460ff19166001179055611458565b336000908152600c602090815260408083206001600160a01b03861684529091529020805460ff191690555b60405181151581526001600160a01b0383169033907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319060200160405180910390a35050565b600154600090600160a01b900460ff16156114e75760405162461bcd60e51b81526020600482015260096024820152681c99595b9d1c985b9d60ba1b60448201526064016106dc565b6001805460ff60a01b1916600160a01b1790556000828152600760205260409020546001600160a01b0316331461154c5760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b60448201526064016106dc565b600082815260076020908152604080832080546001600160a01b0319166001600160a01b0388169081179091558352600880835281842080546001818101835591865284862001879055868552600984528285205433865291909352908320549092916115b891611d57565b33600090815260086020526040812080549293509091839081106115de576115de611d6a565b906000526020600020015490508460086000336001600160a01b03166001600160a01b03168152602001908152602001600020838154811061162257611622611d6a565b600091825260208083209091019290925533815260089091526040902080548291908590811061165457611654611d6a565b600091825260208083209091019290925533815260089091526040902080548390811061168357611683611d6a565b6000918252602082200181905560405186916001600160a01b0389169133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a450506001805460ff60a01b19168155949350505050565b5060606116ea8484846107d7565b50505050565b606060045482106117135760405162461bcd60e51b81526004016106dc90611eb1565b6005826040516020016117279291906121b9565b6040516020818303038152906040529050919050565b6001600160a01b038083166000908152600c602090815260408083209385168352929052205460ff165b92915050565b600082815260076020908152604080832080546001600160a01b0319166001600160a01b0386169081179091558084526008835290832080546001818101835582865293852001869055925290546117c59190611d57565b6000928352600960205260409092209190915550565b60005b838110156117f65781810151838201526020016117de565b50506000910152565b602081526000825180602084015261181e8160408501602087016117db565b601f01601f19169190910160400192915050565b60006020828403121561184457600080fd5b5035919050565b80356001600160a01b038116811461186257600080fd5b919050565b6000806040838503121561187a57600080fd5b6118838361184b565b946020939093013593505050565b6000806000606084860312156118a657600080fd5b6118af8461184b565b92506118bd6020850161184b565b9150604084013590509250925092565b6000602082840312156118df57600080fd5b6118e88261184b565b9392505050565b6000806040838503121561190257600080fd5b61190b8361184b565b91506020830135801515811461192057600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561196a5761196a61192b565b604052919050565b600067ffffffffffffffff83111561198c5761198c61192b565b61199f601f8401601f1916602001611941565b90508281528383830111156119b357600080fd5b828260208301376000602084830101529392505050565b600082601f8301126119db57600080fd5b6118e883833560208501611972565b6000602082840312156119fc57600080fd5b813567ffffffffffffffff811115611a1357600080fd5b611a1f848285016119ca565b949350505050565b600082601f830112611a3857600080fd5b8135602067ffffffffffffffff80831115611a5557611a5561192b565b8260051b611a64838201611941565b9384528581018301938381019088861115611a7e57600080fd5b84880192505b85831015611aba57823584811115611a9c5760008081fd5b611aaa8a87838c01016119ca565b8352509184019190840190611a84565b98975050505050505050565b600080600080600080600060e0888a031215611ae157600080fd5b87359650602088013567ffffffffffffffff80821115611b0057600080fd5b611b0c8b838c016119ca565b975060408a0135915080821115611b2257600080fd5b611b2e8b838c016119ca565b965060608a0135915080821115611b4457600080fd5b611b508b838c016119ca565b955060808a0135915080821115611b6657600080fd5b611b728b838c016119ca565b945060a08a0135915080821115611b8857600080fd5b611b948b838c01611a27565b935060c08a0135915080821115611baa57600080fd5b50611bb78a828b01611a27565b91505092959891949750929550565b600080600060608486031215611bdb57600080fd5b83359250611beb6020850161184b565b9150611bf96040850161184b565b90509250925092565b60008060008060808587031215611c1857600080fd5b611c218561184b565b9350611c2f6020860161184b565b925060408501359150606085013567ffffffffffffffff811115611c5257600080fd5b8501601f81018713611c6357600080fd5b611c7287823560208401611972565b91505092959194509250565b60008060408385031215611c9157600080fd5b611c9a8361184b565b9150611ca86020840161184b565b90509250929050565b600080600060608486031215611cc657600080fd5b611ccf8461184b565b925060208401359150611bf96040850161184b565b600181811c90821680611cf857607f821691505b602082108103611d1857634e487b7160e01b600052602260045260246000fd5b50919050565b602080825260099082015268139bdd081bdddb995960ba1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561176757611767611d41565b634e487b7160e01b600052603260045260246000fd5b6020808252600990820152683737ba1037bbb732b960b91b604082015260600190565b601f821115610b5a57600081815260208120601f850160051c81016020861015611dca5750805b601f850160051c820191505b81811015611de957828155600101611dd6565b505050505050565b815167ffffffffffffffff811115611e0b57611e0b61192b565b611e1f81611e198454611ce4565b84611da3565b602080601f831160018114611e545760008415611e3c5750858301515b600019600386901b1c1916600185901b178555611de9565b600085815260208120601f198616915b82811015611e8357888601518255948401946001909101908401611e64565b5085821015611ea15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208082526010908201526f6964206f7574206f6620626f756e647360801b604082015260600190565b60008251611eed8184602087016117db565b68113730b6b2911d101160b91b920191825250600901919050565b60008154611f1581611ce4565b60018281168015611f2d5760018114611f4257611f71565b60ff1984168752821515830287019450611f71565b8560005260208060002060005b85811015611f685781548a820152908401908201611f4f565b50505082870194505b5050505092915050565b60008351611f8d8184602088016117db565b611f9981840185611f08565b95945050505050565b60008251611fb48184602087016117db565b72111610113232b9b1b934b83a34b7b7111d101160691b920191825250601301919050565b60008251611feb8184602087016117db565b6c1116101134b6b0b3b2911d101160991b920191825250600d01919050565b6000825161201c8184602087016117db565b731116101132bc3a32b93730b62fbab936111d101160611b920191825250601401919050565b600082516120548184602087016117db565b71222c202261747472696275746573223a205b60701b920191825250601201919050565b6000825161208a8184602087016117db565b6f3d913a3930b4ba2fba3cb832911d101160811b920191825250601001919050565b600082516120be8184602087016117db565b6c111610113b30b63ab2911d101160991b920191825250600d01919050565b60006118e88284611f08565b600082516120fb8184602087016117db565b61227d60f01b920191825250600201919050565b600082516121218184602087016117db565b600b60fa1b920191825250600101919050565b60006001820161214657612146611d41565b5060010190565b6000825161215f8184602087016117db565b615d7d60f01b920191825250600201919050565b600082516121858184602087016117db565b9190910192915050565b8082018082111561176757611767611d41565b808202811582820484141761176757611767611d41565b60006121c58285611f08565b928352505060200191905056fea2646970667358221220a4969d46b10a156bc02fba1095ce223bdd33e51eeadd0e28f20b87280e32f57a64736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000004546573740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055465657374000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : name_ (string): Test
Arg [1] : symbol_ (string): Teest
Arg [2] : totalSupply_ (uint256): 100
-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000064
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [4] : 5465737400000000000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [6] : 5465657374000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
932:10279:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;994:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10592:142;;;;;;;;;;-1:-1:-1;10592:142:0;;;;;:::i;:::-;10678:7;10704:23;;;:13;:23;;;;;;-1:-1:-1;;;;;10704:23:0;;10592:142;;;;-1:-1:-1;;;;;1019:32:3;;;1001:51;;989:2;974:18;10592:142:0;855:203:3;9151:365:0;;;;;;:::i;:::-;;:::i;9522:360::-;;;;;;:::i;:::-;;:::i;1044:23::-;;;;;;;;;;;;;;;;;;;1646:25:3;;;1634:2;1619:18;1044:23:0;1500:177:3;7965:1180:0;;;;;;:::i;:::-;;:::i;768:91::-;;;;;;;;;;-1:-1:-1;768:91:0;;;;;:::i;:::-;;:::i;288:104::-;;;;;;;;;;-1:-1:-1;288:104:0;;;;;:::i;:::-;;:::i;1358:34::-;;;;;;;;;;-1:-1:-1;1358:34:0;;;;;:::i;:::-;;;;;;;;;;;;;;7688:272;;;;;;:::i;:::-;;:::i;6373:120::-;;;;;;;;;;-1:-1:-1;6373:120:0;;;;;:::i;:::-;;:::i;:::-;;;4101:14:3;;4094:22;4076:41;;4064:2;4049:18;6373:120:0;3936:187:3;3136:1575:0;;;;;;;;;;-1:-1:-1;3136:1575:0;;;;;:::i;:::-;;:::i;7227:108::-;;;;;;;;;;-1:-1:-1;7227:108:0;;;;;:::i;:::-;7283:7;7309:19;;;:9;:19;;;;;;-1:-1:-1;;;;;7309:19:0;;7227:108;1313:39;;;;;;;;;;-1:-1:-1;1313:39:0;;;;;:::i;:::-;;:::i;7112:109::-;;;;;;;;;;-1:-1:-1;7112:109:0;;;;;:::i;:::-;-1:-1:-1;;;;;7194:13:0;7168:7;7194:13;;;:5;:13;;;;;:20;;7112:109;9892:320;;;;;;:::i;:::-;;:::i;2260:870::-;;;;;;;;;;-1:-1:-1;2260:870:0;;;;;:::i;:::-;;:::i;6702:78::-;;;;;;;;;;-1:-1:-1;6702:78:0;;;;;:::i;:::-;;:::i;10740:255::-;;;;;;;;;;-1:-1:-1;10740:255:0;;;;;:::i;:::-;-1:-1:-1;;;;;10953:15:0;;;10930:4;10953:15;;;:7;:15;;;;;;;;:25;;;;;;;;;:35;;;;;;;;;;;;;10740:255;1018:20;;;;;;;;;;;;;:::i;1417:17::-;;;;;;;;;;;;;;;;4716:621;;;;;;:::i;:::-;;:::i;1150:41::-;;;;;;;;;;-1:-1:-1;1150:41:0;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1150:41:0;;;10223:364;;;;;;;;;;-1:-1:-1;10223:364:0;;;;;:::i;:::-;;:::i;5343:835::-;;;;;;;;;;-1:-1:-1;5343:835:0;;;;;:::i;:::-;;:::i;7340:343::-;;;;;;:::i;:::-;;:::i;186:97::-;;;;;;;;;;-1:-1:-1;186:97:0;;;;;:::i;:::-;-1:-1:-1;;;;;263:13:0;240:4;263:13;;;;;;;;;;;;;;186:97;6184:183;;;;;;;;;;-1:-1:-1;6184:183:0;;;;;:::i;:::-;;:::i;11005:203::-;;;;;;;;;;-1:-1:-1;11005:203:0;;;;;:::i;:::-;;:::i;1440:115::-;;;;;;;;;;-1:-1:-1;1440:115:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;994:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9151:365::-;9279:19;;;;:9;:19;;;;;;-1:-1:-1;;;;;9279:19:0;9300:10;9279:31;9273:84;;9327:19;;-1:-1:-1;;;9327:19:0;;;;;;;:::i;:::-;;;;;;;;9273:84;9366:23;;;;:13;:23;;;;;;:35;;-1:-1:-1;;;;;;9366:35:0;-1:-1:-1;;;;;9366:35:0;;;;;;;;9468:41;;9366:23;;9477:10;;9468:41;;9366:23;9468:41;9151:365;;:::o;9522:360::-;9656:19;;;;:9;:19;;;;;;-1:-1:-1;;;;;9656:19:0;9677:10;9656:31;9650:84;;9704:19;;-1:-1:-1;;;9704:19:0;;;;;;;:::i;9650:84::-;9780:10;9772:19;;;;:7;:19;;;;;;;;:29;;;;;;;;-1:-1:-1;;;;;9772:40:0;;;;;;;;;;:47;;-1:-1:-1;;9772:47:0;9815:4;9772:47;;;9834:41;9792:8;;9772:40;;9834:41;;;9522:360;;:::o;7965:1180::-;8205:19;;;;:9;:19;;;;;;-1:-1:-1;;;;;8205:19:0;8227:10;8205:32;;:87;;-1:-1:-1;;;;;;8256:14:0;;;;;;:7;:14;;;;;;;;:24;;;;;;;;8281:10;8256:36;;;;;;;;;;8205:87;:134;;;-1:-1:-1;;;;;;8310:17:0;;;;;;:10;:17;;;;;;;;8328:10;8310:29;;;;;;;;;;8205:134;8199:205;;8356:37;;-1:-1:-1;;;8356:37:0;;9093:2:3;8356:37:0;;;9075:21:3;9132:2;9112:18;;;9105:30;9171:28;9151:18;;;9144:56;9217:18;;8356:37:0;8891:350:3;8199:205:0;-1:-1:-1;;;;;8447:14:0;;;;;;;:7;:14;;;;;;;;:24;;;;;;;;8472:10;8447:36;;;;;;;8440:43;;-1:-1:-1;;8440:43:0;;;8523:19;;;:9;:19;;;;;:25;;-1:-1:-1;;;;;;8523:25:0;;;;;;;;;8558:10;;;:5;:10;;;;;;:25;;-1:-1:-1;8558:25:0;;;;;;;;;;;;;;;8659:15;;;:5;:15;;;;;;8775:12;;;;;;;;:19;8659:15;;8447:14;;8775:23;;-1:-1:-1;8775:23:0;:::i;:::-;-1:-1:-1;;;;;8822:12:0;;8808:11;8822:12;;;:5;:12;;;;;:23;;8758:40;;-1:-1:-1;8808:11:0;;8758:40;;8822:23;;;;;;:::i;:::-;;;;;;;;;8808:37;;8913:8;8887:5;:12;8893:5;-1:-1:-1;;;;;8887:12:0;-1:-1:-1;;;;;8887:12:0;;;;;;;;;;;;8900:9;8887:23;;;;;;;;:::i;:::-;;;;;;;;:34;;;;8955:6;8931:5;:12;8937:5;-1:-1:-1;;;;;8931:12:0;-1:-1:-1;;;;;8931:12:0;;;;;;;;;;;;8944:7;8931:21;;;;;;;;:::i;:::-;;;;;;;;;;;;:30;;;;-1:-1:-1;;;;;9044:12:0;;;;:5;:12;;;;;;:23;;9057:9;;9044:23;;;;;;:::i;:::-;;;;;;;;9037:30;;;9129:8;9124:3;-1:-1:-1;;;;;9108:30:0;9117:5;-1:-1:-1;;;;;9108:30:0;;;;;;;;;;;8129:1016;;;7965:1180;;;:::o;768:91::-;444:10;436:7;:19;;;;;;;;;;;;;;:40;;-1:-1:-1;471:5:0;;-1:-1:-1;;;;;471:5:0;459:10;:17;436:40;427:63;;;;-1:-1:-1;;;427:63:0;;;;;;;:::i;:::-;835:5:::1;:17:::0;;-1:-1:-1;;;;;;835:17:0::1;-1:-1:-1::0;;;;;835:17:0;;;::::1;::::0;;;::::1;::::0;;768:91::o;288:104::-;444:10;436:7;:19;;;;;;;;;;;;;;:40;;-1:-1:-1;471:5:0;;-1:-1:-1;;;;;471:5:0;459:10;:17;436:40;427:63;;;;-1:-1:-1;;;427:63:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;364:13:0;;;::::1;:7;:13:::0;;;::::1;::::0;;;;;;:21;;-1:-1:-1;;364:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;288:104::o;7688:272::-;7919:34;7932:5;7939:3;7944:8;7919:12;:34::i;:::-;7688:272;;;:::o;6373:120::-;6428:12;6452:7;:13;6462:3;6452:7;:13;:::i;:::-;-1:-1:-1;6482:4:0;;6373:120;-1:-1:-1;;6373:120:0:o;3136:1575::-;3192:24;3266:11;;3261:2;:16;3253:45;;;;-1:-1:-1;;;3253:45:0;;;;;;;:::i;:::-;3350:1;3322:12;;;:8;:12;;;;;3316:31;;;;;:::i;:::-;;;:35;3308:59;;;;-1:-1:-1;;;3308:59:0;;12731:2:3;3308:59:0;;;12713:21:3;12770:2;12750:18;;;12743:30;-1:-1:-1;;;12789:18:3;;;12782:41;12840:18;;3308:59:0;12529:335:3;3308:59:0;3394:23;:29;;;;;;;;;;;;;-1:-1:-1;;;3394:29:0;;;;;3459:9;3445:37;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3445:37:0;;;;;;;;;3529:12;;;;:8;3445:37;3529:12;;;;;;3445:37;;-1:-1:-1;3504:43:0;;3445:37;;3504:43;;:::i;:::-;;;;;;;;;;;;;3492:55;;3583:9;3569:47;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3569:47:0;;;;;;;;;3663:12;;;;:8;3569:47;3663:12;;;;;;3569:47;;-1:-1:-1;3638:50:0;;3569:47;;3663:24;;;;;3638:50;;:::i;:::-;;;;;;;;;;;;;3626:62;;3724:9;3710:41;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3710:41:0;;;;;;;;;3798:12;;;;:8;3710:41;3798:12;;;;;;3710:41;;-1:-1:-1;3773:44:0;;3710:41;;3798:18;;;;;3773:44;;:::i;:::-;;;;;;;;;;;;;3761:56;;3853:9;3839:48;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3839:48:0;;;;;;;;;3934:12;;;;:8;3839:48;3934:12;;;;;;3839:48;;-1:-1:-1;3909:51:0;;3839:48;;3934:25;;;;;3909:51;;:::i;:::-;;;;;;;;;;;;;3897:63;;3996:9;3982:46;;;;;;;;:::i;:::-;;;;;;;;;;;;;3970:58;;4043:6;4038:589;4059:12;;;;:8;:12;;;;;:27;;:34;4055:38;;4038:589;;;4140:9;4126:44;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4126:44:0;;;;;;;;;4221:12;;;;:8;4126:44;4221:12;;:27;;:30;;4126:44;;-1:-1:-1;4126:44:0;;4249:1;;4221:30;;;;;;:::i;:::-;;;;;;;;4196:56;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4184:68;;4292:9;4278:41;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4278:41:0;;;;;;;;;4370:12;;;;:8;4278:41;4370:12;;4393:27;;;:30;;4278:41;;-1:-1:-1;4278:41:0;;4370:22;;;;;4421:1;;4393:30;;;;;;:::i;:::-;;;;;;;;4370:54;;;;;;:::i;:::-;;;;;;;;;;;;;4345:80;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4333:92;;4465:9;4451:30;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4451:30:0;;;;;;;;;4503:12;;;;:8;4451:30;4503:12;;:27;;:34;4451:30;;-1:-1:-1;4503:38:0;;4540:1;;4503:38;:::i;:::-;4499:1;:42;4495:122;;;4587:9;4573:29;;;;;;;;:::i;:::-;;;;;;;;;;;;;4561:41;;4495:122;4095:3;;;;:::i;:::-;;;;4038:589;;;;4662:9;4648:30;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4648:30:0;;;;;;;;;;3136:1575;-1:-1:-1;;;3136:1575:0:o;1313:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9892:320::-;10038:19;;;;:9;:19;;;;;;-1:-1:-1;;;;;10038:19:0;10059:10;10038:31;10032:84;;10086:19;;-1:-1:-1;;;10086:19:0;;;;;;;:::i;10032:84::-;10162:10;10200:5;10154:19;;;:7;:19;;;;;;;;:29;;;;;;;;;-1:-1:-1;;;;;10154:43:0;;;;;;;;;;;;:51;;-1:-1:-1;;10154:51:0;;;9892:320::o;2260:870::-;444:10;436:7;:19;;;;;;;;;;;;;;:40;;-1:-1:-1;471:5:0;;-1:-1:-1;;;;;471:5:0;459:10;:17;436:40;427:63;;;;-1:-1:-1;;;427:63:0;;;;;;;:::i;:::-;2665:11:::1;;2660:2;:16;2652:45;;;;-1:-1:-1::0;;;2652:45:0::1;;;;;;;:::i;:::-;2733:7;:14;2715:7;:14;:32;2707:67;;;::::0;-1:-1:-1;;;2707:67:0;;19276:2:3;2707:67:0::1;::::0;::::1;19258:21:3::0;19315:2;19295:18;;;19288:30;-1:-1:-1;;;19334:18:3;;;19327:52;19396:18;;2707:67:0::1;19074:346:3::0;2707:67:0::1;2784:12;::::0;;;:8:::1;:12;::::0;;;;:25:::1;2804:5:::0;2784:12;:25:::1;:::i;:::-;-1:-1:-1::0;2819:12:0::1;::::0;;;:8:::1;:12;::::0;;;;:24:::1;;:39;2846:12:::0;2819:24;:39:::1;:::i;:::-;-1:-1:-1::0;2868:12:0::1;::::0;;;:8:::1;:12;::::0;;;;:18:::1;;:27;2889:6:::0;2868:18;:27:::1;:::i;:::-;-1:-1:-1::0;2905:12:0::1;::::0;;;:8:::1;:12;::::0;;;;:25:::1;;:41;2933:13:::0;2905:25;:41:::1;:::i;:::-;;2961:6;2956:168;2973:7;:14;2971:1;:16;2956:168;;;3045:7;3053:1;3045:10;;;;;;;;:::i;:::-;;;;;;;3008:8;:12;3017:2;3008:12;;;;;;;;;;;:22;;3031:7;3039:1;3031:10;;;;;;;;:::i;:::-;;;;;;;3008:34;;;;;;:::i;:::-;;;;;;;;;;;;;:47;;;;;;:::i;:::-;;3069:8;:12;3078:2;3069:12;;;;;;;;;;;:27;;3102:7;3110:1;3102:10;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;3069:44;;::::1;::::0;::::1;::::0;;-1:-1:-1;3069:44:0;;;;;;;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;2989:3:0;::::1;::::0;::::1;:::i;:::-;;;;2956:168;;;;2260:870:::0;;;;;;;:::o;6702:78::-;444:10;436:7;:19;;;;;;;;;;;;;;:40;;-1:-1:-1;471:5:0;;-1:-1:-1;;;;;471:5:0;459:10;:17;436:40;427:63;;;;-1:-1:-1;;;427:63:0;;;;;;;:::i;:::-;6759:5:::1;:14:::0;6702:78::o;1018:20::-;;;;;;;:::i;4716:621::-;677:6;;4812:12;;-1:-1:-1;;;677:6:0;;;;676:7;668:29;;;;-1:-1:-1;;;668:29:0;;19921:2:3;668:29:0;;;19903:21:3;19960:1;19940:18;;;19933:29;-1:-1:-1;;;19978:18:3;;;19971:39;20027:18;;668:29:0;19719:332:3;668:29:0;716:4;707:13;;-1:-1:-1;;;;707:13:0;-1:-1:-1;;;707:13:0;;;4865:12;4857:45:::1;;;::::0;-1:-1:-1;;;4857:45:0;;20258:2:3;4857:45:0::1;::::0;::::1;20240:21:3::0;20297:2;20277:18;;;20270:30;-1:-1:-1;;;20316:18:3;;;20309:50;20376:18;;4857:45:0::1;20056:344:3::0;4857:45:0::1;4944:11;;4931:8;4921:7;;:18;;;;:::i;:::-;4920:35;;4912:79;;;::::0;-1:-1:-1;;;4912:79:0;;20737:2:3;4912:79:0::1;::::0;::::1;20719:21:3::0;20776:2;20756:18;;;20749:30;20815:33;20795:18;;;20788:61;20866:18;;4912:79:0::1;20535:355:3::0;4912:79:0::1;5030:8;5022:5;;:16;;;;:::i;:::-;5009:9;:29;;5001:60;;;::::0;-1:-1:-1;;;5001:60:0;;21270:2:3;5001:60:0::1;::::0;::::1;21252:21:3::0;21309:2;21289:18;;;21282:30;-1:-1:-1;;;21328:18:3;;;21321:48;21386:18;;5001:60:0::1;21068:342:3::0;5001:60:0::1;5074:8;5086:1;5074:13:::0;5071:260:::1;;5103:34;5117:7;;5126:10;5103:13;:34::i;:::-;-1:-1:-1::0;5158:4:0::1;5151:11;;5071:260;5198:6;5193:103;5214:8;5210:1;:12;5193:103;;;5247:34;5261:7;;5270:10;5247:13;:34::i;:::-;5224:3:::0;::::1;::::0;::::1;:::i;:::-;;;;5193:103;;;;5316:4;5309:11;;5071:260;741:6:::0;:14;;-1:-1:-1;;;;741:14:0;;;4716:621;;-1:-1:-1;4716:621:0:o;10223:364::-;10370:9;10366:152;;;10406:10;10395:22;;;;:10;:22;;;;;;;;-1:-1:-1;;;;;10395:33:0;;;;;;;;;:40;;-1:-1:-1;;10395:40:0;10431:4;10395:40;;;10366:152;;;10477:10;10502:5;10466:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;10466:33:0;;;;;;;;;:41;;-1:-1:-1;;10466:41:0;;;10366:152;10532:48;;4101:14:3;;4094:22;4076:41;;-1:-1:-1;;;;;10532:48:0;;;10547:10;;10532:48;;4064:2:3;4049:18;10532:48:0;;;;;;;10223:364;;:::o;5343:835::-;677:6;;5403:4;;-1:-1:-1;;;677:6:0;;;;676:7;668:29;;;;-1:-1:-1;;;668:29:0;;19921:2:3;668:29:0;;;19903:21:3;19960:1;19940:18;;;19933:29;-1:-1:-1;;;19978:18:3;;;19971:39;20027:18;;668:29:0;19719:332:3;668:29:0;716:4;707:13;;-1:-1:-1;;;;707:13:0;-1:-1:-1;;;707:13:0;;;;5425;;;:9:::1;:13;::::0;;;;;-1:-1:-1;;;;;5425:13:0::1;5441:10;5425:26;5419:80;;5468:20;::::0;-1:-1:-1;;;5468:20:0;;21617:2:3;5468:20:0::1;::::0;::::1;21599:21:3::0;21656:1;21636:18;;;21629:29;-1:-1:-1;;;21674:18:3;;;21667:39;21723:18;;5468:20:0::1;21415:332:3::0;5419:80:0::1;5538:13;::::0;;;:9:::1;:13;::::0;;;;;;;:18;;-1:-1:-1;;;;;;5538:18:0::1;-1:-1:-1::0;;;;;5538:18:0;::::1;::::0;;::::1;::::0;;;5566:9;;:5:::1;:9:::0;;;;;;:18;;-1:-1:-1;5566:18:0;;::::1;::::0;;;;;;;;::::1;::::0;;;5660:9;;;:5:::1;:9:::0;;;;;;5776:10:::1;5770:17:::0;;;;;;;;;:24;5660:9;;5538:13;5770:28:::1;::::0;::::1;:::i;:::-;5828:10;5808:11;5822:17:::0;;;:5:::1;:17;::::0;;;;:28;;5753:45;;-1:-1:-1;5808:11:0;;5753:45;;5822:28;::::1;;;;;:::i;:::-;;;;;;;;;5808:42;;5923:2;5892:5;:17;5898:10;-1:-1:-1::0;;;;;5892:17:0::1;-1:-1:-1::0;;;;;5892:17:0::1;;;;;;;;;;;;5910:9;5892:28;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;:33:::0;;;;5941:10:::1;5935:17:::0;;:5:::1;:17:::0;;;;;;:26;;5964:6;;5935:17;5953:7;;5935:26;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;:35:::0;;;;6059:10:::1;6053:17:::0;;:5:::1;:17:::0;;;;;;:28;;6071:9;;6053:28;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;::::1;6046:35:::0;;;6122:28:::1;::::0;6147:2;;-1:-1:-1;;;;;6122:28:0;::::1;::::0;6131:10:::1;::::0;6122:28:::1;::::0;::::1;-1:-1:-1::0;;6167:4:0::1;741:14:::0;;-1:-1:-1;;;;741:14:0;;;6167:4;5343:835;-1:-1:-1;;;;5343:835:0:o;7340:343::-;-1:-1:-1;7621:11:0;7642:34;7655:5;7662:3;7667:8;7642:12;:34::i;:::-;7340:343;;;;:::o;6184:183::-;6232:17;6274:11;;6269:2;:16;6261:45;;;;-1:-1:-1;;;6261:45:0;;;;;;;:::i;:::-;6347:7;6356:2;6330:29;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6316:44;;6184:183;;;:::o;11005:203::-;-1:-1:-1;;;;;11172:18:0;;;11149:4;11172:18;;;:10;:18;;;;;;;;:29;;;;;;;;;;;;11005:203;;;;;:::o;6516:166::-;6581:13;;;;:9;:13;;;;;;;;:20;;-1:-1:-1;;;;;;6581:20:0;-1:-1:-1;;;;;6581:20:0;;;;;;;;6611:11;;;:5;:11;;;;;:20;;-1:-1:-1;6611:20:0;;;;;;;;;;;;;;;6653:11;;:18;;:22;;-1:-1:-1;6653:22:0;:::i;:::-;6641:9;;;;:5;:9;;;;;;:34;;;;-1:-1:-1;6516:166:0:o;14:250:3:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:3;238:16;;231:27;14:250::o;269:396::-;418:2;407:9;400:21;381:4;450:6;444:13;493:6;488:2;477:9;473:18;466:34;509:79;581:6;576:2;565:9;561:18;556:2;548:6;544:15;509:79;:::i;:::-;649:2;628:15;-1:-1:-1;;624:29:3;609:45;;;;656:2;605:54;;269:396;-1:-1:-1;;269:396:3:o;670:180::-;729:6;782:2;770:9;761:7;757:23;753:32;750:52;;;798:1;795;788:12;750:52;-1:-1:-1;821:23:3;;670:180;-1:-1:-1;670:180:3:o;1063:173::-;1131:20;;-1:-1:-1;;;;;1180:31:3;;1170:42;;1160:70;;1226:1;1223;1216:12;1160:70;1063:173;;;:::o;1241:254::-;1309:6;1317;1370:2;1358:9;1349:7;1345:23;1341:32;1338:52;;;1386:1;1383;1376:12;1338:52;1409:29;1428:9;1409:29;:::i;:::-;1399:39;1485:2;1470:18;;;;1457:32;;-1:-1:-1;;;1241:254:3:o;1682:328::-;1759:6;1767;1775;1828:2;1816:9;1807:7;1803:23;1799:32;1796:52;;;1844:1;1841;1834:12;1796:52;1867:29;1886:9;1867:29;:::i;:::-;1857:39;;1915:38;1949:2;1938:9;1934:18;1915:38;:::i;:::-;1905:48;;2000:2;1989:9;1985:18;1972:32;1962:42;;1682:328;;;;;:::o;2015:186::-;2074:6;2127:2;2115:9;2106:7;2102:23;2098:32;2095:52;;;2143:1;2140;2133:12;2095:52;2166:29;2185:9;2166:29;:::i;:::-;2156:39;2015:186;-1:-1:-1;;;2015:186:3:o;2206:347::-;2271:6;2279;2332:2;2320:9;2311:7;2307:23;2303:32;2300:52;;;2348:1;2345;2338:12;2300:52;2371:29;2390:9;2371:29;:::i;:::-;2361:39;;2450:2;2439:9;2435:18;2422:32;2497:5;2490:13;2483:21;2476:5;2473:32;2463:60;;2519:1;2516;2509:12;2463:60;2542:5;2532:15;;;2206:347;;;;;:::o;2558:127::-;2619:10;2614:3;2610:20;2607:1;2600:31;2650:4;2647:1;2640:15;2674:4;2671:1;2664:15;2690:275;2761:2;2755:9;2826:2;2807:13;;-1:-1:-1;;2803:27:3;2791:40;;2861:18;2846:34;;2882:22;;;2843:62;2840:88;;;2908:18;;:::i;:::-;2944:2;2937:22;2690:275;;-1:-1:-1;2690:275:3:o;2970:407::-;3035:5;3069:18;3061:6;3058:30;3055:56;;;3091:18;;:::i;:::-;3129:57;3174:2;3153:15;;-1:-1:-1;;3149:29:3;3180:4;3145:40;3129:57;:::i;:::-;3120:66;;3209:6;3202:5;3195:21;3249:3;3240:6;3235:3;3231:16;3228:25;3225:45;;;3266:1;3263;3256:12;3225:45;3315:6;3310:3;3303:4;3296:5;3292:16;3279:43;3369:1;3362:4;3353:6;3346:5;3342:18;3338:29;3331:40;2970:407;;;;;:::o;3382:222::-;3425:5;3478:3;3471:4;3463:6;3459:17;3455:27;3445:55;;3496:1;3493;3486:12;3445:55;3518:80;3594:3;3585:6;3572:20;3565:4;3557:6;3553:17;3518:80;:::i;3609:322::-;3678:6;3731:2;3719:9;3710:7;3706:23;3702:32;3699:52;;;3747:1;3744;3737:12;3699:52;3787:9;3774:23;3820:18;3812:6;3809:30;3806:50;;;3852:1;3849;3842:12;3806:50;3875;3917:7;3908:6;3897:9;3893:22;3875:50;:::i;:::-;3865:60;3609:322;-1:-1:-1;;;;3609:322:3:o;4128:943::-;4181:5;4234:3;4227:4;4219:6;4215:17;4211:27;4201:55;;4252:1;4249;4242:12;4201:55;4288:6;4275:20;4314:4;4337:18;4374:2;4370;4367:10;4364:36;;;4380:18;;:::i;:::-;4426:2;4423:1;4419:10;4449:28;4473:2;4469;4465:11;4449:28;:::i;:::-;4511:15;;;4581;;;4577:24;;;4542:12;;;;4613:15;;;4610:35;;;4641:1;4638;4631:12;4610:35;4677:2;4669:6;4665:15;4654:26;;4689:353;4705:6;4700:3;4697:15;4689:353;;;4791:3;4778:17;4827:2;4814:11;4811:19;4808:109;;;4871:1;4900:2;4896;4889:14;4808:109;4942:57;4995:3;4990:2;4976:11;4968:6;4964:24;4960:33;4942:57;:::i;:::-;4930:70;;-1:-1:-1;4722:12:3;;;;5020;;;;4689:353;;;5060:5;4128:943;-1:-1:-1;;;;;;;;4128:943:3:o;5076:1485::-;5299:6;5307;5315;5323;5331;5339;5347;5400:3;5388:9;5379:7;5375:23;5371:33;5368:53;;;5417:1;5414;5407:12;5368:53;5453:9;5440:23;5430:33;;5514:2;5503:9;5499:18;5486:32;5537:18;5578:2;5570:6;5567:14;5564:34;;;5594:1;5591;5584:12;5564:34;5617:50;5659:7;5650:6;5639:9;5635:22;5617:50;:::i;:::-;5607:60;;5720:2;5709:9;5705:18;5692:32;5676:48;;5749:2;5739:8;5736:16;5733:36;;;5765:1;5762;5755:12;5733:36;5788:52;5832:7;5821:8;5810:9;5806:24;5788:52;:::i;:::-;5778:62;;5893:2;5882:9;5878:18;5865:32;5849:48;;5922:2;5912:8;5909:16;5906:36;;;5938:1;5935;5928:12;5906:36;5961:52;6005:7;5994:8;5983:9;5979:24;5961:52;:::i;:::-;5951:62;;6066:3;6055:9;6051:19;6038:33;6022:49;;6096:2;6086:8;6083:16;6080:36;;;6112:1;6109;6102:12;6080:36;6135:52;6179:7;6168:8;6157:9;6153:24;6135:52;:::i;:::-;6125:62;;6240:3;6229:9;6225:19;6212:33;6196:49;;6270:2;6260:8;6257:16;6254:36;;;6286:1;6283;6276:12;6254:36;6309:62;6363:7;6352:8;6341:9;6337:24;6309:62;:::i;:::-;6299:72;;6424:3;6413:9;6409:19;6396:33;6380:49;;6454:2;6444:8;6441:16;6438:36;;;6470:1;6467;6460:12;6438:36;;6493:62;6547:7;6536:8;6525:9;6521:24;6493:62;:::i;:::-;6483:72;;;5076:1485;;;;;;;;;;:::o;6566:328::-;6643:6;6651;6659;6712:2;6700:9;6691:7;6687:23;6683:32;6680:52;;;6728:1;6725;6718:12;6680:52;6764:9;6751:23;6741:33;;6793:38;6827:2;6816:9;6812:18;6793:38;:::i;:::-;6783:48;;6850:38;6884:2;6873:9;6869:18;6850:38;:::i;:::-;6840:48;;6566:328;;;;;:::o;6899:667::-;6994:6;7002;7010;7018;7071:3;7059:9;7050:7;7046:23;7042:33;7039:53;;;7088:1;7085;7078:12;7039:53;7111:29;7130:9;7111:29;:::i;:::-;7101:39;;7159:38;7193:2;7182:9;7178:18;7159:38;:::i;:::-;7149:48;;7244:2;7233:9;7229:18;7216:32;7206:42;;7299:2;7288:9;7284:18;7271:32;7326:18;7318:6;7315:30;7312:50;;;7358:1;7355;7348:12;7312:50;7381:22;;7434:4;7426:13;;7422:27;-1:-1:-1;7412:55:3;;7463:1;7460;7453:12;7412:55;7486:74;7552:7;7547:2;7534:16;7529:2;7525;7521:11;7486:74;:::i;:::-;7476:84;;;6899:667;;;;;;;:::o;7571:260::-;7639:6;7647;7700:2;7688:9;7679:7;7675:23;7671:32;7668:52;;;7716:1;7713;7706:12;7668:52;7739:29;7758:9;7739:29;:::i;:::-;7729:39;;7787:38;7821:2;7810:9;7806:18;7787:38;:::i;:::-;7777:48;;7571:260;;;;;:::o;7836:328::-;7913:6;7921;7929;7982:2;7970:9;7961:7;7957:23;7953:32;7950:52;;;7998:1;7995;7988:12;7950:52;8021:29;8040:9;8021:29;:::i;:::-;8011:39;;8097:2;8086:9;8082:18;8069:32;8059:42;;8120:38;8154:2;8143:9;8139:18;8120:38;:::i;8169:380::-;8248:1;8244:12;;;;8291;;;8312:61;;8366:4;8358:6;8354:17;8344:27;;8312:61;8419:2;8411:6;8408:14;8388:18;8385:38;8382:161;;8465:10;8460:3;8456:20;8453:1;8446:31;8500:4;8497:1;8490:15;8528:4;8525:1;8518:15;8382:161;;8169:380;;;:::o;8554:332::-;8756:2;8738:21;;;8795:1;8775:18;;;8768:29;-1:-1:-1;;;8828:2:3;8813:18;;8806:39;8877:2;8862:18;;8554:332::o;9246:127::-;9307:10;9302:3;9298:20;9295:1;9288:31;9338:4;9335:1;9328:15;9362:4;9359:1;9352:15;9378:128;9445:9;;;9466:11;;;9463:37;;;9480:18;;:::i;9511:127::-;9572:10;9567:3;9563:20;9560:1;9553:31;9603:4;9600:1;9593:15;9627:4;9624:1;9617:15;9643:332;9845:2;9827:21;;;9884:1;9864:18;;;9857:29;-1:-1:-1;;;9917:2:3;9902:18;;9895:39;9966:2;9951:18;;9643:332::o;10106:545::-;10208:2;10203:3;10200:11;10197:448;;;10244:1;10269:5;10265:2;10258:17;10314:4;10310:2;10300:19;10384:2;10372:10;10368:19;10365:1;10361:27;10355:4;10351:38;10420:4;10408:10;10405:20;10402:47;;;-1:-1:-1;10443:4:3;10402:47;10498:2;10493:3;10489:12;10486:1;10482:20;10476:4;10472:31;10462:41;;10553:82;10571:2;10564:5;10561:13;10553:82;;;10616:17;;;10597:1;10586:13;10553:82;;;10557:3;;;10106:545;;;:::o;10827:1352::-;10953:3;10947:10;10980:18;10972:6;10969:30;10966:56;;;11002:18;;:::i;:::-;11031:97;11121:6;11081:38;11113:4;11107:11;11081:38;:::i;:::-;11075:4;11031:97;:::i;:::-;11183:4;;11247:2;11236:14;;11264:1;11259:663;;;;11966:1;11983:6;11980:89;;;-1:-1:-1;12035:19:3;;;12029:26;11980:89;-1:-1:-1;;10784:1:3;10780:11;;;10776:24;10772:29;10762:40;10808:1;10804:11;;;10759:57;12082:81;;11229:944;;11259:663;10053:1;10046:14;;;10090:4;10077:18;;-1:-1:-1;;11295:20:3;;;11413:236;11427:7;11424:1;11421:14;11413:236;;;11516:19;;;11510:26;11495:42;;11608:27;;;;11576:1;11564:14;;;;11443:19;;11413:236;;;11417:3;11677:6;11668:7;11665:19;11662:201;;;11738:19;;;11732:26;-1:-1:-1;;11821:1:3;11817:14;;;11833:3;11813:24;11809:37;11805:42;11790:58;11775:74;;11662:201;-1:-1:-1;;;;;11909:1:3;11893:14;;;11889:22;11876:36;;-1:-1:-1;10827:1352:3:o;12184:340::-;12386:2;12368:21;;;12425:2;12405:18;;;12398:30;-1:-1:-1;;;12459:2:3;12444:18;;12437:46;12515:2;12500:18;;12184:340::o;12869:468::-;13090:3;13128:6;13122:13;13144:66;13203:6;13198:3;13191:4;13183:6;13179:17;13144:66;:::i;:::-;-1:-1:-1;;;13232:16:3;;13257:45;;;-1:-1:-1;13329:1:3;13318:13;;12869:468;-1:-1:-1;12869:468:3:o;13342:722::-;13392:3;13433:5;13427:12;13462:36;13488:9;13462:36;:::i;:::-;13517:1;13534:18;;;13561:133;;;;13708:1;13703:355;;;;13527:531;;13561:133;-1:-1:-1;;13594:24:3;;13582:37;;13667:14;;13660:22;13648:35;;13639:45;;;-1:-1:-1;13561:133:3;;13703:355;13734:5;13731:1;13724:16;13763:4;13808:2;13805:1;13795:16;13833:1;13847:165;13861:6;13858:1;13855:13;13847:165;;;13939:14;;13926:11;;;13919:35;13982:16;;;;13876:10;;13847:165;;;13851:3;;;14041:6;14036:3;14032:16;14025:23;;13527:531;;;;;13342:722;;;;:::o;14069:369::-;14245:3;14283:6;14277:13;14299:66;14358:6;14353:3;14346:4;14338:6;14334:17;14299:66;:::i;:::-;14381:51;14424:6;14419:3;14415:16;14407:6;14381:51;:::i;:::-;14374:58;14069:369;-1:-1:-1;;;;;14069:369:3:o;14443:490::-;14665:3;14703:6;14697:13;14719:66;14778:6;14773:3;14766:4;14758:6;14754:17;14719:66;:::i;:::-;-1:-1:-1;;;14807:16:3;;14832:65;;;-1:-1:-1;14924:2:3;14913:14;;14443:490;-1:-1:-1;14443:490:3:o;14938:478::-;15160:3;15198:6;15192:13;15214:66;15273:6;15268:3;15261:4;15253:6;15249:17;15214:66;:::i;:::-;-1:-1:-1;;;15302:16:3;;15327:53;;;-1:-1:-1;15407:2:3;15396:14;;14938:478;-1:-1:-1;14938:478:3:o;15421:491::-;15643:3;15681:6;15675:13;15697:66;15756:6;15751:3;15744:4;15736:6;15732:17;15697:66;:::i;:::-;-1:-1:-1;;;15785:16:3;;15810:66;;;-1:-1:-1;15903:2:3;15892:14;;15421:491;-1:-1:-1;15421:491:3:o;15917:488::-;16139:3;16177:6;16171:13;16193:66;16252:6;16247:3;16240:4;16232:6;16228:17;16193:66;:::i;:::-;-1:-1:-1;;;16281:16:3;;16306:63;;;-1:-1:-1;16396:2:3;16385:14;;15917:488;-1:-1:-1;15917:488:3:o;16410:484::-;16632:3;16670:6;16664:13;16686:66;16745:6;16740:3;16733:4;16725:6;16721:17;16686:66;:::i;:::-;-1:-1:-1;;;16774:16:3;;16799:59;;;-1:-1:-1;16885:2:3;16874:14;;16410:484;-1:-1:-1;16410:484:3:o;16899:478::-;17121:3;17159:6;17153:13;17175:66;17234:6;17229:3;17222:4;17214:6;17210:17;17175:66;:::i;:::-;-1:-1:-1;;;17263:16:3;;17288:53;;;-1:-1:-1;17368:2:3;17357:14;;16899:478;-1:-1:-1;16899:478:3:o;17382:197::-;17510:3;17535:38;17569:3;17561:6;17535:38;:::i;17584:452::-;17805:3;17843:6;17837:13;17859:66;17918:6;17913:3;17906:4;17898:6;17894:17;17859:66;:::i;:::-;-1:-1:-1;;;17947:16:3;;17972:29;;;-1:-1:-1;18028:1:3;18017:13;;17584:452;-1:-1:-1;17584:452:3:o;18041:441::-;18262:3;18300:6;18294:13;18316:66;18375:6;18370:3;18363:4;18355:6;18351:17;18316:66;:::i;:::-;-1:-1:-1;;;18404:16:3;;18429:18;;;-1:-1:-1;18474:1:3;18463:13;;18041:441;-1:-1:-1;18041:441:3:o;18487:135::-;18526:3;18547:17;;;18544:43;;18567:18;;:::i;:::-;-1:-1:-1;18614:1:3;18603:13;;18487:135::o;18627:442::-;18848:3;18886:6;18880:13;18902:66;18961:6;18956:3;18949:4;18941:6;18937:17;18902:66;:::i;:::-;-1:-1:-1;;;18990:16:3;;19015:19;;;-1:-1:-1;19061:1:3;19050:13;;18627:442;-1:-1:-1;18627:442:3:o;19425:289::-;19556:3;19594:6;19588:13;19610:66;19669:6;19664:3;19657:4;19649:6;19645:17;19610:66;:::i;:::-;19692:16;;;;;19425:289;-1:-1:-1;;19425:289:3:o;20405:125::-;20470:9;;;20491:10;;;20488:36;;;20504:18;;:::i;20895:168::-;20968:9;;;20999;;21016:15;;;21010:22;;20996:37;20986:71;;21037:18;;:::i;21752:291::-;21908:3;21939:38;21973:3;21965:6;21939:38;:::i;:::-;21986:21;;;-1:-1:-1;;22034:2:3;22023:14;;21752:291;-1:-1:-1;21752:291:3:o
Swarm Source
ipfs://a4969d46b10a156bc02fba1095ce223bdd33e51eeadd0e28f20b87280e32f57a
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 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.