Feature Tip: Add private address tag to any address under My Name Tag !
Overview
Max Total Supply
0
Holders
57,783
Market
Volume (24H)
0.2023 ETH
Min Price (24H)
$4.65 @ 0.001400 ETH
Max Price (24H)
$178.19 @ 0.053700 ETH
Other Info
Token Contract
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Gala
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity Multiple files format)
import "./SafeMath.sol"; import "./Address.sol"; import "./Common.sol"; import "./IERC1155TokenReceiver.sol"; import "./IERC1155.sol"; pragma solidity ^0.5.0; contract Gala is IERC1155, ERC165, CommonConstants { using SafeMath for uint256; using Address for address; uint256 constant TYPE_MASK = uint256(uint128(~0)) << 128; uint256 constant NF_INDEX_MASK = uint128(~0); uint256 constant TYPE_NF_BIT = 1 << 255; uint256 nonce; address public owner; mapping(uint256 => mapping(address => uint256)) internal balances; // id => (owner => balance) mapping(address => mapping(address => bool)) internal operatorApproval; // owner => (operator => approved) mapping(uint256 => address) nfOwners; mapping(uint256 => uint256) public maxIndex; mapping(address => mapping(address => mapping(uint256 => uint256))) allowances; mapping(uint256 => uint256) public tokenSupply; mapping(uint256 => uint256) public tokenSupplyLimit; mapping(address => bool) internal creators; event Approval( address indexed _owner, address indexed _spender, uint256 indexed _id, uint256 _oldValue, uint256 _value ); event SupplyLimit(uint256 indexed _id, uint256 _supplyLimit); event TransferSingle( address indexed _operator, address indexed _from, address indexed _to, uint256 _id, uint256 _value ); event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); event URI(string _value, uint256 indexed _id); event TransferBatch( address indexed _operator, address indexed _from, address indexed _to, uint256[] _ids, uint256[] _values ); event Creator(address _creator); constructor() public { owner = msg.sender; creators[msg.sender] = true; } modifier creatorOnly() { require(creators[msg.sender], "Creator permission required"); _; } modifier ownerOnly() { require(msg.sender == owner); _; } function create(string calldata _uri, bool _isNF) external creatorOnly returns (uint256 _type) { _type = (++nonce << 128); if (_isNF) _type = _type | TYPE_NF_BIT; emit TransferSingle(msg.sender, address(0x0), address(0x0), _type, 0); if (bytes(_uri).length > 0) emit URI(_uri, _type); return _type; } function mintNonFungible( uint256 _type, address[] calldata _to, bytes calldata _data ) external creatorOnly { require(isNonFungible(_type)); uint256 index = maxIndex[_type] + 1; maxIndex[_type] = _to.length.add(maxIndex[_type]); for (uint256 i = 0; i < _to.length; ++i) { address distributeTo = _to[i]; uint256 id = _type | (index + i); require( tokenSupplyLimit[_type] == 0 || tokenSupply[_type].add(1) <= tokenSupplyLimit[_type], "Token supply limit exceeded" ); nfOwners[id] = distributeTo; tokenSupply[_type] = tokenSupply[_type].add(1); balances[_type][distributeTo] = balances[_type][distributeTo].add(1); emit TransferSingle(msg.sender, address(0x0), distributeTo, id, 1); if (distributeTo.isContract()) { _doSafeTransferAcceptanceCheck(msg.sender, msg.sender, distributeTo, id, 1, _data); } } } function mintFungible( uint256 _id, address[] calldata _to, uint256[] calldata _quantities, bytes calldata _data ) external creatorOnly { require(isFungible(_id), "ID must be a non-fungible ID"); for (uint256 i = 0; i < _to.length; ++i) { require( tokenSupplyLimit[_id] == 0 || tokenSupply[_id].add(_quantities[i]) <= tokenSupplyLimit[_id], "Token supply limit exceeded" ); balances[_id][_to[i]] = _quantities[i].add(balances[_id][_to[i]]); tokenSupply[_id] = tokenSupply[_id].add(_quantities[i]); emit TransferSingle(msg.sender, address(0x0), _to[i], _id, _quantities[i]); if (_to[i].isContract()) { _doSafeTransferAcceptanceCheck( msg.sender, msg.sender, _to[i], _id, _quantities[i], _data ); } } } function safeTransferFrom( address _from, address _to, uint256 _id, uint256 _value, bytes calldata _data ) external { require(_to != address(0x0), "cannot send to zero address"); require( _from == msg.sender || operatorApproval[_from][msg.sender] == true, "Need operator approval for 3rd party transfers." ); if (isNonFungible(_id)) { require(nfOwners[_id] == _from); nfOwners[_id] = _to; // You could keep balance of NF type in base type id like so: uint256 baseType = getNonFungibleBaseType(_id); balances[baseType][_from] = balances[baseType][_from].sub(_value); balances[baseType][_to] = balances[baseType][_to].add(_value); } else { balances[_id][_from] = balances[_id][_from].sub(_value); balances[_id][_to] = balances[_id][_to].add(_value); } emit TransferSingle(msg.sender, _from, _to, _id, _value); if (_to.isContract()) { _doSafeTransferAcceptanceCheck(msg.sender, _from, _to, _id, _value, _data); } } function safeBatchTransferFrom( address _from, address _to, uint256[] calldata _ids, uint256[] calldata _values, bytes calldata _data ) external { require(_to != address(0x0), "cannot send to zero address"); require(_ids.length == _values.length, "Array length must match"); require( _from == msg.sender || operatorApproval[_from][msg.sender] == true, "Need operator approval for 3rd party transfers." ); for (uint256 i = 0; i < _ids.length; ++i) { if (isNonFungible(_ids[i])) { require(nfOwners[_ids[i]] == _from); nfOwners[_ids[i]] = _to; balances[getNonFungibleBaseType(_ids[i])][_from] = balances[getNonFungibleBaseType( _ids[i] )][_from] .sub(_values[i]); balances[getNonFungibleBaseType(_ids[i])][_to] = balances[getNonFungibleBaseType( _ids[i] )][_to] .add(_values[i]); } else { balances[_ids[i]][_from] = balances[_ids[i]][_from].sub(_values[i]); balances[_ids[i]][_to] = _values[i].add(balances[_ids[i]][_to]); } } emit TransferBatch(msg.sender, _from, _to, _ids, _values); if (_to.isContract()) { _doSafeBatchTransferAcceptanceCheck(msg.sender, _from, _to, _ids, _values, _data); } } function balanceOf(address _owner, uint256 _id) external view returns (uint256) { if (isNonFungibleItem(_id)) return nfOwners[_id] == _owner ? 1 : 0; return balances[_id][_owner]; } function balanceOfBatch(address[] calldata _owners, uint256[] calldata _ids) external view returns (uint256[] memory) { require(_owners.length == _ids.length); uint256[] memory balances_ = new uint256[](_owners.length); for (uint256 i = 0; i < _owners.length; ++i) { uint256 id = _ids[i]; if (isNonFungibleItem(id)) { balances_[i] = nfOwners[id] == _owners[i] ? 1 : 0; } else { balances_[i] = balances[id][_owners[i]]; } } return balances_; } function setApprovalForAll(address _operator, bool _approved) external { operatorApproval[msg.sender][_operator] = _approved; emit ApprovalForAll(msg.sender, _operator, _approved); } function isApprovedForAll(address _owner, address _operator) external view returns (bool) { return operatorApproval[_owner][_operator]; } function setSupplyLimit(uint256 _typeOrId, uint256 _supplyLimit) external creatorOnly { require(_supplyLimit > 0); if (isNonFungibleItem(_typeOrId)) { uint256 typeId = getNonFungibleBaseType(_typeOrId); require(tokenSupplyLimit[typeId] == 0); tokenSupplyLimit[typeId] = _supplyLimit; emit SupplyLimit(typeId, _supplyLimit); } else { require(tokenSupplyLimit[_typeOrId] == 0); tokenSupplyLimit[_typeOrId] = _supplyLimit; emit SupplyLimit(_typeOrId, _supplyLimit); } } function approveBatch( address _spender, uint256[] calldata _ids, uint256[] calldata _currentValues, uint256[] calldata _values ) external { require(_ids.length == _currentValues.length, "Arrays must be same length"); require(_currentValues.length == _values.length, "Arrays must be same length"); for (uint256 i = 0; i < _values.length; i++) { uint256 id = _ids[i]; uint256 currentValue = _currentValues[i]; uint256 value = _values[i]; require(allowances[msg.sender][_spender][id] == currentValue); allowances[msg.sender][_spender][id] = value; emit Approval(msg.sender, _spender, id, currentValue, value); } } function isNonFungible(uint256 _id) public pure returns (bool) { return _id & TYPE_NF_BIT == TYPE_NF_BIT; } function isFungible(uint256 _id) public pure returns (bool) { return _id & TYPE_NF_BIT == 0; } function getNonFungibleIndex(uint256 _id) public pure returns (uint256) { return _id & NF_INDEX_MASK; } function getNonFungibleBaseType(uint256 _id) public pure returns (uint256) { return _id & TYPE_MASK; } function isNonFungibleBaseType(uint256 _id) public pure returns (bool) { // A base type has the NF bit but does not have an index. return (_id & TYPE_NF_BIT == TYPE_NF_BIT) && (_id & NF_INDEX_MASK == 0); } function isNonFungibleItem(uint256 _id) public pure returns (bool) { // A base type has the NF bit but does has an index. return (_id & TYPE_NF_BIT == TYPE_NF_BIT) && (_id & NF_INDEX_MASK != 0); } function ownerOf(uint256 _id) public view returns (address) { return nfOwners[_id]; } /////////////////////////////////////////// ERC165 ////////////////////////////////////////////// bytes4 private constant INTERFACE_SIGNATURE_ERC165 = 0x01ffc9a7; bytes4 private constant INTERFACE_SIGNATURE_ERC1155 = 0xd9b67a26; function supportsInterface(bytes4 _interfaceId) public view returns (bool) { if ( _interfaceId == INTERFACE_SIGNATURE_ERC165 || _interfaceId == INTERFACE_SIGNATURE_ERC1155 ) { return true; } return false; } /////////////////////////////////////////// Internal ////////////////////////////////////////////// function _doSafeTransferAcceptanceCheck( address _operator, address _from, address _to, uint256 _id, uint256 _value, bytes memory _data ) internal { require( ERC1155TokenReceiver(_to).onERC1155Received(_operator, _from, _id, _value, _data) == ERC1155_ACCEPTED, "contract returned an unknown value from onERC1155Received" ); } function _doSafeBatchTransferAcceptanceCheck( address _operator, address _from, address _to, uint256[] memory _ids, uint256[] memory _values, bytes memory _data ) internal { require( ERC1155TokenReceiver(_to).onERC1155BatchReceived( _operator, _from, _ids, _values, _data ) == ERC1155_BATCH_ACCEPTED, "contract returned an unknown value from onERC1155BatchReceived" ); } /////////////////////////////////////////// ERC1155 ////////////////////////////////////////////// function batchAuthorizeCreators(address[] calldata _addresses) external ownerOnly { for (uint256 i = 0; i < _addresses.length; ++i) { emit Creator(_addresses[i]); creators[_addresses[i]] = true; } } function batchDeauthorizeCreators(address[] calldata _addresses) external ownerOnly { for (uint256 i = 0; i < _addresses.length; ++i) { delete creators[_addresses[i]]; } } function allowance( address _owner, address _spender, uint256 _id ) external view returns (uint256) { return allowances[_owner][_spender][_id]; } function burn( address _from, uint256[] calldata _ids, uint256[] calldata _values ) external { require( _from == msg.sender || operatorApproval[_from][msg.sender] == true, "Need operator approval for 3rd party burn." ); require(_ids.length > 0 && _ids.length == _values.length); for (uint256 i = 0; i < _ids.length; i++) { if (isFungible(_ids[i])) { require(balances[_ids[i]][_from] >= _values[i]); balances[_ids[i]][_from] = balances[_ids[i]][_from].sub(_values[i]); } else { require(isNonFungible(_ids[i])); require(_values[i] == 1); uint256 baseType = getNonFungibleBaseType(_ids[i]); // --totalSupply? balances[baseType][_from] = balances[baseType][_from].sub(1); delete nfOwners[_ids[i]]; } emit TransferSingle(msg.sender, _from, address(0x0), _ids[i], _values[i]); } } function setNewUri(string calldata _uri, uint256 _id) external creatorOnly { require(bytes(_uri).length > 0); emit URI(_uri, _id); } }
pragma solidity ^0.5.0; library Address { function isContract(address account) internal view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } }
pragma solidity ^0.5.0; contract CommonConstants { bytes4 internal constant ERC1155_ACCEPTED = 0xf23a6e61; bytes4 internal constant ERC1155_BATCH_ACCEPTED = 0xbc197c81; }
pragma solidity ^0.5.0; interface ERC165 { function supportsInterface(bytes4 _interfaceId) external view returns (bool); }
pragma solidity ^0.5.0; import "./ERC165.sol"; /* is ERC165 */ interface IERC1155 { event TransferSingle( address indexed _operator, address indexed _from, address indexed _to, uint256 _id, uint256 _value ); event TransferBatch( address indexed _operator, address indexed _from, address indexed _to, uint256[] _ids, uint256[] _values ); event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); event URI(string _value, uint256 indexed _id); function safeTransferFrom( address _from, address _to, uint256 _id, uint256 _value, bytes calldata _data ) external; function safeBatchTransferFrom( address _from, address _to, uint256[] calldata _ids, uint256[] calldata _values, bytes calldata _data ) external; function balanceOf(address _owner, uint256 _id) external view returns (uint256); function balanceOfBatch(address[] calldata _owners, uint256[] calldata _ids) external view returns (uint256[] memory); function setApprovalForAll(address _operator, bool _approved) external; function isApprovedForAll(address _owner, address _operator) external view returns (bool); }
pragma solidity ^0.5.0; interface ERC1155TokenReceiver { function onERC1155Received( address _operator, address _from, uint256 _id, uint256 _value, bytes calldata _data ) external returns (bytes4); function onERC1155BatchReceived( address _operator, address _from, uint256[] calldata _ids, uint256[] calldata _values, bytes calldata _data ) external returns (bytes4); }
pragma solidity >=0.4.21 <0.7.0; contract Migrations { address public owner; uint256 public last_completed_migration; constructor() public { owner = msg.sender; } modifier restricted() { if (msg.sender == owner) _; } function setCompleted(uint256 completed) public restricted { last_completed_migration = completed; } }
pragma solidity ^0.5.0; library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256 c) { if (a == 0) { return 0; } 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 c) { c = a + b; assert(c >= a); return c; } }
pragma solidity ^0.5.0; contract SignatureVerifier { function validateNodeSignature( string memory nodeHardwareLicenseId, uint256 sigNonce, bytes memory signature ) internal view returns (address signer) { bytes32 r; bytes32 s; uint8 v; (v, r, s) = splitSignature(signature); bytes32 hash = keccak256(abi.encodePacked(nodeHardwareLicenseId, sigNonce, this)); bytes32 hashWithHeader = keccak256( abi.encodePacked("\x19Ethereum Signed Message:\n32", hash) ); return ecrecover(hashWithHeader, v, r, s); } function splitSignature(bytes memory signature) internal pure returns ( uint8, bytes32, bytes32 ) { require(signature.length == 65); bytes32 r; bytes32 s; uint8 v; assembly { // first 32 bytes, after the length prefix r := mload(add(signature, 32)) // second 32 bytes s := mload(add(signature, 64)) // final byte (first byte of the next 32 bytes) v := byte(0, mload(add(signature, 96))) } return (v, r, s); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_spender","type":"address"},{"indexed":true,"internalType":"uint256","name":"_id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_oldValue","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_value","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":false,"internalType":"address","name":"_creator","type":"address"}],"name":"Creator","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_supplyLimit","type":"uint256"}],"name":"SupplyLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_operator","type":"address"},{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"_ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"_values","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_operator","type":"address"},{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"TransferSingle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"_value","type":"string"},{"indexed":true,"internalType":"uint256","name":"_id","type":"uint256"}],"name":"URI","type":"event"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256[]","name":"_ids","type":"uint256[]"},{"internalType":"uint256[]","name":"_currentValues","type":"uint256[]"},{"internalType":"uint256[]","name":"_values","type":"uint256[]"}],"name":"approveBatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address[]","name":"_owners","type":"address[]"},{"internalType":"uint256[]","name":"_ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"batchAuthorizeCreators","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"batchDeauthorizeCreators","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256[]","name":"_ids","type":"uint256[]"},{"internalType":"uint256[]","name":"_values","type":"uint256[]"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"string","name":"_uri","type":"string"},{"internalType":"bool","name":"_isNF","type":"bool"}],"name":"create","outputs":[{"internalType":"uint256","name":"_type","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"getNonFungibleBaseType","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"getNonFungibleIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"isFungible","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"isNonFungible","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"isNonFungibleBaseType","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"isNonFungibleItem","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"maxIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"address[]","name":"_to","type":"address[]"},{"internalType":"uint256[]","name":"_quantities","type":"uint256[]"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"mintFungible","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_type","type":"uint256"},{"internalType":"address[]","name":"_to","type":"address[]"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"mintNonFungible","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256[]","name":"_ids","type":"uint256[]"},{"internalType":"uint256[]","name":"_values","type":"uint256[]"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeBatchTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"string","name":"_uri","type":"string"},{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"setNewUri","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_typeOrId","type":"uint256"},{"internalType":"uint256","name":"_supplyLimit","type":"uint256"}],"name":"setSupplyLimit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes4","name":"_interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenSupplyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50600180546001600160a01b0319163390811782556000908152600960205260409020805460ff19169091179055612da08061004d6000396000f3fe608060405234801561001057600080fd5b50600436106101c35760003560e01c80635e81b958116100f9578063a22cb46511610097578063cc10e40111610071578063cc10e40114610b38578063e44591f014610ba8578063e985e9c514610bc5578063f242432a14610bf3576101c3565b8063a22cb46514610a7f578063a9e7d53114610aad578063adebf6f214610b1b576101c3565b80637269a327116100d35780637269a32714610a1a5780638413e8b314610a375780638da5cb5b14610a5a5780639cca1c6414610a62576101c3565b80635e81b958146109a75780636352211e146109c45780636f969c2d146109fd576101c3565b8063352949d3116101665780634e1273f4116101405780634e1273f41461068057806354dbdbf41461078e578063598af9e7146108535780635b286d4a14610889576101c3565b8063352949d3146104d657806336fc1079146105445780633db0f8ab146105b2576101c3565b8063183fb254116101a2578063183fb2541461025e5780632693ebf21461037557806328fd70ec146103925780632eb2c2d6146103af576101c3565b8062fdd58e146101c857806301ffc9a71461020657806308d7d46914610241575b600080fd5b6101f4600480360360408110156101de57600080fd5b506001600160a01b038135169060200135610c86565b60408051918252519081900360200190f35b61022d6004803603602081101561021c57600080fd5b50356001600160e01b031916610cf6565b604080519115158252519081900360200190f35b6101f46004803603602081101561025757600080fd5b5035610d3d565b6103736004803603608081101561027457600080fd5b81359190810190604081016020820135600160201b81111561029557600080fd5b8201836020820111156102a757600080fd5b803590602001918460208302840111600160201b831117156102c857600080fd5b919390929091602081019035600160201b8111156102e557600080fd5b8201836020820111156102f757600080fd5b803590602001918460208302840111600160201b8311171561031857600080fd5b919390929091602081019035600160201b81111561033557600080fd5b82018360208201111561034757600080fd5b803590602001918460018302840111600160201b8311171561036857600080fd5b509092509050610d4f565b005b6101f46004803603602081101561038b57600080fd5b50356110dd565b6101f4600480360360208110156103a857600080fd5b50356110ef565b610373600480360360a08110156103c557600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b8111156103f857600080fd5b82018360208201111561040a57600080fd5b803590602001918460208302840111600160201b8311171561042b57600080fd5b919390929091602081019035600160201b81111561044857600080fd5b82018360208201111561045a57600080fd5b803590602001918460208302840111600160201b8311171561047b57600080fd5b919390929091602081019035600160201b81111561049857600080fd5b8201836020820111156104aa57600080fd5b803590602001918460018302840111600160201b831117156104cb57600080fd5b509092509050611101565b610373600480360360208110156104ec57600080fd5b810190602081018135600160201b81111561050657600080fd5b82018360208201111561051857600080fd5b803590602001918460208302840111600160201b8311171561053957600080fd5b5090925090506116f6565b6103736004803603604081101561055a57600080fd5b810190602081018135600160201b81111561057457600080fd5b82018360208201111561058657600080fd5b803590602001918460018302840111600160201b831117156105a757600080fd5b91935091503561175f565b610373600480360360608110156105c857600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156105f257600080fd5b82018360208201111561060457600080fd5b803590602001918460208302840111600160201b8311171561062557600080fd5b919390929091602081019035600160201b81111561064257600080fd5b82018360208201111561065457600080fd5b803590602001918460208302840111600160201b8311171561067557600080fd5b509092509050611821565b61073e6004803603604081101561069657600080fd5b810190602081018135600160201b8111156106b057600080fd5b8201836020820111156106c257600080fd5b803590602001918460208302840111600160201b831117156106e357600080fd5b919390929091602081019035600160201b81111561070057600080fd5b82018360208201111561071257600080fd5b803590602001918460208302840111600160201b8311171561073357600080fd5b509092509050611b49565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561077a578181015183820152602001610762565b505050509050019250505060405180910390f35b610373600480360360608110156107a457600080fd5b81359190810190604081016020820135600160201b8111156107c557600080fd5b8201836020820111156107d757600080fd5b803590602001918460208302840111600160201b831117156107f857600080fd5b919390929091602081019035600160201b81111561081557600080fd5b82018360208201111561082757600080fd5b803590602001918460018302840111600160201b8311171561084857600080fd5b509092509050611c94565b6101f46004803603606081101561086957600080fd5b506001600160a01b03813581169160208101359091169060400135611f3b565b6103736004803603608081101561089f57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156108c957600080fd5b8201836020820111156108db57600080fd5b803590602001918460208302840111600160201b831117156108fc57600080fd5b919390929091602081019035600160201b81111561091957600080fd5b82018360208201111561092b57600080fd5b803590602001918460208302840111600160201b8311171561094c57600080fd5b919390929091602081019035600160201b81111561096957600080fd5b82018360208201111561097b57600080fd5b803590602001918460208302840111600160201b8311171561099c57600080fd5b509092509050611f6d565b61022d600480360360208110156109bd57600080fd5b5035612187565b6109e1600480360360208110156109da57600080fd5b50356121a8565b604080516001600160a01b039092168252519081900360200190f35b6101f460048036036020811015610a1357600080fd5b50356121c3565b61022d60048036036020811015610a3057600080fd5b50356121d9565b61037360048036036040811015610a4d57600080fd5b50803590602001356121f9565b6109e161233f565b6101f460048036036020811015610a7857600080fd5b503561234e565b61037360048036036040811015610a9557600080fd5b506001600160a01b038135169060200135151561235a565b61037360048036036020811015610ac357600080fd5b810190602081018135600160201b811115610add57600080fd5b820183602082011115610aef57600080fd5b803590602001918460208302840111600160201b83111715610b1057600080fd5b5090925090506123c8565b61022d60048036036020811015610b3157600080fd5b5035612485565b6101f460048036036040811015610b4e57600080fd5b810190602081018135600160201b811115610b6857600080fd5b820183602082011115610b7a57600080fd5b803590602001918460018302840111600160201b83111715610b9b57600080fd5b919350915035151561248f565b61022d60048036036020811015610bbe57600080fd5b503561259d565b61022d60048036036040811015610bdb57600080fd5b506001600160a01b03813581169160200135166125a9565b610373600480360360a0811015610c0957600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a081016080820135600160201b811115610c4857600080fd5b820183602082011115610c5a57600080fd5b803590602001918460018302840111600160201b83111715610c7b57600080fd5b5090925090506125d7565b6000610c9182612187565b15610ccb576000828152600460205260409020546001600160a01b03848116911614610cbe576000610cc1565b60015b60ff169050610cf0565b5060008181526002602090815260408083206001600160a01b03861684529091529020545b92915050565b60006001600160e01b031982166301ffc9a760e01b1480610d2757506001600160e01b03198216636cdb3d1360e11b145b15610d3457506001610d38565b5060005b919050565b60056020526000908152604090205481565b3360009081526009602052604090205460ff16610da1576040805162461bcd60e51b815260206004820152601b6024820152600080516020612d13833981519152604482015290519081900360640190fd5b610daa87612485565b610dfb576040805162461bcd60e51b815260206004820152601c60248201527f4944206d7573742062652061206e6f6e2d66756e6769626c6520494400000000604482015290519081900360640190fd5b60005b858110156110d3576000888152600860205260409020541580610e615750600088815260086020526040902054610e5e868684818110610e3a57fe5b60008d8152600760209081526040909120549391020135905063ffffffff6128da16565b11155b610eb2576040805162461bcd60e51b815260206004820152601b60248201527f546f6b656e20737570706c79206c696d69742065786365656465640000000000604482015290519081900360640190fd5b6000888152600260205260408120610f2291898985818110610ed057fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002054868684818110610f0d57fe5b905060200201356128da90919063ffffffff16565b600089815260026020526040812090898985818110610f3d57fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002081905550610fa4858583818110610f8057fe5b60008c8152600760209081526040909120549391020135905063ffffffff6128da16565b600089815260076020526040902055868682818110610fbf57fe5b905060200201356001600160a01b03166001600160a01b031660006001600160a01b0316336001600160a01b0316600080516020612c5c8339815191528b89898781811061100957fe5b604080519485526020918202939093013590840152508051918290030190a461105587878381811061103757fe5b905060200201356001600160a01b03166001600160a01b03166128e7565b156110cb576110cb333389898581811061106b57fe5b905060200201356001600160a01b03168b89898781811061108857fe5b9050602002013588888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506128ed92505050565b600101610dfe565b5050505050505050565b60076020526000908152604090205481565b60086020526000908152604090205481565b6001600160a01b03871661115c576040805162461bcd60e51b815260206004820152601b60248201527f63616e6e6f742073656e6420746f207a65726f20616464726573730000000000604482015290519081900360640190fd5b8483146111b0576040805162461bcd60e51b815260206004820152601760248201527f4172726179206c656e677468206d757374206d61746368000000000000000000604482015290519081900360640190fd5b6001600160a01b0388163314806111ef57506001600160a01b038816600090815260036020908152604080832033845290915290205460ff1615156001145b61122a5760405162461bcd60e51b815260040180806020018281038252602f815260200180612c7c602f913960400191505060405180910390fd5b60005b858110156115895761125087878381811061124457fe5b9050602002013561259d565b1561142357886001600160a01b03166004600089898581811061126f57fe5b60209081029290920135835250810191909152604001600020546001600160a01b03161461129c57600080fd5b87600460008989858181106112ad57fe5b90506020020135815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061134e8585838181106112f557fe5b905060200201356002600061131b8b8b8781811061130f57fe5b905060200201356121c3565b8152602080820192909252604090810160009081206001600160a01b038f1682529092529020549063ffffffff612a5d16565b600260006113618a8a8681811061130f57fe5b8152602080820192909252604090810160009081206001600160a01b038e1682529092529020556113e485858381811061139757fe5b90506020020135600260006113b18b8b8781811061130f57fe5b8152602080820192909252604090810160009081206001600160a01b038e1682529092529020549063ffffffff6128da16565b600260006113f78a8a8681811061130f57fe5b8152602080820192909252604090810160009081206001600160a01b038d168252909252902055611581565b61149085858381811061143257fe5b90506020020135600260008a8a8681811061144957fe5b90506020020135815260200190815260200160002060008c6001600160a01b03166001600160a01b0316815260200190815260200160002054612a5d90919063ffffffff16565b600260008989858181106114a057fe5b90506020020135815260200190815260200160002060008b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550611534600260008989858181106114ef57fe5b90506020020135815260200190815260200160002060008a6001600160a01b03166001600160a01b0316815260200190815260200160002054868684818110610f0d57fe5b6002600089898581811061154457fe5b90506020020135815260200190815260200160002060008a6001600160a01b03166001600160a01b03168152602001908152602001600020819055505b60010161122d565b50866001600160a01b0316886001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb898989896040518080602001806020018381038352878782818152602001925060200280828437600083820152601f01601f19169091018481038352858152602090810191508690860280828437600083820152604051601f909101601f19169092018290039850909650505050505050a461164d876001600160a01b03166128e7565b156110d3576110d333898989898080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808d0282810182019093528c82529093508c92508b91829185019084908082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a9150899081908401838280828437600092019190915250612a6f92505050565b6001546001600160a01b0316331461170d57600080fd5b60005b8181101561175a576009600084848481811061172857fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff19169055600101611710565b505050565b3360009081526009602052604090205460ff166117b1576040805162461bcd60e51b815260206004820152601b6024820152600080516020612d13833981519152604482015290519081900360640190fd5b816117bb57600080fd5b807f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b848460405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2505050565b6001600160a01b03851633148061186057506001600160a01b038516600090815260036020908152604080832033845290915290205460ff1615156001145b61189b5760405162461bcd60e51b815260040180806020018281038252602a815260200180612ce9602a913960400191505060405180910390fd5b82158015906118a957508281145b6118b257600080fd5b60005b83811015611b41576118d88585838181106118cc57fe5b90506020020135612485565b15611a02578282828181106118e957fe5b905060200201356002600087878581811061190057fe5b9050602002013581526020019081526020016000206000886001600160a01b03166001600160a01b0316815260200190815260200160002054101561194457600080fd5b6119b183838381811061195357fe5b905060200201356002600088888681811061196a57fe5b9050602002013581526020019081526020016000206000896001600160a01b03166001600160a01b0316815260200190815260200160002054612a5d90919063ffffffff16565b600260008787858181106119c157fe5b9050602002013581526020019081526020016000206000886001600160a01b03166001600160a01b0316815260200190815260200160002081905550611adf565b611a1185858381811061124457fe5b611a1a57600080fd5b828282818110611a2657fe5b90506020020135600114611a3957600080fd5b6000611a4a86868481811061130f57fe5b60008181526002602090815260408083206001600160a01b038c168452909152902054909150611a8190600163ffffffff612a5d16565b60008281526002602090815260408083206001600160a01b038c168452909152812091909155600490878785818110611ab657fe5b6020908102929092013583525081019190915260400160002080546001600160a01b0319169055505b60006001600160a01b03871633600080516020612c5c833981519152888886818110611b0757fe5b90506020020135878787818110611b1a57fe5b604080519485526020918202939093013590840152508051918290030190a46001016118b5565b505050505050565b6060838214611b5757600080fd5b604080518581526020808702820101909152606090858015611b83578160200160208202803883390190505b50905060005b85811015611c8a576000858583818110611b9f57fe5b905060200201359050611bb181612187565b15611c1c57878783818110611bc257fe5b600084815260046020908152604090912054910292909201356001600160a01b039081169216919091149050611bf9576000611bfc565b60015b60ff16838381518110611c0b57fe5b602002602001018181525050611c81565b600081815260026020526040812090898985818110611c3757fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002054838381518110611c7457fe5b6020026020010181815250505b50600101611b89565b5095945050505050565b3360009081526009602052604090205460ff16611ce6576040805162461bcd60e51b815260206004820152601b6024820152600080516020612d13833981519152604482015290519081900360640190fd5b611cef8561259d565b611cf857600080fd5b6000858152600560205260409020546001810190611d1d90859063ffffffff6128da16565b6000878152600560205260408120919091555b84811015611f32576000868683818110611d4657fe5b905060200201356001600160a01b03169050600082840189179050600860008a81526020019081526020016000205460001480611dad5750600089815260086020908152604080832054600790925290912054611daa90600163ffffffff6128da16565b11155b611dfe576040805162461bcd60e51b815260206004820152601b60248201527f546f6b656e20737570706c79206c696d69742065786365656465640000000000604482015290519081900360640190fd5b600081815260046020908152604080832080546001600160a01b0319166001600160a01b0387161790558b83526007909152902054611e3e9060016128da565b60008a815260076020908152604080832093909355600281528282206001600160a01b038616835290522054611e7b90600163ffffffff6128da16565b60008a81526002602090815260408083206001600160a01b03871680855290835281842094909455805185815260019281019290925280513392600080516020612c5c83398151915292908290030190a4611ede826001600160a01b03166128e7565b15611f2857611f283333848460018b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506128ed92505050565b5050600101611d30565b50505050505050565b6001600160a01b0392831660009081526006602090815260408083209490951682529283528381209181529152205490565b848314611fc1576040805162461bcd60e51b815260206004820152601a60248201527f417272617973206d7573742062652073616d65206c656e677468000000000000604482015290519081900360640190fd5b828114612015576040805162461bcd60e51b815260206004820152601a60248201527f417272617973206d7573742062652073616d65206c656e677468000000000000604482015290519081900360640190fd5b60005b818110156110d357600087878381811061202e57fe5b905060200201359050600086868481811061204557fe5b905060200201359050600085858581811061205c57fe5b9050602002013590508160066000336001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b03168152602001908152602001600020600085815260200190815260200160002054146120ca57600080fd5b8060066000336001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b03168152602001908152602001600020600085815260200190815260200160002081905550828b6001600160a01b0316336001600160a01b03167f3a9c85c6b31f7a9d7fe1478f53e1be42e85db97ca30d1789cfef9196dbc472c98585604051808381526020018281526020019250505060405180910390a4505050600101612018565b6000600160ff1b808316148015610cf05750506001600160801b0316151590565b6000908152600460205260409020546001600160a01b031690565b6fffffffffffffffffffffffffffffffff191690565b6000600160ff1b808316148015610cf05750506001600160801b03161590565b3360009081526009602052604090205460ff1661224b576040805162461bcd60e51b815260206004820152601b6024820152600080516020612d13833981519152604482015290519081900360640190fd5b6000811161225857600080fd5b61226182612187565b156122da576000612271836121c3565b6000818152600860205260409020549091501561228d57600080fd5b6000818152600860209081526040918290208490558151848152915183927f4a92cb8a98b3c42468f2ffd7b4dc17755416ebcfd17fd0040895ea07895c0fae92908290030190a25061233b565b600082815260086020526040902054156122f357600080fd5b6000828152600860209081526040918290208390558151838152915184927f4a92cb8a98b3c42468f2ffd7b4dc17755416ebcfd17fd0040895ea07895c0fae92908290030190a25b5050565b6001546001600160a01b031681565b6001600160801b031690565b3360008181526003602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6001546001600160a01b031633146123df57600080fd5b60005b8181101561175a577f77b942a0834ead73d2e76c27f611bd4f14e4cd55de82e1d4bbd5521905f69f0f83838381811061241757fe5b60408051602092830294909401356001600160a01b03168452519283900301919050a160016009600085858581811061244c57fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff19169115159190911790556001016123e2565b600160ff1b161590565b3360009081526009602052604081205460ff166124e1576040805162461bcd60e51b815260206004820152601b6024820152600080516020612d13833981519152604482015290519081900360640190fd5b50600080546001019081905560801b81156124fd57600160ff1b175b604080518281526000602082018190528251909283923392600080516020612c5c833981519152929181900390910190a4821561259657807f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b858560405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a25b9392505050565b600160ff1b9081161490565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205460ff1690565b6001600160a01b038516612632576040805162461bcd60e51b815260206004820152601b60248201527f63616e6e6f742073656e6420746f207a65726f20616464726573730000000000604482015290519081900360640190fd5b6001600160a01b03861633148061267157506001600160a01b038616600090815260036020908152604080832033845290915290205460ff1615156001145b6126ac5760405162461bcd60e51b815260040180806020018281038252602f815260200180612c7c602f913960400191505060405180910390fd5b6126b58461259d565b156127a6576000848152600460205260409020546001600160a01b038781169116146126e057600080fd5b600084815260046020526040812080546001600160a01b0319166001600160a01b038816179055612710856121c3565b60008181526002602090815260408083206001600160a01b038c168452909152902054909150612746908563ffffffff612a5d16565b60008281526002602090815260408083206001600160a01b038c8116855292528083209390935588168152205461277d90856128da565b60009182526002602090815260408084206001600160a01b038a16855290915290912055612834565b60008481526002602090815260408083206001600160a01b038a1684529091529020546127d9908463ffffffff612a5d16565b60008581526002602090815260408083206001600160a01b038b8116855292528083209390935587168152205461281090846128da565b60008581526002602090815260408083206001600160a01b038a1684529091529020555b846001600160a01b0316866001600160a01b0316336001600160a01b0316600080516020612c5c8339815191528787604051808381526020018281526020019250505060405180910390a4612891856001600160a01b03166128e7565b15611b4157611b41338787878787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506128ed92505050565b81810182811015610cf057fe5b3b151590565b63f23a6e6160e01b6001600160e01b031916846001600160a01b031663f23a6e6188888787876040518663ffffffff1660e01b815260040180866001600160a01b03166001600160a01b03168152602001856001600160a01b03166001600160a01b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561299b578181015183820152602001612983565b50505050905090810190601f1680156129c85780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b1580156129eb57600080fd5b505af11580156129ff573d6000803e3d6000fd5b505050506040513d6020811015612a1557600080fd5b50516001600160e01b03191614611b415760405162461bcd60e51b8152600401808060200182810382526039815260200180612d336039913960400191505060405180910390fd5b600082821115612a6957fe5b50900390565b63bc197c8160e01b6001600160e01b031916846001600160a01b031663bc197c8188888787876040518663ffffffff1660e01b815260040180866001600160a01b03166001600160a01b03168152602001856001600160a01b03166001600160a01b03168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015612b1c578181015183820152602001612b04565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015612b5b578181015183820152602001612b43565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015612b97578181015183820152602001612b7f565b50505050905090810190601f168015612bc45780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b158015612be957600080fd5b505af1158015612bfd573d6000803e3d6000fd5b505050506040513d6020811015612c1357600080fd5b50516001600160e01b03191614611b415760405162461bcd60e51b815260040180806020018281038252603e815260200180612cab603e913960400191505060405180910390fdfec3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f624e656564206f70657261746f7220617070726f76616c20666f7220337264207061727479207472616e73666572732e636f6e74726163742072657475726e656420616e20756e6b6e6f776e2076616c75652066726f6d206f6e45524331313535426174636852656365697665644e656564206f70657261746f7220617070726f76616c20666f7220337264207061727479206275726e2e43726561746f72207065726d697373696f6e2072657175697265640000000000636f6e74726163742072657475726e656420616e20756e6b6e6f776e2076616c75652066726f6d206f6e455243313135355265636569766564a265627a7a72315820e8a61d55a194b2f42d83bad5cb50743bb2cae21f6bc9f7b12d8f0056879d500e64736f6c63430005110032
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101c35760003560e01c80635e81b958116100f9578063a22cb46511610097578063cc10e40111610071578063cc10e40114610b38578063e44591f014610ba8578063e985e9c514610bc5578063f242432a14610bf3576101c3565b8063a22cb46514610a7f578063a9e7d53114610aad578063adebf6f214610b1b576101c3565b80637269a327116100d35780637269a32714610a1a5780638413e8b314610a375780638da5cb5b14610a5a5780639cca1c6414610a62576101c3565b80635e81b958146109a75780636352211e146109c45780636f969c2d146109fd576101c3565b8063352949d3116101665780634e1273f4116101405780634e1273f41461068057806354dbdbf41461078e578063598af9e7146108535780635b286d4a14610889576101c3565b8063352949d3146104d657806336fc1079146105445780633db0f8ab146105b2576101c3565b8063183fb254116101a2578063183fb2541461025e5780632693ebf21461037557806328fd70ec146103925780632eb2c2d6146103af576101c3565b8062fdd58e146101c857806301ffc9a71461020657806308d7d46914610241575b600080fd5b6101f4600480360360408110156101de57600080fd5b506001600160a01b038135169060200135610c86565b60408051918252519081900360200190f35b61022d6004803603602081101561021c57600080fd5b50356001600160e01b031916610cf6565b604080519115158252519081900360200190f35b6101f46004803603602081101561025757600080fd5b5035610d3d565b6103736004803603608081101561027457600080fd5b81359190810190604081016020820135600160201b81111561029557600080fd5b8201836020820111156102a757600080fd5b803590602001918460208302840111600160201b831117156102c857600080fd5b919390929091602081019035600160201b8111156102e557600080fd5b8201836020820111156102f757600080fd5b803590602001918460208302840111600160201b8311171561031857600080fd5b919390929091602081019035600160201b81111561033557600080fd5b82018360208201111561034757600080fd5b803590602001918460018302840111600160201b8311171561036857600080fd5b509092509050610d4f565b005b6101f46004803603602081101561038b57600080fd5b50356110dd565b6101f4600480360360208110156103a857600080fd5b50356110ef565b610373600480360360a08110156103c557600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b8111156103f857600080fd5b82018360208201111561040a57600080fd5b803590602001918460208302840111600160201b8311171561042b57600080fd5b919390929091602081019035600160201b81111561044857600080fd5b82018360208201111561045a57600080fd5b803590602001918460208302840111600160201b8311171561047b57600080fd5b919390929091602081019035600160201b81111561049857600080fd5b8201836020820111156104aa57600080fd5b803590602001918460018302840111600160201b831117156104cb57600080fd5b509092509050611101565b610373600480360360208110156104ec57600080fd5b810190602081018135600160201b81111561050657600080fd5b82018360208201111561051857600080fd5b803590602001918460208302840111600160201b8311171561053957600080fd5b5090925090506116f6565b6103736004803603604081101561055a57600080fd5b810190602081018135600160201b81111561057457600080fd5b82018360208201111561058657600080fd5b803590602001918460018302840111600160201b831117156105a757600080fd5b91935091503561175f565b610373600480360360608110156105c857600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156105f257600080fd5b82018360208201111561060457600080fd5b803590602001918460208302840111600160201b8311171561062557600080fd5b919390929091602081019035600160201b81111561064257600080fd5b82018360208201111561065457600080fd5b803590602001918460208302840111600160201b8311171561067557600080fd5b509092509050611821565b61073e6004803603604081101561069657600080fd5b810190602081018135600160201b8111156106b057600080fd5b8201836020820111156106c257600080fd5b803590602001918460208302840111600160201b831117156106e357600080fd5b919390929091602081019035600160201b81111561070057600080fd5b82018360208201111561071257600080fd5b803590602001918460208302840111600160201b8311171561073357600080fd5b509092509050611b49565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561077a578181015183820152602001610762565b505050509050019250505060405180910390f35b610373600480360360608110156107a457600080fd5b81359190810190604081016020820135600160201b8111156107c557600080fd5b8201836020820111156107d757600080fd5b803590602001918460208302840111600160201b831117156107f857600080fd5b919390929091602081019035600160201b81111561081557600080fd5b82018360208201111561082757600080fd5b803590602001918460018302840111600160201b8311171561084857600080fd5b509092509050611c94565b6101f46004803603606081101561086957600080fd5b506001600160a01b03813581169160208101359091169060400135611f3b565b6103736004803603608081101561089f57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156108c957600080fd5b8201836020820111156108db57600080fd5b803590602001918460208302840111600160201b831117156108fc57600080fd5b919390929091602081019035600160201b81111561091957600080fd5b82018360208201111561092b57600080fd5b803590602001918460208302840111600160201b8311171561094c57600080fd5b919390929091602081019035600160201b81111561096957600080fd5b82018360208201111561097b57600080fd5b803590602001918460208302840111600160201b8311171561099c57600080fd5b509092509050611f6d565b61022d600480360360208110156109bd57600080fd5b5035612187565b6109e1600480360360208110156109da57600080fd5b50356121a8565b604080516001600160a01b039092168252519081900360200190f35b6101f460048036036020811015610a1357600080fd5b50356121c3565b61022d60048036036020811015610a3057600080fd5b50356121d9565b61037360048036036040811015610a4d57600080fd5b50803590602001356121f9565b6109e161233f565b6101f460048036036020811015610a7857600080fd5b503561234e565b61037360048036036040811015610a9557600080fd5b506001600160a01b038135169060200135151561235a565b61037360048036036020811015610ac357600080fd5b810190602081018135600160201b811115610add57600080fd5b820183602082011115610aef57600080fd5b803590602001918460208302840111600160201b83111715610b1057600080fd5b5090925090506123c8565b61022d60048036036020811015610b3157600080fd5b5035612485565b6101f460048036036040811015610b4e57600080fd5b810190602081018135600160201b811115610b6857600080fd5b820183602082011115610b7a57600080fd5b803590602001918460018302840111600160201b83111715610b9b57600080fd5b919350915035151561248f565b61022d60048036036020811015610bbe57600080fd5b503561259d565b61022d60048036036040811015610bdb57600080fd5b506001600160a01b03813581169160200135166125a9565b610373600480360360a0811015610c0957600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a081016080820135600160201b811115610c4857600080fd5b820183602082011115610c5a57600080fd5b803590602001918460018302840111600160201b83111715610c7b57600080fd5b5090925090506125d7565b6000610c9182612187565b15610ccb576000828152600460205260409020546001600160a01b03848116911614610cbe576000610cc1565b60015b60ff169050610cf0565b5060008181526002602090815260408083206001600160a01b03861684529091529020545b92915050565b60006001600160e01b031982166301ffc9a760e01b1480610d2757506001600160e01b03198216636cdb3d1360e11b145b15610d3457506001610d38565b5060005b919050565b60056020526000908152604090205481565b3360009081526009602052604090205460ff16610da1576040805162461bcd60e51b815260206004820152601b6024820152600080516020612d13833981519152604482015290519081900360640190fd5b610daa87612485565b610dfb576040805162461bcd60e51b815260206004820152601c60248201527f4944206d7573742062652061206e6f6e2d66756e6769626c6520494400000000604482015290519081900360640190fd5b60005b858110156110d3576000888152600860205260409020541580610e615750600088815260086020526040902054610e5e868684818110610e3a57fe5b60008d8152600760209081526040909120549391020135905063ffffffff6128da16565b11155b610eb2576040805162461bcd60e51b815260206004820152601b60248201527f546f6b656e20737570706c79206c696d69742065786365656465640000000000604482015290519081900360640190fd5b6000888152600260205260408120610f2291898985818110610ed057fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002054868684818110610f0d57fe5b905060200201356128da90919063ffffffff16565b600089815260026020526040812090898985818110610f3d57fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002081905550610fa4858583818110610f8057fe5b60008c8152600760209081526040909120549391020135905063ffffffff6128da16565b600089815260076020526040902055868682818110610fbf57fe5b905060200201356001600160a01b03166001600160a01b031660006001600160a01b0316336001600160a01b0316600080516020612c5c8339815191528b89898781811061100957fe5b604080519485526020918202939093013590840152508051918290030190a461105587878381811061103757fe5b905060200201356001600160a01b03166001600160a01b03166128e7565b156110cb576110cb333389898581811061106b57fe5b905060200201356001600160a01b03168b89898781811061108857fe5b9050602002013588888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506128ed92505050565b600101610dfe565b5050505050505050565b60076020526000908152604090205481565b60086020526000908152604090205481565b6001600160a01b03871661115c576040805162461bcd60e51b815260206004820152601b60248201527f63616e6e6f742073656e6420746f207a65726f20616464726573730000000000604482015290519081900360640190fd5b8483146111b0576040805162461bcd60e51b815260206004820152601760248201527f4172726179206c656e677468206d757374206d61746368000000000000000000604482015290519081900360640190fd5b6001600160a01b0388163314806111ef57506001600160a01b038816600090815260036020908152604080832033845290915290205460ff1615156001145b61122a5760405162461bcd60e51b815260040180806020018281038252602f815260200180612c7c602f913960400191505060405180910390fd5b60005b858110156115895761125087878381811061124457fe5b9050602002013561259d565b1561142357886001600160a01b03166004600089898581811061126f57fe5b60209081029290920135835250810191909152604001600020546001600160a01b03161461129c57600080fd5b87600460008989858181106112ad57fe5b90506020020135815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061134e8585838181106112f557fe5b905060200201356002600061131b8b8b8781811061130f57fe5b905060200201356121c3565b8152602080820192909252604090810160009081206001600160a01b038f1682529092529020549063ffffffff612a5d16565b600260006113618a8a8681811061130f57fe5b8152602080820192909252604090810160009081206001600160a01b038e1682529092529020556113e485858381811061139757fe5b90506020020135600260006113b18b8b8781811061130f57fe5b8152602080820192909252604090810160009081206001600160a01b038e1682529092529020549063ffffffff6128da16565b600260006113f78a8a8681811061130f57fe5b8152602080820192909252604090810160009081206001600160a01b038d168252909252902055611581565b61149085858381811061143257fe5b90506020020135600260008a8a8681811061144957fe5b90506020020135815260200190815260200160002060008c6001600160a01b03166001600160a01b0316815260200190815260200160002054612a5d90919063ffffffff16565b600260008989858181106114a057fe5b90506020020135815260200190815260200160002060008b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550611534600260008989858181106114ef57fe5b90506020020135815260200190815260200160002060008a6001600160a01b03166001600160a01b0316815260200190815260200160002054868684818110610f0d57fe5b6002600089898581811061154457fe5b90506020020135815260200190815260200160002060008a6001600160a01b03166001600160a01b03168152602001908152602001600020819055505b60010161122d565b50866001600160a01b0316886001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb898989896040518080602001806020018381038352878782818152602001925060200280828437600083820152601f01601f19169091018481038352858152602090810191508690860280828437600083820152604051601f909101601f19169092018290039850909650505050505050a461164d876001600160a01b03166128e7565b156110d3576110d333898989898080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808d0282810182019093528c82529093508c92508b91829185019084908082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a9150899081908401838280828437600092019190915250612a6f92505050565b6001546001600160a01b0316331461170d57600080fd5b60005b8181101561175a576009600084848481811061172857fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff19169055600101611710565b505050565b3360009081526009602052604090205460ff166117b1576040805162461bcd60e51b815260206004820152601b6024820152600080516020612d13833981519152604482015290519081900360640190fd5b816117bb57600080fd5b807f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b848460405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a2505050565b6001600160a01b03851633148061186057506001600160a01b038516600090815260036020908152604080832033845290915290205460ff1615156001145b61189b5760405162461bcd60e51b815260040180806020018281038252602a815260200180612ce9602a913960400191505060405180910390fd5b82158015906118a957508281145b6118b257600080fd5b60005b83811015611b41576118d88585838181106118cc57fe5b90506020020135612485565b15611a02578282828181106118e957fe5b905060200201356002600087878581811061190057fe5b9050602002013581526020019081526020016000206000886001600160a01b03166001600160a01b0316815260200190815260200160002054101561194457600080fd5b6119b183838381811061195357fe5b905060200201356002600088888681811061196a57fe5b9050602002013581526020019081526020016000206000896001600160a01b03166001600160a01b0316815260200190815260200160002054612a5d90919063ffffffff16565b600260008787858181106119c157fe5b9050602002013581526020019081526020016000206000886001600160a01b03166001600160a01b0316815260200190815260200160002081905550611adf565b611a1185858381811061124457fe5b611a1a57600080fd5b828282818110611a2657fe5b90506020020135600114611a3957600080fd5b6000611a4a86868481811061130f57fe5b60008181526002602090815260408083206001600160a01b038c168452909152902054909150611a8190600163ffffffff612a5d16565b60008281526002602090815260408083206001600160a01b038c168452909152812091909155600490878785818110611ab657fe5b6020908102929092013583525081019190915260400160002080546001600160a01b0319169055505b60006001600160a01b03871633600080516020612c5c833981519152888886818110611b0757fe5b90506020020135878787818110611b1a57fe5b604080519485526020918202939093013590840152508051918290030190a46001016118b5565b505050505050565b6060838214611b5757600080fd5b604080518581526020808702820101909152606090858015611b83578160200160208202803883390190505b50905060005b85811015611c8a576000858583818110611b9f57fe5b905060200201359050611bb181612187565b15611c1c57878783818110611bc257fe5b600084815260046020908152604090912054910292909201356001600160a01b039081169216919091149050611bf9576000611bfc565b60015b60ff16838381518110611c0b57fe5b602002602001018181525050611c81565b600081815260026020526040812090898985818110611c3757fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002054838381518110611c7457fe5b6020026020010181815250505b50600101611b89565b5095945050505050565b3360009081526009602052604090205460ff16611ce6576040805162461bcd60e51b815260206004820152601b6024820152600080516020612d13833981519152604482015290519081900360640190fd5b611cef8561259d565b611cf857600080fd5b6000858152600560205260409020546001810190611d1d90859063ffffffff6128da16565b6000878152600560205260408120919091555b84811015611f32576000868683818110611d4657fe5b905060200201356001600160a01b03169050600082840189179050600860008a81526020019081526020016000205460001480611dad5750600089815260086020908152604080832054600790925290912054611daa90600163ffffffff6128da16565b11155b611dfe576040805162461bcd60e51b815260206004820152601b60248201527f546f6b656e20737570706c79206c696d69742065786365656465640000000000604482015290519081900360640190fd5b600081815260046020908152604080832080546001600160a01b0319166001600160a01b0387161790558b83526007909152902054611e3e9060016128da565b60008a815260076020908152604080832093909355600281528282206001600160a01b038616835290522054611e7b90600163ffffffff6128da16565b60008a81526002602090815260408083206001600160a01b03871680855290835281842094909455805185815260019281019290925280513392600080516020612c5c83398151915292908290030190a4611ede826001600160a01b03166128e7565b15611f2857611f283333848460018b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506128ed92505050565b5050600101611d30565b50505050505050565b6001600160a01b0392831660009081526006602090815260408083209490951682529283528381209181529152205490565b848314611fc1576040805162461bcd60e51b815260206004820152601a60248201527f417272617973206d7573742062652073616d65206c656e677468000000000000604482015290519081900360640190fd5b828114612015576040805162461bcd60e51b815260206004820152601a60248201527f417272617973206d7573742062652073616d65206c656e677468000000000000604482015290519081900360640190fd5b60005b818110156110d357600087878381811061202e57fe5b905060200201359050600086868481811061204557fe5b905060200201359050600085858581811061205c57fe5b9050602002013590508160066000336001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b03168152602001908152602001600020600085815260200190815260200160002054146120ca57600080fd5b8060066000336001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b03168152602001908152602001600020600085815260200190815260200160002081905550828b6001600160a01b0316336001600160a01b03167f3a9c85c6b31f7a9d7fe1478f53e1be42e85db97ca30d1789cfef9196dbc472c98585604051808381526020018281526020019250505060405180910390a4505050600101612018565b6000600160ff1b808316148015610cf05750506001600160801b0316151590565b6000908152600460205260409020546001600160a01b031690565b6fffffffffffffffffffffffffffffffff191690565b6000600160ff1b808316148015610cf05750506001600160801b03161590565b3360009081526009602052604090205460ff1661224b576040805162461bcd60e51b815260206004820152601b6024820152600080516020612d13833981519152604482015290519081900360640190fd5b6000811161225857600080fd5b61226182612187565b156122da576000612271836121c3565b6000818152600860205260409020549091501561228d57600080fd5b6000818152600860209081526040918290208490558151848152915183927f4a92cb8a98b3c42468f2ffd7b4dc17755416ebcfd17fd0040895ea07895c0fae92908290030190a25061233b565b600082815260086020526040902054156122f357600080fd5b6000828152600860209081526040918290208390558151838152915184927f4a92cb8a98b3c42468f2ffd7b4dc17755416ebcfd17fd0040895ea07895c0fae92908290030190a25b5050565b6001546001600160a01b031681565b6001600160801b031690565b3360008181526003602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6001546001600160a01b031633146123df57600080fd5b60005b8181101561175a577f77b942a0834ead73d2e76c27f611bd4f14e4cd55de82e1d4bbd5521905f69f0f83838381811061241757fe5b60408051602092830294909401356001600160a01b03168452519283900301919050a160016009600085858581811061244c57fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff19169115159190911790556001016123e2565b600160ff1b161590565b3360009081526009602052604081205460ff166124e1576040805162461bcd60e51b815260206004820152601b6024820152600080516020612d13833981519152604482015290519081900360640190fd5b50600080546001019081905560801b81156124fd57600160ff1b175b604080518281526000602082018190528251909283923392600080516020612c5c833981519152929181900390910190a4821561259657807f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b858560405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a25b9392505050565b600160ff1b9081161490565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205460ff1690565b6001600160a01b038516612632576040805162461bcd60e51b815260206004820152601b60248201527f63616e6e6f742073656e6420746f207a65726f20616464726573730000000000604482015290519081900360640190fd5b6001600160a01b03861633148061267157506001600160a01b038616600090815260036020908152604080832033845290915290205460ff1615156001145b6126ac5760405162461bcd60e51b815260040180806020018281038252602f815260200180612c7c602f913960400191505060405180910390fd5b6126b58461259d565b156127a6576000848152600460205260409020546001600160a01b038781169116146126e057600080fd5b600084815260046020526040812080546001600160a01b0319166001600160a01b038816179055612710856121c3565b60008181526002602090815260408083206001600160a01b038c168452909152902054909150612746908563ffffffff612a5d16565b60008281526002602090815260408083206001600160a01b038c8116855292528083209390935588168152205461277d90856128da565b60009182526002602090815260408084206001600160a01b038a16855290915290912055612834565b60008481526002602090815260408083206001600160a01b038a1684529091529020546127d9908463ffffffff612a5d16565b60008581526002602090815260408083206001600160a01b038b8116855292528083209390935587168152205461281090846128da565b60008581526002602090815260408083206001600160a01b038a1684529091529020555b846001600160a01b0316866001600160a01b0316336001600160a01b0316600080516020612c5c8339815191528787604051808381526020018281526020019250505060405180910390a4612891856001600160a01b03166128e7565b15611b4157611b41338787878787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506128ed92505050565b81810182811015610cf057fe5b3b151590565b63f23a6e6160e01b6001600160e01b031916846001600160a01b031663f23a6e6188888787876040518663ffffffff1660e01b815260040180866001600160a01b03166001600160a01b03168152602001856001600160a01b03166001600160a01b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561299b578181015183820152602001612983565b50505050905090810190601f1680156129c85780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b1580156129eb57600080fd5b505af11580156129ff573d6000803e3d6000fd5b505050506040513d6020811015612a1557600080fd5b50516001600160e01b03191614611b415760405162461bcd60e51b8152600401808060200182810382526039815260200180612d336039913960400191505060405180910390fd5b600082821115612a6957fe5b50900390565b63bc197c8160e01b6001600160e01b031916846001600160a01b031663bc197c8188888787876040518663ffffffff1660e01b815260040180866001600160a01b03166001600160a01b03168152602001856001600160a01b03166001600160a01b03168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015612b1c578181015183820152602001612b04565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015612b5b578181015183820152602001612b43565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015612b97578181015183820152602001612b7f565b50505050905090810190601f168015612bc45780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b158015612be957600080fd5b505af1158015612bfd573d6000803e3d6000fd5b505050506040513d6020811015612c1357600080fd5b50516001600160e01b03191614611b415760405162461bcd60e51b815260040180806020018281038252603e815260200180612cab603e913960400191505060405180910390fdfec3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f624e656564206f70657261746f7220617070726f76616c20666f7220337264207061727479207472616e73666572732e636f6e74726163742072657475726e656420616e20756e6b6e6f776e2076616c75652066726f6d206f6e45524331313535426174636852656365697665644e656564206f70657261746f7220617070726f76616c20666f7220337264207061727479206275726e2e43726561746f72207065726d697373696f6e2072657175697265640000000000636f6e74726163742072657475726e656420616e20756e6b6e6f776e2076616c75652066726f6d206f6e455243313135355265636569766564a265627a7a72315820e8a61d55a194b2f42d83bad5cb50743bb2cae21f6bc9f7b12d8f0056879d500e64736f6c63430005110032
Deployed Bytecode Sourcemap
162:14252:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;162:14252:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7258:201;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7258:201:3;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;11059:279;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11059:279:3;-1:-1:-1;;;;;;11059:279:3;;:::i;:::-;;;;;;;;;;;;;;;;;;739:43;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;739:43:3;;:::i;3524:1054::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;3524:1054:3;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;3524:1054:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3524:1054:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;3524:1054:3;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;3524:1054:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3524:1054:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;3524:1054:3;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;3524:1054:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3524:1054:3;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;3524:1054:3;;-1:-1:-1;3524:1054:3;-1:-1:-1;3524:1054:3;:::i;:::-;;872:46;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;872:46:3;;:::i;924:51::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;924:51:3;;:::i;5756:1496::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;5756:1496:3;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;5756:1496:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5756:1496:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;5756:1496:3;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;5756:1496:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5756:1496:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;5756:1496:3;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;5756:1496:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5756:1496:3;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;5756:1496:3;;-1:-1:-1;5756:1496:3;-1:-1:-1;5756:1496:3;:::i;12808:203::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12808:203:3;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;12808:203:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;12808:203:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;12808:203:3;;-1:-1:-1;12808:203:3;-1:-1:-1;12808:203:3;:::i;14260:152::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14260:152:3;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;14260:152:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;14260:152:3;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;14260:152:3;;-1:-1:-1;14260:152:3;-1:-1:-1;14260:152:3;;:::i;13208:1046::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;13208:1046:3;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;13208:1046:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;13208:1046:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;13208:1046:3;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;13208:1046:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;13208:1046:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;13208:1046:3;;-1:-1:-1;13208:1046:3;-1:-1:-1;13208:1046:3;:::i;7465:595::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7465:595:3;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;7465:595:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7465:595:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;7465:595:3;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;7465:595:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7465:595:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;7465:595:3;;-1:-1:-1;7465:595:3;-1:-1:-1;7465:595:3;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7465:595:3;;;;;;;;;;;;;;;;;2453:1065;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2453:1065:3;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;2453:1065:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2453:1065:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;2453:1065:3;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;2453:1065:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2453:1065:3;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;2453:1065:3;;-1:-1:-1;2453:1065:3;-1:-1:-1;2453:1065:3;:::i;13017:185::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13017:185:3;;;;;;;;;;;;;;;;;:::i;9021:755::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;9021:755:3;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;9021:755:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9021:755:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;9021:755:3;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;9021:755:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9021:755:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;9021:755:3;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;9021:755:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9021:755:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;9021:755:3;;-1:-1:-1;9021:755:3;-1:-1:-1;9021:755:3;:::i;10491:216::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10491:216:3;;:::i;10713:97::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10713:97:3;;:::i;:::-;;;;-1:-1:-1;;;;;10713:97:3;;;;;;;;;;;;;;10140:114;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10140:114:3;;:::i;10260:225::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10260:225:3;;:::i;8429:586::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8429:586:3;;;;;;;:::i;460:20::-;;;:::i;10019:115::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10019:115:3;;:::i;8066:202::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8066:202:3;;;;;;;;;;:::i;12560:242::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12560:242:3;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;12560:242:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;12560:242:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;12560:242:3;;-1:-1:-1;12560:242:3;-1:-1:-1;12560:242:3;:::i;9907:106::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9907:106:3;;:::i;2100:347::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2100:347:3;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;2100:347:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2100:347:3;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2100:347:3;;-1:-1:-1;2100:347:3;-1:-1:-1;2100:347:3;;;;:::i;9782:119::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9782:119:3;;:::i;8274:149::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8274:149:3;;;;;;;;;;:::i;4584:1166::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;4584:1166:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;4584:1166:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4584:1166:3;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;4584:1166:3;;-1:-1:-1;4584:1166:3;-1:-1:-1;4584:1166:3;:::i;7258:201::-;7329:7;7352:22;7370:3;7352:17;:22::i;:::-;7348:66;;;7383:13;;;;:8;:13;;;;;;-1:-1:-1;;;;;7383:23:3;;;:13;;:23;:31;;7413:1;7383:31;;;7409:1;7383:31;7376:38;;;;;;7348:66;-1:-1:-1;7431:13:3;;;;:8;:13;;;;;;;;-1:-1:-1;;;;;7431:21:3;;;;;;;;;;7258:201;;;;;:::o;11059:279::-;11128:4;-1:-1:-1;;;;;;11161:42:3;;-1:-1:-1;;;11161:42:3;;:101;;-1:-1:-1;;;;;;;11219:43:3;;-1:-1:-1;;;11219:43:3;11161:101;11144:165;;;-1:-1:-1;11294:4:3;11287:11;;11144:165;-1:-1:-1;11326:5:3;11059:279;;;;:::o;739:43::-;;;;;;;;;;;;;:::o;3524:1054::-;1950:10;1941:20;;;;:8;:20;;;;;;;;1933:60;;;;;-1:-1:-1;;;1933:60:3;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1933:60:3;;;;;;;;;;;;;;;3714:15;3725:3;3714:10;:15::i;:::-;3706:56;;;;;-1:-1:-1;;;3706:56:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;3777:9;3772:800;3792:14;;;3772:800;;;3852:21;;;;:16;:21;;;;;;:26;;:111;;-1:-1:-1;3942:21:3;;;;:16;:21;;;;;;3902:36;3923:11;;3935:1;3923:14;;;;;;;3902:16;;;;:11;3923:14;3902:16;;;;;;;;;3923:14;;;;;-1:-1:-1;3902:36:3;:20;:36;:::i;:::-;:61;;3852:111;3827:197;;;;;-1:-1:-1;;;3827:197:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;4081:13;;;;:8;:13;;;;;4062:41;;4095:3;;4099:1;4095:6;;;;;;;;;;;;;-1:-1:-1;;;;;4095:6:3;-1:-1:-1;;;;;4081:21:3;-1:-1:-1;;;;;4081:21:3;;;;;;;;;;;;;4062:11;;4074:1;4062:14;;;;;;;;;;;;;:18;;:41;;;;:::i;:::-;4038:13;;;;:8;:13;;;;;;4052:3;;4056:1;4052:6;;;;;;;;;;;;;-1:-1:-1;;;;;4052:6:3;-1:-1:-1;;;;;4038:21:3;-1:-1:-1;;;;;4038:21:3;;;;;;;;;;;;:65;;;;4136:36;4157:11;;4169:1;4157:14;;;;;;;4136:16;;;;:11;4157:14;4136:16;;;;;;;;;4157:14;;;;;-1:-1:-1;4136:36:3;:20;:36;:::i;:::-;4117:16;;;;:11;:16;;;;;:55;4233:3;;4237:1;4233:6;;;;;;;;;;;;;-1:-1:-1;;;;;4233:6:3;-1:-1:-1;;;;;4192:69:3;4227:3;-1:-1:-1;;;;;4192:69:3;4207:10;-1:-1:-1;;;;;4192:69:3;-1:-1:-1;;;;;;;;;;;4241:3:3;4246:11;;4258:1;4246:14;;;;;;;4192:69;;;;;;4246:14;;;;;;;;;4192:69;;;;-1:-1:-1;4192:69:3;;;;;;;;;4280:19;:3;;4284:1;4280:6;;;;;;;;;;;;;-1:-1:-1;;;;;4280:6:3;-1:-1:-1;;;;;4280:17:3;;:19::i;:::-;4276:286;;;4319:228;4371:10;4403;4435:3;;4439:1;4435:6;;;;;;;;;;;;;-1:-1:-1;;;;;4435:6:3;4463:3;4488:11;;4500:1;4488:14;;;;;;;;;;;;;4524:5;;4319:228;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;4319:30:3;;-1:-1:-1;;;4319:228:3:i;:::-;3808:3;;3772:800;;;;3524:1054;;;;;;;:::o;872:46::-;;;;;;;;;;;;;:::o;924:51::-;;;;;;;;;;;;;:::o;5756:1496::-;-1:-1:-1;;;;;5963:19:3;;5955:59;;;;;-1:-1:-1;;;5955:59:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;6032:29;;;6024:65;;;;;-1:-1:-1;;;6024:65:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6120:19:3;;6129:10;6120:19;;:66;;-1:-1:-1;;;;;;6143:23:3;;;;;;:16;:23;;;;;;;;6167:10;6143:35;;;;;;;;;;:43;;:35;:43;6120:66;6099:160;;;;-1:-1:-1;;;6099:160:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6275:9;6270:770;6290:15;;;6270:770;;;6330:22;6344:4;;6349:1;6344:7;;;;;;;;;;;;;6330:13;:22::i;:::-;6326:704;;;6401:5;-1:-1:-1;;;;;6380:26:3;:8;:17;6389:4;;6394:1;6389:7;;;;;;;;;;;;;;;;6380:17;;-1:-1:-1;6380:17:3;;;;;;;;-1:-1:-1;6380:17:3;;-1:-1:-1;;;;;6380:17:3;:26;6372:35;;;;;;6445:3;6425:8;:17;6434:4;;6439:1;6434:7;;;;;;;;;;;;;6425:17;;;;;;;;;;;;:23;;;;;-1:-1:-1;;;;;6425:23:3;;;;;-1:-1:-1;;;;;6425:23:3;;;;;;6517:123;6629:7;;6637:1;6629:10;;;;;;;;;;;;;6517:8;:79;6526:69;6570:4;;6575:1;6570:7;;;;;;;;;;;;;6526:22;:69::i;:::-;6517:79;;;;;;;;;;;;;;-1:-1:-1;6517:79:3;;;-1:-1:-1;;;;;6517:86:3;;;;;;;;;;;:123;:111;:123;:::i;:::-;6466:8;:41;6475:31;6498:4;;6503:1;6498:7;;;;;;6475:31;6466:41;;;;;;;;;;;;;;-1:-1:-1;6466:41:3;;;-1:-1:-1;;;;;6466:48:3;;;;;;;;;:174;6707:121;6817:7;;6825:1;6817:10;;;;;;;;;;;;;6707:8;:79;6716:69;6760:4;;6765:1;6760:7;;;;;;6716:69;6707:79;;;;;;;;;;;;;;-1:-1:-1;6707:79:3;;;-1:-1:-1;;;;;6707:84:3;;;;;;;;;;;:121;:109;:121;:::i;:::-;6658:8;:41;6667:31;6690:4;;6695:1;6690:7;;;;;;6667:31;6658:41;;;;;;;;;;;;;;-1:-1:-1;6658:41:3;;;-1:-1:-1;;;;;6658:46:3;;;;;;;;;:170;6326:704;;;6894:40;6923:7;;6931:1;6923:10;;;;;;;;;;;;;6894:8;:17;6903:4;;6908:1;6903:7;;;;;;;;;;;;;6894:17;;;;;;;;;;;:24;6912:5;-1:-1:-1;;;;;6894:24:3;-1:-1:-1;;;;;6894:24:3;;;;;;;;;;;;;:28;;:40;;;;:::i;:::-;6867:8;:17;6876:4;;6881:1;6876:7;;;;;;;;;;;;;6867:17;;;;;;;;;;;:24;6885:5;-1:-1:-1;;;;;6867:24:3;-1:-1:-1;;;;;6867:24:3;;;;;;;;;;;;:67;;;;6977:38;6992:8;:17;7001:4;;7006:1;7001:7;;;;;;;;;;;;;6992:17;;;;;;;;;;;:22;7010:3;-1:-1:-1;;;;;6992:22:3;-1:-1:-1;;;;;6992:22:3;;;;;;;;;;;;;6977:7;;6985:1;6977:10;;;;;;:38;6952:8;:17;6961:4;;6966:1;6961:7;;;;;;;;;;;;;6952:17;;;;;;;;;;;:22;6970:3;-1:-1:-1;;;;;6952:22:3;-1:-1:-1;;;;;6952:22:3;;;;;;;;;;;;:63;;;;6326:704;6307:3;;6270:770;;;;7088:3;-1:-1:-1;;;;;7055:52:3;7081:5;-1:-1:-1;;;;;7055:52:3;7069:10;-1:-1:-1;;;;;7055:52:3;;7093:4;;7099:7;;7055:52;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;;74:27;137:4;117:14;-1:-1;;113:30;157:16;;;7055:52:3;;;;;;;;;;;;;-1:-1:-1;7055:52:3;;;;;;;1:33:-1;99:1;81:16;;;74:27;7055:52:3;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;7055:52:3;;;;-1:-1:-1;7055:52:3;;-1:-1:-1;;;;;;;7055:52:3;7122:16;:3;-1:-1:-1;;;;;7122:14:3;;:16::i;:::-;7118:128;;;7154:81;7190:10;7202:5;7209:3;7214:4;;7154:81;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;;7154:81:3;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7220:7:3;;-1:-1:-1;7220:7:3;;;;7154:81;;;7220:7;;7154:81;7220:7;7154:81;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;;7154:81:3;;;;137:4:-1;7154:81:3;;;;;;;;;;;;;;;;;;-1:-1:-1;7229:5:3;;-1:-1:-1;7229:5:3;;;;7154:81;;7229:5;;;;7154:81;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;7154:35:3;;-1:-1:-1;;;7154:81:3:i;12808:203::-;2070:5;;-1:-1:-1;;;;;2070:5:3;2056:10;:19;2048:28;;;;;;12907:9;12902:103;12922:21;;;12902:103;;;12971:8;:23;12980:10;;12991:1;12980:13;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12980:13:3;12971:23;;-1:-1:-1;12971:23:3;;;;;;;;-1:-1:-1;12971:23:3;12964:30;;-1:-1:-1;;12964:30:3;;;-1:-1:-1;12945:3:3;12902:103;;;;12808:203;;:::o;14260:152::-;1950:10;1941:20;;;;:8;:20;;;;;;;;1933:60;;;;;-1:-1:-1;;;1933:60:3;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1933:60:3;;;;;;;;;;;;;;;14353:22;14345:31;;;;;;14401:3;14391:14;14395:4;;14391:14;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;;74:27;14391:14:3;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;14391:14:3;;;;-1:-1:-1;14391:14:3;;-1:-1:-1;;;;14391:14:3;14260:152;;;:::o;13208:1046::-;-1:-1:-1;;;;;13360:19:3;;13369:10;13360:19;;:66;;-1:-1:-1;;;;;;13383:23:3;;;;;;:16;:23;;;;;;;;13407:10;13383:35;;;;;;;;;;:43;;:35;:43;13360:66;13339:155;;;;-1:-1:-1;;;13339:155:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13512:15;;;;;:48;;-1:-1:-1;13531:29:3;;;13512:48;13504:57;;;;;;13576:9;13571:677;13591:15;;;13571:677;;;13631:19;13642:4;;13647:1;13642:7;;;;;;;;;;;;;13631:10;:19::i;:::-;13627:524;;;13706:7;;13714:1;13706:10;;;;;;;;;;;;;13678:8;:17;13687:4;;13692:1;13687:7;;;;;;;;;;;;;13678:17;;;;;;;;;;;:24;13696:5;-1:-1:-1;;;;;13678:24:3;-1:-1:-1;;;;;13678:24:3;;;;;;;;;;;;;:38;;13670:47;;;;;;13762:40;13791:7;;13799:1;13791:10;;;;;;;;;;;;;13762:8;:17;13771:4;;13776:1;13771:7;;;;;;;;;;;;;13762:17;;;;;;;;;;;:24;13780:5;-1:-1:-1;;;;;13762:24:3;-1:-1:-1;;;;;13762:24:3;;;;;;;;;;;;;:28;;:40;;;;:::i;:::-;13735:8;:17;13744:4;;13749:1;13744:7;;;;;;;;;;;;;13735:17;;;;;;;;;;;:24;13753:5;-1:-1:-1;;;;;13735:24:3;-1:-1:-1;;;;;13735:24:3;;;;;;;;;;;;:67;;;;13627:524;;;13849:22;13863:4;;13868:1;13863:7;;;;;;13849:22;13841:31;;;;;;13898:7;;13906:1;13898:10;;;;;;;;;;;;;13912:1;13898:15;13890:24;;;;;;13932:16;13951:31;13974:4;;13979:1;13974:7;;;;;;13951:31;14062:18;;;;:8;:18;;;;;;;;-1:-1:-1;;;;;14062:25:3;;;;;;;;;;13932:50;;-1:-1:-1;14062:32:3;;14092:1;14062:32;:29;:32;:::i;:::-;14034:18;;;;:8;:18;;;;;;;;-1:-1:-1;;;;;14034:25:3;;;;;;;;;:60;;;;14119:8;;14128:4;;14133:1;14128:7;;;;;;;;;;;;;;;;14119:17;;-1:-1:-1;14119:17:3;;;;;;;;-1:-1:-1;14119:17:3;14112:24;;-1:-1:-1;;;;;;14112:24:3;;;-1:-1:-1;13627:524:3;14211:3;-1:-1:-1;;;;;14169:68:3;;14184:10;-1:-1:-1;;;;;;;;;;;14217:4:3;;14222:1;14217:7;;;;;;;;;;;;;14226;;14234:1;14226:10;;;;;;;14169:68;;;;;;14226:10;;;;;;;;;14169:68;;;;-1:-1:-1;14169:68:3;;;;;;;;;13608:3;;13571:677;;;;13208:1046;;;;;:::o;7465:595::-;7589:16;7629:29;;;7621:38;;;;;;7698:29;;;;;;;;;;;;;;;;7669:26;;7712:7;7698:29;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;7698:29:3;-1:-1:-1;7669:58:3;-1:-1:-1;7742:9:3;7737:290;7757:18;;;7737:290;;;7796:10;7809:4;;7814:1;7809:7;;;;;;;;;;;;;7796:20;;7834:21;7852:2;7834:17;:21::i;:::-;7830:187;;;7906:7;;7914:1;7906:10;;;;;;;7890:12;;;;:8;7906:10;7890:12;;;;;;;;7906:10;;;;;;;-1:-1:-1;;;;;7906:10:3;;;7890:12;;:26;;;;;-1:-1:-1;7890:34:3;;7923:1;7890:34;;;7919:1;7890:34;7875:49;;:9;7885:1;7875:12;;;;;;;;;;;;;:49;;;;;7830:187;;;7978:12;;;;:8;:12;;;;;;7991:7;;7999:1;7991:10;;;;;;;;;;;;;-1:-1:-1;;;;;7991:10:3;-1:-1:-1;;;;;7978:24:3;-1:-1:-1;;;;;7978:24:3;;;;;;;;;;;;;7963:9;7973:1;7963:12;;;;;;;;;;;;;:39;;;;;7830:187;-1:-1:-1;7777:3:3;;7737:290;;;-1:-1:-1;8044:9:3;7465:595;-1:-1:-1;;;;;7465:595:3:o;2453:1065::-;1950:10;1941:20;;;;:8;:20;;;;;;;;1933:60;;;;;-1:-1:-1;;;1933:60:3;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1933:60:3;;;;;;;;;;;;;;;2608:20;2622:5;2608:13;:20::i;:::-;2600:29;;;;;;2639:13;2655:15;;;:8;:15;;;;;;2673:1;2655:19;;;2702:31;;:3;;:31;:14;:31;:::i;:::-;2684:15;;;;:8;:15;;;;;:49;;;;2743:769;2763:14;;;2743:769;;;2798:20;2821:3;;2825:1;2821:6;;;;;;;;;;;;;-1:-1:-1;;;;;2821:6:3;2798:29;;2841:10;2871:1;2863:5;:9;2854:5;:19;2841:32;;2912:16;:23;2929:5;2912:23;;;;;;;;;;;;2939:1;2912:28;:104;;;-1:-1:-1;2993:23:3;;;;:16;:23;;;;;;;;;2964:11;:18;;;;;;;:25;;2987:1;2964:25;:22;:25;:::i;:::-;:52;;2912:104;2887:190;;;;;-1:-1:-1;;;2887:190:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;3091:12;;;;:8;:12;;;;;;;;:27;;-1:-1:-1;;;;;;3091:27:3;-1:-1:-1;;;;;3091:27:3;;;;;3153:18;;;:11;:18;;;;;;:25;;-1:-1:-1;3153:22:3;:25::i;:::-;3132:18;;;;:11;:18;;;;;;;;:46;;;;3224:8;:15;;;;;-1:-1:-1;;;;;3224:29:3;;;;;;;;:36;;3258:1;3224:36;:33;:36;:::i;:::-;3192:15;;;;:8;:15;;;;;;;;-1:-1:-1;;;;;3192:29:3;;;;;;;;;;;:68;;;;3280:61;;;;;3339:1;3280:61;;;;;;;;;3295:10;;-1:-1:-1;;;;;;;;;;;3280:61:3;;;;;;;;3360:25;:12;-1:-1:-1;;;;;3360:23:3;;:25::i;:::-;3356:146;;;3405:82;3436:10;3448;3460:12;3474:2;3478:1;3481:5;;3405:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;3405:30:3;;-1:-1:-1;;;3405:82:3:i;:::-;-1:-1:-1;;2779:3:3;;2743:769;;;;2003:1;2453:1065;;;;;:::o;13017:185::-;-1:-1:-1;;;;;13162:18:3;;;13136:7;13162:18;;;:10;:18;;;;;;;;:28;;;;;;;;;;;;:33;;;;;;;;13017:185::o;9021:755::-;9214:36;;;9206:75;;;;;-1:-1:-1;;;9206:75:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;9299:39;;;9291:78;;;;;-1:-1:-1;;;9291:78:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;9384:9;9379:391;9399:18;;;9379:391;;;9438:10;9451:4;;9456:1;9451:7;;;;;;;;;;;;;9438:20;;9472;9495:14;;9510:1;9495:17;;;;;;;;;;;;;9472:40;;9526:13;9542:7;;9550:1;9542:10;;;;;;;;;;;;;9526:26;;9614:12;9574:10;:22;9585:10;-1:-1:-1;;;;;9574:22:3;-1:-1:-1;;;;;9574:22:3;;;;;;;;;;;;:32;9597:8;-1:-1:-1;;;;;9574:32:3;-1:-1:-1;;;;;9574:32:3;;;;;;;;;;;;:36;9607:2;9574:36;;;;;;;;;;;;:52;9566:61;;;;;;9680:5;9641:10;:22;9652:10;-1:-1:-1;;;;;9641:22:3;-1:-1:-1;;;;;9641:22:3;;;;;;;;;;;;:32;9664:8;-1:-1:-1;;;;;9641:32:3;-1:-1:-1;;;;;9641:32:3;;;;;;;;;;;;:36;9674:2;9641:36;;;;;;;;;;;:44;;;;9735:2;9725:8;-1:-1:-1;;;;;9704:55:3;9713:10;-1:-1:-1;;;;;9704:55:3;;9739:12;9753:5;9704:55;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9419:3:3;;9379:391;;10491:216;10552:4;-1:-1:-1;;;426:8:3;10637:3;:17;:32;10636:64;;;;-1:-1:-1;;;;;;;10675:19:3;:24;;;10491:216::o;10713:97::-;10764:7;10790:13;;;:8;:13;;;;;;-1:-1:-1;;;;;10790:13:3;;10713:97::o;10140:114::-;-1:-1:-1;;10232:15:3;;10140:114::o;10260:225::-;10325:4;-1:-1:-1;;;426:8:3;10415:3;:17;:32;10414:64;;;;-1:-1:-1;;;;;;;10453:19:3;:24;;10260:225::o;8429:586::-;1950:10;1941:20;;;;:8;:20;;;;;;;;1933:60;;;;;-1:-1:-1;;;1933:60:3;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1933:60:3;;;;;;;;;;;;;;;8548:1;8533:12;:16;8525:25;;;;;;8564:28;8582:9;8564:17;:28::i;:::-;8560:449;;;8608:14;8625:33;8648:9;8625:22;:33::i;:::-;8680:24;;;;:16;:24;;;;;;8608:50;;-1:-1:-1;8680:29:3;8672:38;;;;;;8724:24;;;;:16;:24;;;;;;;;;:39;;;8782:33;;;;;;;8741:6;;8782:33;;;;;;;;;8560:449;;;;8854:27;;;;:16;:27;;;;;;:32;8846:41;;;;;;8901:27;;;;:16;:27;;;;;;;;;:42;;;8962:36;;;;;;;8918:9;;8962:36;;;;;;;;;8560:449;8429:586;;:::o;460:20::-;;;-1:-1:-1;;;;;460:20:3;;:::o;10019:115::-;-1:-1:-1;;;;;10108:19:3;;10019:115::o;8066:202::-;8164:10;8147:28;;;;:16;:28;;;;;;;;-1:-1:-1;;;;;8147:39:3;;;;;;;;;;;;:51;;-1:-1:-1;;8147:51:3;;;;;;;;;;8213:48;;;;;;;8147:39;;8164:10;8213:48;;;;;;;;;;;8066:202;;:::o;12560:242::-;2070:5;;-1:-1:-1;;;;;2070:5:3;2056:10;:19;2048:28;;;;;;12657:9;12652:144;12672:21;;;12652:144;;;12719:22;12727:10;;12738:1;12727:13;;;;;;;12719:22;;;12727:13;;;;;;;;;-1:-1:-1;;;;;12727:13:3;12719:22;;;;;;;;;;-1:-1:-1;12719:22:3;12781:4;12755:8;:23;12764:10;;12775:1;12764:13;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12764:13:3;12755:23;;-1:-1:-1;12755:23:3;;;;;;;;-1:-1:-1;12755:23:3;:30;;-1:-1:-1;;12755:30:3;;;;;;;;;;-1:-1:-1;12695:3:3;12652:144;;9907:106;-1:-1:-1;;;9984:17:3;:22;;9907:106::o;2100:347::-;1950:10;2180:13;1941:20;;;:8;:20;;;;;;;;1933:60;;;;;-1:-1:-1;;;1933:60:3;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1933:60:3;;;;;;;;;;;;;;;-1:-1:-1;2216:5:3;2214:7;;;;;;;;2225:3;2214:14;2240:38;;;;-1:-1:-1;;;2259:19:3;2240:38;2294:64;;;;;;2343:3;2294:64;;;;;;;;2343:3;;;;2309:10;;-1:-1:-1;;;;;;;;;;;2294:64:3;;;;;;;;;;2373:22;;2369:49;;2412:5;2402:16;2406:4;;2402:16;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;;74:27;2402:16:3;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;2402::3;;;;-1:-1:-1;2402:16:3;;-1:-1:-1;;;;2402:16:3;2369:49;2100:347;;;;;:::o;9782:119::-;-1:-1:-1;;;9862:17:3;;;:32;;9782:119::o;8274:149::-;-1:-1:-1;;;;;8381:24:3;;;8358:4;8381:24;;;:16;:24;;;;;;;;:35;;;;;;;;;;;;;;;8274:149::o;4584:1166::-;-1:-1:-1;;;;;4762:19:3;;4754:59;;;;;-1:-1:-1;;;4754:59:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4844:19:3;;4853:10;4844:19;;:66;;-1:-1:-1;;;;;;4867:23:3;;;;;;:16;:23;;;;;;;;4891:10;4867:35;;;;;;;;;;:43;;:35;:43;4844:66;4823:160;;;;-1:-1:-1;;;4823:160:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4998:18;5012:3;4998:13;:18::i;:::-;4994:552;;;5040:13;;;;:8;:13;;;;;;-1:-1:-1;;;;;5040:22:3;;;:13;;:22;5032:31;;;;;;5077:13;;;;:8;:13;;;;;:19;;-1:-1:-1;;;;;;5077:19:3;-1:-1:-1;;;;;5077:19:3;;;;;5203:27;5077:13;5203:22;:27::i;:::-;5272:18;;;;:8;:18;;;;;;;;-1:-1:-1;;;;;5272:25:3;;;;;;;;;;5184:46;;-1:-1:-1;5272:37:3;;5302:6;5272:37;:29;:37;:::i;:::-;5244:18;;;;:8;:18;;;;;;;;-1:-1:-1;;;;;5244:25:3;;;;;;;;;;:65;;;;5349:23;;;;;;:35;;5377:6;5349:27;:35::i;:::-;5323:18;;;;:8;:18;;;;;;;;-1:-1:-1;;;;;5323:23:3;;;;;;;;;;:61;4994:552;;;5438:13;;;;:8;:13;;;;;;;;-1:-1:-1;;;;;5438:20:3;;;;;;;;;;:32;;5463:6;5438:32;:24;:32;:::i;:::-;5415:13;;;;:8;:13;;;;;;;;-1:-1:-1;;;;;5415:20:3;;;;;;;;;;:55;;;;5505:18;;;;;;:30;;5528:6;5505:22;:30::i;:::-;5484:13;;;;:8;:13;;;;;;;;-1:-1:-1;;;;;5484:18:3;;;;;;;;;:51;4994:552;5595:3;-1:-1:-1;;;;;5561:51:3;5588:5;-1:-1:-1;;;;;5561:51:3;5576:10;-1:-1:-1;;;;;5561:51:3;-1:-1:-1;;;;;;;;;;;5600:3:3;5605:6;5561:51;;;;;;;;;;;;;;;;;;;;;;;;5627:16;:3;-1:-1:-1;;;;;5627:14:3;;:16::i;:::-;5623:121;;;5659:74;5690:10;5702:5;5709:3;5714;5719:6;5727:5;;5659:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;5659:30:3;;-1:-1:-1;;;5659:74:3:i;478:137:7:-;561:5;;;583:6;;;;576:14;;;48:190:0;177:20;223:8;;;48:190::o;11449:437:3:-;101:10:1;11780:16:3;;-1:-1:-1;;;;;11679:117:3;;11700:3;-1:-1:-1;;;;;11679:43:3;;11723:9;11734:5;11741:3;11746:6;11754:5;11679:81;;;;;;;;;;;;;-1:-1:-1;;;;;11679:81:3;-1:-1:-1;;;;;11679:81:3;;;;;;-1:-1:-1;;;;;11679:81:3;-1:-1:-1;;;;;11679:81:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;11679:81:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11679:81:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11679:81:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11679:81:3;-1:-1:-1;;;;;;11679:117:3;;11658:221;;;;-1:-1:-1;;;11658:221:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;352:120:7;410:7;441:1;436;:6;;429:14;;;;-1:-1:-1;460:5:7;;;352:120::o;11892:558:3:-;167:10:1;12333:22:3;;-1:-1:-1;;;;;12147:208:3;;12168:3;-1:-1:-1;;;;;12147:48:3;;12213:9;12240:5;12263:4;12285:7;12310:5;12147:182;;;;;;;;;;;;;-1:-1:-1;;;;;12147:182:3;-1:-1:-1;;;;;12147:182:3;;;;;;-1:-1:-1;;;;;12147:182:3;-1:-1:-1;;;;;12147:182:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;12147:182:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;12147:182:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;12147:182:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12147:182:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12147:182:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12147:182:3;-1:-1:-1;;;;;;12147:208:3;;12126:317;;;;-1:-1:-1;;;12126:317:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Swarm Source
bzzr://e8a61d55a194b2f42d83bad5cb50743bb2cae21f6bc9f7b12d8f0056879d500e
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.