Polygon Sponsored slots available. Book your slot here!
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 1,396 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Choose Gang | 39231427 | 800 days ago | IN | 0 POL | 0.01771526 | ||||
Choose Gang | 34691283 | 913 days ago | IN | 0 POL | 0.01491742 | ||||
Choose Gang | 33637070 | 938 days ago | IN | 0 POL | 0.00406706 | ||||
Airdrop Single T... | 33629150 | 938 days ago | IN | 0 POL | 0.0033519 | ||||
Burn From Single | 33629139 | 938 days ago | IN | 0 POL | 0.00143928 | ||||
Choose Gang | 32790415 | 959 days ago | IN | 0 POL | 0.00393521 | ||||
Choose Gang | 32775317 | 959 days ago | IN | 0 POL | 0.00380401 | ||||
Choose Gang | 32763571 | 959 days ago | IN | 0 POL | 0.00352056 | ||||
Choose Gang | 32748105 | 960 days ago | IN | 0 POL | 0.00352017 | ||||
Choose Gang | 32746501 | 960 days ago | IN | 0 POL | 0.00352871 | ||||
Choose Gang | 32742864 | 960 days ago | IN | 0 POL | 0.00319437 | ||||
Choose Gang | 32741950 | 960 days ago | IN | 0 POL | 0.00413173 | ||||
Choose Gang | 32737887 | 960 days ago | IN | 0 POL | 0.00358569 | ||||
Choose Gang | 32737811 | 960 days ago | IN | 0 POL | 0.00446843 | ||||
Choose Gang | 32737650 | 960 days ago | IN | 0 POL | 0.00373965 | ||||
Airdrop Single T... | 32737104 | 960 days ago | IN | 0 POL | 0.00912341 | ||||
Airdrop Single T... | 32737058 | 960 days ago | IN | 0 POL | 0.00639237 | ||||
Airdrop Single T... | 32736988 | 960 days ago | IN | 0 POL | 0.00624444 | ||||
Airdrop Single T... | 32736854 | 960 days ago | IN | 0 POL | 0.01225881 | ||||
Airdrop Single T... | 32736845 | 960 days ago | IN | 0 POL | 0.00960768 | ||||
Airdrop Single T... | 32736730 | 960 days ago | IN | 0 POL | 0.01150881 | ||||
Burn From Single | 32735831 | 960 days ago | IN | 0 POL | 0.00143901 | ||||
Airdrop Single T... | 32735511 | 960 days ago | IN | 0 POL | 0.00695619 | ||||
Airdrop Single T... | 32735485 | 960 days ago | IN | 0 POL | 0.02741523 | ||||
Airdrop Single T... | 32735430 | 960 days ago | IN | 0 POL | 0.01419297 |
Latest 25 internal transactions (View All)
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
32737104 | 960 days ago | 0.1 POL | ||||
32737104 | 960 days ago | 0.1 POL | ||||
32737104 | 960 days ago | 0.1 POL | ||||
32737058 | 960 days ago | 0.1 POL | ||||
32737058 | 960 days ago | 0.1 POL | ||||
32736988 | 960 days ago | 0.1 POL | ||||
32736988 | 960 days ago | 0.1 POL | ||||
32736854 | 960 days ago | 0.1 POL | ||||
32736854 | 960 days ago | 0.1 POL | ||||
32736854 | 960 days ago | 0.1 POL | ||||
32736854 | 960 days ago | 0.1 POL | ||||
32736845 | 960 days ago | 0.1 POL | ||||
32736845 | 960 days ago | 0.1 POL | ||||
32736845 | 960 days ago | 0.1 POL | ||||
32736730 | 960 days ago | 0.1 POL | ||||
32736730 | 960 days ago | 0.1 POL | ||||
32736730 | 960 days ago | 0.1 POL | ||||
32736730 | 960 days ago | 0.1 POL | ||||
32735511 | 960 days ago | 0.1 POL | ||||
32735511 | 960 days ago | 0.1 POL | ||||
32735485 | 960 days ago | 0.1 POL | ||||
32735485 | 960 days ago | 0.1 POL | ||||
32735485 | 960 days ago | 0.1 POL | ||||
32735485 | 960 days ago | 0.1 POL | ||||
32735485 | 960 days ago | 0.1 POL |
Loading...
Loading
Contract Name:
GASChip
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2022-06-08 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.7; // ERC1155I Implementation // Thanks Solmate for inspiration interface ERC1155TokenReceiver { function onERC1155Received(address operator_, address from_, uint256 id_, uint256 amount_, bytes calldata data_) external returns (bytes4); function onERC1155BatchReceived(address operator_, address from_, uint256[] calldata ids_, uint256[] calldata amounts_, bytes calldata data_) external returns (bytes4); } contract ERC1155IEnumerable { // Base Info string public name; string public symbol; // Setting Name and Symbol (Missing in ERC1155 Generally) constructor(string memory name_, string memory symbol_) { name = name_; symbol = symbol_; } // Events event TransferSingle(address indexed operator_, address indexed from_, address indexed to_, uint256 id_, uint256 amount_); event TransferBatch(address indexed operator_, address indexed from_, address indexed to_, uint256[] ids_, uint256[] amounts_); event ApprovalForAll(address indexed owner_, address indexed operator_, bool approved_); event URI(string value_, uint256 indexed id_); // ERC1155 Mappings mapping(address => mapping(uint256 => uint256)) public balanceOf; mapping(address => mapping(address => bool)) public isApprovedForAll; // ERC1155G Enumerable Ownership mapping(uint256 => address[]) public tokenToOwners; mapping(uint256 => mapping(address => uint256)) public tokenToOwnersToIndex; // Used for getOwnersOfTokenIdAndBalance view function struct TokenBalances { address owner; uint256 balance; } function _addEnumerableData(address address_, uint256 id_) internal { // If the user does not have any balance if (balanceOf[address_][id_] == 0) { // Find the next index uint256 _nextIndex = tokenToOwners[id_].length; // Add the address to owners list of the tokenId tokenToOwners[id_].push(address_); // Add their location in array to index data tokenToOwnersToIndex[id_][address_] = _nextIndex; } } function _removeEnumerableData(address address_, uint256 id_) internal { // If the user balance after deduction is 0 if (balanceOf[address_][id_] == 0) { // Find the user in enumerable index uint256 _userIndex = tokenToOwnersToIndex[id_][address_]; // Get the last index uint256 _lastIndex = tokenToOwners[id_].length - 1; // If the owner is not at the last index if (_userIndex != _lastIndex) { address _userAtLastIndex = tokenToOwners[id_][_lastIndex]; // Replace _userIndex slot with _lastIndex slot tokenToOwners[id_][_userIndex] = _userAtLastIndex; // Write the new index for the user tokenToOwnersToIndex[id_][_userAtLastIndex] = _userIndex; } // Now, delete the last index tokenToOwners[id_].pop(); // And remove the user from the index data delete tokenToOwnersToIndex[id_][address_]; } } function getOwnersOfTokenId(uint256 id_) public view returns (address[] memory) { return tokenToOwners[id_]; } function getOwnersOfTokenIdAndBalance(uint256 id_) public view returns (TokenBalances[] memory) { address[] memory _owners = getOwnersOfTokenId(id_); uint256 _ownersLength = _owners.length; TokenBalances[] memory _TokenBalancesAll = new TokenBalances[] (_ownersLength); for (uint256 i = 0; i < _ownersLength; i++) { address _currentOwner = _owners[i]; _TokenBalancesAll[i] = TokenBalances( _currentOwner, balanceOf[_currentOwner][id_] ); } return _TokenBalancesAll; } function getTotalSupplyOfIds(uint256[] calldata ids_) public view returns (uint256) { uint256 _tokens; for (uint256 i = 0; i < ids_.length; i++) { _tokens += getOwnersOfTokenId(ids_[i]).length; } return _tokens; } // URI Display Type Setting (Default to ERC721 Style) // 1 - ERC1155 Style // 2 - ERC721 Style // 3 - Mapping Style uint256 public URIType = 2; function _setURIType(uint256 uriType_) internal virtual { URIType = uriType_; } // ERC1155 URI string public _uri; function _setURI(string memory uri_) internal virtual { _uri = uri_; } // ERC721 URI (Override) string internal baseTokenURI; string internal baseTokenURI_EXT; function _setBaseTokenURI(string memory uri_) internal virtual { baseTokenURI = uri_; } function _setBaseTokenURI_EXT(string memory ext_) internal virtual { baseTokenURI_EXT = ext_; } function _toString(uint256 value_) internal pure returns (string memory) { if (value_ == 0) { return "0"; } uint256 _iterate = value_; uint256 _digits; while (_iterate != 0) { _digits++; _iterate /= 10; } // get digits in value_ bytes memory _buffer = new bytes(_digits); while (value_ != 0) { _digits--; _buffer[_digits] = bytes1(uint8( 48 + uint256(value_ % 10 ))); value_ /= 10; } // create bytes of value_ return string(_buffer); // return string converted bytes of value_ } // Mapping Style URI (Override) mapping(uint256 => string) public tokenIdToURI; function _setURIOfToken(uint256 id_, string memory uri_) internal virtual { tokenIdToURI[id_] = uri_; } // URI (0xInuarashi Version) function uri(uint256 id_) public virtual view returns (string memory) { // ERC1155 if (URIType == 1) return _uri; // ERC721 else if (URIType == 2) return string(abi.encodePacked(baseTokenURI, _toString(id_), baseTokenURI_EXT)); // Mapping else if (URIType == 3) return tokenIdToURI[id_]; else return ""; } // TokenURI (Because ERC1155 is weird) function tokenURI(uint256 tokenId_) public virtual view returns (string memory) { return string(abi.encodePacked( baseTokenURI, _toString(tokenId_), baseTokenURI_EXT)); } // Internal Logics function _isSameLength(uint256 a, uint256 b) internal pure returns (bool) { return a == b; } function _isApprovedOrOwner(address from_) internal view returns (bool) { return msg.sender == from_ || isApprovedForAll[from_][msg.sender]; } function _ERC1155Supported(address from_, address to_, uint256 id_, uint256 amount_, bytes memory data_) internal { require(to_.code.length == 0 ? to_ != address(0) : ERC1155TokenReceiver(to_).onERC1155Received( msg.sender, from_, id_, amount_, data_) == ERC1155TokenReceiver.onERC1155Received.selector, "_ERC1155Supported(): Unsupported Recipient!" ); } function _ERC1155BatchSupported(address from_, address to_, uint256[] memory ids_, uint256[] memory amounts_, bytes memory data_) internal { require(to_.code.length == 0 ? to_ != address(0) : ERC1155TokenReceiver(to_).onERC1155BatchReceived( msg.sender, from_, ids_, amounts_, data_) == ERC1155TokenReceiver.onERC1155BatchReceived.selector, "_ERC1155BatchSupported(): Unsupported Recipient!" ); } // ERC1155 Logics function setApprovalForAll(address operator_, bool approved_) public virtual { isApprovedForAll[msg.sender][operator_] = approved_; emit ApprovalForAll(msg.sender, operator_, approved_); } function _transfer(address from_, address to_, uint256 id_, uint256 amount_) internal { // _addEnumerableData is done before any balance calculation _addEnumerableData(to_, id_); // Balance calculation balanceOf[to_][id_] += amount_; balanceOf[from_][id_] -= amount_; // _removeEnumerableData is done after all balance calculation has been done _removeEnumerableData(from_, id_); } function safeTransferFrom(address from_, address to_, uint256 id_, uint256 amount_, bytes memory data_) public virtual { require(_isApprovedOrOwner(from_)); _transfer(from_, to_, id_, amount_); emit TransferSingle(msg.sender, from_, to_, id_, amount_); _ERC1155Supported(from_, to_, id_, amount_, data_); } function safeBatchTransferFrom(address from_, address to_, uint256[] memory ids_, uint256[] memory amounts_, bytes memory data_) public virtual { require(_isSameLength(ids_.length, amounts_.length)); require(_isApprovedOrOwner(from_)); for (uint256 i = 0; i < ids_.length; i++) { _transfer(from_, to_, ids_[i], amounts_[i]); } emit TransferBatch(msg.sender, from_, to_, ids_, amounts_); _ERC1155BatchSupported(from_, to_, ids_, amounts_, data_); } // Internal Mint / Burn Logic function _mintInternal(address to_, uint256 id_, uint256 amount_) internal { // _addEnumerable data is done before any balance calculation _addEnumerableData(to_, id_); balanceOf[to_][id_] += amount_; } function _mint(address to_, uint256 id_, uint256 amount_, bytes memory data_) internal { _mintInternal(to_, id_, amount_); emit TransferSingle(msg.sender, address(0), to_, id_, amount_); _ERC1155Supported(address(0), to_, id_, amount_, data_); } function _batchMint(address to_, uint256[] memory ids_, uint256[] memory amounts_, bytes memory data_) internal { require(_isSameLength(ids_.length, amounts_.length)); for (uint256 i = 0; i < ids_.length; i++) { _mintInternal(to_, ids_[i], amounts_[i]); } emit TransferBatch(msg.sender, address(0), to_, ids_, amounts_); _ERC1155BatchSupported(address(0), to_, ids_, amounts_, data_); } function _burnInternal(address from_, uint256 id_, uint256 amount_) internal { balanceOf[from_][id_] -= amount_; // _removeEnumerableData is done after all balance calculation has been done _removeEnumerableData(from_, id_); } function _burn(address from_, uint256 id_, uint256 amount_) internal { _burnInternal(from_, id_, amount_); emit TransferSingle(msg.sender, from_, address(0), id_, amount_); } function _batchBurn(address from_, uint256[] memory ids_, uint256[] memory amounts_) internal { require(_isSameLength(ids_.length, amounts_.length)); for (uint256 i = 0; i < ids_.length; i++) { _burnInternal(from_, ids_[i], amounts_[i]); } emit TransferBatch(msg.sender, from_, address(0), ids_, amounts_); } // ERC165 Logic function supportsInterface(bytes4 interfaceId_) public pure virtual returns (bool) { return interfaceId_ == 0x01ffc9a7 || // ERC165 Interface ID for ERC165 interfaceId_ == 0xd9b67a26 || // ERC165 Interface ID for ERC1155 interfaceId_ == 0x0e89341c; // ERC165 Interface ID for ERC1155MetadataURI } // View Functions function balanceOfBatch(address[] memory owners_, uint256[] memory ids_) public view virtual returns (uint256[] memory) { require(_isSameLength(owners_.length, ids_.length)); uint256[] memory _balances = new uint256[](owners_.length); for (uint256 i = 0; i < owners_.length; i++) { _balances[i] = balanceOf[owners_[i]][ids_[i]]; } return _balances; } } abstract contract Ownable { address public owner; constructor() { owner = msg.sender; } modifier onlyOwner { require(owner == msg.sender, "Not Owner!"); _; } function transferOwnership(address new_) external onlyOwner { owner = new_; } } abstract contract Minterable is Ownable { mapping(address => bool) public minters; modifier onlyMinter { require(minters[msg.sender], "Not Minter!"); _; } function setMinter(address address_, bool bool_) external onlyOwner { minters[address_] = bool_; } } abstract contract Burnerable is Ownable { mapping(address => bool) public burners; modifier onlyBurner { require(burners[msg.sender], "Not Burner!"); _; } function setBurner(address address_, bool bool_) external onlyOwner { burners[address_] = bool_; } } contract ERC1155GEnumerable is ERC1155IEnumerable, Ownable, Minterable, Burnerable { ///// Set the name and symbol of ERC1155I /// constructor(string memory name_, string memory symbol_) ERC1155IEnumerable(name_, symbol_) {} // Internal ETH Fallback + Sending to give some MATIC or NATIVETOKEN for user event Received(address from, uint amount); receive() external payable { emit Received(msg.sender, msg.value); } function _sendETH(address payable address_, uint256 amount_) internal { (bool success, ) = payable(address_).call{value: amount_}(""); require(success, "Transfer failed"); } ///// Adding all Ownable Functions for convenience ///// // URI Type function setURIType(uint256 uriType_) external onlyOwner { _setURIType(uriType_); } // Type 1 URI function setURI(string calldata uri_) external onlyOwner { _setURI(uri_); } // Type 2 URI function setBaseTokenURI(string calldata uri_) external onlyOwner { _setBaseTokenURI(uri_); } function setBaseTokenURI_EXT(string calldata ext_) external onlyOwner { _setBaseTokenURI_EXT(ext_); } // Type 3 URI function setURIOfToken(uint256 id_, string calldata uri_) external onlyOwner { _setURIOfToken(id_, uri_); } // Here, we implement the soulbound function overrides. // Also, it uses require statements instead of revert or complete removal for // global compliance of verification bots (some bots break on function reverts) function safeTransferFrom(address from_, address to_, uint256 id_, uint256 amount_, bytes memory data_) public override { // We require amount_ to be 0 effectively disabling transfers require(amount_ == 0, "ERC1155G: safeTransferFrom(): Soulbound!"); } function safeBatchTransferFrom(address from_, address to_, uint256[] memory ids_, uint256[] memory amounts_, bytes memory data_) public override { require(_isSameLength(ids_.length, amounts_.length), "ERC1155G: safeBatchTransferFrom(): Array Lengths Mismatch!"); for (uint256 i = 0; i < amounts_.length; i++) { require(amounts_[i] == 0, "ERC1155G: safeBatchTransferFrom(): Soulbound!"); } } function setApprovalForAll(address operator_, bool approved_) public override { // We require approved_ to false effectively disabling approvals require(!approved_, "ERC1155G: setApprovalForAll(): Soulbound!"); } // Here, we add some airdrop and burning logic for project creators to have access. // These are accessed through my Burnable and Mintable modules. function _airdrop(address to_, uint256 id_, uint256 amount_, bytes memory data_) internal { // // This makes sure we are not airdropping anyone duplicate tokens. // require(balanceOf[to_][id_] == 0, // "ERC1155G: _airdrop(): user already has token!"); // GAS Chip Specific Modification for(uint256 i = 0; i <= 3; i++) { require(balanceOf[to_][i] == 0, "ERC1155G: GAS Chip _airdrop(): user already has a chip!"); } _mint(to_, id_, amount_, data_); } // This _ownerMint function overrides the balanceOf check. This is used generally // only to grant certain specific users above the allowed amount of tokens! // Use wisely! function ownerAirdropOverride(address to_, uint256 id_, uint256 amount_, bytes memory data_) external onlyOwner { _mint(to_, id_, amount_, data_); } // Airdrop (Minterable) function airdropSingleToManyPlusETHInBalance(address payable[] calldata tos_, uint256 id_, uint256 amount_, uint256 ethAmount_, bytes calldata data_) external onlyMinter { // Contract Balance should be higher than amount to send require(address(this).balance >= ethAmount_ * tos_.length, "ERC1155G: airdropSingleToManyPlusETHInBalance(): Not enough ETH balance!"); // Start airdropping and sending everyone ETH for (uint256 i = 0; i < tos_.length; i++) { _airdrop(tos_[i], id_, amount_, data_); _sendETH(tos_[i], ethAmount_); } } function airdropSingleToManyPlusETHInMsgValue(address payable[] calldata tos_, uint256 id_, uint256 amount_, uint256 ethAmount_, bytes calldata data_) external payable onlyMinter { // msg.value should be the same as amount to send require(msg.value == ethAmount_ * tos_.length, "ERC1155G: airdropSingleToManyPlusETHInMsgValue(): Incorrect msg.value!"); // Start airdropping and sending everyone ETH for (uint256 i = 0; i < tos_.length; i++) { _airdrop(tos_[i], id_, amount_, data_); _sendETH(tos_[i], ethAmount_); } } // BurnFrom (Burnerable) function burnFromSingle(address[] calldata froms_, uint256 id_, uint256 amount_) external onlyBurner { // Start burning for (uint256 i = 0; i < froms_.length; i++) { // This will revert an underflow if burn amount exceeds balanceOf _burn(froms_[i], id_, amount_); } } function burnFromMany(address[] calldata froms_, uint256[] calldata ids_, uint256[] calldata amounts_) external onlyBurner { // Make sure all the calldata arrays are the same length require(_isSameLength(froms_.length, ids_.length) && _isSameLength(froms_.length, amounts_.length), "ERC1155G: burnFromMany(): Array lengths mismatch!"); // Start burning for (uint256 i = 0; i < froms_.length; i++) { // This will revert an underflow if burn amount exceeds balanceOf _burn(froms_[i], ids_[i], amounts_[i]); } } } contract GASChip is ERC1155GEnumerable { // Set the name and symbol constructor() ERC1155GEnumerable("Gangster All Star Chips", "GASCHIP") {} function setName(string calldata name_) external onlyOwner { name = name_; } function setSymbol(string calldata symbol_) external onlyOwner { symbol = symbol_; } ///// Choose Your Gang Functions ///// function _gangIsChoosable(uint256 gangId_) internal pure returns (bool) { return gangId_ == 1 || gangId_ == 2 || gangId_ == 3; } function chooseGang(uint256 gangId_) external { require(balanceOf[msg.sender][0] > 0, "You don't have a blank chip!"); require(_gangIsChoosable(gangId_), "You cannot choose this gang!"); // Burn the blank chip from msg.sender _burn(msg.sender, 0, 1); // Mint the gang chip for msg.sender _mint(msg.sender, gangId_, 1, ""); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Received","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":"amounts_","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":"amount_","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"},{"inputs":[],"name":"URIType","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable[]","name":"tos_","type":"address[]"},{"internalType":"uint256","name":"id_","type":"uint256"},{"internalType":"uint256","name":"amount_","type":"uint256"},{"internalType":"uint256","name":"ethAmount_","type":"uint256"},{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"airdropSingleToManyPlusETHInBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable[]","name":"tos_","type":"address[]"},{"internalType":"uint256","name":"id_","type":"uint256"},{"internalType":"uint256","name":"amount_","type":"uint256"},{"internalType":"uint256","name":"ethAmount_","type":"uint256"},{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"airdropSingleToManyPlusETHInMsgValue","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"owners_","type":"address[]"},{"internalType":"uint256[]","name":"ids_","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"froms_","type":"address[]"},{"internalType":"uint256[]","name":"ids_","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts_","type":"uint256[]"}],"name":"burnFromMany","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"froms_","type":"address[]"},{"internalType":"uint256","name":"id_","type":"uint256"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"burnFromSingle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"burners","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"gangId_","type":"uint256"}],"name":"chooseGang","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id_","type":"uint256"}],"name":"getOwnersOfTokenId","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id_","type":"uint256"}],"name":"getOwnersOfTokenIdAndBalance","outputs":[{"components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"}],"internalType":"struct ERC1155IEnumerable.TokenBalances[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"ids_","type":"uint256[]"}],"name":"getTotalSupplyOfIds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"minters","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256","name":"id_","type":"uint256"},{"internalType":"uint256","name":"amount_","type":"uint256"},{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"ownerAirdropOverride","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from_","type":"address"},{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256[]","name":"ids_","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts_","type":"uint256[]"},{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"safeBatchTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from_","type":"address"},{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256","name":"id_","type":"uint256"},{"internalType":"uint256","name":"amount_","type":"uint256"},{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator_","type":"address"},{"internalType":"bool","name":"approved_","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"uri_","type":"string"}],"name":"setBaseTokenURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"ext_","type":"string"}],"name":"setBaseTokenURI_EXT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"address_","type":"address"},{"internalType":"bool","name":"bool_","type":"bool"}],"name":"setBurner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"address_","type":"address"},{"internalType":"bool","name":"bool_","type":"bool"}],"name":"setMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"}],"name":"setName","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"symbol_","type":"string"}],"name":"setSymbol","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"uri_","type":"string"}],"name":"setURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id_","type":"uint256"},{"internalType":"string","name":"uri_","type":"string"}],"name":"setURIOfToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"uriType_","type":"uint256"}],"name":"setURIType","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId_","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenIdToURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenToOwners","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"tokenToOwnersToIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"new_","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id_","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405260026006553480156200001657600080fd5b50604080518082018252601781527f47616e677374657220416c6c20537461722043686970730000000000000000006020808301918252835180850190945260078452660474153434849560cc1b908401528151919291839183916200007f91600091620000b3565b50805162000095906001906020840190620000b3565b5050600b80546001600160a01b031916331790555062000196915050565b828054620000c19062000159565b90600052602060002090601f016020900481019282620000e5576000855562000130565b82601f106200010057805160ff191683800117855562000130565b8280016001018555821562000130579182015b828111156200013057825182559160200191906001019062000113565b506200013e92915062000142565b5090565b5b808211156200013e576000815560010162000143565b600181811c908216806200016e57607f821691505b602082108114156200019057634e487b7160e01b600052602260045260246000fd5b50919050565b612bdf80620001a66000396000f3fe6080604052600436106102285760003560e01c80637480512711610123578063bb6eef08116100ab578063e985e9c51161006f578063e985e9c514610705578063ee698d3e14610740578063f242432a14610760578063f2fde38b14610780578063f46eccc4146107a057600080fd5b8063bb6eef0814610665578063c47f002714610685578063c87b56dd146106a5578063cf456ae7146106c5578063dd184008146106e557600080fd5b806395d89b41116100f257806395d89b41146105dd5780639a81e442146105f25780639dd745af14610605578063a22cb46514610625578063b84c82461461064557600080fd5b8063748051271461053557806382b493b8146105625780638cd16a76146105785780638da5cb5b146105a557600080fd5b80630dccc9ad116101b15780633eba595e116101755780633eba595e146104705780634e1273f4146104a85780634f30f381146104d557806367bae9cb146104f557806374343af11461051557600080fd5b80630dccc9ad146103db5780630e89341c146103f05780632819b11b146104105780632eb2c2d61461043057806330176e131461045057600080fd5b806302ffaed1116101f857806302ffaed11461033657806303d41e0e1461035657806306fdde03146103865780630d79c3811461039b5780630d895ee1146103bb57600080fd5b8062fdd58e1461026c57806301ffc9a7146102b75780630221e785146102e757806302fe53051461031457600080fd5b3661026757604080513381523460208201527f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874910160405180910390a1005b600080fd5b34801561027857600080fd5b506102a4610287366004612341565b600260209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b3480156102c357600080fd5b506102d76102d236600461264d565b6107d0565b60405190151581526020016102ae565b3480156102f357600080fd5b506103076103023660046126bc565b610822565b6040516102ae9190612977565b34801561032057600080fd5b5061033461032f366004612687565b6108bc565b005b34801561034257600080fd5b50610334610351366004612687565b610932565b34801561036257600080fd5b506102d761037136600461219c565b600d6020526000908152604090205460ff1681565b34801561039257600080fd5b5061030761099b565b3480156103a757600080fd5b506103346103b63660046126bc565b6109a8565b3480156103c757600080fd5b506103346103d636600461230e565b610a90565b3480156103e757600080fd5b50610307610ae5565b3480156103fc57600080fd5b5061030761040b3660046126bc565b610af2565b34801561041c57600080fd5b5061033461042b366004612580565b610c09565b34801561043c57600080fd5b5061033461044b3660046121f9565b610da5565b34801561045c57600080fd5b5061033461046b366004612687565b610ec1565b34801561047c57600080fd5b506102a461048b3660046126d5565b600560209081526000928352604080842090915290825290205481565b3480156104b457600080fd5b506104c86104c33660046124b8565b610f2a565b6040516102ae919061293f565b3480156104e157600080fd5b506103346104f03660046126bc565b611033565b34801561050157600080fd5b50610334610510366004612468565b611066565b34801561052157600080fd5b506103346105303660046126fa565b611108565b34801561054157600080fd5b506105556105503660046126bc565b611177565b6040516102ae919061289a565b34801561056e57600080fd5b506102a460065481565b34801561058457600080fd5b506105986105933660046126bc565b6111e2565b6040516102ae91906128e7565b3480156105b157600080fd5b50600b546105c5906001600160a01b031681565b6040516001600160a01b0390911681526020016102ae565b3480156105e957600080fd5b506103076112f3565b610334610600366004612580565b611300565b34801561061157600080fd5b506105c5610620366004612745565b611421565b34801561063157600080fd5b5061033461064036600461230e565b611459565b34801561065157600080fd5b50610334610660366004612687565b6114b9565b34801561067157600080fd5b506103346106803660046123cf565b6114ef565b34801561069157600080fd5b506103346106a0366004612687565b611637565b3480156106b157600080fd5b506103076106c03660046126bc565b61166d565b3480156106d157600080fd5b506103346106e036600461230e565b61167a565b3480156106f157600080fd5b506102a461070036600461260c565b6116cf565b34801561071157600080fd5b506102d76107203660046121c0565b600360209081526000928352604080842090915290825290205460ff1681565b34801561074c57600080fd5b5061033461075b36600461236d565b61171d565b34801561076c57600080fd5b5061033461077b3660046122a6565b611759565b34801561078c57600080fd5b5061033461079b36600461219c565b6117b8565b3480156107ac57600080fd5b506102d76107bb36600461219c565b600c6020526000908152604090205460ff1681565b60006301ffc9a760e01b6001600160e01b0319831614806108015750636cdb3d1360e11b6001600160e01b03198316145b8061081c57506303a24d0760e21b6001600160e01b03198316145b92915050565b600a602052600090815260409020805461083b90612aa6565b80601f016020809104026020016040519081016040528092919081815260200182805461086790612aa6565b80156108b45780601f10610889576101008083540402835291602001916108b4565b820191906000526020600020905b81548152906001019060200180831161089757829003601f168201915b505050505081565b600b546001600160a01b031633146108ef5760405162461bcd60e51b81526004016108e69061298a565b60405180910390fd5b61092e82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061180492505050565b5050565b600b546001600160a01b0316331461095c5760405162461bcd60e51b81526004016108e69061298a565b61092e82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061181792505050565b6000805461083b90612aa6565b336000908152600260209081526040808320838052909152902054610a0f5760405162461bcd60e51b815260206004820152601c60248201527f596f7520646f6e27742068617665206120626c616e6b2063686970210000000060448201526064016108e6565b610a188161182a565b610a645760405162461bcd60e51b815260206004820152601c60248201527f596f752063616e6e6f742063686f6f736520746869732067616e67210000000060448201526064016108e6565b610a713360006001611848565b610a8d33826001604051806020016040528060008152506118a1565b50565b600b546001600160a01b03163314610aba5760405162461bcd60e51b81526004016108e69061298a565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6007805461083b90612aa6565b606060065460011415610b915760078054610b0c90612aa6565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3890612aa6565b8015610b855780601f10610b5a57610100808354040283529160200191610b85565b820191906000526020600020905b815481529060010190602001808311610b6857829003601f168201915b50505050509050919050565b60065460021415610bd1576008610ba783611903565b6009604051602001610bbb9392919061282d565b6040516020818303038152906040529050919050565b60065460031415610bf5576000828152600a602052604090208054610b0c90612aa6565b505060408051602081019091526000815290565b336000908152600c602052604090205460ff16610c565760405162461bcd60e51b815260206004820152600b60248201526a4e6f74204d696e7465722160a81b60448201526064016108e6565b610c608684612a2d565b471015610ce65760405162461bcd60e51b815260206004820152604860248201527f45524331313535473a2061697264726f7053696e676c65546f4d616e79506c7560448201527f73455448496e42616c616e636528293a204e6f7420656e6f756768204554482060648201526762616c616e63652160c01b608482015260a4016108e6565b60005b86811015610d9b57610d59888883818110610d0657610d06612b52565b9050602002016020810190610d1b919061219c565b878786868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a0992505050565b610d89888883818110610d6e57610d6e612b52565b9050602002016020810190610d83919061219c565b85611aca565b80610d9381612ae1565b915050610ce9565b5050505050505050565b8251825114610e1c5760405162461bcd60e51b815260206004820152603a60248201527f45524331313535473a207361666542617463685472616e7366657246726f6d2860448201527f293a204172726179204c656e67746873204d69736d617463682100000000000060648201526084016108e6565b60005b8251811015610eb957828181518110610e3a57610e3a612b52565b6020026020010151600014610ea75760405162461bcd60e51b815260206004820152602d60248201527f45524331313535473a207361666542617463685472616e7366657246726f6d2860448201526c293a20536f756c626f756e642160981b60648201526084016108e6565b80610eb181612ae1565b915050610e1f565b505050505050565b600b546001600160a01b03163314610eeb5760405162461bcd60e51b81526004016108e69061298a565b61092e82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b5f92505050565b6060610f37835183511490565b610f4057600080fd5b600083516001600160401b03811115610f5b57610f5b612b68565b604051908082528060200260200182016040528015610f84578160200160208202803683370190505b50905060005b845181101561102b5760026000868381518110610fa957610fa9612b52565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000858381518110610fe557610fe5612b52565b602002602001015181526020019081526020016000205482828151811061100e5761100e612b52565b60209081029190910101528061102381612ae1565b915050610f8a565b509392505050565b600b546001600160a01b0316331461105d5760405162461bcd60e51b81526004016108e69061298a565b610a8d81600655565b336000908152600d602052604090205460ff166110b35760405162461bcd60e51b815260206004820152600b60248201526a4e6f74204275726e65722160a81b60448201526064016108e6565b60005b83811015611101576110ef8585838181106110d3576110d3612b52565b90506020020160208101906110e8919061219c565b8484611848565b806110f981612ae1565b9150506110b6565b5050505050565b600b546001600160a01b031633146111325760405162461bcd60e51b81526004016108e69061298a565b6111728383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b7292505050565b505050565b600081815260046020908152604091829020805483518184028101840190945280845260609392830182828015610b8557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116111b95750505050509050919050565b606060006111ef83611177565b80519091506000816001600160401b0381111561120e5761120e612b68565b60405190808252806020026020018201604052801561125357816020015b604080518082019091526000808252602082015281526020019060019003908161122c5790505b50905060005b828110156112ea57600084828151811061127557611275612b52565b6020908102919091018101516040805180820182526001600160a01b0383168082526000908152600285528281208c8252855291909120549281019290925284519092508490849081106112cb576112cb612b52565b60200260200101819052505080806112e290612ae1565b915050611259565b50949350505050565b6001805461083b90612aa6565b336000908152600c602052604090205460ff1661134d5760405162461bcd60e51b815260206004820152600b60248201526a4e6f74204d696e7465722160a81b60448201526064016108e6565b6113578684612a2d565b34146113da5760405162461bcd60e51b815260206004820152604660248201527f45524331313535473a2061697264726f7053696e676c65546f4d616e79506c7560448201527f73455448496e4d736756616c756528293a20496e636f7272656374206d73672e60648201526576616c75652160d01b608482015260a4016108e6565b60005b86811015610d9b576113fa888883818110610d0657610d06612b52565b61140f888883818110610d6e57610d6e612b52565b8061141981612ae1565b9150506113dd565b6004602052816000526040600020818154811061143d57600080fd5b6000918252602090912001546001600160a01b03169150829050565b801561092e5760405162461bcd60e51b815260206004820152602960248201527f45524331313535473a20736574417070726f76616c466f72416c6c28293a20536044820152686f756c626f756e642160b81b60648201526084016108e6565b600b546001600160a01b031633146114e35760405162461bcd60e51b81526004016108e69061298a565b61117260018383611f22565b336000908152600d602052604090205460ff1661153c5760405162461bcd60e51b815260206004820152600b60248201526a4e6f74204275726e65722160a81b60448201526064016108e6565b828514801561154a57508085145b6115b05760405162461bcd60e51b815260206004820152603160248201527f45524331313535473a206275726e46726f6d4d616e7928293a204172726179206044820152706c656e67746873206d69736d617463682160781b60648201526084016108e6565b60005b8581101561162e5761161c8787838181106115d0576115d0612b52565b90506020020160208101906115e5919061219c565b8686848181106115f7576115f7612b52565b9050602002013585858581811061161057611610612b52565b90506020020135611848565b8061162681612ae1565b9150506115b3565b50505050505050565b600b546001600160a01b031633146116615760405162461bcd60e51b81526004016108e69061298a565b61117260008383611f22565b60606008610ba783611903565b600b546001600160a01b031633146116a45760405162461bcd60e51b81526004016108e69061298a565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b60008060005b8381101561102b576116fe8585838181106116f2576116f2612b52565b90506020020135611177565b516117099083612a01565b91508061171581612ae1565b9150506116d5565b600b546001600160a01b031633146117475760405162461bcd60e51b81526004016108e69061298a565b611753848484846118a1565b50505050565b81156111015760405162461bcd60e51b815260206004820152602860248201527f45524331313535473a20736166655472616e7366657246726f6d28293a20536f604482015267756c626f756e642160c01b60648201526084016108e6565b600b546001600160a01b031633146117e25760405162461bcd60e51b81526004016108e69061298a565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b805161092e906007906020840190611fa6565b805161092e906009906020840190611fa6565b6000816001148061183b5750816002145b8061081c57505060031490565b611853838383611b91565b60408051838152602081018390526000916001600160a01b0386169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4505050565b6118ac848484611bd4565b60408051848152602081018490526001600160a01b0386169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4611753600085858585611c1b565b6060816119275750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611951578061193b81612ae1565b915061194a9050600a83612a19565b915061192b565b6000816001600160401b0381111561196b5761196b612b68565b6040519080825280601f01601f191660200182016040528015611995576020820181803683370190505b5090505b8415611a0157816119a981612a8f565b92506119b89050600a86612afc565b6119c3906030612a01565b60f81b8183815181106119d8576119d8612b52565b60200101906001600160f81b031916908160001a9053506119fa600a86612a19565b9450611999565b949350505050565b60005b60038111611abd576001600160a01b038516600090815260026020908152604080832084845290915290205415611aab5760405162461bcd60e51b815260206004820152603760248201527f45524331313535473a204741532043686970205f61697264726f7028293a207560448201527f73657220616c726561647920686173206120636869702100000000000000000060648201526084016108e6565b80611ab581612ae1565b915050611a0c565b50611753848484846118a1565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611b17576040519150601f19603f3d011682016040523d82523d6000602084013e611b1c565b606091505b50509050806111725760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016108e6565b805161092e906008906020840190611fa6565b6000828152600a60209081526040909120825161117292840190611fa6565b6001600160a01b038316600090815260026020908152604080832085845290915281208054839290611bc4908490612a4c565b9091555061117290508383611d30565b611bde8383611ea5565b6001600160a01b038316600090815260026020908152604080832085845290915281208054839290611c11908490612a01565b9091555050505050565b6001600160a01b0384163b15611cc35760405163f23a6e6160e01b808252906001600160a01b0386169063f23a6e6190611c619033908a90899089908990600401612860565b602060405180830381600087803b158015611c7b57600080fd5b505af1158015611c8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb3919061266a565b6001600160e01b03191614611cd0565b6001600160a01b03841615155b6111015760405162461bcd60e51b815260206004820152602b60248201527f5f45524331313535537570706f7274656428293a20556e737570706f7274656460448201526a20526563697069656e742160a81b60648201526084016108e6565b6001600160a01b038216600090815260026020908152604080832084845290915290205461092e5760008181526005602090815260408083206001600160a01b03861684528252808320548484526004909252822054909190611d9590600190612a4c565b9050808214611e3e576000838152600460205260408120805483908110611dbe57611dbe612b52565b60009182526020808320909101548683526004909152604090912080546001600160a01b039092169250829185908110611dfa57611dfa612b52565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790558682526005815260408083209490931682529290925290208290555b6000838152600460205260409020805480611e5b57611e5b612b3c565b60008281526020808220830160001990810180546001600160a01b03191690559092019092558482526005815260408083206001600160a01b038816845290915281205550505050565b6001600160a01b038216600090815260026020908152604080832084845290915290205461092e5760008181526004602090815260408083208054600181018255908452828420810180546001600160a01b0319166001600160a01b03979097169687179055938352600582528083209483529390529190912055565b828054611f2e90612aa6565b90600052602060002090601f016020900481019282611f505760008555611f96565b82601f10611f695782800160ff19823516178555611f96565b82800160010185558215611f96579182015b82811115611f96578235825591602001919060010190611f7b565b50611fa292915061201a565b5090565b828054611fb290612aa6565b90600052602060002090601f016020900481019282611fd45760008555611f96565b82601f10611fed57805160ff1916838001178555611f96565b82800160010185558215611f96579182015b82811115611f96578251825591602001919060010190611fff565b5b80821115611fa2576000815560010161201b565b60008083601f84011261204157600080fd5b5081356001600160401b0381111561205857600080fd5b6020830191508360208260051b850101111561207357600080fd5b9250929050565b600082601f83011261208b57600080fd5b813560206120a061209b836129de565b6129ae565b80838252828201915082860187848660051b89010111156120c057600080fd5b60005b858110156120df578135845292840192908401906001016120c3565b5090979650505050505050565b60008083601f8401126120fe57600080fd5b5081356001600160401b0381111561211557600080fd5b60208301915083602082850101111561207357600080fd5b600082601f83011261213e57600080fd5b81356001600160401b0381111561215757612157612b68565b61216a601f8201601f19166020016129ae565b81815284602083860101111561217f57600080fd5b816020850160208301376000918101602001919091529392505050565b6000602082840312156121ae57600080fd5b81356121b981612b7e565b9392505050565b600080604083850312156121d357600080fd5b82356121de81612b7e565b915060208301356121ee81612b7e565b809150509250929050565b600080600080600060a0868803121561221157600080fd5b853561221c81612b7e565b9450602086013561222c81612b7e565b935060408601356001600160401b038082111561224857600080fd5b61225489838a0161207a565b9450606088013591508082111561226a57600080fd5b61227689838a0161207a565b9350608088013591508082111561228c57600080fd5b506122998882890161212d565b9150509295509295909350565b600080600080600060a086880312156122be57600080fd5b85356122c981612b7e565b945060208601356122d981612b7e565b9350604086013592506060860135915060808601356001600160401b0381111561230257600080fd5b6122998882890161212d565b6000806040838503121561232157600080fd5b823561232c81612b7e565b9150602083013580151581146121ee57600080fd5b6000806040838503121561235457600080fd5b823561235f81612b7e565b946020939093013593505050565b6000806000806080858703121561238357600080fd5b843561238e81612b7e565b9350602085013592506040850135915060608501356001600160401b038111156123b757600080fd5b6123c38782880161212d565b91505092959194509250565b600080600080600080606087890312156123e857600080fd5b86356001600160401b03808211156123ff57600080fd5b61240b8a838b0161202f565b9098509650602089013591508082111561242457600080fd5b6124308a838b0161202f565b9096509450604089013591508082111561244957600080fd5b5061245689828a0161202f565b979a9699509497509295939492505050565b6000806000806060858703121561247e57600080fd5b84356001600160401b0381111561249457600080fd5b6124a08782880161202f565b90989097506020870135966040013595509350505050565b600080604083850312156124cb57600080fd5b82356001600160401b03808211156124e257600080fd5b818501915085601f8301126124f657600080fd5b8135602061250661209b836129de565b8083825282820191508286018a848660051b890101111561252657600080fd5b600096505b8487101561255257803561253e81612b7e565b83526001969096019591830191830161252b565b509650508601359250508082111561256957600080fd5b506125768582860161207a565b9150509250929050565b600080600080600080600060a0888a03121561259b57600080fd5b87356001600160401b03808211156125b257600080fd5b6125be8b838c0161202f565b909950975060208a0135965060408a0135955060608a0135945060808a01359150808211156125ec57600080fd5b506125f98a828b016120ec565b989b979a50959850939692959293505050565b6000806020838503121561261f57600080fd5b82356001600160401b0381111561263557600080fd5b6126418582860161202f565b90969095509350505050565b60006020828403121561265f57600080fd5b81356121b981612b93565b60006020828403121561267c57600080fd5b81516121b981612b93565b6000806020838503121561269a57600080fd5b82356001600160401b038111156126b057600080fd5b612641858286016120ec565b6000602082840312156126ce57600080fd5b5035919050565b600080604083850312156126e857600080fd5b8235915060208301356121ee81612b7e565b60008060006040848603121561270f57600080fd5b8335925060208401356001600160401b0381111561272c57600080fd5b612738868287016120ec565b9497909650939450505050565b6000806040838503121561275857600080fd5b50508035926020909101359150565b6000815180845261277f816020860160208601612a63565b601f01601f19169290920160200192915050565b8054600090600181811c90808316806127ad57607f831692505b60208084108214156127cf57634e487b7160e01b600052602260045260246000fd5b8180156127e357600181146127f457612821565b60ff19861689528489019650612821565b60008881526020902060005b868110156128195781548b820152908501908301612800565b505084890196505b50505050505092915050565b60006128398286612793565b8451612849818360208901612a63565b61285581830186612793565b979650505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061285590830184612767565b6020808252825182820181905260009190848201906040850190845b818110156128db5783516001600160a01b0316835292840192918401916001016128b6565b50909695505050505050565b602080825282518282018190526000919060409081850190868401855b8281101561293257815180516001600160a01b03168552860151868501529284019290850190600101612904565b5091979650505050505050565b6020808252825182820181905260009190848201906040850190845b818110156128db5783518352928401929184019160010161295b565b6020815260006121b96020830184612767565b6020808252600a90820152694e6f74204f776e65722160b01b604082015260600190565b604051601f8201601f191681016001600160401b03811182821017156129d6576129d6612b68565b604052919050565b60006001600160401b038211156129f7576129f7612b68565b5060051b60200190565b60008219821115612a1457612a14612b10565b500190565b600082612a2857612a28612b26565b500490565b6000816000190483118215151615612a4757612a47612b10565b500290565b600082821015612a5e57612a5e612b10565b500390565b60005b83811015612a7e578181015183820152602001612a66565b838111156117535750506000910152565b600081612a9e57612a9e612b10565b506000190190565b600181811c90821680612aba57607f821691505b60208210811415612adb57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612af557612af5612b10565b5060010190565b600082612b0b57612b0b612b26565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610a8d57600080fd5b6001600160e01b031981168114610a8d57600080fdfea2646970667358221220e83827315243ccf2613f58034872b6f59618acde0f3443079a044853a373f85364736f6c63430008070033
Deployed Bytecode
0x6080604052600436106102285760003560e01c80637480512711610123578063bb6eef08116100ab578063e985e9c51161006f578063e985e9c514610705578063ee698d3e14610740578063f242432a14610760578063f2fde38b14610780578063f46eccc4146107a057600080fd5b8063bb6eef0814610665578063c47f002714610685578063c87b56dd146106a5578063cf456ae7146106c5578063dd184008146106e557600080fd5b806395d89b41116100f257806395d89b41146105dd5780639a81e442146105f25780639dd745af14610605578063a22cb46514610625578063b84c82461461064557600080fd5b8063748051271461053557806382b493b8146105625780638cd16a76146105785780638da5cb5b146105a557600080fd5b80630dccc9ad116101b15780633eba595e116101755780633eba595e146104705780634e1273f4146104a85780634f30f381146104d557806367bae9cb146104f557806374343af11461051557600080fd5b80630dccc9ad146103db5780630e89341c146103f05780632819b11b146104105780632eb2c2d61461043057806330176e131461045057600080fd5b806302ffaed1116101f857806302ffaed11461033657806303d41e0e1461035657806306fdde03146103865780630d79c3811461039b5780630d895ee1146103bb57600080fd5b8062fdd58e1461026c57806301ffc9a7146102b75780630221e785146102e757806302fe53051461031457600080fd5b3661026757604080513381523460208201527f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874910160405180910390a1005b600080fd5b34801561027857600080fd5b506102a4610287366004612341565b600260209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b3480156102c357600080fd5b506102d76102d236600461264d565b6107d0565b60405190151581526020016102ae565b3480156102f357600080fd5b506103076103023660046126bc565b610822565b6040516102ae9190612977565b34801561032057600080fd5b5061033461032f366004612687565b6108bc565b005b34801561034257600080fd5b50610334610351366004612687565b610932565b34801561036257600080fd5b506102d761037136600461219c565b600d6020526000908152604090205460ff1681565b34801561039257600080fd5b5061030761099b565b3480156103a757600080fd5b506103346103b63660046126bc565b6109a8565b3480156103c757600080fd5b506103346103d636600461230e565b610a90565b3480156103e757600080fd5b50610307610ae5565b3480156103fc57600080fd5b5061030761040b3660046126bc565b610af2565b34801561041c57600080fd5b5061033461042b366004612580565b610c09565b34801561043c57600080fd5b5061033461044b3660046121f9565b610da5565b34801561045c57600080fd5b5061033461046b366004612687565b610ec1565b34801561047c57600080fd5b506102a461048b3660046126d5565b600560209081526000928352604080842090915290825290205481565b3480156104b457600080fd5b506104c86104c33660046124b8565b610f2a565b6040516102ae919061293f565b3480156104e157600080fd5b506103346104f03660046126bc565b611033565b34801561050157600080fd5b50610334610510366004612468565b611066565b34801561052157600080fd5b506103346105303660046126fa565b611108565b34801561054157600080fd5b506105556105503660046126bc565b611177565b6040516102ae919061289a565b34801561056e57600080fd5b506102a460065481565b34801561058457600080fd5b506105986105933660046126bc565b6111e2565b6040516102ae91906128e7565b3480156105b157600080fd5b50600b546105c5906001600160a01b031681565b6040516001600160a01b0390911681526020016102ae565b3480156105e957600080fd5b506103076112f3565b610334610600366004612580565b611300565b34801561061157600080fd5b506105c5610620366004612745565b611421565b34801561063157600080fd5b5061033461064036600461230e565b611459565b34801561065157600080fd5b50610334610660366004612687565b6114b9565b34801561067157600080fd5b506103346106803660046123cf565b6114ef565b34801561069157600080fd5b506103346106a0366004612687565b611637565b3480156106b157600080fd5b506103076106c03660046126bc565b61166d565b3480156106d157600080fd5b506103346106e036600461230e565b61167a565b3480156106f157600080fd5b506102a461070036600461260c565b6116cf565b34801561071157600080fd5b506102d76107203660046121c0565b600360209081526000928352604080842090915290825290205460ff1681565b34801561074c57600080fd5b5061033461075b36600461236d565b61171d565b34801561076c57600080fd5b5061033461077b3660046122a6565b611759565b34801561078c57600080fd5b5061033461079b36600461219c565b6117b8565b3480156107ac57600080fd5b506102d76107bb36600461219c565b600c6020526000908152604090205460ff1681565b60006301ffc9a760e01b6001600160e01b0319831614806108015750636cdb3d1360e11b6001600160e01b03198316145b8061081c57506303a24d0760e21b6001600160e01b03198316145b92915050565b600a602052600090815260409020805461083b90612aa6565b80601f016020809104026020016040519081016040528092919081815260200182805461086790612aa6565b80156108b45780601f10610889576101008083540402835291602001916108b4565b820191906000526020600020905b81548152906001019060200180831161089757829003601f168201915b505050505081565b600b546001600160a01b031633146108ef5760405162461bcd60e51b81526004016108e69061298a565b60405180910390fd5b61092e82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061180492505050565b5050565b600b546001600160a01b0316331461095c5760405162461bcd60e51b81526004016108e69061298a565b61092e82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061181792505050565b6000805461083b90612aa6565b336000908152600260209081526040808320838052909152902054610a0f5760405162461bcd60e51b815260206004820152601c60248201527f596f7520646f6e27742068617665206120626c616e6b2063686970210000000060448201526064016108e6565b610a188161182a565b610a645760405162461bcd60e51b815260206004820152601c60248201527f596f752063616e6e6f742063686f6f736520746869732067616e67210000000060448201526064016108e6565b610a713360006001611848565b610a8d33826001604051806020016040528060008152506118a1565b50565b600b546001600160a01b03163314610aba5760405162461bcd60e51b81526004016108e69061298a565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6007805461083b90612aa6565b606060065460011415610b915760078054610b0c90612aa6565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3890612aa6565b8015610b855780601f10610b5a57610100808354040283529160200191610b85565b820191906000526020600020905b815481529060010190602001808311610b6857829003601f168201915b50505050509050919050565b60065460021415610bd1576008610ba783611903565b6009604051602001610bbb9392919061282d565b6040516020818303038152906040529050919050565b60065460031415610bf5576000828152600a602052604090208054610b0c90612aa6565b505060408051602081019091526000815290565b336000908152600c602052604090205460ff16610c565760405162461bcd60e51b815260206004820152600b60248201526a4e6f74204d696e7465722160a81b60448201526064016108e6565b610c608684612a2d565b471015610ce65760405162461bcd60e51b815260206004820152604860248201527f45524331313535473a2061697264726f7053696e676c65546f4d616e79506c7560448201527f73455448496e42616c616e636528293a204e6f7420656e6f756768204554482060648201526762616c616e63652160c01b608482015260a4016108e6565b60005b86811015610d9b57610d59888883818110610d0657610d06612b52565b9050602002016020810190610d1b919061219c565b878786868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a0992505050565b610d89888883818110610d6e57610d6e612b52565b9050602002016020810190610d83919061219c565b85611aca565b80610d9381612ae1565b915050610ce9565b5050505050505050565b8251825114610e1c5760405162461bcd60e51b815260206004820152603a60248201527f45524331313535473a207361666542617463685472616e7366657246726f6d2860448201527f293a204172726179204c656e67746873204d69736d617463682100000000000060648201526084016108e6565b60005b8251811015610eb957828181518110610e3a57610e3a612b52565b6020026020010151600014610ea75760405162461bcd60e51b815260206004820152602d60248201527f45524331313535473a207361666542617463685472616e7366657246726f6d2860448201526c293a20536f756c626f756e642160981b60648201526084016108e6565b80610eb181612ae1565b915050610e1f565b505050505050565b600b546001600160a01b03163314610eeb5760405162461bcd60e51b81526004016108e69061298a565b61092e82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b5f92505050565b6060610f37835183511490565b610f4057600080fd5b600083516001600160401b03811115610f5b57610f5b612b68565b604051908082528060200260200182016040528015610f84578160200160208202803683370190505b50905060005b845181101561102b5760026000868381518110610fa957610fa9612b52565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000858381518110610fe557610fe5612b52565b602002602001015181526020019081526020016000205482828151811061100e5761100e612b52565b60209081029190910101528061102381612ae1565b915050610f8a565b509392505050565b600b546001600160a01b0316331461105d5760405162461bcd60e51b81526004016108e69061298a565b610a8d81600655565b336000908152600d602052604090205460ff166110b35760405162461bcd60e51b815260206004820152600b60248201526a4e6f74204275726e65722160a81b60448201526064016108e6565b60005b83811015611101576110ef8585838181106110d3576110d3612b52565b90506020020160208101906110e8919061219c565b8484611848565b806110f981612ae1565b9150506110b6565b5050505050565b600b546001600160a01b031633146111325760405162461bcd60e51b81526004016108e69061298a565b6111728383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b7292505050565b505050565b600081815260046020908152604091829020805483518184028101840190945280845260609392830182828015610b8557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116111b95750505050509050919050565b606060006111ef83611177565b80519091506000816001600160401b0381111561120e5761120e612b68565b60405190808252806020026020018201604052801561125357816020015b604080518082019091526000808252602082015281526020019060019003908161122c5790505b50905060005b828110156112ea57600084828151811061127557611275612b52565b6020908102919091018101516040805180820182526001600160a01b0383168082526000908152600285528281208c8252855291909120549281019290925284519092508490849081106112cb576112cb612b52565b60200260200101819052505080806112e290612ae1565b915050611259565b50949350505050565b6001805461083b90612aa6565b336000908152600c602052604090205460ff1661134d5760405162461bcd60e51b815260206004820152600b60248201526a4e6f74204d696e7465722160a81b60448201526064016108e6565b6113578684612a2d565b34146113da5760405162461bcd60e51b815260206004820152604660248201527f45524331313535473a2061697264726f7053696e676c65546f4d616e79506c7560448201527f73455448496e4d736756616c756528293a20496e636f7272656374206d73672e60648201526576616c75652160d01b608482015260a4016108e6565b60005b86811015610d9b576113fa888883818110610d0657610d06612b52565b61140f888883818110610d6e57610d6e612b52565b8061141981612ae1565b9150506113dd565b6004602052816000526040600020818154811061143d57600080fd5b6000918252602090912001546001600160a01b03169150829050565b801561092e5760405162461bcd60e51b815260206004820152602960248201527f45524331313535473a20736574417070726f76616c466f72416c6c28293a20536044820152686f756c626f756e642160b81b60648201526084016108e6565b600b546001600160a01b031633146114e35760405162461bcd60e51b81526004016108e69061298a565b61117260018383611f22565b336000908152600d602052604090205460ff1661153c5760405162461bcd60e51b815260206004820152600b60248201526a4e6f74204275726e65722160a81b60448201526064016108e6565b828514801561154a57508085145b6115b05760405162461bcd60e51b815260206004820152603160248201527f45524331313535473a206275726e46726f6d4d616e7928293a204172726179206044820152706c656e67746873206d69736d617463682160781b60648201526084016108e6565b60005b8581101561162e5761161c8787838181106115d0576115d0612b52565b90506020020160208101906115e5919061219c565b8686848181106115f7576115f7612b52565b9050602002013585858581811061161057611610612b52565b90506020020135611848565b8061162681612ae1565b9150506115b3565b50505050505050565b600b546001600160a01b031633146116615760405162461bcd60e51b81526004016108e69061298a565b61117260008383611f22565b60606008610ba783611903565b600b546001600160a01b031633146116a45760405162461bcd60e51b81526004016108e69061298a565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b60008060005b8381101561102b576116fe8585838181106116f2576116f2612b52565b90506020020135611177565b516117099083612a01565b91508061171581612ae1565b9150506116d5565b600b546001600160a01b031633146117475760405162461bcd60e51b81526004016108e69061298a565b611753848484846118a1565b50505050565b81156111015760405162461bcd60e51b815260206004820152602860248201527f45524331313535473a20736166655472616e7366657246726f6d28293a20536f604482015267756c626f756e642160c01b60648201526084016108e6565b600b546001600160a01b031633146117e25760405162461bcd60e51b81526004016108e69061298a565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b805161092e906007906020840190611fa6565b805161092e906009906020840190611fa6565b6000816001148061183b5750816002145b8061081c57505060031490565b611853838383611b91565b60408051838152602081018390526000916001600160a01b0386169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4505050565b6118ac848484611bd4565b60408051848152602081018490526001600160a01b0386169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4611753600085858585611c1b565b6060816119275750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611951578061193b81612ae1565b915061194a9050600a83612a19565b915061192b565b6000816001600160401b0381111561196b5761196b612b68565b6040519080825280601f01601f191660200182016040528015611995576020820181803683370190505b5090505b8415611a0157816119a981612a8f565b92506119b89050600a86612afc565b6119c3906030612a01565b60f81b8183815181106119d8576119d8612b52565b60200101906001600160f81b031916908160001a9053506119fa600a86612a19565b9450611999565b949350505050565b60005b60038111611abd576001600160a01b038516600090815260026020908152604080832084845290915290205415611aab5760405162461bcd60e51b815260206004820152603760248201527f45524331313535473a204741532043686970205f61697264726f7028293a207560448201527f73657220616c726561647920686173206120636869702100000000000000000060648201526084016108e6565b80611ab581612ae1565b915050611a0c565b50611753848484846118a1565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611b17576040519150601f19603f3d011682016040523d82523d6000602084013e611b1c565b606091505b50509050806111725760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016108e6565b805161092e906008906020840190611fa6565b6000828152600a60209081526040909120825161117292840190611fa6565b6001600160a01b038316600090815260026020908152604080832085845290915281208054839290611bc4908490612a4c565b9091555061117290508383611d30565b611bde8383611ea5565b6001600160a01b038316600090815260026020908152604080832085845290915281208054839290611c11908490612a01565b9091555050505050565b6001600160a01b0384163b15611cc35760405163f23a6e6160e01b808252906001600160a01b0386169063f23a6e6190611c619033908a90899089908990600401612860565b602060405180830381600087803b158015611c7b57600080fd5b505af1158015611c8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb3919061266a565b6001600160e01b03191614611cd0565b6001600160a01b03841615155b6111015760405162461bcd60e51b815260206004820152602b60248201527f5f45524331313535537570706f7274656428293a20556e737570706f7274656460448201526a20526563697069656e742160a81b60648201526084016108e6565b6001600160a01b038216600090815260026020908152604080832084845290915290205461092e5760008181526005602090815260408083206001600160a01b03861684528252808320548484526004909252822054909190611d9590600190612a4c565b9050808214611e3e576000838152600460205260408120805483908110611dbe57611dbe612b52565b60009182526020808320909101548683526004909152604090912080546001600160a01b039092169250829185908110611dfa57611dfa612b52565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790558682526005815260408083209490931682529290925290208290555b6000838152600460205260409020805480611e5b57611e5b612b3c565b60008281526020808220830160001990810180546001600160a01b03191690559092019092558482526005815260408083206001600160a01b038816845290915281205550505050565b6001600160a01b038216600090815260026020908152604080832084845290915290205461092e5760008181526004602090815260408083208054600181018255908452828420810180546001600160a01b0319166001600160a01b03979097169687179055938352600582528083209483529390529190912055565b828054611f2e90612aa6565b90600052602060002090601f016020900481019282611f505760008555611f96565b82601f10611f695782800160ff19823516178555611f96565b82800160010185558215611f96579182015b82811115611f96578235825591602001919060010190611f7b565b50611fa292915061201a565b5090565b828054611fb290612aa6565b90600052602060002090601f016020900481019282611fd45760008555611f96565b82601f10611fed57805160ff1916838001178555611f96565b82800160010185558215611f96579182015b82811115611f96578251825591602001919060010190611fff565b5b80821115611fa2576000815560010161201b565b60008083601f84011261204157600080fd5b5081356001600160401b0381111561205857600080fd5b6020830191508360208260051b850101111561207357600080fd5b9250929050565b600082601f83011261208b57600080fd5b813560206120a061209b836129de565b6129ae565b80838252828201915082860187848660051b89010111156120c057600080fd5b60005b858110156120df578135845292840192908401906001016120c3565b5090979650505050505050565b60008083601f8401126120fe57600080fd5b5081356001600160401b0381111561211557600080fd5b60208301915083602082850101111561207357600080fd5b600082601f83011261213e57600080fd5b81356001600160401b0381111561215757612157612b68565b61216a601f8201601f19166020016129ae565b81815284602083860101111561217f57600080fd5b816020850160208301376000918101602001919091529392505050565b6000602082840312156121ae57600080fd5b81356121b981612b7e565b9392505050565b600080604083850312156121d357600080fd5b82356121de81612b7e565b915060208301356121ee81612b7e565b809150509250929050565b600080600080600060a0868803121561221157600080fd5b853561221c81612b7e565b9450602086013561222c81612b7e565b935060408601356001600160401b038082111561224857600080fd5b61225489838a0161207a565b9450606088013591508082111561226a57600080fd5b61227689838a0161207a565b9350608088013591508082111561228c57600080fd5b506122998882890161212d565b9150509295509295909350565b600080600080600060a086880312156122be57600080fd5b85356122c981612b7e565b945060208601356122d981612b7e565b9350604086013592506060860135915060808601356001600160401b0381111561230257600080fd5b6122998882890161212d565b6000806040838503121561232157600080fd5b823561232c81612b7e565b9150602083013580151581146121ee57600080fd5b6000806040838503121561235457600080fd5b823561235f81612b7e565b946020939093013593505050565b6000806000806080858703121561238357600080fd5b843561238e81612b7e565b9350602085013592506040850135915060608501356001600160401b038111156123b757600080fd5b6123c38782880161212d565b91505092959194509250565b600080600080600080606087890312156123e857600080fd5b86356001600160401b03808211156123ff57600080fd5b61240b8a838b0161202f565b9098509650602089013591508082111561242457600080fd5b6124308a838b0161202f565b9096509450604089013591508082111561244957600080fd5b5061245689828a0161202f565b979a9699509497509295939492505050565b6000806000806060858703121561247e57600080fd5b84356001600160401b0381111561249457600080fd5b6124a08782880161202f565b90989097506020870135966040013595509350505050565b600080604083850312156124cb57600080fd5b82356001600160401b03808211156124e257600080fd5b818501915085601f8301126124f657600080fd5b8135602061250661209b836129de565b8083825282820191508286018a848660051b890101111561252657600080fd5b600096505b8487101561255257803561253e81612b7e565b83526001969096019591830191830161252b565b509650508601359250508082111561256957600080fd5b506125768582860161207a565b9150509250929050565b600080600080600080600060a0888a03121561259b57600080fd5b87356001600160401b03808211156125b257600080fd5b6125be8b838c0161202f565b909950975060208a0135965060408a0135955060608a0135945060808a01359150808211156125ec57600080fd5b506125f98a828b016120ec565b989b979a50959850939692959293505050565b6000806020838503121561261f57600080fd5b82356001600160401b0381111561263557600080fd5b6126418582860161202f565b90969095509350505050565b60006020828403121561265f57600080fd5b81356121b981612b93565b60006020828403121561267c57600080fd5b81516121b981612b93565b6000806020838503121561269a57600080fd5b82356001600160401b038111156126b057600080fd5b612641858286016120ec565b6000602082840312156126ce57600080fd5b5035919050565b600080604083850312156126e857600080fd5b8235915060208301356121ee81612b7e565b60008060006040848603121561270f57600080fd5b8335925060208401356001600160401b0381111561272c57600080fd5b612738868287016120ec565b9497909650939450505050565b6000806040838503121561275857600080fd5b50508035926020909101359150565b6000815180845261277f816020860160208601612a63565b601f01601f19169290920160200192915050565b8054600090600181811c90808316806127ad57607f831692505b60208084108214156127cf57634e487b7160e01b600052602260045260246000fd5b8180156127e357600181146127f457612821565b60ff19861689528489019650612821565b60008881526020902060005b868110156128195781548b820152908501908301612800565b505084890196505b50505050505092915050565b60006128398286612793565b8451612849818360208901612a63565b61285581830186612793565b979650505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061285590830184612767565b6020808252825182820181905260009190848201906040850190845b818110156128db5783516001600160a01b0316835292840192918401916001016128b6565b50909695505050505050565b602080825282518282018190526000919060409081850190868401855b8281101561293257815180516001600160a01b03168552860151868501529284019290850190600101612904565b5091979650505050505050565b6020808252825182820181905260009190848201906040850190845b818110156128db5783518352928401929184019160010161295b565b6020815260006121b96020830184612767565b6020808252600a90820152694e6f74204f776e65722160b01b604082015260600190565b604051601f8201601f191681016001600160401b03811182821017156129d6576129d6612b68565b604052919050565b60006001600160401b038211156129f7576129f7612b68565b5060051b60200190565b60008219821115612a1457612a14612b10565b500190565b600082612a2857612a28612b26565b500490565b6000816000190483118215151615612a4757612a47612b10565b500290565b600082821015612a5e57612a5e612b10565b500390565b60005b83811015612a7e578181015183820152602001612a66565b838111156117535750506000910152565b600081612a9e57612a9e612b10565b506000190190565b600181811c90821680612aba57607f821691505b60208210811415612adb57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612af557612af5612b10565b5060010190565b600082612b0b57612b0b612b26565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610a8d57600080fd5b6001600160e01b031981168114610a8d57600080fdfea2646970667358221220e83827315243ccf2613f58034872b6f59618acde0f3443079a044853a373f85364736f6c63430008070033
Deployed Bytecode Sourcemap
18980:948:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13423:31;;;13432:10;15335:51:1;;13444:9:0;15417:2:1;15402:18;;15395:34;13423:31:0;;15308:18:1;13423:31:0;;;;;;;18980:948;;;;;1291:64;;;;;;;;;;-1:-1:-1;1291:64:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;24082:25:1;;;24070:2;24055:18;1291:64:0;;;;;;;;11358:340;;;;;;;;;;-1:-1:-1;11358:340:0;;;;;:::i;:::-;;:::i;:::-;;;17734:14:1;;17727:22;17709:41;;17697:2;17682:18;11358:340:0;17569:187:1;5697:46:0;;;;;;;;;;-1:-1:-1;5697:46:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;13865:75::-;;;;;;;;;;-1:-1:-1;13865:75:0;;;;;:::i;:::-;;:::i;:::-;;14080:111;;;;;;;;;;-1:-1:-1;14080:111:0;;;;;:::i;:::-;;:::i;12757:39::-;;;;;;;;;;-1:-1:-1;12757:39:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;569:18;;;;;;;;;;;;;:::i;19504:421::-;;;;;;;;;;-1:-1:-1;19504:421:0;;;;;:::i;:::-;;:::i;12880:112::-;;;;;;;;;;-1:-1:-1;12880:112:0;;;;;:::i;:::-;;:::i;4675:18::-;;;;;;;;;;;;;:::i;5912:388::-;;;;;;;;;;-1:-1:-1;5912:388:0;;;;;:::i;:::-;;:::i;16698:640::-;;;;;;;;;;-1:-1:-1;16698:640:0;;;;;:::i;:::-;;:::i;14858:472::-;;;;;;;;;;-1:-1:-1;14858:472:0;;;;;:::i;:::-;;:::i;13971:103::-;;;;;;;;;;-1:-1:-1;13971:103:0;;;;;:::i;:::-;;:::i;1534:75::-;;;;;;;;;;-1:-1:-1;1534:75:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;11729:422;;;;;;;;;;-1:-1:-1;11729:422:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;13746:92::-;;;;;;;;;;-1:-1:-1;13746:92:0;;;;;:::i;:::-;;:::i;18008:332::-;;;;;;;;;;-1:-1:-1;18008:332:0;;;;;:::i;:::-;;:::i;14218:116::-;;;;;;;;;;-1:-1:-1;14218:116:0;;;;;:::i;:::-;;:::i;3347:124::-;;;;;;;;;;-1:-1:-1;3347:124:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4517:26::-;;;;;;;;;;;;;;;;3477:607;;;;;;;;;;-1:-1:-1;3477:607:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;12191:20::-;;;;;;;;;;-1:-1:-1;12191:20:0;;;;-1:-1:-1;;;;;12191:20:0;;;;;;-1:-1:-1;;;;;14552:32:1;;;14534:51;;14522:2;14507:18;12191:20:0;14388:203:1;595:20:0;;;;;;;;;;;;;:::i;17344:626::-;;;;;;:::i;:::-;;:::i;1477:50::-;;;;;;;;;;-1:-1:-1;1477:50:0;;;;;:::i;:::-;;:::i;15336:235::-;;;;;;;;;;-1:-1:-1;15336:235:0;;;;;:::i;:::-;;:::i;19220:84::-;;;;;;;;;;-1:-1:-1;19220:84:0;;;;;:::i;:::-;;:::i;18346:627::-;;;;;;;;;;-1:-1:-1;18346:627:0;;;;;:::i;:::-;;:::i;19138:76::-;;;;;;;;;;-1:-1:-1;19138:76:0;;;;;:::i;:::-;;:::i;6352:197::-;;;;;;;;;;-1:-1:-1;6352:197:0;;;;;:::i;:::-;;:::i;12591:112::-;;;;;;;;;;-1:-1:-1;12591:112:0;;;;;:::i;:::-;;:::i;4090:267::-;;;;;;;;;;-1:-1:-1;4090:267:0;;;;;:::i;:::-;;:::i;1362:68::-;;;;;;;;;;-1:-1:-1;1362:68:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;16494:167;;;;;;;;;;-1:-1:-1;16494:167:0;;;;;:::i;:::-;;:::i;14572:280::-;;;;;;;;;;-1:-1:-1;14572:280:0;;;;;:::i;:::-;;:::i;12337:77::-;;;;;;;;;;-1:-1:-1;12337:77:0;;;;;:::i;:::-;;:::i;12468:39::-;;;;;;;;;;-1:-1:-1;12468:39:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11358:340;11435:4;-1:-1:-1;;;;;;;;;11469:26:0;;;;:99;;-1:-1:-1;;;;;;;;;;11542:26:0;;;11469:99;:173;;;-1:-1:-1;;;;;;;;;;11616:26:0;;;11469:173;11452:190;11358:340;-1:-1:-1;;11358:340:0:o;5697:46::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13865:75::-;12291:5;;-1:-1:-1;;;;;12291:5:0;12300:10;12291:19;12283:42;;;;-1:-1:-1;;;12283:42:0;;;;;;;:::i;:::-;;;;;;;;;13924:13:::1;13932:4;;13924:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;13924:7:0::1;::::0;-1:-1:-1;;;13924:13:0:i:1;:::-;13865:75:::0;;:::o;14080:111::-;12291:5;;-1:-1:-1;;;;;12291:5:0;12300:10;12291:19;12283:42;;;;-1:-1:-1;;;12283:42:0;;;;;;;:::i;:::-;14162:26:::1;14183:4;;14162:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;14162:20:0::1;::::0;-1:-1:-1;;;14162:26:0:i:1;569:18::-:0;;;;;;;:::i;19504:421::-;19579:10;19596:1;19569:21;;;:9;:21;;;;;;;;:24;;;;;;;;;19561:82;;;;-1:-1:-1;;;19561:82:0;;21281:2:1;19561:82:0;;;21263:21:1;21320:2;21300:18;;;21293:30;21359;21339:18;;;21332:58;21407:18;;19561:82:0;21079:352:1;19561:82:0;19662:25;19679:7;19662:16;:25::i;:::-;19654:79;;;;-1:-1:-1;;;19654:79:0;;22056:2:1;19654:79:0;;;22038:21:1;22095:2;22075:18;;;22068:30;22134;22114:18;;;22107:58;22182:18;;19654:79:0;21854:352:1;19654:79:0;19802:23;19808:10;19820:1;19823;19802:5;:23::i;:::-;19884:33;19890:10;19902:7;19911:1;19884:33;;;;;;;;;;;;:5;:33::i;:::-;19504:421;:::o;12880:112::-;12291:5;;-1:-1:-1;;;;;12291:5:0;12300:10;12291:19;12283:42;;;;-1:-1:-1;;;12283:42:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12959:17:0;;;::::1;;::::0;;;:7:::1;:17;::::0;;;;:25;;-1:-1:-1;;12959:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12880:112::o;4675:18::-;;;;;;;:::i;5912:388::-;5967:13;6017:7;;6028:1;6017:12;6013:279;;;6038:4;6031:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5912:388;;;:::o;6013:279::-;6081:7;;6092:1;6081:12;6077:215;;;6140:12;6154:14;6164:3;6154:9;:14::i;:::-;6170:16;6123:64;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6095:93;;5912:388;;;:::o;6077:215::-;6229:7;;6240:1;6229:12;6225:67;;;6250:17;;;;:12;:17;;;;;6243:24;;;;;:::i;6225:67::-;-1:-1:-1;;6283:9:0;;;;;;;;;-1:-1:-1;6283:9:0;;;5912:388::o;16698:640::-;12552:10;12544:19;;;;:7;:19;;;;;;;;12536:43;;;;-1:-1:-1;;;12536:43:0;;18940:2:1;12536:43:0;;;18922:21:1;18979:2;18959:18;;;18952:30;-1:-1:-1;;;18998:18:1;;;18991:41;19049:18;;12536:43:0;18738:335:1;12536:43:0;16990:24:::1;17003:4:::0;16990:10;:24:::1;:::i;:::-;16965:21;:49;;16957:147;;;::::0;-1:-1:-1;;;16957:147:0;;20376:2:1;16957:147:0::1;::::0;::::1;20358:21:1::0;20415:2;20395:18;;;20388:30;20454:34;20434:18;;;20427:62;20525:34;20505:18;;;20498:62;-1:-1:-1;;;20576:19:1;;;20569:39;20625:19;;16957:147:0::1;20174:476:1::0;16957:147:0::1;17185:9;17180:151;17200:15:::0;;::::1;17180:151;;;17237:38;17246:4;;17251:1;17246:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;17255:3;17260:7;17269:5;;17237:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;17237:8:0::1;::::0;-1:-1:-1;;;17237:38:0:i:1;:::-;17290:29;17299:4;;17304:1;17299:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;17308:10;17290:8;:29::i;:::-;17217:3:::0;::::1;::::0;::::1;:::i;:::-;;;;17180:151;;;;16698:640:::0;;;;;;;:::o;14858:472::-;15041:11;;15054:15;;6673:6;15019:127;;;;-1:-1:-1;;;15019:127:0;;23711:2:1;15019:127:0;;;23693:21:1;23750:2;23730:18;;;23723:30;23789:34;23769:18;;;23762:62;23860:28;23840:18;;;23833:56;23906:19;;15019:127:0;23509:422:1;15019:127:0;15164:9;15159:164;15183:8;:15;15179:1;:19;15159:164;;;15228:8;15237:1;15228:11;;;;;;;;:::i;:::-;;;;;;;15243:1;15228:16;15220:91;;;;-1:-1:-1;;;15220:91:0;;18187:2:1;15220:91:0;;;18169:21:1;18226:2;18206:18;;;18199:30;18265:34;18245:18;;;18238:62;-1:-1:-1;;;18316:18:1;;;18309:43;18369:19;;15220:91:0;17985:409:1;15220:91:0;15200:3;;;;:::i;:::-;;;;15159:164;;;;14858:472;;;;;:::o;13971:103::-;12291:5;;-1:-1:-1;;;;;12291:5:0;12300:10;12291:19;12283:42;;;;-1:-1:-1;;;12283:42:0;;;;;;;:::i;:::-;14049:22:::1;14066:4;;14049:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;14049:16:0::1;::::0;-1:-1:-1;;;14049:22:0:i:1;11729:422::-:0;11836:16;11873:42;11887:7;:14;11903:4;:11;6673:6;;6581:106;11873:42;11865:51;;;;;;11929:26;11972:7;:14;-1:-1:-1;;;;;11958:29:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11958:29:0;;11929:58;;12005:9;12000:117;12024:7;:14;12020:1;:18;12000:117;;;12075:9;:21;12085:7;12093:1;12085:10;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;12075:21:0;-1:-1:-1;;;;;12075:21:0;;;;;;;;;;;;:30;12097:4;12102:1;12097:7;;;;;;;;:::i;:::-;;;;;;;12075:30;;;;;;;;;;;;12060:9;12070:1;12060:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;12040:3;;;;:::i;:::-;;;;12000:117;;;-1:-1:-1;12134:9:0;11729:422;-1:-1:-1;;;11729:422:0:o;13746:92::-;12291:5;;-1:-1:-1;;;;;12291:5:0;12300:10;12291:19;12283:42;;;;-1:-1:-1;;;12283:42:0;;;;;;;:::i;:::-;13814:21:::1;13826:8;4618:7:::0;:18;4551:93;18008:332;12841:10;12833:19;;;;:7;:19;;;;;;;;12825:43;;;;-1:-1:-1;;;12825:43:0;;20036:2:1;12825:43:0;;;20018:21:1;20075:2;20055:18;;;20048:30;-1:-1:-1;;;20094:18:1;;;20087:41;20145:18;;12825:43:0;19834:335:1;12825:43:0;18158:9:::1;18153:180;18173:17:::0;;::::1;18153:180;;;18291:30;18297:6;;18304:1;18297:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;18308:3;18313:7;18291:5;:30::i;:::-;18192:3:::0;::::1;::::0;::::1;:::i;:::-;;;;18153:180;;;;18008:332:::0;;;;:::o;14218:116::-;12291:5;;-1:-1:-1;;;;;12291:5:0;12300:10;12291:19;12283:42;;;;-1:-1:-1;;;12283:42:0;;;;;;;:::i;:::-;14306:25:::1;14321:3;14326:4;;14306:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;14306:14:0::1;::::0;-1:-1:-1;;;14306:25:0:i:1;:::-;14218:116:::0;;;:::o;3347:124::-;3445:18;;;;:13;:18;;;;;;;;;3438:25;;;;;;;;;;;;;;;;;3409:16;;3438:25;;;3445:18;3438:25;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3438:25:0;;;;;;;;;;;;;;;;;;;;;;3347:124;;;:::o;3477:607::-;3555:22;3590:24;3617:23;3636:3;3617:18;:23::i;:::-;3675:14;;3590:50;;-1:-1:-1;3651:21:0;3675:14;-1:-1:-1;;;;;3743:35:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;3743:35:0;;;;;;;;;;;;;;;;3700:78;;3796:9;3791:251;3815:13;3811:1;:17;3791:251;;;3850:21;3874:7;3882:1;3874:10;;;;;;;;:::i;:::-;;;;;;;;;;;;3922:108;;;;;;;;-1:-1:-1;;;;;3922:108:0;;;;;-1:-1:-1;3986:24:0;;;:9;:24;;;;;:29;;;;;;;;;;3922:108;;;;;;;3899:20;;3874:10;;-1:-1:-1;3899:17:0;;3917:1;;3899:20;;;;;;:::i;:::-;;;;;;:131;;;;3835:207;3830:3;;;;;:::i;:::-;;;;3791:251;;;-1:-1:-1;4059:17:0;3477:607;-1:-1:-1;;;;3477:607:0:o;595:20::-;;;;;;;:::i;17344:626::-;12552:10;12544:19;;;;:7;:19;;;;;;;;12536:43;;;;-1:-1:-1;;;12536:43:0;;18940:2:1;12536:43:0;;;18922:21:1;18979:2;18959:18;;;18952:30;-1:-1:-1;;;18998:18:1;;;18991:41;19049:18;;12536:43:0;18738:335:1;12536:43:0;17624:24:::1;17637:4:::0;17624:10;:24:::1;:::i;:::-;17611:9;:37;17603:133;;;::::0;-1:-1:-1;;;17603:133:0;;22413:2:1;17603:133:0::1;::::0;::::1;22395:21:1::0;22452:2;22432:18;;;22425:30;22491:34;22471:18;;;22464:62;22562:34;22542:18;;;22535:62;-1:-1:-1;;;22613:19:1;;;22606:37;22660:19;;17603:133:0::1;22211:474:1::0;17603:133:0::1;17817:9;17812:151;17832:15:::0;;::::1;17812:151;;;17869:38;17878:4;;17883:1;17878:7;;;;;;;:::i;17869:38::-;17922:29;17931:4;;17936:1;17931:7;;;;;;;:::i;17922:29::-;17849:3:::0;::::1;::::0;::::1;:::i;:::-;;;;17812:151;;1477:50:::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1477:50:0;;-1:-1:-1;1477:50:0;;-1:-1:-1;1477:50:0:o;15336:235::-;15508:9;15507:10;15499:64;;;;-1:-1:-1;;;15499:64:0;;22892:2:1;15499:64:0;;;22874:21:1;22931:2;22911:18;;;22904:30;22970:34;22950:18;;;22943:62;-1:-1:-1;;;23021:18:1;;;23014:39;23070:19;;15499:64:0;22690:405:1;19220:84:0;12291:5;;-1:-1:-1;;;;;12291:5:0;12300:10;12291:19;12283:42;;;;-1:-1:-1;;;12283:42:0;;;;;;;:::i;:::-;19285:16:::1;:6;19294:7:::0;;19285:16:::1;:::i;18346:627::-:0;12841:10;12833:19;;;;:7;:19;;;;;;;;12825:43;;;;-1:-1:-1;;;12825:43:0;;20036:2:1;12825:43:0;;;20018:21:1;20075:2;20055:18;;;20048:30;-1:-1:-1;;;20094:18:1;;;20087:41;20145:18;;12825:43:0;19834:335:1;12825:43:0;6673:6;;;18559:104:::1;;;;-1:-1:-1::0;6673:6:0;;;18618:45:::1;18551:179;;;::::0;-1:-1:-1;;;18551:179:0;;21638:2:1;18551:179:0::1;::::0;::::1;21620:21:1::0;21677:2;21657:18;;;21650:30;21716:34;21696:18;;;21689:62;-1:-1:-1;;;21767:18:1;;;21760:47;21824:19;;18551:179:0::1;21436:413:1::0;18551:179:0::1;18783:9;18778:188;18798:17:::0;;::::1;18778:188;;;18916:38;18922:6;;18929:1;18922:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;18933:4;;18938:1;18933:7;;;;;;;:::i;:::-;;;;;;;18942:8;;18951:1;18942:11;;;;;;;:::i;:::-;;;;;;;18916:5;:38::i;:::-;18817:3:::0;::::1;::::0;::::1;:::i;:::-;;;;18778:188;;;;18346:627:::0;;;;;;:::o;19138:76::-;12291:5;;-1:-1:-1;;;;;12291:5:0;12300:10;12291:19;12283:42;;;;-1:-1:-1;;;12283:42:0;;;;;;;:::i;:::-;19199:12:::1;:4;19206:5:::0;;19199:12:::1;:::i;6352:197::-:0;6417:13;6488:12;6502:19;6512:8;6502:9;:19::i;12591:112::-;12291:5;;-1:-1:-1;;;;;12291:5:0;12300:10;12291:19;12283:42;;;;-1:-1:-1;;;12283:42:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12670:17:0;;;::::1;;::::0;;;:7:::1;:17;::::0;;;;:25;;-1:-1:-1;;12670:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12591:112::o;4090:267::-;4165:7;4185:15;4216:9;4211:114;4231:15;;;4211:114;;;4279:27;4298:4;;4303:1;4298:7;;;;;;;:::i;:::-;;;;;;;4279:18;:27::i;:::-;:34;4268:45;;;;:::i;:::-;;-1:-1:-1;4248:3:0;;;;:::i;:::-;;;;4211:114;;16494:167;12291:5;;-1:-1:-1;;;;;12291:5:0;12300:10;12291:19;12283:42;;;;-1:-1:-1;;;12283:42:0;;;;;;;:::i;:::-;16622:31:::1;16628:3;16633;16638:7;16647:5;16622;:31::i;:::-;16494:167:::0;;;;:::o;14572:280::-;14787:12;;14779:65;;;;-1:-1:-1;;;14779:65:0;;23302:2:1;14779:65:0;;;23284:21:1;23341:2;23321:18;;;23314:30;23380:34;23360:18;;;23353:62;-1:-1:-1;;;23431:18:1;;;23424:38;23479:19;;14779:65:0;23100:404:1;12337:77:0;12291:5;;-1:-1:-1;;;;;12291:5:0;12300:10;12291:19;12283:42;;;;-1:-1:-1;;;12283:42:0;;;;;;;:::i;:::-;12399:5:::1;:12:::0;;-1:-1:-1;;;;;;12399:12:0::1;-1:-1:-1::0;;;;;12399:12:0;;;::::1;::::0;;;::::1;::::0;;12337:77::o;4700:70::-;4756:11;;;;:4;;:11;;;;;:::i;4992:104::-;5070:23;;;;:16;;:23;;;;;:::i;19356:142::-;19422:4;19446:7;19457:1;19446:12;:28;;;;19462:7;19473:1;19462:12;19446:28;:44;;;-1:-1:-1;;19489:1:0;19478:12;;19356:142::o;10744:197::-;10824:34;10838:5;10845:3;10850:7;10824:13;:34::i;:::-;10874:59;;;24292:25:1;;;24348:2;24333:18;;24326:34;;;10916:1:0;;-1:-1:-1;;;;;10874:59:0;;;10889:10;;10874:59;;24265:18:1;10874:59:0;;;;;;;10744:197;;;:::o;9710:286::-;9813:32;9827:3;9832;9837:7;9813:13;:32::i;:::-;9863:57;;;24292:25:1;;;24348:2;24333:18;;24326:34;;;-1:-1:-1;;;;;9863:57:0;;;9898:1;;9878:10;;9863:57;;24265:18:1;9863:57:0;;;;;;;9933:55;9959:1;9963:3;9968;9973:7;9982:5;9933:17;:55::i;5102:550::-;5160:13;5190:11;5186:32;;-1:-1:-1;;5205:10:0;;;;;;;;;;;;-1:-1:-1;;;5205:10:0;;;;;5102:550::o;5186:32::-;5247:6;5228:16;5281:52;5288:13;;5281:52;;5305:9;;;;:::i;:::-;;-1:-1:-1;5316:14:0;;-1:-1:-1;5328:2:0;5316:14;;:::i;:::-;;;5281:52;;;5367:20;5400:7;-1:-1:-1;;;;;5390:18:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5390:18:0;;5367:41;;5419:124;5426:11;;5419:124;;5441:9;;;;:::i;:::-;;-1:-1:-1;5511:11:0;;-1:-1:-1;5520:2:0;5511:6;:11;:::i;:::-;5498:26;;:2;:26;:::i;:::-;5471:55;;5452:7;5460;5452:16;;;;;;;;:::i;:::-;;;;:74;-1:-1:-1;;;;;5452:74:0;;;;;;;;-1:-1:-1;5528:12:0;5538:2;5528:12;;:::i;:::-;;;5419:124;;;5593:7;5102:550;-1:-1:-1;;;;5102:550:0:o;15737:560::-;16084:9;16080:166;16104:1;16099;:6;16080:166;;-1:-1:-1;;;;;16135:14:0;;;;;;:9;:14;;;;;;;;:17;;;;;;;;;:22;16127:107;;;;-1:-1:-1;;;16127:107:0;;20857:2:1;16127:107:0;;;20839:21:1;20896:2;20876:18;;;20869:30;20935:34;20915:18;;;20908:62;21006:25;20986:18;;;20979:53;21049:19;;16127:107:0;20655:419:1;16127:107:0;16107:3;;;;:::i;:::-;;;;16080:166;;;;16258:31;16264:3;16269;16274:7;16283:5;16258;:31::i;13463:196::-;13545:12;13571:8;-1:-1:-1;;;;;13563:22:0;13593:7;13563:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13544:61;;;13624:7;13616:35;;;;-1:-1:-1;;;13616:35:0;;19692:2:1;13616:35:0;;;19674:21:1;19731:2;19711:18;;;19704:30;-1:-1:-1;;;19750:18:1;;;19743:45;19805:18;;13616:35:0;19490:339:1;4889:97:0;4964:19;;;;:12;;:19;;;;;:::i;5756:112::-;5841:17;;;;:12;:17;;;;;;;;:24;;;;;;;;:::i;10470:268::-;-1:-1:-1;;;;;10558:16:0;;;;;;:9;:16;;;;;;;;:21;;;;;;;;:32;;10583:7;;10558:16;:32;;10583:7;;10558:32;:::i;:::-;;;;-1:-1:-1;10697:33:0;;-1:-1:-1;10719:5:0;10726:3;10697:21;:33::i;9470:234::-;9627:28;9646:3;9651;9627:18;:28::i;:::-;-1:-1:-1;;;;;9666:14:0;;;;;;:9;:14;;;;;;;;:19;;;;;;;;:30;;9689:7;;9666:14;:30;;9689:7;;9666:30;:::i;:::-;;;;-1:-1:-1;;;;;9470:234:0:o;6869:442::-;-1:-1:-1;;;;;7007:15:0;;;:20;:221;;7063:101;;-1:-1:-1;;;7063:101:0;;;7181:47;-1:-1:-1;;;;;7063:43:0;;;7181:47;;7063:101;;7125:10;;7137:5;;7144:3;;7149:7;;7158:5;;7063:101;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;7063:165:0;;7007:221;;;-1:-1:-1;;;;;7030:17:0;;;;7007:221;6999:304;;;;-1:-1:-1;;;6999:304:0;;19280:2:1;6999:304:0;;;19262:21:1;19319:2;19299:18;;;19292:30;19358:34;19338:18;;;19331:62;-1:-1:-1;;;19409:18:1;;;19402:41;19460:19;;6999:304:0;19078:407:1;2282:1059:0;-1:-1:-1;;;;;2421:19:0;;;;;;:9;:19;;;;;;;;:24;;;;;;;;;2417:917;;2517:18;2538:25;;;:20;:25;;;;;;;;-1:-1:-1;;;;;2538:35:0;;;;;;;;;;2644:18;;;:13;:18;;;;;:25;2538:35;;2517:18;2644:29;;2672:1;;2644:29;:::i;:::-;2623:50;;2761:10;2747;:24;2743:383;;2792:24;2819:18;;;:13;:18;;;;;:30;;2838:10;;2819:30;;;;;;:::i;:::-;;;;;;;;;;;;;2933:18;;;:13;:18;;;;;;;:30;;-1:-1:-1;;;;;2819:30:0;;;;-1:-1:-1;2819:30:0;;2952:10;;2933:30;;;;;;:::i;:::-;;;;;;;;;;;;;:49;;-1:-1:-1;;;;;;2933:49:0;-1:-1:-1;;;;;2933:49:0;;;;;;3054:25;;;:20;:25;;;;;;:43;;;;;;;;;;;;:56;;;2743:383;3185:18;;;;:13;:18;;;;;:24;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;3185:24:0;;;;;-1:-1:-1;;;;;;3185:24:0;;;;;;;;;3287:25;;;:20;:25;;;;;;-1:-1:-1;;;;;3287:35:0;;;;;;;;;3280:42;-1:-1:-1;;2282:1059:0;;:::o;1765:511::-;-1:-1:-1;;;;;1898:19:0;;;;;;:9;:19;;;;;;;;:24;;;;;;;;;1894:375;;1980:18;2001;;;:13;:18;;;;;;;;:25;;2103:33;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2103:33:0;-1:-1:-1;;;;;2103:33:0;;;;;;;;;2209:25;;;:20;:25;;;;;:35;;;;;;;;;;:48;1765:511::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:367:1;77:8;87:6;141:3;134:4;126:6;122:17;118:27;108:55;;159:1;156;149:12;108:55;-1:-1:-1;182:20:1;;-1:-1:-1;;;;;214:30:1;;211:50;;;257:1;254;247:12;211:50;294:4;286:6;282:17;270:29;;354:3;347:4;337:6;334:1;330:14;322:6;318:27;314:38;311:47;308:67;;;371:1;368;361:12;308:67;14:367;;;;;:::o;386:673::-;440:5;493:3;486:4;478:6;474:17;470:27;460:55;;511:1;508;501:12;460:55;547:6;534:20;573:4;597:60;613:43;653:2;613:43;:::i;:::-;597:60;:::i;:::-;679:3;703:2;698:3;691:15;731:2;726:3;722:12;715:19;;766:2;758:6;754:15;818:3;813:2;807;804:1;800:10;792:6;788:23;784:32;781:41;778:61;;;835:1;832;825:12;778:61;857:1;867:163;881:2;878:1;875:9;867:163;;;938:17;;926:30;;976:12;;;;1008;;;;899:1;892:9;867:163;;;-1:-1:-1;1048:5:1;;386:673;-1:-1:-1;;;;;;;386:673:1:o;1064:347::-;1115:8;1125:6;1179:3;1172:4;1164:6;1160:17;1156:27;1146:55;;1197:1;1194;1187:12;1146:55;-1:-1:-1;1220:20:1;;-1:-1:-1;;;;;1252:30:1;;1249:50;;;1295:1;1292;1285:12;1249:50;1332:4;1324:6;1320:17;1308:29;;1384:3;1377:4;1368:6;1360;1356:19;1352:30;1349:39;1346:59;;;1401:1;1398;1391:12;1416:530;1458:5;1511:3;1504:4;1496:6;1492:17;1488:27;1478:55;;1529:1;1526;1519:12;1478:55;1565:6;1552:20;-1:-1:-1;;;;;1587:2:1;1584:26;1581:52;;;1613:18;;:::i;:::-;1657:55;1700:2;1681:13;;-1:-1:-1;;1677:27:1;1706:4;1673:38;1657:55;:::i;:::-;1737:2;1728:7;1721:19;1783:3;1776:4;1771:2;1763:6;1759:15;1755:26;1752:35;1749:55;;;1800:1;1797;1790:12;1749:55;1865:2;1858:4;1850:6;1846:17;1839:4;1830:7;1826:18;1813:55;1913:1;1888:16;;;1906:4;1884:27;1877:38;;;;1892:7;1416:530;-1:-1:-1;;;1416:530:1:o;1951:247::-;2010:6;2063:2;2051:9;2042:7;2038:23;2034:32;2031:52;;;2079:1;2076;2069:12;2031:52;2118:9;2105:23;2137:31;2162:5;2137:31;:::i;:::-;2187:5;1951:247;-1:-1:-1;;;1951:247:1:o;2463:388::-;2531:6;2539;2592:2;2580:9;2571:7;2567:23;2563:32;2560:52;;;2608:1;2605;2598:12;2560:52;2647:9;2634:23;2666:31;2691:5;2666:31;:::i;:::-;2716:5;-1:-1:-1;2773:2:1;2758:18;;2745:32;2786:33;2745:32;2786:33;:::i;:::-;2838:7;2828:17;;;2463:388;;;;;:::o;2856:1071::-;3010:6;3018;3026;3034;3042;3095:3;3083:9;3074:7;3070:23;3066:33;3063:53;;;3112:1;3109;3102:12;3063:53;3151:9;3138:23;3170:31;3195:5;3170:31;:::i;:::-;3220:5;-1:-1:-1;3277:2:1;3262:18;;3249:32;3290:33;3249:32;3290:33;:::i;:::-;3342:7;-1:-1:-1;3400:2:1;3385:18;;3372:32;-1:-1:-1;;;;;3453:14:1;;;3450:34;;;3480:1;3477;3470:12;3450:34;3503:61;3556:7;3547:6;3536:9;3532:22;3503:61;:::i;:::-;3493:71;;3617:2;3606:9;3602:18;3589:32;3573:48;;3646:2;3636:8;3633:16;3630:36;;;3662:1;3659;3652:12;3630:36;3685:63;3740:7;3729:8;3718:9;3714:24;3685:63;:::i;:::-;3675:73;;3801:3;3790:9;3786:19;3773:33;3757:49;;3831:2;3821:8;3818:16;3815:36;;;3847:1;3844;3837:12;3815:36;;3870:51;3913:7;3902:8;3891:9;3887:24;3870:51;:::i;:::-;3860:61;;;2856:1071;;;;;;;;:::o;3932:734::-;4036:6;4044;4052;4060;4068;4121:3;4109:9;4100:7;4096:23;4092:33;4089:53;;;4138:1;4135;4128:12;4089:53;4177:9;4164:23;4196:31;4221:5;4196:31;:::i;:::-;4246:5;-1:-1:-1;4303:2:1;4288:18;;4275:32;4316:33;4275:32;4316:33;:::i;:::-;4368:7;-1:-1:-1;4422:2:1;4407:18;;4394:32;;-1:-1:-1;4473:2:1;4458:18;;4445:32;;-1:-1:-1;4528:3:1;4513:19;;4500:33;-1:-1:-1;;;;;4545:30:1;;4542:50;;;4588:1;4585;4578:12;4542:50;4611:49;4652:7;4643:6;4632:9;4628:22;4611:49;:::i;4671:416::-;4736:6;4744;4797:2;4785:9;4776:7;4772:23;4768:32;4765:52;;;4813:1;4810;4803:12;4765:52;4852:9;4839:23;4871:31;4896:5;4871:31;:::i;:::-;4921:5;-1:-1:-1;4978:2:1;4963:18;;4950:32;5020:15;;5013:23;5001:36;;4991:64;;5051:1;5048;5041:12;5092:315;5160:6;5168;5221:2;5209:9;5200:7;5196:23;5192:32;5189:52;;;5237:1;5234;5227:12;5189:52;5276:9;5263:23;5295:31;5320:5;5295:31;:::i;:::-;5345:5;5397:2;5382:18;;;;5369:32;;-1:-1:-1;;;5092:315:1:o;5412:592::-;5507:6;5515;5523;5531;5584:3;5572:9;5563:7;5559:23;5555:33;5552:53;;;5601:1;5598;5591:12;5552:53;5640:9;5627:23;5659:31;5684:5;5659:31;:::i;:::-;5709:5;-1:-1:-1;5761:2:1;5746:18;;5733:32;;-1:-1:-1;5812:2:1;5797:18;;5784:32;;-1:-1:-1;5867:2:1;5852:18;;5839:32;-1:-1:-1;;;;;5883:30:1;;5880:50;;;5926:1;5923;5916:12;5880:50;5949:49;5990:7;5981:6;5970:9;5966:22;5949:49;:::i;:::-;5939:59;;;5412:592;;;;;;;:::o;6009:1088::-;6167:6;6175;6183;6191;6199;6207;6260:2;6248:9;6239:7;6235:23;6231:32;6228:52;;;6276:1;6273;6266:12;6228:52;6316:9;6303:23;-1:-1:-1;;;;;6386:2:1;6378:6;6375:14;6372:34;;;6402:1;6399;6392:12;6372:34;6441:70;6503:7;6494:6;6483:9;6479:22;6441:70;:::i;:::-;6530:8;;-1:-1:-1;6415:96:1;-1:-1:-1;6618:2:1;6603:18;;6590:32;;-1:-1:-1;6634:16:1;;;6631:36;;;6663:1;6660;6653:12;6631:36;6702:72;6766:7;6755:8;6744:9;6740:24;6702:72;:::i;:::-;6793:8;;-1:-1:-1;6676:98:1;-1:-1:-1;6881:2:1;6866:18;;6853:32;;-1:-1:-1;6897:16:1;;;6894:36;;;6926:1;6923;6916:12;6894:36;;6965:72;7029:7;7018:8;7007:9;7003:24;6965:72;:::i;:::-;6009:1088;;;;-1:-1:-1;6009:1088:1;;-1:-1:-1;6009:1088:1;;7056:8;;6009:1088;-1:-1:-1;;;6009:1088:1:o;7102:573::-;7206:6;7214;7222;7230;7283:2;7271:9;7262:7;7258:23;7254:32;7251:52;;;7299:1;7296;7289:12;7251:52;7339:9;7326:23;-1:-1:-1;;;;;7364:6:1;7361:30;7358:50;;;7404:1;7401;7394:12;7358:50;7443:70;7505:7;7496:6;7485:9;7481:22;7443:70;:::i;:::-;7532:8;;7417:96;;-1:-1:-1;7614:2:1;7599:18;;7586:32;;7665:2;7650:18;7637:32;;-1:-1:-1;7102:573:1;-1:-1:-1;;;;7102:573:1:o;7680:1226::-;7798:6;7806;7859:2;7847:9;7838:7;7834:23;7830:32;7827:52;;;7875:1;7872;7865:12;7827:52;7915:9;7902:23;-1:-1:-1;;;;;7985:2:1;7977:6;7974:14;7971:34;;;8001:1;7998;7991:12;7971:34;8039:6;8028:9;8024:22;8014:32;;8084:7;8077:4;8073:2;8069:13;8065:27;8055:55;;8106:1;8103;8096:12;8055:55;8142:2;8129:16;8164:4;8188:60;8204:43;8244:2;8204:43;:::i;8188:60::-;8270:3;8294:2;8289:3;8282:15;8322:2;8317:3;8313:12;8306:19;;8353:2;8349;8345:11;8401:7;8396:2;8390;8387:1;8383:10;8379:2;8375:19;8371:28;8368:41;8365:61;;;8422:1;8419;8412:12;8365:61;8444:1;8435:10;;8454:238;8468:2;8465:1;8462:9;8454:238;;;8539:3;8526:17;8556:31;8581:5;8556:31;:::i;:::-;8600:18;;8486:1;8479:9;;;;;8638:12;;;;8670;;8454:238;;;-1:-1:-1;8711:5:1;-1:-1:-1;;8754:18:1;;8741:32;;-1:-1:-1;;8785:16:1;;;8782:36;;;8814:1;8811;8804:12;8782:36;;8837:63;8892:7;8881:8;8870:9;8866:24;8837:63;:::i;:::-;8827:73;;;7680:1226;;;;;:::o;8911:959::-;9052:6;9060;9068;9076;9084;9092;9100;9153:3;9141:9;9132:7;9128:23;9124:33;9121:53;;;9170:1;9167;9160:12;9121:53;9210:9;9197:23;-1:-1:-1;;;;;9280:2:1;9272:6;9269:14;9266:34;;;9296:1;9293;9286:12;9266:34;9335:70;9397:7;9388:6;9377:9;9373:22;9335:70;:::i;:::-;9424:8;;-1:-1:-1;9309:96:1;-1:-1:-1;9506:2:1;9491:18;;9478:32;;-1:-1:-1;9557:2:1;9542:18;;9529:32;;-1:-1:-1;9608:2:1;9593:18;;9580:32;;-1:-1:-1;9665:3:1;9650:19;;9637:33;;-1:-1:-1;9682:16:1;;;9679:36;;;9711:1;9708;9701:12;9679:36;;9750:60;9802:7;9791:8;9780:9;9776:24;9750:60;:::i;:::-;8911:959;;;;-1:-1:-1;8911:959:1;;-1:-1:-1;8911:959:1;;;;9724:86;;-1:-1:-1;;;8911:959:1:o;9875:437::-;9961:6;9969;10022:2;10010:9;10001:7;9997:23;9993:32;9990:52;;;10038:1;10035;10028:12;9990:52;10078:9;10065:23;-1:-1:-1;;;;;10103:6:1;10100:30;10097:50;;;10143:1;10140;10133:12;10097:50;10182:70;10244:7;10235:6;10224:9;10220:22;10182:70;:::i;:::-;10271:8;;10156:96;;-1:-1:-1;9875:437:1;-1:-1:-1;;;;9875:437:1:o;10317:245::-;10375:6;10428:2;10416:9;10407:7;10403:23;10399:32;10396:52;;;10444:1;10441;10434:12;10396:52;10483:9;10470:23;10502:30;10526:5;10502:30;:::i;10567:249::-;10636:6;10689:2;10677:9;10668:7;10664:23;10660:32;10657:52;;;10705:1;10702;10695:12;10657:52;10737:9;10731:16;10756:30;10780:5;10756:30;:::i;10821:410::-;10892:6;10900;10953:2;10941:9;10932:7;10928:23;10924:32;10921:52;;;10969:1;10966;10959:12;10921:52;11009:9;10996:23;-1:-1:-1;;;;;11034:6:1;11031:30;11028:50;;;11074:1;11071;11064:12;11028:50;11113:58;11163:7;11154:6;11143:9;11139:22;11113:58;:::i;11236:180::-;11295:6;11348:2;11336:9;11327:7;11323:23;11319:32;11316:52;;;11364:1;11361;11354:12;11316:52;-1:-1:-1;11387:23:1;;11236:180;-1:-1:-1;11236:180:1:o;11421:315::-;11489:6;11497;11550:2;11538:9;11529:7;11525:23;11521:32;11518:52;;;11566:1;11563;11556:12;11518:52;11602:9;11589:23;11579:33;;11662:2;11651:9;11647:18;11634:32;11675:31;11700:5;11675:31;:::i;11741:478::-;11821:6;11829;11837;11890:2;11878:9;11869:7;11865:23;11861:32;11858:52;;;11906:1;11903;11896:12;11858:52;11942:9;11929:23;11919:33;;12003:2;11992:9;11988:18;11975:32;-1:-1:-1;;;;;12022:6:1;12019:30;12016:50;;;12062:1;12059;12052:12;12016:50;12101:58;12151:7;12142:6;12131:9;12127:22;12101:58;:::i;:::-;11741:478;;12178:8;;-1:-1:-1;12075:84:1;;-1:-1:-1;;;;11741:478:1:o;12224:248::-;12292:6;12300;12353:2;12341:9;12332:7;12328:23;12324:32;12321:52;;;12369:1;12366;12359:12;12321:52;-1:-1:-1;;12392:23:1;;;12462:2;12447:18;;;12434:32;;-1:-1:-1;12224:248:1:o;12477:257::-;12518:3;12556:5;12550:12;12583:6;12578:3;12571:19;12599:63;12655:6;12648:4;12643:3;12639:14;12632:4;12625:5;12621:16;12599:63;:::i;:::-;12716:2;12695:15;-1:-1:-1;;12691:29:1;12682:39;;;;12723:4;12678:50;;12477:257;-1:-1:-1;;12477:257:1:o;12739:973::-;12824:12;;12789:3;;12879:1;12899:18;;;;12952;;;;12979:61;;13033:4;13025:6;13021:17;13011:27;;12979:61;13059:2;13107;13099:6;13096:14;13076:18;13073:38;13070:161;;;13153:10;13148:3;13144:20;13141:1;13134:31;13188:4;13185:1;13178:15;13216:4;13213:1;13206:15;13070:161;13247:18;13274:104;;;;13392:1;13387:319;;;;13240:466;;13274:104;-1:-1:-1;;13307:24:1;;13295:37;;13352:16;;;;-1:-1:-1;13274:104:1;;13387:319;24912:1;24905:14;;;24949:4;24936:18;;13481:1;13495:165;13509:6;13506:1;13503:13;13495:165;;;13587:14;;13574:11;;;13567:35;13630:16;;;;13524:10;;13495:165;;;13499:3;;13689:6;13684:3;13680:16;13673:23;;13240:466;;;;;;;12739:973;;;;:::o;13717:456::-;13938:3;13966:38;14000:3;13992:6;13966:38;:::i;:::-;14033:6;14027:13;14049:52;14094:6;14090:2;14083:4;14075:6;14071:17;14049:52;:::i;:::-;14117:50;14159:6;14155:2;14151:15;14143:6;14117:50;:::i;:::-;14110:57;13717:456;-1:-1:-1;;;;;;;13717:456:1:o;14596:560::-;-1:-1:-1;;;;;14893:15:1;;;14875:34;;14945:15;;14940:2;14925:18;;14918:43;14992:2;14977:18;;14970:34;;;15035:2;15020:18;;15013:34;;;14855:3;15078;15063:19;;15056:32;;;14818:4;;15105:45;;15130:19;;15122:6;15105:45;:::i;15440:658::-;15611:2;15663:21;;;15733:13;;15636:18;;;15755:22;;;15582:4;;15611:2;15834:15;;;;15808:2;15793:18;;;15582:4;15877:195;15891:6;15888:1;15885:13;15877:195;;;15956:13;;-1:-1:-1;;;;;15952:39:1;15940:52;;16047:15;;;;16012:12;;;;15988:1;15906:9;15877:195;;;-1:-1:-1;16089:3:1;;15440:658;-1:-1:-1;;;;;;15440:658:1:o;16103:824::-;16334:2;16386:21;;;16456:13;;16359:18;;;16478:22;;;16305:4;;16334:2;16519;;16537:18;;;;16578:15;;;16305:4;16621:280;16635:6;16632:1;16629:13;16621:280;;;16694:13;;16736:9;;-1:-1:-1;;;;;16732:35:1;16720:48;;16808:11;;16802:18;16788:12;;;16781:40;16841:12;;;;16876:15;;;;16764:1;16650:9;16621:280;;;-1:-1:-1;16918:3:1;;16103:824;-1:-1:-1;;;;;;;16103:824:1:o;16932:632::-;17103:2;17155:21;;;17225:13;;17128:18;;;17247:22;;;17074:4;;17103:2;17326:15;;;;17300:2;17285:18;;;17074:4;17369:169;17383:6;17380:1;17377:13;17369:169;;;17444:13;;17432:26;;17513:15;;;;17478:12;;;;17405:1;17398:9;17369:169;;17761:219;17910:2;17899:9;17892:21;17873:4;17930:44;17970:2;17959:9;17955:18;17947:6;17930:44;:::i;18399:334::-;18601:2;18583:21;;;18640:2;18620:18;;;18613:30;-1:-1:-1;;;18674:2:1;18659:18;;18652:40;18724:2;18709:18;;18399:334::o;24371:275::-;24442:2;24436:9;24507:2;24488:13;;-1:-1:-1;;24484:27:1;24472:40;;-1:-1:-1;;;;;24527:34:1;;24563:22;;;24524:62;24521:88;;;24589:18;;:::i;:::-;24625:2;24618:22;24371:275;;-1:-1:-1;24371:275:1:o;24651:183::-;24711:4;-1:-1:-1;;;;;24736:6:1;24733:30;24730:56;;;24766:18;;:::i;:::-;-1:-1:-1;24811:1:1;24807:14;24823:4;24803:25;;24651:183::o;24965:128::-;25005:3;25036:1;25032:6;25029:1;25026:13;25023:39;;;25042:18;;:::i;:::-;-1:-1:-1;25078:9:1;;24965:128::o;25098:120::-;25138:1;25164;25154:35;;25169:18;;:::i;:::-;-1:-1:-1;25203:9:1;;25098:120::o;25223:168::-;25263:7;25329:1;25325;25321:6;25317:14;25314:1;25311:21;25306:1;25299:9;25292:17;25288:45;25285:71;;;25336:18;;:::i;:::-;-1:-1:-1;25376:9:1;;25223:168::o;25396:125::-;25436:4;25464:1;25461;25458:8;25455:34;;;25469:18;;:::i;:::-;-1:-1:-1;25506:9:1;;25396:125::o;25526:258::-;25598:1;25608:113;25622:6;25619:1;25616:13;25608:113;;;25698:11;;;25692:18;25679:11;;;25672:39;25644:2;25637:10;25608:113;;;25739:6;25736:1;25733:13;25730:48;;;-1:-1:-1;;25774:1:1;25756:16;;25749:27;25526:258::o;25789:136::-;25828:3;25856:5;25846:39;;25865:18;;:::i;:::-;-1:-1:-1;;;25901:18:1;;25789:136::o;25930:380::-;26009:1;26005:12;;;;26052;;;26073:61;;26127:4;26119:6;26115:17;26105:27;;26073:61;26180:2;26172:6;26169:14;26149:18;26146:38;26143:161;;;26226:10;26221:3;26217:20;26214:1;26207:31;26261:4;26258:1;26251:15;26289:4;26286:1;26279:15;26143:161;;25930:380;;;:::o;26315:135::-;26354:3;-1:-1:-1;;26375:17:1;;26372:43;;;26395:18;;:::i;:::-;-1:-1:-1;26442:1:1;26431:13;;26315:135::o;26455:112::-;26487:1;26513;26503:35;;26518:18;;:::i;:::-;-1:-1:-1;26552:9:1;;26455:112::o;26572:127::-;26633:10;26628:3;26624:20;26621:1;26614:31;26664:4;26661:1;26654:15;26688:4;26685:1;26678:15;26704:127;26765:10;26760:3;26756:20;26753:1;26746:31;26796:4;26793:1;26786:15;26820:4;26817:1;26810:15;26836:127;26897:10;26892:3;26888:20;26885:1;26878:31;26928:4;26925:1;26918:15;26952:4;26949:1;26942:15;26968:127;27029:10;27024:3;27020:20;27017:1;27010:31;27060:4;27057:1;27050:15;27084:4;27081:1;27074:15;27100:127;27161:10;27156:3;27152:20;27149:1;27142:31;27192:4;27189:1;27182:15;27216:4;27213:1;27206:15;27232:131;-1:-1:-1;;;;;27307:31:1;;27297:42;;27287:70;;27353:1;27350;27343:12;27368:131;-1:-1:-1;;;;;;27442:32:1;;27432:43;;27422:71;;27489:1;27486;27479:12
Swarm Source
ipfs://e83827315243ccf2613f58034872b6f59618acde0f3443079a044853a373f853
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
POL | 100.00% | $0.221977 | 22.52 | $5 |
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.